Implementar 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 para criar uma base sólida para um aplicativo moderno. Os requisitos do aplicativo estão em constante evolução e mudança, portanto, o próximo passo é entender como atualizar seu banco de dados quando necessário. Operações de Desenvolvimento (DevOps) é um conjunto de princípios e práticas que podem ajudar.
DevOps é a união de pessoas, processos e tecnologia para fornecer continuamente valor aos clientes. As equipes que adotam cultura, práticas e ferramentas de DevOps tornam-se de alto desempenho, criando produtos melhores mais rapidamente para maior satisfação do cliente.
Uma base de dados é uma das partes principais de uma solução; portanto, a capacidade de ter seu banco de dados integrado com suas práticas de DevOps é uma peça-chave do desenvolvimento de aplicativos modernos e ágeis.
Com o Azure SQL, há várias abordagens para incluir seu banco de dados em seu processo de DevOps. Um pipeline de integração contínua (CI) e entrega contínua (CD) é a espinha dorsal de um ambiente de DevOps, e o Azure SQL pode ser totalmente integrado com qualquer ferramenta de CI/CD que você escolher. Duas das ferramentas mais comuns e amplamente utilizadas no Azure são as Ações do GitHub e o Azure DevOps.
Implementar CI/CD para bancos de dados
Ter o banco de dados como parte de um pipeline de CI/CD significa que você deseja configurar e implantar a estrutura — e talvez até alguns dos dados — de maneira totalmente automatizada, reproduzível e determinista. Uma vez configurado, você pode executar o processo de implantação ou atualização a qualquer momento, por qualquer número de vezes, e obter resultados consistentes.
Nesta unidade, você aprenderá sobre as três principais abordagens para implementar um pipeline de CI/CD para bancos de dados:
- Estado desejado
- Migrações Code First
- Scripts personalizados
Use a abordagem de Estado desejado com SqlPackage.exe
Em uma abordagem de estado desejado, você tira um instantâneo da estrutura de um banco de dados de referência para representar o estado desejado. Em seguida, você pode usar esse instantâneo para sincronizar outro banco de dados de destino, geralmente o banco de dados de teste ou produção, para o estado desejado. Você pode usar uma ferramenta como SqlPackage.exe para capturar o instantâneo num ficheiro .dacpac
. Quando o .dacpac
é aplicado ao banco de dados de destino, ele localizará automaticamente as diferenças, gerará o script correto e aplicará esse script para sincronizar o esquema de destino com a referência.
Usamos a abordagem do Estado Desejado no cenário de captura de ônibus; é provavelmente a mais fácil e a mais simples das três abordagens discutidas.
Implementar migrações Code First dependendo do seu idioma
Há outra opção quando você não quer escrever scripts T-SQL; em vez disso, você deseja permitir que C#, Python ou Node e as entidades definidas em sua solução (por exemplo, um Bus, uma Rota ou um Local) gerem automaticamente o banco de dados e o esquema. Normalmente, há uma ferramenta específica que vem com ou se aplica a uma plataforma ou estrutura. Essas ferramentas garantem que toda vez 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.
Use scripts manuais para implantações passo a passo
Na abordagem de script manual, um 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; pelo contrário, cria-se um novo. 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 devem ser executados na sequência correta para garantir que o banco de dados seja criado e evoluído corretamente. Depois que um script tiver sido implantado, você poderá usar ferramentas como o utilitário Comparação de Esquema 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.
Selecione uma ferramenta de pipeline para implementar CI/CD com facilidade
Depois de identificar a abordagem que melhor aborda como você atualizará seu banco de dados, você pode selecionar entre duas soluções comuns, Azure DevOps ou GitHub Actions, para implementar essa abordagem.
Implementar CI/CD com o Azure DevOps
O Azure DevOps é um conjunto de produtos que fornece suporte completo a todos os aspetos do DevOps, incluindo um pipeline de CI/CD. Um pipeline é composto por Tarefas que definem as etapas do pipeline. Uma tarefa pode ser quase tudo, desde a execução de um executável até a compilaçã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 CI/CD com ações do GitHub
As Ações do GitHub permitem a definição de um pipeline de CI/CD. Usa as Ações para criar os passos do pipeline. Você pode usar uma Ação para executar um processo de praticamente qualquer tipo. O Action Azure SQL Deploy permite implantar um arquivo .dacpac
.
No próximo exercício, as Ações SQL do Azure serão usadas para implantar e atualizar o esquema de banco de dados, dando a você a oportunidade de vê-lo em ação.