Implementar a CI/CD para o Banco de Dados SQL do Azure
Agora você sabe como implantar, configurar e usar o Banco de Dados SQL do Azure a fim de criar uma base sólida para um aplicativo moderno. Os requisitos do aplicativo estão sempre evoluindo e mudando, portanto, a próxima etapa é entender como atualizar o banco de dados quando necessário. O DevOps (Operações de Desenvolvimento) é um conjunto de princípios e práticas que podem ajudar.
O DevOps é a união de pessoas, processos e tecnologias para oferecer valor aos clientes de modo contínuo. As equipes que adotam a cultura, as práticas e as ferramentas do DevOps alcançam um alto desempenho, criando produtos melhores mais rapidamente para maior satisfação do cliente.
O banco de dados é uma das principais partes de uma solução, de modo que a capacidade de integrá-lo com as práticas de DevOps é uma parte fundamental do desenvolvimento de aplicativos modernos e Agile.
Com o SQL do Azure, há várias abordagens para incluir o banco de dados no processo de DevOps. Um pipeline de CI (integração contínua) e CD (entrega contínua) é o backbone de um ambiente de DevOps, e o SQL do Azure pode ser totalmente integrado a qualquer ferramenta de CI/CD que você escolher. Duas das ferramentas mais comuns e amplamente usadas no Azure são o GitHub Actions e o Azure DevOps.
Implementar a CI/CD para bancos de dados
A presença do banco de dados em um pipeline de CI/CD significa que você quer configurar e implantar a estrutura e, talvez, alguns dos dados também, de maneira totalmente automatizada, reproduzível e determinística. Após a configuração, você pode executar o processo de implantação ou atualização a qualquer momento, quantas vezes quiser, e obter resultados consistentes.
Nesta unidade, você aprenderá sobre as três abordagens principais para implementar um pipeline de CI/CD para bancos de dados:
- Estado desejado
- Migrações do Code First
- Scripts personalizados
Usar a abordagem de estado desejado com o SqlPackage.exe
Em uma abordagem de Estado Desejado, você faz um instantâneo da estrutura de um banco de dados de referência para representar o estado desejado. Você pode, então, usar esse instantâneo para sincronizar outro banco de dados de destino, normalmente o banco de dados de teste ou de produto, com o estado desejado. Você pode usar uma ferramenta como o SqlPackage.exe para colocar o instantâneo em um arquivo .dacpac
. Quando o .dacpac
é aplicado ao banco de dados de destino, ele encontra automaticamente as diferenças, gera o script correto e aplica esse script para sincronizar o esquema de destino com a referência.
Usamos a abordagem de Estado Desejado no cenário de uso de ônibus pois provavelmente é a mais fácil e simples das três abordagens discutidas.
Implementar as Migrações do Code First dependendo da linguagem
Há outra opção para quando você não deseja escrever scripts T-SQL, mas sim permitir que o C#, o Python ou o Node e as entidades definidas na solução (por exemplo, um Ônibus, uma Rota ou um Local) gerem o banco de dados e o esquema automaticamente. Normalmente, há uma ferramenta específica que vem com uma plataforma ou estrutura ou que aplica-se a ela. Essas ferramentas garantem que sempre que você alterar ou adicionar um campo ou entidade, a nova estrutura será refletida no banco de dados. Você pode encontrar referências a ferramentas para plataformas e estruturas específicas no final deste módulo.
Usar scripts manuais para implantações passo a passo
Na abordagem de script manual, o desenvolvedor escreve e mantém cuidadosamente os scripts necessários para criar e alterar o banco de dados ao longo do tempo. Depois que um script é implantado em produção, ele nunca é alterado; em vez disso, outro é criado. Cada script contém o código necessário para evoluir o banco de dados para o novo esquema. Nos casos em que um banco de dados precisa ser implantado do zero, todos os scripts precisam ser executados na sequência certa para garantir que o banco de dados seja criado e evolua corretamente. Depois que um script tiver sido implantado, você poderá usar ferramentas como o utilitário de Comparação de Esquemas no SSDT (SQL Server Data Tools) para comparar definições de banco de dados. Isso ajuda a garantir que o script implantado não seja aplicado novamente ao mesmo banco de dados em execuções subsequentes.
Selecionar uma ferramenta de pipeline para implementar a CI/CD com facilidade
Depois de identificar a abordagem mais adequada à maneira como você atualizará o banco de dados, selecione entre as duas soluções comuns, o Azure DevOps ou o GitHub Actions, para implementar a abordagem.
Implementar CI/CD com o Azure DevOps
O Azure DevOps é um pacote de produtos que dá suporte completo a todos os aspectos do DevOps, incluindo um pipeline de CI/CD. Um pipeline é composto por Tarefas que definem suas etapas. Uma tarefa pode ser quase qualquer coisa, desde a execução de um executável até a criação de uma solução .NET. Você pode usar uma tarefa específica chamada Tarefa de Implantação do Banco de Dados SQL do Azure para implantar um arquivo .dacpac
ou executar um script .sql.
Implementar a CI/CD com o GitHub Actions
Ações do GitHub permitem a definição de um pipeline de CI/CD. Use Ações para criar as etapas do pipeline. Você pode usar uma Ação para executar um processo de quase qualquer tipo. A ação Implantação do SQL do Azure permite que você implante um arquivo .dacpac
.
No próximo exercício, as Ações do SQL do Azure serão usadas para implantar e atualizar o esquema do banco de dados, proporcionando a você a oportunidade de vê-las em ação.