Para onde vai a carreira do DBA?

Para onde vai a carreira do DBA?

Ser um DBA nos dias de hoje é se perguntar: diante dos novos caminhos que surgem, para onde devo ir?

Ao contrário da foto, porém, o caminho que devemos seguir ainda não existe, ele está sendo criado por todos nós, neste exato momento.

Esta indagação surge por conta das diversas mudanças que a área de TI tem sofrido ao longo dos últimos anos. De maneira simplificada, podemos dizer que o mundo de TI sofreu uma revolução em sua maneira de trabalhar quando as equipes de desenvolvimento pararam de acreditar em modelos fechados e não iterativos para adotar um modo ágil de trabalhar, focando nas entregas contínuas, iterativas e na interação entre as pessoas.

A mudança do modelo Waterfall para o Ágil protagonizada pelos desenvolvedores levou os Gerentes de Projeto a mudarem sua forma de trabalho também. Antes focados em processos e estimativas rígidas, estes passaram a adotar o Scrum como framework de trabalho para gerenciar seus projetos.

Em seguida, as equipes de infraestrutura começaram a ficar por fora da revolução ágil, visto que os desenvolvedores estavam cada vez mais rápidos na entrega de software aos clientes, levando o antigo processo burocrático de gerenciamento de ambiente a se tornar mais ágil e fluído, dando origem ao movimento Devops.

Paralelo a isso tudo, vimos a passagem do tempo no próprio modo de gerenciar nosso hardware. Se antes tínhamos servidores, estes passaram a ser virtualizados (ainda que dentro dos próprios datacenters) e por fim passaram a sequer ficar fisicamente dentro da própria empresa, indo para a nuvem.

Somados todos estes pontos, não é de se admirar que as coisas tenham mudado também para os DBAs. Tarefas que antes dependiam de conhecimento técnico e tempo de um expert na área, foram disponibilizadas aos clientes finais através de cliques do mouse nas consoles das principais nuvens do mercado.

Neste momento nós (DBAs) estamos justamente dentro desta névoa, saindo do nosso antigo mundo e indo para este novo mundo mais alinhado com os modos de trabalho de todos os nossos colegas de trabalho (desenvolvedores, gerentes de projeto, infraestrutura, etc) e por isso talvez não seja tão simples identificar claramente os novos caminhos, mas pelo que já podemos perceber, estes caminhos passam por:

Mudança de Mindset

Esta talvez seja a mais importante. DBAs são famosos por serem sempre a favor do “status quo”, bloqueando mudanças no ambiente. E não sem razão. Todo DBA, provavelmente, tem uma história para contar sobre um desenvolvedor que derrubou um ambiente com um patch emergencial mal feito. Mas esta é a questão. Erros acontecem, com ou sem planejamento. O que nós temos que ter em mente é que devemos dispor de processos e ferramentas que nos permitam validar automaticamente as mudanças antes de as aplicarmos e voltar a um estado anterior de estabilidade rapidamente, caso algum bug ocorra.

Cloud Advisor

Você já parou para contar quantas features cada player de nuvem oferece para que possamos utilizar bancos de dados na nuvem? Eu nunca contei, mas são muitas variações. Temos variações no modo de oferta do hardware, do sistema de armazenamento, do tipo de serviço (IaaS e Paas), do tipo de tecnologia (SQL, NoSQL, etc), da forma de cobrança (algumas cobram por espaço utilizado, outras por dados transferidos), da curva de aprendizado, etc.

Isso sem contar que as ofertas de nuvem, embora relativamente parecidas, são bem diferentes em seus detalhes, detalhes estes que influenciam diretamente na escolha e na precificação dos itens.

Por isso, os DBAs devem conhecer as diferentes possibilidades e ajudar às empresas a realizarem as melhores escolhas diante de cada cenário. Por exemplo: você sabia que ao invés de subir um serviço PaaS de SQL Server (relativamente caro) você pode instalar o mesmo em uma máquina Linux de custo mais baixo e que, dependendo da versão do SQL Server, você sequer precisará pagar por licenciamento?

Devops

As práticas de Devops como infraestrutura como código e builds contínuas podem e devem ser adaptadas aos bancos de dados, aumentando a produtividade do DBA e a qualidade dos projetos que necessitam commitar códigos SQL e manter a versão dos mesmos alinhada com a versão da build do software.

Database Development

Bancos de dados são compostos por tabelas, dados, queries, procedures e, opcionalmente, por features extensíveis como geolocalização, suporte a xml e json, suporte a dados binários etc.

O DBA pode tanto realizar quanto orientar as equipes em obterem uma melhor modelagem, melhor performance em queries e procedures e aconselhando quanto aos recursos “built-in” que podem facilitar as necessidades dos desenvolvedores, visando sempre a melhor performance e escalabilidade da aplicação.

Disaster Recovery e Alta Disponibilidade

Embora seja mais fácil criar ambientes de Disaster Recovery e Alta Disponibilidade (em algumas nuvens isto pode ser feito com um simples clique) estas arquiteturas tem que ser planejadas e, principalmente, testadas, visando que a equipe saiba qual procedimento executar em caso de problemas no ambiente, tornando a recuperação mais rápida e diminuindo o downtime da aplicação em casos de desastre (lembrando que no mundo digital, em muitos casos, downtime na aplicação significa parada total na entrada de receitas para a empresa).

Performance Benchmarking

Neste quesito eu ainda preciso realizar testes mais “científicos”, porém já notei em experiências pessoais que existem diferenças de performance entre nuvens e entre máquinas on-premisse com a mesma configuração.

Nos casos em que trabalhei, em alguns cenários as máquinas em nuvem (de mesma configuração que a on-premise) possuíam uma performance pior, o que nos obrigava a comprar máquinas maiores e, consequentemente, mais caras.

Este tipo de trabalho é especialmente interessante quando a empresa está avaliando a troca do seu fornecedor de nuvem.

Squads

Popularizada pelo Spotify, esta metodologia de formação de times tem influenciado diversas startups ao redor do mundo. Ao quebrar os sistemas da empresa em micro-serviços e definir squads como responsáveis por cada micro-serviço, a empresa está de fato se dividindo em “mini-empresas”, onde cada squad tem um relativamente elevado nível de autonomia.

Porém, se cada squad realmente trabalhar de maneira totalmente autônoma e sem guidance, o resultado podem ser diversos tipos de tecnologia sendo usados, o que dificulta a contratação de novas pessoas, tanto para o desenvolvimento quanto para o suporte, sem contar na curva de aprendizado maior caso haja troca de integrantes entre squads.

Neste cenário, os DBAs podem ajudar selecionando um range de tecnologias a serem utilizadas, montando ferramentas de monitoramento dos ambientes e também ajudando os times nos quesitos levantados nos tópicos anteriores.

Novas Tecnologias

Redshift, Spanner e Aurora são só alguns bancos de dados que não existiam há poucos anos atrás. As diferentes nuvens tem se diferenciado ao oferecer diversos tipos de novas tecnologias (não apenas bancos de dados) e estas novas tecnologias possuem características próprias para resolver determinados problemas.

Estar antenado com estas mudanças para sugerir às equipes a utilização das mesmas também é uma tarefa desenvolvida pelo DBA neste novo cenário.

Conclusão

Este artigo é a minha opinião sobre o tema e, embora longo, com certeza não abrange todas as variáveis. E você, qual é a sua opinião? Por quais caminhos você tem visto o DBA trilhar ou acredita que o DBA irá trilhar nos próximos anos?

pereira

Comments are closed.