Curso
A implementação eficiente de aplicativos tornou-se tão importante quanto desenvolvê-los. Como profissional de dados, muitas vezes descobri que, embora passemos muito tempo aperfeiçoando nossos modelos e aplicativos, o processo de implementação pode parecer uma reflexão tardia. É aí que entra o Azure App Service, uma plataforma que simplifica o processo de implantação e, ao mesmo tempo, oferece recursos robustos de escalabilidade, segurança e monitoramento.
Neste tutorial abrangente, orientarei você na configuração, implantação e dimensionamento de aplicativos no Serviço de Aplicativo do Azure.
Não importa se você é um profissional de dados júnior que deseja implantar seu primeiro aplicativo ou um profissional experiente que busca otimizar sua infraestrutura de nuvem, este guia fornecerá etapas práticas e práticas recomendadas.
O que é o Serviço de Aplicativo do Azure?
O Azure App Service é a oferta de PaaS (Platform as a Service) da Microsoft que permite que você crie e hospede aplicativos Web sem gerenciar a infraestrutura subjacente. Ele foi projetado para oferecer suporte a várias linguagens e estruturas de programação, incluindo Python, Java, Node.js, .NET e muito mais.
Antes de mergulhar no processo de configuração, vamos entender o que torna o Serviço de Aplicativo do Azure particularmente valioso para os profissionais de dados:
- Implementação simplificada: Concentre-se no seu código em vez de no gerenciamento da infraestrutura.
- Suporte a vários idiomas: Implemente aplicativos escritos em Python, R (por meio de contêineres) ou qualquer outra linguagem compatível.
- Integração com serviços de dados: Conecte-se facilmente ao Azure SQL, ao Cosmos DB ou a outros armazenamentos de dados.
- Escalabilidade: Aumente ou diminua a escala de acordo com a demanda, o que é particularmente útil para o fornecimento de modelos de machine learning.
- Autenticação integrada: Proteja seus aplicativos sem escrever códigos de autenticação extensos.
- Integração CI/CD: Automatize as implementações do GitHub, do Azure DevOps ou de outros repositórios.
Como cientista ou engenheiro de dados, você deve estar se perguntando como o App Service difere de outras ofertas do Azure, como o Azure Functions ou o Azure Kubernetes Service. A principal diferença é queo App Service oferece o meio-termo perfeito - maisflexibilidade do que as opções sem servidor, mas menos complexidade do que as plataformas de orquestração de contêineres.
> Para obter uma visão geral básica do ecossistema e dos serviços do Azure, explore este curso introdutório sobre o Microsoft Azure.
Configuração do serviço de aplicativos do Azure
Agora que você já sabe o que é o Serviço de Aplicativo do Azure, vamos colocar a mão na massa e configurar nosso primeiro Serviço de Aplicativo. O processo envolve duas etapas principais: criar um plano do App Service e, em seguida, criar um aplicativo Web dentro desse plano.
Criando um plano do Serviço de Aplicativo do Azure
Um plano do App Service define os recursos de computação, a região e o nível de preço para seus aplicativos. Pense nele como a fazenda de servidores onde seus aplicativos serão executados. Vários aplicativos podem compartilhar um único plano do App Service, o que o torna econômico para a execução de vários aplicativos menores.
Veja como você pode criar um plano do App Service:
- Faça login no Portal do Azure
- Clique em "Create a resource" (Criar um recurso) na navegação à esquerda
- Procure por "App Service Plan" e selecione-o
- Clique em "Criar"
- Preencha os seguintes detalhes:
- Assinatura: Selecione sua assinatura do Azure
- Grupo de recursos: Crie um novo grupo ou selecione um grupo existente
- Nome: Dê ao seu plano um nome descritivo (por exemplo, "data-apps-plan")
- Sistema operacional: Escolha entre Windows ou Linux (recomendo o Linux para a maioria das cargas de trabalho de ciência de dados)
- Região: Selecione uma região próxima aos seus usuários ou fontes de dados
- Nível de preços: Selecione o nível apropriado de acordo com suas necessidades
Por falar em níveis de preços, o Serviço de Aplicativo do Azure oferece várias opções:
Nível |
Recursos |
Melhor para |
Grátis |
Armazenamento de 1 GB, infraestrutura compartilhada, computação de 60 minutos/dia |
Desenvolvimento e testes |
Compartilhado |
1 GB de armazenamento, 240 minutos/dia de computação |
Aplicativos de baixo tráfego, desenvolvimento |
Básico |
Armazenamento de 10 GB, VMs dedicadas, domínios personalizados |
Cargas de trabalho de produção com tráfego moderado |
Standard |
Armazenamento de 50 GB, dimensionamento automático, slots de preparação |
Aplicativos de produção com maior tráfego |
Premium |
Armazenamento de 250 GB, desempenho aprimorado, mais opções de dimensionamento |
Aplicativos empresariais, necessidades de alto desempenho |
Para aplicativos de dados, geralmente recomendo que você comece com pelo menos uma camada básica na produção, pois o processamento de dados geralmente requer mais recursos do que a simples veiculação na Web. Se você estiver servindo modelos de machine learning que precisam de computação significativa, considere a camada Standard por seus recursos de dimensionamento automático.
Você também pode criar um plano do Serviço de Aplicativo usando a CLI do Azure:
# Create a resource group first if needed
az group create --name MyResourceGroup --location "East US"
# Create an App Service plan
az appservice plan create --name MyAppServicePlan --resource-group MyResourceGroup --sku B1 --is-linux
Criando um aplicativo da Web do Serviço de Aplicativo
Depois de ter um plano do App Service, você pode criar um aplicativo Web dentro dele. O aplicativo Web é a instância real do aplicativo que executará seu código.
Siga estas etapas para criar um aplicativo Web:
- No Portal do Azure, clique em "Criar um recurso"
- Procure por "Web App" e selecione-o
- Clique em "Criar"
- Preencha os seguintes detalhes:
- Assinatura: Selecione sua assinatura do Azure
- Grupo de recursos: Use o mesmo grupo do seu plano do App Service
- Nome: Isso fará parte do URL do seu aplicativo (por exemplo,
myapp.azurewebsites.net
). - Publicar: Escolha Code ou Docker Container (para este tutorial, selecionaremos Code)
- Pilha de tempo de execução: Selecione a linguagem/estrutura do seu aplicativo (por exemplo, Python 3.9)
- Sistema operacional: Corresponder ao sistema operacional do seu plano do App Service
- Região: Isso deve corresponder à região do seu plano do App Service
- Plano de serviço do aplicativo: Selecione o plano que você criou anteriormente
- Clique em "Review + create" (Revisar + criar) e depois em "Create" (Criar) quando a validação for aprovada
Se você estiver usando a CLI do Azure, poderá criar um aplicativo Web com um único comando:
# Create a Python web app
az webapp create --resource-group MyResourceGroup --plan MyAppServicePlan --name MyWebApp --runtime "PYTHON:3.9"
Depois de criar seu aplicativo Web, o Azure fornecerá os recursos necessários. Depois de concluído, você pode navegar até o novo aplicativo Web clicando em "Go to resource" (Ir para o recurso) ou encontrando-o no grupo de recursos.
Neste ponto, você deverá ver uma página padrão quando visitar o URL do seu aplicativo (https://your-app-name.azurewebsites.net
). Isso confirma que seu aplicativo está em execução, embora ainda não tenha o seu código - abordaremos a implantação na próxima seção.
Definição das configurações básicas do aplicativo
Antes de passarmos para a implementação, vamos definir algumas configurações básicas para o nosso aplicativo. Para aplicativos de dados, você pode precisar de variáveis de ambiente específicas para conexões de banco de dados ou chaves de API.
Para definir as configurações do aplicativo:
- Navegue até seu aplicativo Web no Portal do Azure
- Na barra lateral esquerda, em "Settings" (Configurações), selecione "Environment variables" (Variáveis de ambiente)
- Na guia "Application settings" (Configurações do aplicativo), clique em "Add" (Adicionar)
- Adicione pares de valores-chave para suas variáveis de ambiente
- Clique em "Save" (Salvar) quando terminar
Você também pode defini-las usando a CLI do Azure:
# Set an environment variable
az webapp config appsettings set --resource-group MyResourceGroup --name MyWebApp --settings DB_CONNECTION_STRING="your-connection-string"
Essas configurações estarão disponíveis como variáveis de ambiente para o seu aplicativo, o que é uma maneira segura de armazenar a configuração sem codificá-la no código-fonte.
Implementação do seu primeiro aplicativo
Agora que você já configurou a infraestrutura do Serviço de Aplicativo do Azure, é hora de implantar o aplicativo. O Serviço de Aplicativo do Azure oferece vários métodos de implantação, dando a você flexibilidade com base em seu fluxo de trabalho e preferências. Nesta seção, exploraremos como implantar aplicativos usando o controle de origem (GitHub ou Azure Repos), FTP e repositórios locais do Git.
Como profissional de dados, essa etapa é crucial porque preenche a lacuna entre o ambiente de desenvolvimento local e um aplicativo pronto para produção que pode servir aos seus modelos ou pipelines de processamento de dados.
> Para os iniciantes nos princípios de implementação, este curso de DevOps oferece uma introdução clara aos principais conceitos e ferramentas.
Implementando a partir do GitHub ou dos Repositórios do Azure
Um dos recursos mais avançados do Serviço de Aplicativo do Azure são as capacidades de implantação contínua (CD) incorporadas. Ao conectar seu Serviço de Aplicativo a um repositório do GitHub ou do Azure DevOps, você pode implantar automaticamente as alterações sempre que o código for enviado para uma ramificação específica.
Essa abordagem é particularmente valiosa para as equipes de dados que trabalham em projetos colaborativos, pois:
- Garante que todos os membros da equipe estejam implementando no mesmo ambiente
- Cria uma trilha de auditoria das implementações
- Reduz os erros de implementação manual
- Oferece suporte a testes automatizados como parte do pipeline de implementação
> Se você é novo no controle de versão, o programa GitHub Foundations pode ajudá-lo a se familiarizar com os conceitos básicos. Você também pode explorar o Azure DevOps como uma alternativa robusta para gerenciar seus pipelines de implantação e controle de versão.
Veja como você pode configurar a implantação contínua a partir do GitHub:
- Navegue até seu Serviço de Aplicativo no Portal do Azure
- Na barra lateral esquerda, selecione "Deployment Center"
- Selecione "GitHub" como sua fonte
- Faça a autenticação com sua conta do GitHub, se solicitado
- Escolha sua organização, repositório e filial
- Clique em "Salvar"
O Azure criará um arquivo de fluxo de trabalho do GitHub em seu repositório que cria e implanta automaticamente seu aplicativo sempre que as alterações forem enviadas para o branch selecionado. Esse fluxo de trabalho usa o GitHub Actions para lidar com o processo de CI/CD.
> Para automatizar ainda mais as implantações, considere a possibilidade de combinar Makefiles com GitHub Actions para simplificar os fluxos de trabalho de CI/CD.
Para aplicativos Python, o fluxo de trabalho normalmente inclui etapas para:
- Configure o Python
- Instale as dependências de
requirements.txt
- Executar qualquer teste
- Implantar no serviço de aplicativos do Azure
Você também pode configurar a implantação contínua usando a CLI do Azure:
# Set up GitHub continuous deployment
az webapp deployment source config --name MyWebApp --resource-group MyResourceGroup --repo-url https://github.com/username/repo --branch main --git-token <your-github-token>
Configuração das definições de implantação
Para ajustar sua implantação, você pode definir configurações adicionais no arquivo de fluxo de trabalho do GitHub ou no Portal do Azure:
- Navegue até seu serviço de aplicativo
- Selecione "Deployment Center" (Centro de implantação)
- Clique em "Settings" (Configurações)
- Aqui você pode configurar:
- O provedor de compilação (Kudu ou GitHub Actions)
- Fluxos de trabalho de criação e implementação
- Configurações de acesso ao repositório
Para aplicativos de ciência de dados, talvez você precise adicionar etapas de compilação personalizadas que instalem pacotes científicos ou executem scripts de treinamento de modelos. Eles podem ser adicionados diretamente ao arquivo de fluxo de trabalho em seu repositório.
Implementação usando FTP ou Git local
Embora a implantação contínua do GitHub ou do Azure Repos seja recomendada para ambientes de equipe, às vezes você pode precisar de métodos de implantação mais diretos. O Serviço de Aplicativo do Azure oferece suporte a FTP e Git local para esses cenários.
Implementação de FTP
A implantação de FTP é uma maneira direta de carregar os arquivos do seu aplicativo diretamente no Serviço de Aplicativo do Azure. Esse método é útil para atualizações rápidas ou quando você está lidando com aplicativos que não exigem processos de compilação complexos.
Para implementar via FTP:
- Em seu serviço de aplicativos, vá para "Deployment Center"
- Selecione "FTP" e anote o ponto de extremidade, o nome de usuário e a senha do FTP
- Use qualquer cliente FTP (como o FileZilla) para se conectar ao seu serviço de aplicativo
- Faça upload dos arquivos do aplicativo para o diretório
/site/wwwroot/
Para aplicativos Python, verifique se o arquivo requirements.txt
está incluído no upload. O Serviço de Aplicativo do Azure instalará automaticamente os pacotes necessários.
Implementação local do Git
A implantação local do Git permite que você envie o código do seu repositório local do Git diretamente para o Azure. Esse método oferece a você mais controle sobre o processo de implementação e, ao mesmo tempo, aproveita os recursos de controle de versão do Git.
Para configurar a implementação local do Git:
- Em seu serviço de aplicativos, vá para "Deployment Center"
- Selecione "Git local"
- Clique em "Salvar"
- Vá para "Deployment Credentials" (Credenciais de implantação) para configurar ou visualizar suas credenciais
- Adicione o Azure Git remote ao seu repositório local:
# Add the Azure remote
git remote add azure https://username@your-app-name.scm.azurewebsites.net/your-app-name.git
# Push your code to Azure
git push azure main
Quando você enviar o código para o Azure remoto, a plataforma criará e implantará automaticamente o seu aplicativo.
Monitoramento do status da implantação
Independentemente do método de implementação que você escolher, é importante monitorar o processo de implementação para detectar quaisquer problemas antecipadamente. O Azure oferece várias maneiras de você rastrear o status da implantação:
- No Portal do Azure, acesse seu Serviço de Aplicativo
- Selecione "Deployment Center" (Centro de implantação)
- Visualize a guia "Logs" para ver os registros detalhados da implantação
- Para implantações do GitHub, você também pode verificar a guia Ações no seu repositório do GitHub
Se uma implementação falhar, os registros fornecerão informações sobre o que deu errado. Os problemas comuns incluem:
- Dependências ausentes em
requirements.txt
- Erros de sintaxe em seu código
- Problemas de configuração em seu aplicativo
- Limitações de memória durante a construção
Para solucionar problemas de implementação:
- Analise minuciosamente os registros de implantação
- Verifique se seu aplicativo é executado localmente
- Certifique-se de que todas as dependências estejam listadas em seu arquivo
requirements.txt
- Verifique se o ponto de entrada do seu aplicativo corresponde ao que é esperado pelo Azure
Para aplicativos de ciência de dados, as falhas de implementação geralmente ocorrem devido a grandes instalações de pacotes ou operações com uso intenso de memória durante a inicialização. Se você encontrar esses problemas, considere:
- Dividir grandes dependências em componentes menores
- Usando alternativas leves para implementações de produção
- Pré-treinar modelos e armazená-los como artefatos em vez de treinar durante a implantação
Obter a certificação Azure AZ-900
Configurando o Serviço de Aplicativo do Azure
Depois que o aplicativo for implantado, a próxima etapa é configurar vários aspectos do Serviço de Aplicativo do Azure para garantir que ele seja executado de forma otimizada e segura. Nesta seção, abordaremos domínios personalizados, autenticação e configurações de aplicativos.
Configuração de domínios personalizados
Por padrão, você pode acessar o App Service por meio de um URL como your-app-name.azurewebsites.net
. Para aplicativos de produção, você provavelmente desejará usar seu próprio nome de domínio. Veja como você pode configurar um domínio personalizado:
- Compre um domínio de um registrador de domínios, se você ainda não tiver um
- No Serviço de Aplicativo, vá para "Domínios personalizados" na barra lateral esquerda
- Clique em "Add custom domain" (Adicionar domínio personalizado)
- Digite seu nome de domínio (por exemplo,
myapp.example.com
) - Siga as instruções para verificar a propriedade do domínio
- Você precisará adicionar um registro
TXT
ouCNAME
às suas configurações de DNS
Para domínios apex (como example.com
sem o www), você precisará criar um registro A
apontando para o endereço IP do seu Serviço de Aplicativo. Você pode encontrar esse endereço IP na página de configuração do domínio personalizado.
Você também pode gerenciar domínios personalizados usando a CLI do Azure:
# Add a custom domain
az webapp config hostname add --webapp-name MyWebApp --resource-group MyResourceGroup --hostname www.example.com
Vinculação de certificados SSL
Para aplicativos seguros, especialmente aqueles que lidam com dados confidenciais, é essencial ativar o HTTPS. O Serviço de Aplicativo do Azure torna isso simples, fornecendo certificados gerenciados gratuitos ou permitindo que você carregue os seus próprios certificados.
Para adicionar um certificado SSL:
- Em seu serviço de aplicativos, acesse "Configurações de TLS/SSL"
- Selecione "Private Key Certificates" (Certificados de chave privada)
- Escolha uma das seguintes opções:
- Criar um certificado gerenciado do App Service gratuito
- Importar um certificado de serviço de aplicativo
- Carregar um certificado PFX
- Depois que o certificado for adicionado, vá para "Bindings"
- Adicione uma ligação SSL para seu domínio personalizado
Para aplicativos de dados que lidam com informações confidenciais, recomendo que você ative o modo somente HTTPS para garantir que todo o tráfego seja criptografado:
- Em "TLS/SSL settings" (Configurações de TLS/SSL), vá para a seção "HTTPS Only" (Somente HTTPS)
- Coloque o interruptor na posição "On"
- Clique em "Salvar"
Configuração de autenticação e autorização
Muitos aplicativos de dados exigem autenticação do usuário para controlar o acesso a dados ou funcionalidades confidenciais. O Serviço de Aplicativo do Azure fornece opções de autenticação incorporadas que podem evitar que você implemente a lógica de autenticação em seu código.
Para configurar a autenticação:
- Em seu Serviço de Aplicativo, acesse "Authentication" (Autenticação) na barra lateral esquerda
- Clique em "Add identity provider" (Adicionar provedor de identidade)
- Escolha seu provedor de identidade:
- Microsoft (Azure AD)
- GitHub
- Conexão OpenID
- Configurar as definições do provedor
- Defina URLs de redirecionamento e configurações de armazenamento de token
Para aplicativos de dados corporativos, o Azure Active Directory costuma ser a opção preferida, pois se integra às identidades corporativas existentes e oferece suporte a recursos como acesso condicional e autenticação multifator.
Você também pode configurar restrições de autorização para controlar quem pode acessar o aplicativo:
- Nas configurações de autenticação, selecione "Editar" ao lado de seu provedor de identidade
- Em "Restrict access" (Restringir acesso), escolha uma das seguintes opções:
- Permitir solicitações não autenticadas
- Exigir autenticação
- Permitir solicitações anônimas (nenhuma ação)
- Configurar URLs de redirecionamento externo permitidos, se necessário
Configurações do aplicativo e cadeias de conexão
Falamos brevemente sobre as configurações do aplicativo anteriormente, mas vamos nos aprofundar em como você pode usá-las para configurar seu aplicativo de dados de forma eficaz.
As configurações do aplicativo no Serviço de Aplicativo do Azure funcionam como variáveis de ambiente para o seu aplicativo. Eles são particularmente úteis para você:
- Cadeias de conexão do banco de dados
- Chaves de API
- Bandeiras de recursos
- Configurações específicas do ambiente
Para adicionar ou modificar as configurações do aplicativo:
- Em seu Serviço de Aplicativo, acesse "Configuration" (Configuração) na barra lateral esquerda
- Selecione a guia "Application settings" (Configurações do aplicativo)
- Clique em "New application setting" (Nova configuração de aplicativo) para adicionar um par de valores-chave
- Para valores sensíveis, você pode alternar a opção "deployment slot setting" para evitar que eles sejam trocados durante a troca de slots
Para aplicativos de dados, as configurações comuns incluem:
- Cadeias de conexão do banco de dados
- Chaves de acesso à conta de armazenamento
- Pontos de extremidade do modelo de machine learning
- Sinalizadores de recursos para testes A/B
Você também pode configurar as cadeias de conexão separadamente, o que é útil para conexões de banco de dados:
- Na página Configuration (Configuração), selecione a guia "Connection strings" (Cadeias de conexão)
- Clique em "New connection string" (Nova cadeia de conexão)
- Forneça um nome, valor e tipo (SQL Server, MySQL, PostgreSQL, etc.)
As cadeias de conexão também estão disponíveis para o seu aplicativo como variáveis de ambiente, mas com uma convenção de nomenclatura diferente, dependendo do idioma/estrutura.
Para recuperar as configurações em seu aplicativo Python:
import os
# Retrieve an application setting
api_key = os.environ.get('API_KEY')
# Retrieve a connection string (Python)
connection_string = os.environ.get('SQLCONNSTR_MyDatabase')
Usando referências do Key Vault
Para informações altamente confidenciais, como credenciais de banco de dados ou chaves de API, o Azure Key Vault oferece uma camada adicional de segurança. Você pode fazer referência aos segredos do Key Vault diretamente nas configurações do aplicativo:
- Crie um Azure Key Vault e adicione seus segredos
- Certifique-se de que seu serviço de aplicativo tenha uma identidade gerenciada
- Conceder à identidade acesso ao Key Vault
- Nas configurações do aplicativo, faça referência ao segredo usando o formato: @Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)
Essa abordagem separa as informações confidenciais da configuração do aplicativo e fornece gerenciamento centralizado de segredos.
Dimensionamento e gerenciamento do Serviço de Aplicativo do Azure
Agora que seu aplicativo está implantado e configurado, vamos nos concentrar em garantir que ele tenha um bom desempenho, permaneça confiável e se adapte às cargas de trabalho em constante mudança.
Dimensionar e gerenciar adequadamente o Serviço de Aplicativo do Azure é particularmente importante para aplicativos de dados, que geralmente têm necessidades variáveis de recursos e podem processar informações confidenciais.
Dimensionamento de planos do App Service
Uma das principais vantagens das plataformas de nuvem, como o Azure, é a capacidade de aumentar ou diminuir os recursos de acordo com a demanda. Para aplicativos de dados, isso é especialmente valioso porque as cargas de trabalho costumam variar significativamente, desde períodos de processamento intenso de dados até períodos mais calmos com tráfego mínimo.
O Serviço de Aplicativo do Azure oferece dois métodos principais de dimensionamento:
Escala vertical (escala para cima/para baixo)
O dimensionamento vertical envolve a alteração do tamanho do plano do Serviço de Aplicativo para fornecer mais ou menos CPU, memória e espaço em disco. Isso é útil quando o desempenho do seu aplicativo é limitado pelos recursos de uma única instância.
Para dimensionar verticalmente:
- Em seu plano do App Service, selecione "Scale up (App Service plan)" na barra lateral esquerda
- Escolha um nível de preço ou tamanho de instância diferente com base em suas necessidades
- Clique em "Aplicar"
Para aplicativos de dados, considere o dimensionamento vertical quando:
- Seu aplicativo está sofrendo pressão de memória devido a grandes operações de processamento de dados
- Você está atingindo os limites da CPU durante a inferência do modelo
- Você precisa de armazenamento adicional para cache de dados ou arquivos temporários
Escala horizontal (Escala para fora/para dentro)
O dimensionamento horizontal altera o número de instâncias de máquinas virtuais que executam seu aplicativo. Essa abordagem é ideal para distribuir a carga e melhorar a disponibilidade.
Para dimensionar horizontalmente:
- Em seu plano do App Service, selecione "Scale out (App Service plan)" na barra lateral esquerda
- Defina a contagem de instâncias manualmente ou configure regras de dimensionamento automático
- Clique em "Salvar"
Para o dimensionamento manual, basta ajustar a contagem de instâncias para o número desejado. No entanto, o dimensionamento automático oferece mais flexibilidade, ajustando automaticamente os recursos com base nas métricas.
Configuração de regras de dimensionamento automático
O dimensionamento automático é particularmente valioso para aplicativos de dados com cargas de trabalho variáveis. Por exemplo, um modelo de machine learning que atende à API pode ter um tráfego maior durante o horário comercial e um tráfego menor durante a noite.
Para configurar o dimensionamento automático:
- Na seção "Scale out" (Reduzir escala), selecione "Enable autoscale" (Ativar escala automática)
- Defina uma condição de escala com os seguintes componentes:
- Uma contagem de instâncias padrão
- Regras de expansão (quando adicionar instâncias)
- Regras de aumento de escala (quando remover instâncias)
- Regras opcionais baseadas em programação
Aqui está um exemplo de uma regra comum de dimensionamento automático:
- Dimensione: Adicionar uma instância quando a porcentagem de CPU for > 70% por 10 minutos
- Escala em: Remover uma instância quando a porcentagem da CPU for inferior a 30% por 10 minutos
Você também pode criar regras mais sofisticadas com base em:
- Uso da memória
- Comprimento da fila de dados
- Métricas personalizadas do Application Insights
Para cargas de trabalho de ciência de dados, considere estas estratégias de dimensionamento automático:
- Se o seu aplicativo serve modelos de machine learning, dimensione com base no comprimento da fila de solicitações para garantir que a latência da previsão permaneça baixa.
- Para processos de ETL, programe capacidade adicional durante janelas de processamento conhecidas
- Para aplicativos com usuários globais, use o escalonamento baseado em programação para garantir a capacidade adequada em diferentes fusos horários
Você também pode configurar o dimensionamento automático usando a CLI do Azure:
# Create an autoscale setting with a rule to scale out when CPU > 70%
az monitor autoscale create --resource-group MyResourceGroup --resource MyAppServicePlan --resource-type "Microsoft.Web/serverfarms" --name MyAutoScaleConfig --min-count 2 --max-count 5 --count 2
# Add a scale out rule
az monitor autoscale rule create --resource-group MyResourceGroup --autoscale-name MyAutoScaleConfig --scale out 1 --condition "Percentage CPU > 70 avg 10m"
# Add a scale in rule
az monitor autoscale rule create --resource-group MyResourceGroup --autoscale-name MyAutoScaleConfig --scale in 1 --condition "Percentage CPU < 30 avg 10m"
Monitoramento e diagnóstico
O monitoramento eficaz é fundamental para manter aplicativos de dados confiáveis. O Azure fornece ferramentas de monitoramento abrangentes que dão a você visibilidade do desempenho do seu aplicativo, dos padrões de uso e dos possíveis problemas.
Azure Monitor e Application Insights
O Azure Monitor é a base para o monitoramento dos serviços do Azure, enquanto o Application Insights fornece insights mais profundos sobre aplicativos específicos.
Para habilitar o Application Insights para o seu serviço de aplicativos, você deve
- No seu Serviço de Aplicativo, selecione "Application Insights" na barra lateral esquerda
- Clique em "Ativar o Application Insights"
- Configurar um recurso do Application Insights novo ou existente
- Clique em "Aplicar"
Uma vez ativado, o Application Insights coleta uma grande quantidade de dados sobre o seu aplicativo, incluindo:
- Taxas de solicitação, tempos de resposta e taxas de falha
- Chamadas de dependência (bancos de dados, APIs externas)
- Desempenho da exibição de página
- Registros de exceção
- Eventos personalizados que você define no código
Para aplicativos Python, você precisará instalar o SDK do Application Insights:
pip install opencensus-ext-azure
E, em seguida, adicione instrumentação ao seu aplicativo:
from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer
# Configure the Azure exporter
azure_exporter = AzureExporter(
connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000'
)
# Create a tracer
tracer = Tracer(exporter=azure_exporter, sampler=ProbabilitySampler(1.0))
# Use the tracer in your application
with tracer.span(name="main_function"):
# Your code here
pass
Visualização de registros e configuração de alertas
O Serviço de Aplicativo do Azure coleta automaticamente logs que podem ajudar você a diagnosticar problemas:
- No Serviço de Aplicativo, selecione "Log stream" para visualizar os registros em tempo real
- Para obter uma análise mais detalhada, vá para "Logs de diagnóstico" e ative o registro de aplicativos
- Configurar o nível de registro (Error, Warning, Information, Verbose)
Para aplicativos de dados, preste atenção especial a:
- Exceções de falta de memória, que são comuns no processamento de grandes conjuntos de dados
- Tempo limite de conexão com fontes de dados
- Gargalos de desempenho durante as operações de transformação de dados
A configuração de alertas garante que você seja notificado sobre os problemas antes que eles afetem os usuários:
- No Azure Monitor, selecione "Alertas"
- Clique em "New alert rule" (Nova regra de alerta)
- Selecione seu serviço de aplicativo como o recurso
- Defina a condição que deve acionar o alerta
- Configure grupos de ação para determinar quem deve ser notificado e como
- Dê um nome ao seu alerta e salve-o
Os alertas comuns para aplicativos de dados incluem:
- Alto uso de memória (>80%)
- Erros do servidor (respostas 5xx)
- Tempos de processamento longos para operações importantes
- Tentativas de conexão de dados com falha
Monitoramento personalizado para aplicativos de dados
Para necessidades de monitoramento específicas de dados, considere a possibilidade de programar essas métricas personalizadas:
- Taxa de processamento de dados (registros processados por minuto)
- Latência de inferência do modelo
- Tempo de cálculo do recurso
- Taxas de acerto/erro do cache
Você pode enviar métricas personalizadas para o Application Insights usando o SDK:
from opencensus.ext.azure import metrics_exporter
from opencensus.stats import aggregation, measure, stats, view
# Create a metrics exporter
exporter = metrics_exporter.new_metrics_exporter(
connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000')
# Create and record custom metrics
prediction_time = measure.MeasureFloat(
"prediction_time", "Time taken for model inference", "ms")
prediction_time_view = view.View(
"prediction_time_view", "Model inference time", [], prediction_time, aggregation.LastValueAggregation())
# Register the view
stats.stats.view_manager.register_view(prediction_time_view)
# Record metrics
mmap = stats.stats.stats_recorder.new_measurement_map()
mmap.measure_float_put(prediction_time, 175.5) # Record 175.5ms inference time
mmap.record()
# Force metrics to be sent immediately
exporter.export_metrics([])
Backup e restauração
Os aplicativos de dados geralmente gerenciam informações valiosas, o que torna os recursos de backup e recuperação essenciais. O Serviço de Aplicativo do Azure fornece uma funcionalidade de backup integrada que pode capturar os arquivos, a configuração e os bancos de dados conectados do seu aplicativo.
Configuração de backups automáticos
Para configurar backups:
- Em seu App Service, selecione "Backups" na barra lateral esquerda
- Clique em "Configurar"
- Definir a programação de backup (diária, semanal ou personalizada)
- Especifique uma conta de armazenamento para os arquivos de backup
- Opcionalmente, você pode incluir bancos de dados no backup
- Clique em "Salvar"
Para aplicativos de dados, considere estas práticas recomendadas de backup:
- Agendar backups durante períodos de baixa atividade
- Certifique-se de que a conta de armazenamento esteja na mesma região que o App Service para que você faça backups mais rápidos
- Para aplicativos com alterações frequentes nos dados, configure backups mais frequentes
- Lembre-se de que bancos de dados grandes podem exceder os limites de tamanho de backup; considere estratégias de backup específicas para esses casos
Restauração a partir de um backup
Se você precisar restaurar o aplicativo:
- Na seção Backups, selecione o ponto de backup do qual você deseja restaurar
- Clique em "Restore" (Restaurar)
- Escolha se você deseja restaurar o conteúdo do aplicativo, a configuração e os bancos de dados conectados
- Especifique o Serviço de Aplicativo de destino (pode ser o mesmo aplicativo ou um aplicativo diferente)
- Clique em "OK" para iniciar o processo de restauração
Para aplicativos de dados críticos, recomendo que você teste o processo de restauração periodicamente para garantir que sua estratégia de recuperação funcione conforme o esperado.
Estratégias de backup específicas do banco de dados
Embora os backups do App Service possam incluir bancos de dados conectados, os aplicativos com uso intenso de dados geralmente se beneficiam das estratégias de backup específicas do banco de dados:
- Para bancos de dados SQL do Azure, configure backups automáticos com restauração point-in-time
- Para o Cosmos DB, use o modo de backup contínuo
- Para grandes conjuntos de dados armazenados no Armazenamento do Azure, considere usar a replicação e o controle de versão da conta de armazenamento
Segurança e conformidade no Serviço de Aplicativo do Azure
A segurança é fundamental para os aplicativos de dados, especialmente aqueles que lidam com informações confidenciais ou regulamentadas. O Serviço de Aplicativo do Azure fornece vários recursos de segurança para ajudar a proteger seus aplicativos.
Controle de acesso baseado em função (RBAC)
O RBAC permite que você controle quem pode gerenciar os recursos do Serviço de Aplicativo:
- No Portal do Azure, navegue até seu Serviço de Aplicativo
- Selecione "Controle de acesso (IAM)" na barra lateral esquerda
- Clique em "Adicionar" e depois em "Adicionar atribuição de função"
- Escolha a função apropriada:
- Colaborador: Você pode gerenciar o App Service, mas não pode conceder acesso a outras pessoas
- Leitor: Você pode visualizar, mas não pode alterar nada
- Colaborador do site: Você pode gerenciar sites, mas não o plano do App Service
- Selecione os usuários, grupos ou diretores de serviço aos quais atribuir a função
- Clique em "Salvar"
Para as equipes de dados, considere criar funções personalizadas que limitem o acesso a operações específicas com base nas responsabilidades do trabalho.
Restrições de IP e rede
As restrições de IP permitem que você controle quais endereços IP podem acessar o Serviço de Aplicativo:
- No Serviço de aplicativos, selecione "Networking" (Rede) na barra lateral esquerda
- Vá para "Restrições de acesso"
- Clique em "Add rule" (Adicionar regra)
- Especifique o intervalo de endereços IP, a ação (Allow/Deny), a prioridade e o nome
- Clique em "Add rule" (Adicionar regra)
Para aplicativos de dados que se conectam a recursos internos, considere:
- Integração com a VNet: Conecte o serviço de aplicativo à sua rede virtual
- Pontos de extremidade de serviço: Conexões seguras com os serviços do Azure, como SQL e armazenamento
- Pontos de extremidade privados: Crie um link privado para o App Service a partir de sua rede virtual
Para configurar a integração VNet:
- Na seção Networking (Rede), selecione "VNet Integration" (Integração VNet)
- Clique em "Add VNet" (Adicionar rede virtual)
- Selecione ou crie uma rede virtual e uma sub-rede
- Clique em "OK"
Essa integração é particularmente útil para que você se conecte com segurança a bancos de dados ou a outras fontes de dados em sua rede.
Solução de problemas comuns do Serviço de Aplicativo do Azure
Mesmo com um planejamento cuidadoso, podem surgir problemas com o seu App Service. Aqui estão alguns problemas comuns e suas soluções, com foco em cenários de aplicativos de dados.
Diagnosticando falhas no aplicativo
Se o seu aplicativo estiver travando ou não estiver respondendo:
- Verifique os registros do serviço de aplicativos:
- Vá para "Log stream" para obter registros em tempo real
- Verifique "Diagnostic logs" (Registros de diagnóstico) para obter dados históricos
- Use o Application Insights para identificar exceções
- Execute as ferramentas de diagnóstico do Kudu:
- Navegue até
https://.scm.azurewebsites.net/DebugConsole
- Use o console para inspecionar arquivos e processos
As causas comuns de falhas em aplicativos de dados incluem:
- Limites de memória: O processamento de grandes conjuntos de dados pode exceder a memória disponível
- Problemas de dependência: Pacotes ausentes ou incompatíveis
- Erros de configuração: Sequências de conexão ou variáveis de ambiente incorretas
Para operações com uso intensivo de memória, considere:
- Aumento de escala para um nível superior com mais memória
- Implementar a fragmentação de dados para processar lotes menores
- Usar algoritmos ou estruturas de dados mais eficientes
Depuração de problemas de desempenho
Se o seu aplicativo estiver sendo executado lentamente:
- Use o monitoramento de desempenho do Application Insights:
- Verifique a lâmina Desempenho para identificar solicitações lentas
- Procure por chamadas de dependência que possam estar causando gargalos
- Analise as métricas do servidor no Azure Monitor:
- Utilização da CPU e da memória
- Comprimento da fila HTTP
- Verifique o desempenho da consulta ao banco de dados para operações com muitos dados
Para melhorar o desempenho:
- Implementar o armazenamento em cache para consultas frequentes
- Otimizar os índices do banco de dados
- Considere aumentar ou diminuir a escala
- Use operações assíncronas para processos de longa duração
Revisão de logs e mensagens de erro
O Serviço de Aplicativo do Azure oferece várias opções de registro:
- Registros de aplicativos: Os próprios registros do seu aplicativo
- Registros do servidor da Web: Registros de erros e solicitações HTTP
- Registros de implantação: Informações sobre seu processo de implantação
- Registro detalhado de erros: Mais informações sobre erros de HTTP
Para configurar um registro mais detalhado:
- No Serviço de Aplicativo, vá para "Logs de diagnóstico"
- Habilite os tipos de registro apropriados
- Defina o nível apropriado (Error, Warning, Information, Verbose)
- Escolha se você deseja armazenar os registros no sistema de arquivos ou no armazenamento de blob
Para aplicativos Python, você pode aprimorar o registro com:
import logging
import sys
# Configure logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=[
logging.StreamHandler(sys.stdout)
]
)
# Use logging in your application
logger = logging.getLogger(__name__)
logger.info("Processing data batch")
logger.error("Failed to connect to database", exc_info=True)
Gerenciamento de custos com o Serviço de Aplicativo do Azure
Os aplicativos de dados muitas vezes podem consumir recursos significativos, o que torna a compreensão e a otimização dos custos especialmente importantes. Nesta seção final, exploraremos os modelos de preços do Serviço de Aplicativo do Azure e as estratégias para gerenciar os custos de forma eficaz.
Noções básicas sobre os preços do Serviço de Aplicativo do Azure
O preço do Serviço de Aplicativo do Azure é baseado principalmente no plano do Serviço de Aplicativo que você selecionar. Vamos detalhar os fatores de custo que você deve considerar:
Níveis de planos do App Service
Como já falamos anteriormente, o Azure oferece vários níveis de preços, cada um com diferentes recursos e custos:
Nível |
Faixa de custo mensal (USD) |
Recursos |
Melhor para |
Grátis |
$0 |
Armazenamento de 1 GB, infraestrutura compartilhada, computação de 60 minutos/dia |
Desenvolvimento, aprendizado |
Compartilhado (D1) |
$10-15 |
1 GB de armazenamento, 240 minutos/dia de computação |
Sites com pouco tráfego, testes |
Básico (B1-B3) |
$55-220 |
VMs dedicadas, escala manual, domínios personalizados |
Cargas de trabalho de produção, tráfego baixo a médio |
Padrão (S1-S3) |
$70-400 |
Escalonamento automático, slots de preparação, backups diários |
Aplicativos de produção com tráfego variável |
Premium (P1V2-P3V2) |
$80-500 |
Desempenho aprimorado, mais opções de dimensionamento |
Necessidades de alto desempenho, grandes aplicativos |
Isolado |
$300-1000+ |
Isolamento de rede/computação dedicado |
Aplicativos com requisitos rigorosos de conformidade |
Observação: Os preços são aproximados e podem variar de acordo com a região ou com as alterações de preços do Azure. Para obter as informações mais recentes, consulte a página oficial de preços.
Fatores de custo adicionais
Além do plano básico do App Service, considere estes custos adicionais:
- Transferência de dados de saída: Após os primeiros 5 GB por mês (que são gratuitos), a transferência de dados de saída é cobrada. Para aplicativos de dados que fornecem grandes conjuntos de dados aos usuários, isso pode se tornar significativo.
- Certificados SSL: Embora o Azure forneça certificados gratuitos, os certificados personalizados têm custos associados.
- Domínios personalizados: O primeiro domínio personalizado é gratuito, mas os domínios adicionais podem ser cobrados.
- Armazenamento: O armazenamento adicional além do que está incluído em sua camada tem um custo extra.
- Complementos e serviços conectados: Bancos de dados, serviços de cache e outros recursos do Azure conectados ao seu Serviço de Aplicativo incorrem em suas próprias cobranças.
Custos de monitoramento
O Azure fornece ferramentas para você monitorar e prever seus gastos:
- Gerenciamento de custos do Azure: Acesse-o no Portal do Azure para visualizar os custos por recurso, definir orçamentos e criar alertas.
- Calculadora de preços: Use a Calculadora de Preços do Azure paraestimar os custos antes da implantação.
- Recomendações do consultor: O Azure Advisorfornece sugestões de otimização de custos com base em seus padrões de uso.
> Para que você possa gerenciar efetivamente os custos, a segurança e o desempenho dos serviços do Azure, este curso sobre gerenciamento e governança do Azure é altamentealtamente recomendado.
Estratégias de otimização de custos
Agora que entendemos o modelo de preços, vamos explorar estratégias para otimizar os custos dos aplicativos de dados no Serviço de Aplicativo do Azure.
Dimensionar corretamente seu plano do App Service
Uma das maneiras mais eficazes de controlar os custos é garantir que você esteja usando o plano adequado do App Service:
- Comece com uma linha de base adequada: Em vez de usar como padrão um plano de alto nível, comece com um plano moderado e aumente a escala somente quando necessário.
- Monitorar a utilização de recursos: Use o Azure Monitor para rastrear o uso da CPU, da memória e do disco. Se você estiver constantemente abaixo de 50% de utilização, considere reduzir o tamanho.
- Combine a camada com sua carga de trabalho: Para aplicativos de dados com cargas de trabalho previsíveis e constantes, uma camada Basic ou Standard pode ser suficiente. Reserve os níveis Premium para aplicativos com requisitos de desempenho exigentes.
Para aplicativos de ciência de dados, considere estas recomendações específicas:
- APIs de serviço de modelo com requisitos de baixa latência, mas com tráfego moderado, geralmente funcionam bem em planos Standard com dimensionamento automático.
- Pipelines de processamento de dados que são executados em cronogramas, muitas vezes podem usar planos básicos se o tempo de processamento não for crítico.
- Painéis interativos com muitos usuários simultâneos normalmente exigem planos Standard ou Premium para manter a capacidade de resposta.
Uso eficaz do dimensionamento automático
O dimensionamento automático não serve apenas para lidar com picos de tráfego, mas também é uma poderosa ferramenta de otimização de custos:
- Escale para zero quando possível: Para aplicativos não críticos ou ambientes de desenvolvimento, considere reduzir a escala para um mínimo de zero instâncias fora do horário de expediente.
- Defina os limites de escala apropriados: Não aumente a escala de forma muito agressiva. Comece com limites conservadores (como 70% da CPU) e ajuste com base em observações de desempenho.
- Implementar escalonamento programado: Para cargas de trabalho previsíveis, use regras de escalonamento programado em vez de escalonamento automático baseado em métricas. Por exemplo, aumente a escala durante o horário comercial e diminua durante a noite e os finais de semana.
# Example: Create a scheduled autoscale rule to scale down at night
az monitor autoscale rule create --resource-group MyResourceGroup --autoscale-name MyAutoScaleConfig --scale to 1 --condition "Current time is between 22:00 and 06:00 recurring"
Otimização de ambientes de desenvolvimento e teste
Os ambientes de desenvolvimento e teste oferecem oportunidades significativas de economia de custos:
- Use a camada gratuita ou compartilhada para ambientes de desenvolvimento sempre que possível.
- Implemente o desligamento automático para ambientes que não sejam de produção fora do horário de expediente. Embora o Serviço de Aplicativo não tenha um recurso de desligamento interno, você pode usar a Automação do Azure ou os Aplicativos Lógicos para parar e iniciar aplicativos em uma programação.
- Aproveite os slots de implementação de forma eficiente: Em vez de manter ambientes separados para preparação, use slots de implantação em um único App Service de produção. Essa abordagem permite que você troque de ambiente sem duplicar os custos.
# Create a staging slot
az webapp deployment slot create --name MyWebApp --resource-group MyResourceGroup --slot staging
# Swap staging to production
az webapp deployment slot swap --name MyWebApp --resource-group MyResourceGroup --slot staging --target-slot production
Otimizações de custo específicas de dados
Para aplicativos de dados, considere estas abordagens especializadas de economia de custos:
- Descarregue o processamento pesado: Em vez de executar o processamento intensivo de dados em seu Serviço de Aplicativo, considere usar serviços dedicados como o Azure Functions (para processamento sem servidor) ou o Azure Data Factory (para fluxos de trabalho de ETL).
- Implementar o cache: Para dados que não mudam com frequência, implemente o armazenamento em cache para reduzir as chamadas ao banco de dados e a computação. O Cache do Azure para Redis se integra bem ao Serviço de Aplicativo.
- Otimize os custos do banco de dados: Muitas vezes, o banco de dados conectado ao seu Serviço de Aplicativo custa mais do que o próprio Serviço de Aplicativo. Considere:
- Usando pools elásticos para bancos de dados SQL
- Implementação de indexação apropriada
- Uso de armazenamento em camadas para dados acessados com menos frequência
- Comprimir respostas: Para aplicativos que fornecem grandes conjuntos de dados aos usuários, ative a compactação para reduzir os custos de transferência de dados de saída:
# Example for Flask applications
from flask import Flask
from flask_compress import Compress
app = Flask(__name__)
Compress(app)
Técnicas avançadas para aplicativos de dados
Além da otimização de custos, há várias técnicas avançadas para aprimorar o desempenho e os recursos de seus aplicativos de dados no Serviço de Aplicativo do Azure.
Contêineres de aplicativos de dados
Os contêineres oferecem consistência entre ambientes e podem simplificar o gerenciamento de dependências - um desafio comum em aplicativos de dados com requisitos complexos:
- No Portal do Azure, crie um novo aplicativo da Web
- Selecione "Docker Container" em vez de "Code" para a opção de publicação
- Escolha Single Container e especifique sua imagem do Docker
Para aplicativos de ciência de dados, considere manter uma imagem de contêiner de base com bibliotecas usadas com frequência, como NumPy, pandas e scikit-learn, para acelerar as implementações.
Implementação de CI/CD para fluxos de trabalho de dados
Além da CI/CD básica, considere implementar testes automatizados especificamente para aplicativos de dados:
- Testes de validação de dados: Verificar se o processamento de dados produz os resultados esperados
- Testes de desempenho do modelo: Garantir que os modelos de ML atendam aos limites de precisão e desempenho
- Teste de carga: Valide se o aplicativo lida com os volumes de dados esperados
Exemplo de fluxo de trabalho do GitHub Actions para um aplicativo de dados:
name: Data App CI/CD
on:
push:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.8'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install pytest pytest-cov
- name: Test with pytest
run: |
pytest tests/data_validation_tests.py
pytest tests/model_performance_tests.py
deploy:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Deploy to Azure
uses: azure/webapps-deploy@v2
with:
app-name: 'my-data-app'
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
Uso de WebJobs para processamento em segundo plano
Para aplicativos de dados que exigem processamento em segundo plano, os WebJobs do Azure fornecem uma maneira de executar scripts ou programas no mesmo contexto do seu Serviço de Aplicativo:
- Em seu Serviço de Aplicativo, vá para "WebJobs" na barra lateral esquerda
- Clique em "Add" (Adicionar)
- Faça upload do seu arquivo de script (por exemplo, um script Python para processamento de dados)
- Escolha o tipo de acionador (manual, programado ou contínuo)
- Clique em "OK"
Os WebJobs são particularmente úteis para você:
- Limpeza de dados programada
- Geração regular de relatórios
- Retreinamento periódico do modelo
- Sincronização de dados entre sistemas
Conectividade híbrida para dados no local
Muitas organizações têm dados que permanecem no local. O Serviço de Aplicativo do Azure pode se conectar a esses dados usando:
- Integração com a VNet: Conecte seu Serviço de Aplicativo a uma rede virtual que tenha conectividade com sua rede local por meio do ExpressRoute ou da VPN.
- Conexões híbridas: Uma alternativa mais simples que não requer VPN, permitindo que seu Serviço de Aplicativo acesse servidores locais específicos por nome de host e porta.
Para configurar as Conexões híbridas:
- No Serviço de aplicativos, selecione "Networking" (Rede) na barra lateral esquerda
- Vá para "Conexões híbridas"
- Clique em "Add hybrid connection" (Adicionar conexão híbrida)
- Crie uma nova conexão ou use uma conexão existente
- Especifique o nome do host e a porta do ponto de extremidade
- Instale o Hybrid Connection Manager em seu servidor local
Implementação de sinalizadores de recursos para aplicativos de dados
Os sinalizadores de recursos permitem que você ative seletivamente a funcionalidade, o que é valioso para os recursos de dados de teste A/B ou para a implantação gradual de novos modelos:
{
"FeatureFlags": {
"NewRecommendationModel": false,
"AdvancedDataFiltering": true
}
}
Leia esses sinalizadores em seu código:
import os
import json
feature_flags = json.loads(os.environ.get('FeatureFlags', '{}'))
use_new_model = feature_flags.get('NewRecommendationModel', False)
if use_new_model:
# Use new recommendation model
else:
# Use existing model
Essa abordagem permite que você teste novos recursos com um subconjunto de usuários ou desative rapidamente recursos problemáticos sem reimplantação.
> Para que você possa se aprofundar na automação da implantação de modelos de ML, confira este curso sobre CI/CD para machine learning.
Conclusão
Ao longo deste tutorial, exploramos como instalar, implantar, configurar, dimensionar e otimizar o Serviço de Aplicativo do Azure para aplicativos de dados. Desde a criação do seu primeiro Serviço de Aplicativo até a implementação de recursos avançados, como dimensionamento automático e conectividade híbrida, você agora tem o conhecimento necessário para aproveitar a plataforma do Azure para suas cargas de trabalho de dados.
Principais conclusões
- O Serviço de Aplicativo do Azure oferece uma plataforma totalmente gerenciada que permite que os profissionais de dados se concentrem na lógica do aplicativo em vez de no gerenciamento da infraestrutura.
- Várias opções de implantação permitem uma integração perfeita com seu fluxo de trabalho de desenvolvimento existente, quer você esteja usando o GitHub, o Azure DevOps ou repositórios Git locais.
- Recursos de dimensionamento garantem que seu aplicativo possa lidar com cargas de trabalho variadas, desde testes de desenvolvimento até picos de tráfego de produção.
- Ferramentas integradas de monitoramento e diagnóstico ajudam a manter a confiabilidade e o desempenho, com métricas especializadas para aplicativos de dados.
- Estratégias de otimização de custos permitem que você maximize o valor e minimize as despesas, o que é especialmente importante para cargas de trabalho de dados com uso intensivo de recursos.
Próximas etapas
Para continuar sua jornada no Serviço de Aplicativo do Azure, considere explorar:
- Integração com o Azure ML: Implante modelos treinados no Azure Machine Learning em seu Serviço de Aplicativo para inferência.
- Azure Functions: Para computação sem servidor orientada por eventos que complementa seus aplicativos do App Service.
- Gerenciamento de API do Azure: Para proteger e gerenciar APIs que expõem seus serviços de dados.
- Azure Logic Apps: Para automação do fluxo de trabalho entre seu App Service e outras fontes de dados.
- O programa Microsoft Azure Fundamentalstambém éum ótimo recurso se você estiver se preparando para a certificação ou quiser um aprendizado estruturado.
Lembre-se de que o cenário da nuvem evolui rapidamente, portanto, fiquede olho na página de atualizações do Azure para obter novos recursos e serviços que possam aprimorar seus aplicativos de dados!
Obter a certificação Azure AZ-900
Ampla formação técnica, incluindo machine learning, ciência de dados, modelagem quantitativa, engenharia de software, DevOps e computação em nuvem.