Implantar seu aplicativo e integrar com outros serviços do Azure
Agora que você sabe sobre as diferentes opções de hospedagem de aplicativos no Azure, deseja explorar como implantar o Banco de Dados do Azure para MySQL - aplicativos de Servidor Flexível nesses serviços. Nesta unidade, você explora dois dos serviços mais usados, o Serviço de Aplicativo do Azure e o AKS, analisa as opções para automatizar tarefas de CI/CD usando o Azure DevOps e o GitHub e aprende como infundir Inteligência Artificial nesses aplicativos integrando-se ao Azure AI Search e ao Azure OpenAI.
Serviço de Aplicativo do Azure + Banco de Dados do Azure para MySQL - Servidor Flexível
Para implantar seu aplicativo no Serviço de Aplicativo do Azure e integrar ao Banco de Dados do Azure para MySQL - Servidor Flexível, considere as seguintes opções:
- Use o Aplicativo Web + Banco de Dados do Azure Marketplace para criar um Aplicativo Web e um servidor flexível MySQL isolado em uma 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 Banco de Dados do Azure para o servidor flexível MySQL e um aplicativo do Serviço de Aplicativo individualmente e, em seguida, no aplicativo do Serviço de Aplicativo, em Definições do Aplicativo em Definições de Configuração, adicione as informações de conexão do servidor flexível do MySQL.
Depois de configurar seu aplicativo do Serviço de Aplicativo e o servidor flexível do MySQL, você pode implantar o código do aplicativo no Azure usando vários métodos de implantação suportados pelo Serviço de Aplicativo do Azure. Esses métodos incluem a implantação a partir de um pacote ZIP, repositórios Git Locais, Registro de Contêiner do Azure, Ações do GitHub ou Pipelines do Azure, com cada opção oferecendo flexibilidade com base em seus fluxos de trabalho operacionais e de desenvolvimento.
Na próxima unidade, você cria um aplicativo PHP de exemplo e implanta-o no Serviço de Aplicativo do Azure, passando por cada etapa envolvida no processo de implantação, e usa os poderosos recursos de plataforma do Azure para otimizar o desempenho e a escalabilidade do seu aplicativo.
Azure Kubernetes Service (AKS) + MySQL - Servidor Flexível
Integração do AKS com o Banco de Dados do Azure para MySQL - O Servidor Flexível cria uma plataforma poderosa para implantar aplicativos em contêineres, que pode simplificar o gerenciamento de banco de dados e melhorar a escalabilidade e a resiliência do aplicativo. Para implantar e gerenciar efetivamente seus aplicativos no AKS com um servidor MySQL flexível de back-end, considere as seguintes informações.
O diagrama a seguir ilustra três maneiras comuns de integrar o MySQL com seu aplicativo AKS:
- Use o Banco de Dados do Azure para MySQL - Servidor Flexível, que reduz a sobrecarga operacional de gerenciar o servidor MySQL, aumentando assim a produtividade do desenvolvedor.
- Use o MySQL na VM do Azure, 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 do aplicativo e a continuidade dos negócios.
Para implantar um aplicativo no AKS que se integra ao Banco de Dados do Azure para MySQL - Servidor Flexível, use o seguinte processo de cinco etapas:
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 certas 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 seu cenário envolva apenas pequenos projetos ou demonstrações, é altamente recomendável criar seu servidor com acesso privado, o que ajuda a proteger o acesso ao seu servidor por meio 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, o nome do banco de dados, o nome de usuário e a senha, que serão lidos das variáveis de ambiente (conforme definido e transmitido do arquivo de manifesto do Kubernetes).
- Crie um Dockerfile para criar a imagem do 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 AKS e anexe a conta de registro de contêiner do Azure ao cluster.
Implante o aplicativo no cluster e teste a implantação. Para implantar o aplicativo no cluster AKS, primeiro você precisa criar um arquivo de manifesto do Kubernetes que defina um estado desejado para o cluster, como quais imagens de contêiner 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 o Azure DevOps, o GitHub e o Operador de Serviço do Azure
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 lancem atualizações e recursos menores de forma regular e confiável, 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 seguintes ferramentas de CI/CD.
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 destinos, incluindo serviços de PaaS, VMs e registros de contêiner do Azure. Essa plataforma também suporta implantações em diferentes ambientes, como outras plataformas de nuvem ou sistemas locais.
Especificamente para implantações de banco de dados, você pode usar o Azure Pipelines para automatizar atualizações do 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 compilação bem-sucedida.
GitHub Actions
As ações do GitHub permitem a automação de fluxos de trabalho em resposta a eventos do repositório, como solicitações push, pull ou criação de problemas. Essa integração permite um pipeline de CI/CD perfeito dentro do ecossistema GitHub, lidando com tudo, desde fluxos de trabalho de compilação e teste para novas solicitações pull até fluxos de trabalho de implantação após a criação da versão.
Para bancos de dados, você pode configurar as Ações do GitHub 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 de esquema de banco de dados.
Operador de Serviço do Azure
O Operador de Serviço do Azure integra o gerenciamento de recursos do Azure no ambiente do Kubernetes, permitindo que você gerencie recursos do Azure como o Banco de Dados do Azure para MySQL - Servidor Flexível diretamente por meio das ferramentas do Kubernetes. Esse operador torna possível 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 do Serviço de Aplicativo: Úteis para preparar novas versões antes que elas entrem em operação, permitindo validações finais e troca a quente para produção com o mínimo de tempo de inatividade.
- Centro de Implantação do Serviço de Aplicativo: simplifica as configurações de CI/CD com os Serviços de Aplicativo do Azure, integrando-se ao controle do código-fonte e aos serviços de compilação.
- Jenkins: Um servidor de automação de código aberto que suporta a criação, implantação e automação de qualquer projeto, o Jenkins pode ser particularmente eficaz em ambientes complexos que exigem scripts personalizados e integração extensiva.
Ao aproveitar essas ferramentas, você pode garantir que seu aplicativo e sua 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.
Adicione inteligência integrando-se com o Azure AI Search e o Azure OpenAI
A maneira mais simples de aprimorar a inteligência dos aplicativos MySQL é incluir os recursos avançados de pesquisa semântica e IA generativa criando uma solução usando a arquitetura de Geração Aumentada de Recuperação (RAG) com o Azure AI Search e os serviços Azure OpenAI. O RAG é uma arquitetura que aumenta a compreensão de linguagem natural e os recursos de geração de LLMs como o ChatGPT, adicionando um sistema de recuperação de informações como o Azure AI Search, que funciona com seus dados armazenados em fontes de dados como o Banco de Dados do Azure para MySQL.
Um padrão RAG de exemplo para uma solução de IA MySQL tem esta aparência:
- A pesquisa de IA do Azure extrai conteúdo de uma fonte de dados de back-end, como o Banco de Dados do Azure para banco de dados MySQL, usando um indexador que é executado periodicamente.
- Os dados são vetorizados por uma chamada interna para o modelo de incorporação de texto do Azure OpenAI.
- Em seguida, o Azure AI Search persiste esses dados vetorizados em um índice de pesquisa vetorial.
- Quando um usuário usa um aplicativo de chat cliente, a consulta é enviada para um Serviço de Conclusão de Chat do Azure OpenAI.
- O Azure AI Search agora é usado como uma fonte de dados para encontrar a resposta mais relevante usando a pesquisa vetorial ou a pesquisa híbrida (pesquisa vetorial + semântica).
- Em seguida, o serviço Conclusão do Chat OpenAI do Azure usa esses resultados de pesquisa para gerar uma resposta personalizada de volta à consulta do usuário.
Se você estiver executando aplicativos, como sistemas de gerenciamento de conteúdo (CMS), aplicativos de comércio eletrônico ou sites de jogos, com dados hospedados no Banco de Dados do Azure para MySQL, poderá aprimorar sua experiência de usuário criando aplicativos de bate-papo e pesquisa de IA generativa usando LLMs disponíveis no Azure OpenAI e armazenamento vetorial e indexação fornecidos pelo Azure AI Search.