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 equipas que adotam a cultura, as práticas e as ferramentas de DevOps tornam-se altamente produtivas, criando produtos melhores mais depressa e aumentando a 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 tirar o instantâneo em um .dacpac
arquivo. 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 .dacpac
arquivo 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. Use Ações para criar as etapas do pipeline. Você pode usar uma Ação para executar um processo de praticamente qualquer tipo. A Ação Azure SQL Deploy permite implantar um .dacpac
arquivo.
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.