Quando eu comecei a trabalhar com BD, era normal investir bastante tempo na infraestrutura e administração. Me arrisco a dizer que os DBAs passavam mais tempo cuidando destes itens do que participando dos projetos.
Não era ruim, mas muitas vezes eu ficava com a sensação de que poderia ter ajudado de muitas outras formas, se tivesse mais tempo.
Os tempos mudaram, eu virei Arquiteta de Dados e talvez por isso fui me transformando em #DBANutella. Adoro ferramentas e automatizações que me deixam ter mais tempo livre para ajudar e aprender mais, e por isso eu amo os bancos de dados na nuvem.
Já que falamos de nuvem, acho importante esclarecer aqui alguns conceitos fofinhos e bem importantes.
Nuvem
A definição de nuvem pode parecer subjetiva, mas é um termo utilizado para descrever uma rede de servidores, cada um com uma função única. A nuvem não é uma entidade física, mas uma vasta rede de servidores remotos ao redor do globo que são conectados e operam como um único ecossistema.
Estes servidores são responsáveis por armazenar e gerenciar dados, executar aplicativos ou fornecer serviços, como transmissão de vídeos, webmails, software de produtividade ou mídias sociais.
Em vez de acessar arquivos e dados do local ou de um PC, você pode acessá-los online, de qualquer dispositivo com acesso à internet. As informações estarão disponíveis em qualquer lugar, a qualquer hora.
CaPex = Capital Expenditure
Imagine que a sua empresa optou pelo uso do PostgreSQL e vai comprar os servidores adequados. Ela irá investir na compra do servidor e depois o utilizará sem pagar taxas mensais.
OPex = Operacional Expenditure
Imagine agora que a sua empresa optou por usar o PostgreSQL na nuvem. Neste caso, ela precisará pagar mensalmente pelo uso do serviço.
Elasticidade
Possibilidade de ir dimensionando o ambiente (aumentando ou diminuindo a quantidade de recursos) de acordo com as necessidades.
Controle
Em um ambiente em nuvem, o DBA não controla mais o HW. Ele dimensiona o que ele precisa.
IaaS
Infraestrutura como serviço. Neste modelo a empresa paga por uma determinada capacidade de hardware que corresponde a memória, armazenamento, processamento, etc.
Você usa IaaS quando decide criar uma VM e instala nela o seu SGBD. Neste caso, eu abro mão de controlar a infra, mas sou responsável pelas configurações, licenças, atualizações.
PaaS
Plataforma como serviço: neste caso, contrata-se um ambiente completo de desenvolvimento, no qual é possível criar, modificar e otimizar softwares e aplicações.
Os times não são responsáveis pela infraestrutura, sistema operacional e nem por atualizações.
DaaS
É uma especialização do PaaS, e significa banco de dados como serviço. Neste caso, são vendidas as capacidades de processamento e armazenamento dos dados.
PostgreSQL como serviço do Azure
Agora que já estamos na mesma página, conversaremos sobre esta possibilidade que eu adoro: o PostgreSQL como serviço do Azure. A ideia do serviço é ter menos administração, dando mais liberdade para o DBA atuar em outras atividades.
Para quem já conhece o PostgreSQL, não é preciso aprender mais um BD, e nem ter uma outra ferramenta para manutenção. Eu, por exemplo, adoro usar o pgAdmin, e continuo usando, independentemente de onde está meu servidor (nuvem, local, VM, etc).
O serviço PostgreSQL no Azure oferece três níveis de preços: Básico, Uso Geral e Memória Otimizada. Cuidado, porque o desempenho da sua aplicação depende da camada escolhida. Cada camada oferece recursos diferentes para suportar as cargas de trabalho do seu banco de dados. Sendo assim, talvez a camada básica não seja a ideal para seu aplicativo em produção.
Pontos que são muito positivos do serviço PostgreSQL no Azure, são:
- Ferramentas de monitoração e alertas.
- SLA agressivo para disponibilidade (que permite que a solução seja usada em aplicativos de missão crítica).
- Restauração point-in-time para retornar um banco de dados a um estado anterior, até 35 dias. Além disso, se o datacenter que hospeda seus bancos de dados sofrer uma interrupção, você poderá restaurar os bancos de dados a partir de cópias geo-redundantes de backups recentes.
- Recursos de criptografia e controle de acesso.
Show me the code!
Ia ficar muito sem graça falar das características do PostgreSQL e não mostrar como é na prática. Por isso, no vídeo desta semana vamos criar um servidor PostgreSQL na nuvem, e acessá-lo pelo pgAdmin.
Conclusão
Quando a empresa opta pelo uso do PostgreSQL na nuvem, ela está adquirindo um serviço DaaS. Deixa de fazer um investimento inicial na infraestrutura (CaPex) e opta por fazer o pagamento mensal pelo uso do serviço (OPex).
Já trabalhei com o PostgreSQL instalado em servidores físicos, em máquinas virtuais e agora estou apaixonada pela possibilidade de uso na nuvem, porque ele é bem fácil e é uma das soluções para a falta de tempo do DBA.
Para vocês, desenvolvedores, a mudança é quase que imperceptível, mas você que caminha a passos largos para os melhores projetos deve conhecer esta possibilidade, e no momento certo dar a sua opinião sobre ela. Crie sua conta no Azure, teste o serviço, erre, aprenda, corrija.
Parabéns por conhecer mais uma possibilidade!
Dia 01/12, eu e a Sulamita Dantas estaremos em BH dando um super curso de MongoDB! As inscrições estão abertas e podem ser feitas neste link.