Eu sou o engenheiro do DevOps e um engenheiro de software de uma equipe em que, meses atrás, os desenvolvedores passaram de um banco de dados Oracle central para o banco de dados em uma VM do CentOS em seus laptops individuais. A mudança de um banco de dados central foi reduzir a dependência dos DBAs e também eliminar problemas decorrentes de dados inconsistentes.
O plano para compartilhar e garantir a sincronização do banco de dados com todos da equipe era que cada pessoa compartilhasse scripts de alteração com todos. O problema é que usamos o Skype para comunicação (apenas configuramos o slack, mas ainda precisamos começar a usá-lo totalmente) e, embora às vezes as pessoas publiquem o texto dos scripts de alteração de banco de dados, isso pode ser esquecido por alguns. O outro problema é que alguns desenvolvedores deixam de postar as alterações. Além disso, novas versões são implantadas na produção sem serem implantadas nos ambientes de teste e demonstração.
Isso representou um sério desafio para nós, especialmente para mim, que recentemente nos tornamos responsáveis por garantir que nossas implantações de demonstração estivessem sincronizadas com as implantações de produção. A maioria dos problemas de sincronização se baseia na falta de sincronização do banco de dados devido à falta de scripts de alteração ou objetos de banco de dados ausentes. Oracle é o nosso banco de dados de preferência.
Uma implantação típica no ambiente Demo é um processo muito doloroso que envolve o teste de um aplicativo e, conforme ocorrem problemas devido à falta de colunas da tabela de banco de dados, funções, procs armazenados, precisamos procurar os objetos de banco de dados ausentes, aplicá-los ao banco de dados e depois continue até que todos os problemas sejam resolvidos.
Como posso resolver esse problema para garantir implantações suaves, indolores e que consomem menos tempo? A migração de nossos aplicativos para o Docker pode ajudar com os problemas de sincronização do banco de dados e a falta de disciplina associada dos desenvolvedores? Que processo podemos implementar para melhorar nessa área?