Implante seu aplicativo e integre-o a outros serviços do Azure
Agora que você conhece as diferentes opções de hospedagem de aplicativos no Azure, deseja explorar como implantar aplicativos do Banco de Dados do Azure para MySQL – Servidor Flexível nesses serviços. Nesta unidade, você conhecerá dois dos serviços mais usados, o Serviço de Aplicativo do Azure e o AKS, analisará as opções para automatizar tarefas de CI/CD usando o Azure DevOps e o GitHub e aprenderá a utilizar a inteligência artificial nesses aplicativos por meio da integração com a Pesquisa de IA do Azure e o OpenAI do Azure.
Serviço de Aplicativo do Azure + Banco de Dados do Azure para MySQL – Servidor Flexível
Para implantar a sua aplicação no Serviço de Aplicativo do Azure e integrar-se com a Banco de Dados do Azure para MySQL - Servidor Flexível, considere as seguintes opções:
- Utilize Web App + Database do Azure Marketplace para criar uma Web App e um servidor flexível MySQL isolado numa rede virtual (VNet). As informações de conexão do servidor flexível são adicionadas automaticamente às Definições de Configuração do aplicativo Serviço de Aplicativo usando uma cadeia de conexão.
- Crie um servidor flexível do Banco de Dados do Azure para MySQL e um aplicativo de Serviço de Aplicativo individualmente e, em seguida, no aplicativo Serviço de Aplicativo, em Configurações de Aplicativo em Configurações de Configuração, adicione as informações de conexão do servidor flexível MySQL.
Depois de configurar a sua aplicação do Serviço de Aplicações e o servidor flexível MySQL, pode implementar o seu código de aplicação no Azure utilizando vários métodos de implantação suportados pelo Serviço de Aplicativo do Azure. Esses métodos incluem a implantação de um pacote ZIP, repositórios Git locais, Registro de Contêiner do Azure, GitHub Actions ou Azure Pipelines, com cada opção oferecendo flexibilidade com base em seus fluxos de trabalho operacionais e de desenvolvimento.
Na próxima unidade, você criará um aplicativo PHP de exemplo e o implantará no Serviço de Aplicativo do Azure, passando por cada etapa envolvida no processo de implantação, e usará os poderosos recursos da plataforma do Azure para otimizar o desempenho e a escalabilidade do seu aplicativo.
AKS (Serviço de Kubernetes do Azure) + MySQL – Servidor Flexível
A integração do AKS ao Banco de Dados do Azure para MySQL – Servidor Flexível cria uma plataforma poderosa para implantar aplicativos em contêineres, que podem simplificar o gerenciamento de banco de dados e aprimorar a escalabilidade e a resiliência do aplicativo. Para implementar e gerir eficazmente as suas aplicações em AKS com um servidor flexível MySQL de backend, considere as seguintes informações.
O diagrama a seguir ilustra três formas comuns de integrar o MySQL com a sua aplicação AKS:
- Use o Banco de Dados do Azure para MySQL – Servidor Flexível, que reduz a sobrecarga operacional de gerenciamento do servidor MySQL, aumentando assim a produtividade do desenvolvedor.
- Utilize o MySQL no Azure VM, uma oferta de infraestrutura como serviço, que exige que você assuma a responsabilidade pelo gerenciamento e manutenção do servidor MySQL.
- Execute o MySQL no Kubernetes, que oferece benefícios de automação, mas exige esforços do desenvolvedor para garantir estabilidade, alta disponibilidade, persistência de dados e conformidade. Além disso, dada a natureza transitória dos pods do Kubernetes, há uma maior probabilidade de failovers e reinicializações, o que pode afetar a disponibilidade dos aplicativos e a continuidade dos negócios.
Para implementar uma aplicação em AKS que se integra com a Banco de Dados do Azure para MySQL - Servidor Flexível, utilize o seguinte processo de cinco passos:
Crie um Banco de Dados do Azure para MySQL – Servidor Flexível usando o Portal do Azure, a CLI do Azure, um modelo ARM/Bicep ou outras ferramentas do Azure. Além de escolher as opções corretas de computação, armazenamento, backup e alta disponibilidade, é importante decidir a opção de rede adequada ao criar o servidor flexível MySQL.
Importante: A menos que o seu cenário envolva apenas pequenos projetos ou demonstrações, é altamente recomendável criar o seu servidor com acesso privado, o que ajudará a proteger o acesso ao seu servidor através da integração VNet.
Prepare seu aplicativo fazendo as seguintes alterações no código do aplicativo:
- Para que o aplicativo use o servidor flexível MySQL, modifique o arquivo de configuração correspondente ou o arquivo de propriedades do aplicativo para adicionar código indicando a URL do servidor host, nome do banco de dados, nome de usuário e senha, que serão lidos nas variáveis de ambiente (conforme definido e transmitido do arquivo de manifesto do Kubernetes).
- Crie um Dockerfile para construir a imagem Docker do aplicativo.
Crie um registro de contêiner do Azure e envie o aplicativo para o registro como uma imagem do Docker.
Crie um cluster do AKS e anexe a conta do registro de contêiner do Azure ao cluster.
Implante o aplicativo no cluster e teste a implantação. Para implementar a aplicação no cluster AKS, primeiro é necessário criar um ficheiro de manifesto Kubernetes que defina um estado desejado para o cluster, como quais as imagens de contêiner a executar.
No arquivo YAML de manifesto do Kubernetes, as principais coisas a serem definidas incluem:
- The container image name: replace it with your own in the format [registryname].azurecr.io/[image-name]:[tag]
- Environment variables for MySQL flexible server host URL, database name, admin username and password.
- A service resource to access the app in the cluster. For example, a service of the type "LoadBalancer" will create an external load balancer providing an externally accessible IP address to the app.
After the YAML file is ready, deploy it with either `kubectl apply` or within the Kubernetes resource view in the Azure portal.
Automatize tarefas de CI/CD de banco de dados com Azure DevOps, GitHub e Azure Service Operator
A implantação manual de aplicativos pode ser ineficiente e propensa a erros, exigindo testes e ajustes frequentes. Para agilizar esse processo, a automação por meio de Integração Contínua (CI) e Entrega/Implantação Contínua (CD) é altamente recomendada. O CI/CD permite que as equipes de desenvolvimento liberem regularmente e de forma confiável atualizações e recursos menores, reduzindo significativamente o risco e o esforço envolvidos em comparação com atualizações maiores e menos frequentes.
Para automatizar a implantação de aplicativos e do Banco de Dados do Azure para MySQL – Servidor Flexível, considere usar as ferramentas de CI/CD a seguir.
Azure Pipelines
O Azure Pipelines, parte do Azure DevOps, fornece recursos robustos de CI/CD, facilitando implantações automatizadas de código para vários alvos, incluindo serviços Azure PaaS, VMs e registros de contêineres. Essa plataforma também oferece suporte a implantações em diferentes ambientes, como outras plataformas em nuvem ou sistemas locais.
Especificamente para implantações de banco de dados, você pode usar o Azure Pipelines para automatizar atualizações no Banco de Dados do Azure para MySQL – Servidor Flexível, incorporando tarefas no pipeline que executam comandos da CLI do Azure. Essas tarefas podem aplicar atualizações diretamente de arquivos SQL ou executar scripts SQL embutidos, garantindo que os esquemas e dados do banco de dados estejam atualizados após cada construção bem-sucedida.
GitHub Actions
GitHub Actions permitem a automação de fluxos de trabalho em resposta a eventos de repositório, como push, pull requests ou criação de problemas. Essa integração permite um pipeline de CI/CD contínuo dentro do ecossistema GitHub, lidando com tudo, desde fluxos de trabalho de construção e teste para novas solicitações pull até fluxos de trabalho de implantação na criação da versão.
Para bancos de dados, você pode configurar GitHub Actions para se conectar diretamente ao Banco de Dados do Azure para MySQL – Servidor Flexível para implantar ou atualizar bancos de dados sempre que as alterações forem mescladas ou enviadas por push. Isso garante a sincronização contínua entre atualizações de aplicativos e alterações no esquema do banco de dados.
Operador de Serviço do Azure
O Operador de Serviços do Azure integra o gerenciamento de recursos do Azure no ambiente Kubernetes, permitindo gerenciar recursos do Azure, como o Banco de Dados do Azure para MySQL – Servidor Flexível, diretamente por meio de ferramentas do Kubernetes. Esse operador permite incorporar atualizações de infraestrutura nos fluxos de trabalho de implantação do Kubernetes, permitindo uma abordagem unificada para gerenciar aplicativos e seus serviços dependentes do Azure.
Outras ferramentas
Além dessas ferramentas específicas, você pode usar outras tecnologias para aprimorar os fluxos de trabalho de CI/CD:
- Slots de implantação de Serviço de Aplicativo: Útil para preparar novos lançamentos antes de serem lançados, permitindo validações finais e troca a quente para produção com tempo de inatividade mínimo.
- Centro de implantação de Serviço de Aplicativo: Simplifica as configurações de CI/CD com os Serviços de Aplicativos Azure, integrando-se ao controle do código-fonte e aos serviços de build.
- Jenkins: Um servidor de automação de código aberto que oferece suporte à construção, implantação e automação de qualquer projeto, o Jenkins pode ser particularmente eficaz em ambientes complexos que exigem scripts personalizados e ampla integração.
Ao aproveitar essas ferramentas, você pode garantir que seu aplicativo e a infraestrutura de banco de dados subjacente estejam sempre alinhados com as alterações mais recentes no código, minimizando o tempo de inatividade e acelerando a entrega de novos recursos e correções.
Adicionar inteligência por meio da integração com a Pesquisa de IA do Azure e o OpenAI do Azure
A maneira mais simples de aprimorar a inteligência dos aplicativos MySQL é incluir as funcionalidades avançadas de pesquisa semântica e IA generativa criando uma solução com a arquitetura RAG (geração aumentada de recuperação) usando os serviços da Pesquisa de IA do Azure e do OpenAI do Azure. A RAG é uma arquitetura que aprimora o reconhecimento de linguagem natural e os recursos de geração de LLMs, como o ChatGPT, adicionando um sistema de recuperação de informações, como a Pesquisa de IA do Azure, que trabalha com os seus dados armazenados em fontes de dados como o Banco de Dados do Azure para MySQL.
Confira um exemplo de um padrão RAG para uma solução de IA do MySQL:
- A Pesquisa de IA do Azure extrai o conteúdo de uma fonte de dados de back-end, como o Banco de Dados do Azure para MySQL, usando um indexador que é executado periodicamente.
- Os dados são vetorizados por uma chamada interna e enviados ao modelo de inserção de texto do OpenAI do Azure.
- Em seguida, a Pesquisa de IA do Azure mantém esses dados vetoriais em um índice de busca em vetores.
- Quando um usuário usa um aplicativo de chat do cliente, a consulta é enviada a um serviço de conclusão de chat do OpenAI do Azure.
- Agora, a Pesquisa de IA do Azure é usada como uma fonte de dados para encontrar a resposta mais relevante usando a busca de vetores ou a pesquisa híbrida (vetor + pesquisa semântica).
- O serviço de conclusão de chat do OpenAI do Azure usa esses resultados da pesquisa para gerar uma resposta personalizada à consulta do usuário.
Se você estiver executando aplicativos, como CMS (sistemas de gerenciamento de conteúdo), aplicativos de comércio eletrônico ou sites de jogos, com dados hospedados no Banco de Dados do Azure para MySQL, será possível aprimorar a experiência dos usuários criando aplicativos de chat e de pesquisa com IA generativa usando os LLMs disponíveis no OpenAI do Azure e o armazenamento e a indexação de vetores fornecidos pela Pesquisa de IA do Azure.