Dextra

A Revolução Ágil e o Gerenciamento de Bancos de Dados

Por: Felipe Pereira 07/05/2018

O mundo de desenvolvimento de software mudou muito depois do Manifesto Ágil.

Tivemos impactos significativos em diversas áreas. Por exemplo: no Gerenciamento de Projetos paramos de adotar modelos Cascata, que se utilizavam de várias metodologias como CMMi, MPSbr, etc e passamos a adotar frameworks ágeis como Scrum e Kanban.

A engenharia de software também sofreu mudanças. Paramos de projetar sistemas monolitos e passamos a desenvolver micro-serviços de maneira iterativa e evolutiva. Até a infraestrutura, a guardiã da ligação do mundo virtual com o mundo físico, passou a tratar seus servidores virtuais e deploys de ferramentas de maneira automatizada, passando a tratar a infraestrutura como código e dando origem ao movimento DevOps.

Mas e os bancos de dados?

Um profissional DBA dos anos 90, provavelmente, não encontraria grandes dificuldades nos papéis de DBAs do século XXI. Tirando a parte tecnológica em si (novas features e novos bancos de dados surgiram), o dia-a-dia dos profissionais que cuidam de bancos de dados não mudou muito.

Por exemplo: DBAs ainda precisam, em sua grande maioria, de grandes janelas de manutenção (parando sistemas de produção) para realizar algumas ações de rotina ou de atualização de modelagem da aplicação. Boa parte do trabalho feito ainda é manual, existindo uma crença de que “não se pode automatizar scripts” em produção. Os resultados destas práticas acabam sendo o de uma equipe de DBAs que diz muitos “nãos”, pois atrasa deploys de aplicação, evita o aprendizado com o erro controlado e não trabalha no mesmo ritmo de deploy que as equipes de desenvolvimento possuem para poder colocar novidades em produção, aumentando assim o “time to market” das soluções.

Hoje já existem diversas soluções para estes problemas comuns:

-Infrastructure as a Code: Já existem ferramentas que realizam a instalação e configuração de ambientes de maneira totalmente automatizada e escalável. As maiores ferramentas atualmente são o Chef e o Puppet.

-Atualizar a modelagem do banco de dados: Técnicas como a Database Refactoring permitem que um banco de dados possa ter sua modelagem alterada sem afetar os dados existentes e permitindo que novas alterações sejam feitas em produção com o mínimo de impacto.

-Deploys automatizados: Ferramentas como Flyway e DbDeploy permitem o deploy automatizado de scripts em bancos de dados, respeitando o versionamento da modelagem e tornando as alterações de bancos de dados parte do código-fonte da aplicação, obrigando a existência de uma cultura de criação de scripts e versionamento de código.

-Database as a Service: Serviços gerenciados de bancos de dados na nuvem permitem uma criação rápida de ambientes, fornecendo uma camada de gerenciamento poderosa e aumentando a produtividade da equipe de DBAs, permitindo que a equipe passe mais tempo projetando arquiteturas de Alta Performance e Disaster Recovery.

Todas estas técnicas e ferramentas somadas podem tornar o ambiente de gerenciamento de bancos de dados mais ágil e produtivo, tornando assim a empresa mais apta em desenvolver soluções e aplicá-las de maneira rápida e responsável em produção, o que diminui o time-to-market e aumenta a capacidade de inovação.

Entre em Contato

Mensagem enviada com sucesso!

Tags

Comentários