No modelo atual de entrega de serviços criado com a internet, cada minuto de indisponibilidade pode representar uma perda de clientes e de lucros monumental. Aliado a isso, um alto tempo no carregamento de uma página, muitas vezes, é a diferença entre o sucesso e o fracasso de um site. O fato é que todos esses cenários podem ser consequências de problemas no gerenciamento da infraestrutura. Uma falha no servidor de banco de dados fora do expediente dos funcionários, uma configuração malfeita ou mesmo uma quantidade inesperada de acessos à sua aplicação — tudo isso pode gerar perda de lucros e dores de cabeça para os envolvidos. Quanto menos preocupações uma empresa tiver quanto à sua infraestrutura, mais tempo poderá dedicar a fim de cumprir os seus objetivos e satisfazer seus clientes.

Com isso em mente, a IBM, oferece seu serviço de banco de dados NoSQL na nuvem, o Cloudant. O IBM Cloudant é um banco de dados orientado a documentos, NoSQL, com foco em escalabilidade, alta disponibilidade, durabilidade e simplicidade.

Baseado no CouchDB, o serviço utiliza documentos com notação JSON e pode ser manipulado através de uma interface HTTP simples. Otimizado para manipular cargas de trabalho pesadas, típicas de aplicativos da web e aplicativos móveis grandes e de crescimento rápido. Pode funcionar em um sistema de clusters, onde a informação é armazenada em vários nós diferentes. Assim, o serviço garante um balanceamento de carga, caso haja muitos acessos simultâneos inesperadamente, e que os dados não serão perdidos se ocorrer uma falha em um dos nós da rede.

O Cloudant também provê suporte em tempo integral (24 horas por dia, 7 dias por semana); o usuário não precisa se preocupar com a estrutura física do banco.

Exemplo de uso

Como o Cloudant utiliza uma interface HTTP pura, o gerenciamento do banco de dados pode ser manipulado por meio de qualquer linguagem de programação moderna, sem a necessidade do uso de drivers proprietários.

A API HTTP do Cloudant usa o seguinte modelo hierárquico: Conta, Banco de dados, documentos e anexos. Assim, uma URL se parece com a seguinte:

https://<Account>.cloudant.com/employee_directory/<API endpoint>?<params>

Onde “Account” é o nome de conta no IBM Cloud; “API endpoint” se refere à base de dados a ser acessada (não obrigatoriamente apenas uma por vez); e “params” informa os parâmetros da requisição.

Através de uma URL é possível fazer alterações nos dados através dos verbos HTTP: GET, PUT, POST e DELETE.

Além da API HTTP, o Cloudant oferece bibliotecas para diversas linguagens de programação, as quais facilitam a manipulação de dados por suas aplicações. Para mais detalhes sobre o uso de tais bibliotecas e exemplos com várias linguagens, verifique a documentação.

Abaixo há um exemplo simples de como utilizar um banco de dados do IBM Cloudant diretamente de um terminal com a ferramenta de linha de comando curl, para as requisições HTTP e jq, a fim de formatar a resposta de uma forma mais legível.

Para utilizar o serviço, faz-se necessária uma conta IBM Cloud.

O Cloudant possui dois métodos de autenticação possíveis: o IAM (Identity and Access Management) e o Legacy. Para cada comando apresentado acrescente o parâmetro -u user, onde “user” representa o nome do seu usuário para autenticação no modo Legacy, e -H ‘Accept: application/json’ -H ‘Authorization: Bearer <IAM Token>’ para o modo IAM, no qual IAM Token é a API key gerada por você.

Para ver suas informações de cluster, execute o comando:

curl -X GET ‘https://<account>.cloudant.com’ | jq .

Para ver todos os seus bancos de dados:

curl -X GET ‘https://<account>.cloudant.com/_all_dbs’ | jq .

Para ver todos os documentos em um banco de dados específico:

curl -X GET ‘https://<account>.cloudant.com/<database>/_all_docs’ | jq .

Substituindo account pelo nome da sua conta e database pelo nome do seu banco de dados.

Todos os exemplos e qualquer outra manipulação também podem ser feitos com uma interface gráfica, diretamente do dashboard do Cloudant.

Casos de uso

Como explica o próprio Mike Miller, cofundador da Cloudant, o serviço foi criado por um grupo de físicos do MIT a fim de tentar resolver problemas com grandes sistemas de dados distribuídos, gerados com o grande colisor de hádrons. O intuito é armazenar dados em um sistema online e usá-los na criação de aplicações que possam transformá-los em produtos e gerar lucro, ou transformá-los em conhecimento.

O serviço é muito utilizado por seu suporte para escalabilidade linear, em que sistemas podem funcionar da mesma forma, não importando o quanto a mais seja exigido deles, e pelo serviço entregue pela IBM, com pessoal altamente capacitado a dar o suporte necessário para a manutenção da infraestrutura da aplicação.

Porém, o Cloudant não é um serviço recomendado para sistemas OLTP (Online Transaction Processing ou Processamento em Tempo Real) mais tradicionais, nos quais um grande número de operações de escrita e leitura ocorrem simultaneamente, nem para sistemas de análises de dados.

Para análise de dados contidos em uma base de dados Cloudant, a IBM oferece o dashDB, que possui uma forma automatizada de extrair dados de um banco Cloudant e usá-los para análise e processamento pesados.

Grandes empresas, como Runkeeper e Cabify, adotam o Cloudant para armazenar os dados de seus usuários e se manterem funcionando ininterruptamente, confiando em seu slogan “Crie Mais, Cresça Mais, Durma Mais” (Build More, Grow More, Sleep More).

Existem três opções de planos para utilização do Cloudant: gratuito, por tempo ilimitado com uma conta IBM Cloud Lite, podendo armazenar até 1 GB de dados; no plano Standard, com um limite de 20 GB de dados e pagando somente pelo que for utilizado; ou em um plano de Hardware Dedicado, no qual as máquinas que você usar serão dedicadas exclusivamente a você, sem compartilhamentos e com acesso a mais alguns serviços de suporte.

Para saber mais sobre o IBM Cloudant, clique aqui.