No passado, bancos de dados proprietários eram as únicas opções aceitáveis.
"Ninguém nunca foi demitido por comprar da Oracle/Microsoft/IBM" foi o ditado.
Grandes bancos de dados monolíticos usados para todos os propósitos. Suporte pago - assim era o cenário do banco de dados nos anos 90 e início dos anos 2000. Claro, bancos de dados de código aberto existiam, mas eram tratados como um “banco de dados de brinquedo”, adequado para um pequeno site, talvez um blog ou uma loja virtual muito pequena. Ninguém em sã consciência os usaria para algo crítico.
As coisas mudaram ao longo do tempo e os bancos de dados de código aberto amadureceram. Mais e mais estão sendo criados a cada ano. Agora vemos a especialização, permitindo que os usuários escolham a melhor opção para determinada carga de trabalho - série temporal, analítica, columnstore, NoSQL, relacional, valor-chave - você pode escolher qualquer banco de dados que precisar e, geralmente, há várias opções para escolher. Isso faz com que o código aberto seja cada vez mais popular no mundo dos bancos de dados. As empresas agora estão analisando suas contas de seu fornecedor de banco de dados proprietário e se perguntam se podem reduzi-lo um pouco adotando um banco de dados de código aberto gratuito.
Como sempre, há prós e contras. Quais são as coisas que você pode querer considerar antes de implementar o banco de dados de código aberto? Nesta postagem do blog, compartilharemos algumas dicas que você deve ter em mente ao planejar a migração para bancos de dados de código aberto.
Iniciar pequeno e expandir
Se sua organização não usa bancos de dados de código aberto, provavelmente também não tem experiência em gerenciá-los. Embora seja possível por meio de consultores externos, provavelmente não é uma boa ideia migrar todo o seu ambiente para bancos de dados de código aberto.
A melhor abordagem, em vez disso, seria começar com pequenos projetos. Talvez você precise criar algum tipo de ferramenta ou site interno, talvez algum tipo de ferramenta de monitoramento - essa é uma ótima oportunidade de usar bancos de dados de código aberto e obter a experiência de usá-lo em ambientes do mundo real. Isso permitirá que você aprenda os detalhes de um banco de dados - como diagnosticá-lo, como rastrear seu desempenho, como ajustá-lo para melhorar seu desempenho.
Além disso, você aprenderia mais sobre as opções e implementações de alta disponibilidade. Trabalhar com ele também ajuda a entender as diferenças entre o banco de dados proprietário que você usa e os bancos de dados de código aberto implementados para projetos menores. Com o tempo, você deverá ver a pegada do banco de dados de código aberto em sua organização aumentar significativamente junto com a experiência de suas equipes.
Em algum momento, depois de coletar experiência suficiente para executar os bancos de dados de código aberto, você pode decidir puxar a alavanca e iniciar um projeto de migração. Outra opção, também bastante provável, é mover gradualmente suas operações para bancos de dados de código aberto, projeto por projeto. Eventualmente, seus aplicativos existentes que usam RDBMS proprietário se tornarão obsoletos e, eventualmente, substituídos por uma nova iteração do software, que depende de bancos de dados de código aberto.
Escolha o banco de dados certo para o trabalho
Já mencionamos que os bancos de dados de código aberto são, normalmente, bastante especializados. Você pode escolher um armazenamento de dados adequado para diferentes usos - série temporal, armazenamento de documentos, armazenamento de valor-chave, armazenamento colunar, pesquisa de texto. Isso, combinado com a dica anterior, permite que você escolha exatamente o tipo de banco de dados que seu pequeno projeto requer. Digamos que você queira construir uma pilha de monitoramento para seu ambiente.
Você pode querer pesquisar bancos de dados de séries temporais como Prometheus ou TimeScaleDB para alimentar seu aplicativo de monitoramento. Talvez você queira implementar algum tipo de solução analítica/big data. Você teria que projetar algum tipo de processo ETL para extrair os dados de seu RDBMS principal e carregá-los em uma solução de código aberto. Existem inúmeras opções para serem usadas como armazenamento de dados. Dependendo dos requisitos e dados, você pode escolher entre uma ampla variedade de bancos de dados, por exemplo, Clickhouse, Cassandra, Hive e muitos outros.
Que tal mover algumas partes do aplicativo do RDBMS proprietário para uma solução de código aberto?
Há opções para isso também. Datastores como PostgreSQL ou MariaDB possuem muitos recursos relacionados a facilitar a migração de datastores como Oracle. Eles vêm com, por exemplo, suporte para PL/SQL e outros recursos SQL disponíveis para Oracle. Isso é uma grande ajuda - menos código precisa ser convertido junto com a migração do Oracle para outros bancos de dados, é mais provável que seus procedimentos e funções armazenados também funcionem na maioria das vezes e você não precisará gastar muito quantidade de tempo para reescrever, testar e depurar o código que representa uma lógica central do seu aplicativo.
Você também não deve esquecer os recursos que já possui em sua equipe. Talvez alguém tenha alguma experiência em datastores de código aberto mais populares? Se eles corresponderem aos seus requisitos e se adequarem ao seu ambiente, você poderá utilizar o conhecimento existente em sua equipe e facilitar a transição para o mundo do código aberto.
Considere obter suporte
Migrar para datastores com os quais você não tem muita experiência é sempre complicado. Mesmo que você prossiga com pequenos passos, você ainda pode ser pego por um comportamento surpresa, situação inesperada, bugs ou até mesmo situações operacionais com as quais você não está familiarizado.
Bancos de dados de código aberto normalmente têm um ótimo suporte da comunidade - listas de e-mail, fóruns, canais do Slack. Normalmente, quando você pergunta, alguém tentará ajudá-lo. Isso pode não ser suficiente em alguns casos. Se for esse o caso, você deve procurar um suporte pago. Existem inúmeras maneiras de como isso pode ser alcançado.
Em primeiro lugar, nem todos os projetos de código aberto são iguais. Projetos maiores, como PostgreSQL ou MySQL, podem ter desenvolvido um ecossistema de empresas de consultoria que contratam especialistas que podem fazer consultoria para você. Se tal opção, por qualquer motivo, não estiver disponível ou viável, você sempre pode entrar em contato com os mantenedores do projeto.
É muito comum que a empresa que desenvolve o armazenamento de dados tenha prazer em ajudar por um preço.
As empresas de consultoria independentes têm uma vantagem significativa - são independentes e proporão uma solução com base em sua experiência, não com base no armazenamento de dados e nas ferramentas que desenvolvem. Fornecedores, bem, eles geralmente vão empurrar suas próprias soluções e ambiente. Por outro lado, os fornecedores estão bastante interessados em aumentar a adoção de seu armazenamento de dados. Se você estiver migrando de um armazenamento de dados proprietário, eles podem ter estado nessa situação várias vezes antes, portanto, eles devem ser capazes de fornecer boas práticas, ajudá-lo a projetar o processo de migração e assim por diante. Para uma empresa inexperiente, o acesso aos especialistas na área de migração pode ser um grande trunfo.
Você pode achar o acesso ao suporte externo útil não apenas na fase de migração. Lidar com um novo armazenamento de dados é sempre complicado e aprender todos os aspectos das operações é demorado. Mesmo após a migração, você ainda pode se beneficiar de ter alguém para quem possa ligar, perguntar e, o que é mais importante, aprender. Treinamentos, DBA remoto, tudo isso são opções comuns no mundo dos bancos de dados de código aberto, especialmente para aqueles projetos maiores e mais estabelecidos.
Encontre um sistema ou ferramenta para ajudar
Bancos de dados de código aberto vêm com uma variedade de ferramentas, algumas mais ou menos complexas. Alguns adicionam funcionalidades (alta disponibilidade, backups, monitoramento), alguns são projetados para facilitar o gerenciamento do banco de dados.
É importante aproveitá-los (os contratos de consultoria podem ser úteis aqui para apresentar as ferramentas mais importantes para o armazenamento de dados de código aberto de sua escolha), pois eles podem aumentar significativamente sua velocidade operacional e o desempenho e estabilidade de toda a configuração.
Algumas ferramentas são gratuitas, algumas requerem uma licença para operar, você deve olhar para o pool e escolher o que mais lhe convier. Estamos falando aqui de balanceadores de carga, ferramentas para gerenciar a topologia de replicação, ferramentas de gerenciamento de IP virtual, soluções de cluster, plataformas de monitoramento e observabilidade mais ou menos dedicadas que podem rastrear qualquer coisa a partir de métricas típicas de desempenho de banco de dados, fornecendo previsões inteligentes com base nos dados para especialistas análise do desempenho da consulta.
O mundo do código aberto é onde essas ferramentas prosperam - isso também tem prós e contras. É fácil encontrar a ferramenta “A”, é difícil encontrar a ferramenta “THE”. Você pode encontrar vários projetos no GitHub, todos fazendo quase o mesmo que os outros. Qual escolher é a parte difícil. É por isso que, idealmente, você teria uma ajuda em um contrato de suporte ou também pode contar com plataformas de gerenciamento que o ajudarão a gerenciar vários aspectos das operações em bancos de dados de código aberto, inclusive ajudando você a padronizar e escolher as ferramentas corretas para que.
Também existem plataformas como ClusterControl, que foi projetada para ajudar pessoas inexperientes a compreender totalmente o poder dos bancos de dados de código aberto. O ClusterControl suporta vários tipos diferentes de datastores de código aberto:MySQL e seus sabores, PostgreSQL, TimeScaleDB ou MongoDB. Ele fornece uma interface de usuário unificada para acessar as funções de gerenciamento desses datastores, facilitando a implantação e o gerenciamento. Em vez de perder tempo testando diferentes ferramentas e soluções, usando o ClusterControl você pode facilmente implantar ambientes altamente disponíveis, agendar backups e acompanhar as métricas do sistema.
Ferramentas como ClusterControl reduzem a carga de sua equipe, aumentando sua capacidade de entender o que está acontecendo no banco de dados com o qual eles não estão tão familiarizados quanto gostariam.
Não se apresse
O que é bom ter em mente é que não há necessidade de pressa. A estabilidade do seu ambiente e o bem-estar dos seus usuários são fundamentais. Leve o seu tempo para executar os testes, verifique todos os aspectos da sua aplicação. Verifique se você possui processos adequados de alta disponibilidade e recuperação de desastres implementados.
Somente quando você tiver 100% de certeza de que está pronto para mudar, é hora de puxar a alavanca e fazer a mudança para bancos de dados de código aberto.