é uma plataforma PaaS Serverless orientada a aplicações. Ela libera os usuários de Platform as a Service (PaaS) das tarefas de operações e manutenção (O&M) de Infrastructure as a Service (IaaS), permite o uso de recursos sob demanda com faturamento conforme o uso e reduz a barreira para migrar aplicações construídas com stacks tecnológicas como microsserviços, Java e PHP para a cloud. Este tópico apresenta o fluxo de trabalho de implantação do e direciona você às práticas recomendadas para cada área de capacidade.
Fluxo de trabalho de implantação
A figura a seguir ilustra o fluxo de trabalho do SAE.

O fluxo consiste em quatro etapas. As etapas 1 a 3 formam o caminho mínimo para ter uma aplicação em execução. A etapa 4 abrange as capacidades adicionadas à medida que sua aplicação avança para produção.
-
Planeje os recursos e conclua os preparativos. Antes de implantar uma aplicação SAE pela primeira vez, planeje sua Virtual Private Cloud (VPC), vSwitches e namespaces. Os namespaces isolam ambientes como teste, homologação e produção. Consulte Antes de começar neste tópico e Pré-requisitos.
-
Implante sua aplicação. Implante a aplicação no console do SAE. Para mais detalhes, consulte Implantação de aplicações e Implantar uma aplicação neste tópico. Além da implantação via console, o SAE suporta implantação por meio de Jenkins, plug-ins de IDE, plug-ins Maven, Terraform, API, Alibaba Cloud DevOps e da ferramenta kubectl-sae.
NotaSe esta for a primeira vez que você implanta uma aplicação no SAE, crie a aplicação no console do SAE.
-
Torne sua aplicação acessível. Escolha um método de acesso com base na forma como os clientes se conectam à aplicação. Para uma comparação completa dos métodos e suas implementações, consulte Acesso à aplicação neste tópico.
Ingress (recomendado) — Uma única porta atende a várias aplicações, e o tráfego é roteado para diferentes aplicações com base em nomes de domínio e caminhos. Para detalhes, consulte Configurar um ingress.
Service — Uma porta dedicado a uma aplicação. Utilize um Service quando precisar de acesso TCP na camada 4 ou quando o acesso baseado em domínio não estiver disponível. Para expor um Service com uma instância de Network Load Balancer (NLB), consulte Vincular uma instância NLB a uma aplicação.
Endereço IP elástico (EIP) — Vincule uma instância a um EIP para permitir que ela envie e receba tráfego da Internet. Para detalhes, consulte Configurar um EIP para habilitar acesso público para uma instância SAE.
Configure recursos avançados. As seções a seguir descrevem as capacidades que podem ser adicionadas a uma aplicação SAE:
Controle de acesso: Configuração de permissões
Elasticidade para redução de custos e eficiência: Elasticidade
Melhorias para microsserviços Java: Microsserviços
Alta disponibilidade (HA): Alta disponibilidade
Armazenamento: Armazenamento
-
Antes de começar
Caso esteja começando agora no SAE, assista ao vídeo para conhecer a plataforma SAE e suas operações básicas.
Para obter detalhes sobre o service, consulte O que é o Serverless App Engine?.
Pré-requisitos
Prepare os itens abaixo antes da sua primeira implantação:
Recursos de rede — Planeje uma VPC e seus vSwitches. Ao criar um vSwitch, planeje a quantidade de endereços IP conforme descrito em Limites e cotas.
Namespaces — Defina os namespaces que isolarão seus ambientes de teste, homologação e produção.
Origem da aplicação — Prepare um pacote de código ou uma imagem de contêiner. Para ver as origens suportadas, consulte Origens de implantação.
-
Acesso ao console — Crie sua primeira aplicação no console do SAE.
Para mais detalhes, consulte Pré-requisitos.
Limites e cotas
Considere os limites a seguir durante o planejamento. Cada um deles impacta diretamente a criação, o dimensionamento ou a observabilidade da aplicação.
Disco do sistema — O SAE oferece 20 GB de armazenamento em disco do sistema. Para leitura ou escrita em armazenamento externo, utilize o Apsara File Storage NAS ou o Object Storage Service (OSS). Para detalhes, consulte Armazenamento.
Logs em tempo real — O recurso de log em tempo real exibe até 500 linhas de dados de log. Para visualizar um volume maior, utilize a coleta de logs de arquivo. Para detalhes, consulte Logs.
Quantidade de EIPs — Ao vincular cada instância a um EIP, garanta que o número de EIPs seja pelo menos igual ao número de instâncias mais um. Se houver EIPs insuficientes, a criação da instância falhará e ela não poderá atender ao tráfego.
Endereços IP do vSwitch — Planeje 100 ou mais endereços IP para cada vSwitch, pois a falta de endereços causa falhas na criação e no dimensionamento elástico.
Mapeamento de portas — Um Service expõe uma porta para uma aplicação. Já um ingress expõe uma porta para múltiplas aplicações.
Implantar uma aplicação
Esta seção descreve as origens de implantação suportadas pelo SAE, as configurações definidas no momento da implantação, os canais de entrega automatizada e como liberar, reverter e conceder acesso a uma aplicação.
Origens de implantação
O SAE suporta implantação por pacote de código e implantação por imagem.
Comando e parâmetros de inicialização
A definição do comando de inicialização varia conforme a origem da implantação.
Implantação por imagem — Defina o comando de inicialização e seus parâmetros diretamente no Dockerfile. Também é possível substituir o comando de inicialização ao criar a aplicação.
Implantação por pacote de código — Configure os parâmetros do comando de inicialização da aplicação. Para aplicações Java, o formato padrão do comando é
java [-Options] -jar jarfile [arg...], onde você pode personalizar os parâmetros[-Options]e[arg...].
Variáveis de ambiente
Uma aplicação exige variáveis de ambiente específicas para rodar no sistema antes que seus comandos sejam executados. Essas variáveis são armazenadas como pares chave-valor. Cada aplicação possui suas próprias variáveis de ambiente, que não afetam outras aplicações. Para detalhes, consulte Configurar variáveis de ambiente.
Vinculação de hosts
Com a Vinculação de hosts, uma aplicação SAE pode usar um nome de domínio em vez de um endereço IP para acessar serviços externos.
Lista de permissões de banco de dados
Diferente da implantação direta em instâncias do Elastic Compute Service (ECS), o SAE executa aplicações em contêineres, o que significa que o endereço IP pode mudar a cada nova implantação. Como o bloco CIDR do vSwitch vinculado à aplicação permanece inalterado, adicione o bloco CIDR do vSwitch à lista de permissões do banco de dados. Para detalhes, consulte Acessar bancos de dados da Alibaba Cloud a partir de aplicações.
CI/CD e plug-ins de implantação
Além da implantação via console e API, o SAE integra-se a diversas ferramentas de CI/CD, principalmente Alibaba Cloud DevOps e Jenkins, permitindo que a implantação inicie automaticamente após um commit de código. Se você utiliza Java, o SAE também fornece um conjunto de plug-ins de implantação, incluindo plug-ins para Maven, IntelliJ IDEA e Eclipse. Para detalhes, consulte Visão geral da hospedagem de aplicações.
Para gerenciar recursos do SAE como código, utilize o Terraform. Para detalhes, consulte terraform-provider-alicloud e Visão geral do Terraform.
Para desenvolvimento local e depuração conjunta com serviços já em execução na nuvem, consulte Desenvolvimento de microsserviços.
Liberação e reversão
O SAE suporta liberação em lote único, liberação gradual e liberação canário. Caso uma liberação cause problemas, reverta a aplicação para uma versão histórica. Para detalhes, consulte Atualizar e reverter uma aplicação.
Configuração de permissões
O SAE oferece controle de acesso granular nos níveis de namespace, aplicação e leitura/escrita, além de um assistente de permissões que simplifica o processo de configuração. Para detalhes, consulte Assistente de permissões do SAE.
Acesso à aplicação
Esta seção aborda os conceitos de rede que fundamentam o SAE, os métodos de acesso para cada direção de tráfego e comparações para ajudar na escolha entre eles. Para detalhes, consulte Acesso à aplicação e gerenciamento de tráfego.
No SAE, um Service é exposto com uma instância de NLB ou Classic Load Balancer (CLB), enquanto um ingress é implementado com um API Gateway, um Application Load Balancer (ALB) ou um gateway nativo de nuvem MSE.
Conceitos de rede
A figura a seguir mostra como esses recursos de rede da Alibaba Cloud se relacionam.

-
VPC — Rede privada personalizada criada na Alibaba Cloud. As VPCs são completamente isoladas umas das outras na camada lógica.
NotaPor padrão, uma rede privada não tem acesso à Internet.
vSwitch — Dispositivo de rede básico de uma VPC que corresponde a um data center físico. Ao criar um recurso de nuvem em uma VPC, especifique o vSwitch ao qual o recurso se conectará.
EIP — Endereço IP elástico que pode ser vinculado a apenas um recurso, como uma instância ECS ou uma instância SAE. O recurso vinculado pode enviar e receber tráfego da Internet.
NAT Gateway — Permite que recursos em uma VPC acessem a Internet via SNAT. A principal diferença em relação ao EIP é que um NAT Gateway da Internet atende a todos os recursos de uma VPC, enquanto um EIP atende apenas a um recurso específico.
Métodos de acesso por direção de tráfego
Após implantar uma aplicação no SAE, você pode enfrentar os seguintes requisitos de acesso à rede. A figura a seguir ilustra esses conceitos.

Acesso de entrada pela Internet
Uma aplicação SAE que precisa ser acessível pela Internet pode utilizar os seguintes métodos.
SAE Service: acesse a aplicação através de um Service, que pode ser exposto com um NLB voltado para o público ou um CLB voltado para o público.
SAE Ingress: acesse a aplicação através de um ingress, implementável com um API Gateway voltado para o público, um ALB voltado para o público ou um gateway nativo de nuvem MSE voltado para o público. Este método roteia o tráfego para diferentes aplicações SAE com base em nomes de domínio e caminhos.
SAE EIP: vincule um EIP a cada instância de uma aplicação SAE para que a instância possa enviar e receber tráfego da Internet.
Acesso de saída para a Internet
Uma aplicação SAE que necessita acessar a Internet pode utilizar os seguintes métodos.
NAT Gateway: configure um NAT Gateway da Internet para a VPC associada à aplicação SAE para que todas as aplicações SAE relacionadas possam acessar a Internet.
SAE EIP: vincule um EIP a cada instância de uma aplicação SAE para que a instância possa enviar e receber tráfego da Internet.
Acesso mútuo entre aplicações
Como cada implantação gera um novo endereço IP interno, as aplicações SAE não conseguem se comunicar diretamente pelo IP da instância. Utilize os métodos abaixo.
SAE Service: acesse a aplicação através de um Service, expondo-o com um NLB interno ou um CLB interno.
SAE Ingress: acesse a aplicação através de um ingress, implementável com um API Gateway interno, um ALB interno ou um gateway nativo de nuvem MSE interno. Este método roteia o tráfego para diferentes aplicações SAE com base em nomes de domínio e caminhos.
-
Para acesso mútuo entre aplicações de microsserviços via registro de serviço, consulte Registro de serviço e centro de configuração.
Acesso a outros recursos em uma VPC
O SAE é construído sobre a rede VPC da Alibaba Cloud, permitindo acesso a recursos na mesma VPC, como instâncias ECS, ApsaraDB RDS e ApsaraDB for Tair (compatível com Redis), sem configurações adicionais. Inversamente, recursos da Alibaba Cloud na mesma VPC também podem acessar o SAE.
Confirme se o grupo de segurança e a lista de permissões do service de destino permitem o tráfego. Se o acesso ainda falhar, consulte Troubleshooting.
Comparação dos métodos de acesso
Service ou ingress
Um ingress do SAE roteia o tráfego para diferentes aplicações com base em nomes de domínio e caminhos, conforme mostra a figura a seguir, enquanto um Service não faz isso. Priorize o uso de ingress se ele atender aos seus requisitos. Recorra ao Service quando precisar de acesso TCP na camada 4 ou quando o acesso baseado em domínio não estiver disponível.

Ingress ALB ou ingress CLB
O ALB é um service de balanceamento de carga da Alibaba Cloud projetado para cenários da camada de aplicação, como HTTP, HTTPS e QUIC. Para cenários de ingress, priorize o uso do ALB. Para detalhes, consulte Introdução à família de products Server Load Balancer (SLB).
Acesso à Internet via NAT ou EIP
A figura a seguir ilustra o acesso à Internet baseado em EIP, onde cada instância é vinculada a um EIP. Se houver EIPs insuficientes, a criação da instância falhará e ela não poderá atender ao tráfego.

A tabela a seguir descreve as principais diferenças entre o modo NAT e o modo EIP.
|
Item de comparação |
NAT |
EIP |
|
Escopo de atuação |
Um NAT Gateway pode ser controlado no nível da VPC ou do vSwitch, fornecendo service de proxy para todas as instâncias sem IP público naquele escopo. Basta um único NAT Gateway para uma VPC ou vSwitch, permitindo que todas as suas instâncias acessem a Internet. |
Um EIP atua no nível da instância. Por exemplo, 10 instâncias exigem 10 EIPs. Após vincular um EIP a uma instância, ela pode enviar e receber tráfego da Internet. |
|
Endereço IP público estático |
Sim. |
Não. O SAE destrói a instância original e desvincula o EIP original somente após a nova instância ser vinculada a um EIP. Portanto, garanta que o número de EIPs seja pelo menos igual ao número de instâncias mais um. Os EIPs mudam e provêm de um pool de endereços IP. |
|
Cenários típicos |
A aplicação escala automaticamente, novas instâncias precisam de acesso de saída à Internet por padrão e um endereço IP estático é necessário. |
A mudança de EIPs é aceitável e você precisa se conectar diretamente às instâncias, como em reuniões online. Também é útil quando se deseja controle granular sobre o ciclo de vida de cada instância. |
|
Faturamento |
Para detalhes de faturamento, consulte Faturamento do NAT Gateway. |
Para detalhes de faturamento, consulte Faturamento do EIP. Os EIPs são mais econômicos quando você tem no máximo 20 instâncias. |
Microsserviços
O SAE oferece melhorias para microsserviços nas áreas de registro e descoberta de serviços, gerenciamento de configurações, eficiência de desenvolvimento e governança de serviços.
Registro de serviço e centro de configuração
As aplicações SAE se registram e se descobrem mutuamente através de um registro de serviço. Escolha uma implementação conforme suas necessidades.
MSE Nacos (recomendado) — Usar o registro de serviço Nacos do MSE, que funciona simultaneamente como registro de microsserviços e centro de configuração.
Registro de serviço Nacos integrado — O registro de serviço Nacos nativo do SAE. Para aplicações que o utilizam, o SAE fornece capacidades básicas de consulta de lista de serviços.
-
Gerenciamento de configuração integrado — O recurso gerenciamento de configuração distribuída (ACM) nativo do SAE, que atua como centro de configuração.
Para detalhes sobre registro e descoberta, incluindo suporte a outros registros de serviço, consulte Registro e descoberta de serviços com base em Nacos e outros registros de serviço.
Desenvolvimento de microsserviços
Implantação automática a partir da IDE
Em comparação com o reempacotamento e reimplementação manual a cada alteração, a implantação com um clique a partir da IDE reduz o tempo de implantação e aumenta a eficiência do desenvolvimento. Para detalhes, consulte Usar o Alibaba Cloud Toolkit para implantar automaticamente um microsserviço no SAE.
Interconexão local e nuvem
Com a adoção de uma arquitetura de microsserviços, o número de aplicações cresce. Em casos extremos, o desenvolvimento local e a depuração conjunta exigem a inicialização de todas as aplicações de microsserviços relacionadas. Para resolver esse problema, utilize a capacidade de interconexão local-nuvem do plug-in Alibaba Cloud Toolkit. Por exemplo, conecte um consumidor local diretamente a um provedor implantado no SAE, eliminando a necessidade de iniciar o provedor localmente. Isso reduz os custos de desenvolvimento e depuração. Para detalhes, consulte Usar o Cloud Toolkit para implementar interconexão entre aplicações locais e na nuvem (IntelliJ IDEA).
Governança de serviços
Lista de serviços
Para aplicações que usam o registro de serviço Nacos integrado, o SAE oferece capacidades básicas de consulta de lista de serviços. Caso utilize um registro de serviço autogerenciado ou um registro de serviço MSE, faça login no console correspondente para consultar os serviços, em vez de visualizá-los no console do SAE. Para detalhes, consulte Visualizar a lista de serviços.
Liberação canário de microsserviços
O SAE gerencia o ciclo de vida da aplicação e também fornece capacidades de liberação canário para a fase de lançamento de aplicações de microsserviços. Para detalhes, consulte Gerenciar regras de liberação canário e Executar uma liberação canário para uma aplicação.
Suporte a múltiplas linguagens
Suporte ao runtime PHP
O SAE suporta os seguintes métodos de implantação para aplicações PHP.
Imagem: qualquer arquitetura de aplicação PHP.
-
Pacote ZIP PHP: qualquer aplicação online que utilize arquitetura PHP-FPM e Nginx.
O SAE fornece um ambiente de runtime PHP por padrão.
Depuração remota de PHP
O SAE possui um plug-in Xdebug integrado que pode ser ativado para depuração remota. Para transferir arquivos entre uma instância e sua máquina local durante a depuração, consulte Upload e download de arquivos.
Logs
O SAE coleta dois tipos de logs: logs de arquivo de negócios (localizados no caminho de log do contêiner) e logs de saída padrão (stdout) do contêiner. Escolha um destino com base no volume de dados de log necessário e na forma como deseja analisá-los.
Logs em tempo real no console — O recurso de log em tempo real do SAE exibe 500 linhas de dados de log. Utilize-o para inspecionar rapidamente a saída de logs.
Simple Log Service (SLS) — O SAE envia logs para o SLS, onde é possível visualizar um número ilimitado de linhas, agregar e analisar logs autonomamente e integrar logs de negócios facilmente. Para enviar logs stdout ao SLS, primeiro redirecione a saída padrão para um arquivo e depois configure a coleta de arquivos.
Kafka — O SAE envia logs para o Kafka. Utilize o Kafka quando a coleta do SLS não se adequar à sua configuração, por exemplo, quando um usuário do Resource Access Management (RAM) não tiver permissões para visualizar logs no SLS.
Logs de arquivo
O SAE integra a coleta de logs do SLS, bastando ativá-la no console do SAE. Diferente da implantação direta em instâncias ECS, onde a lista de máquinas de coleta é mantida manualmente, o SAE conecta-se automaticamente à coleta de logs do SLS a cada implantação e scale-out após a configuração do diretório ou arquivo de coleta. Em seguida, pesquise logs por palavra-chave no console do SLS. Para detalhes, consulte Configurar coleta de logs para o SLS.
Para configurar a coleta, acesse a página Log Configurations e execute os passos abaixo:
Ative Enable SLS Log Service.
Selecione Create New SLS Resources ou Use Existing SLS Resources.
Na tabela de configuração de coleta, selecione um Log Type, como Container Standard Output, e defina a Log Source, como
stdout.log.-
Clique em Add para adicionar mais regras de coleta.
As fontes de log suportam curingas. Por exemplo,
/tmp/log/*.logcoleta todos os arquivos terminados em.logno diretório/tmp/loge seus subdiretórios.
Também é possível definir parâmetros de inicialização do Logtail via variáveis de ambiente. Para detalhes, consulte Melhorar o desempenho da coleta do Logtail.
Se preferir importar os logs para o Kafka, entregue os dados do Kafka a outro armazenamento persistente, como Elasticsearch, conforme seu cenário de negócios, facilitando o gerenciamento e a análise centralizada de logs. Para detalhes, consulte Configurar coleta de logs para o Kafka.
Logs em tempo real
O SAE coleta logs de saída padrão automaticamente, retém as últimas 500 entradas e permite visualizá-las no console do SAE. Para detalhes, consulte Visualizar logs em tempo real.
Na página Real-time Logs, selecione uma instância na lista suspensa Pod Name e defina a Real-time Log Refresh Rate, que é 15s por padrão.
Para reter logs de saída padrão além das últimas 500 entradas, redirecione-os para um arquivo:
No campo args de Startup Command Settings, insira
>> /tmp/stdout.log 2>&1para redirecionar a saída padrão para o arquivo/tmp/stdout.log.Configure a coleta de arquivos para
/tmp/stdout.logconforme descrito em Logs de arquivo. Também é possível visualizar o arquivo online via Webshell, disponível apenas quando a instância está em execução normal.
Armazenamento
Cada instância SAE possui um disco do sistema. Se precisar ler ou escrever em armazenamento externo, utilize o Apsara File Storage NAS ou o OSS. Com NAS e OSS, o SAE também suporta hospedagem independente de arquivos estáticos: persiste código, modelos e arquivos carregados gerados em tempo de execução, além de compartilhar arquivos entre instâncias. Para a capacidade do disco do sistema, consulte Limites e cotas.
Em cenários de logging, utilize o SLS em vez de NAS ou OSS. Para detalhes, consulte Configurar coleta de logs para o SLS.
NAS
O SAE suporta o Apsara File Storage NAS, que resolve a persistência de dados para instâncias de aplicação e a distribuição de dados entre instâncias. O armazenamento NAS só fica acessível após ser montado em uma instância ECS ou no SAE. Para detalhes, consulte Configurar armazenamento NAS.
OSS
O OSS oferece ferramentas convenientes e um console para gerenciamento visual de buckets. O OSS é ideal para cenários de leitura intensiva, como montagem de arquivos de configuração ou arquivos estáticos de front-end. Após configurar o armazenamento OSS durante a implantação de uma aplicação no console do SAE, acesse os dados no console do OSS. Para detalhes, consulte Configurar armazenamento OSS.
A ferramenta ossfs não pode ser usada em cenários de escrita de logs. Para detalhes, consulte ossfs 1.0.
Upload e download de arquivos
Para baixar um arquivo de uma instância SAE para sua máquina local, faça login na instância via Webshell e use o recurso integrado de upload e download de arquivos. Para detalhes, consulte Upload e download de arquivos usando Webshell.
Além do armazenamento NAS e OSS, você pode usar o ossutil. NAS e OSS também simplificam o desenvolvimento e a depuração de código. Diagnostique uma aplicação SAE por meio de verificações de rotina ou enviando logs para o OSS. Para informações sobre como fazer upload e download de logs com o Alibaba Cloud OSS, consulte Diagnosticar aplicações por meio de verificações de rotina.
Elasticidade
O SAE suporta políticas elásticas como dimensionamento manual, dimensionamento agendado, dimensionamento baseado em métricas, dimensionamento híbrido e início/parada agendados. A elasticidade é uma característica típica de arquiteturas e aplicações nativas de nuvem: reduz custos com máquinas e melhora a eficiência de O&M.
Dimensionamento manual
O dimensionamento manual é adequado para cenários com O&M manual. Comparado ao dimensionamento de aplicações implantadas diretamente em instâncias ECS, o dimensionamento do SAE baseia-se em imagens de contêiner e é mais rápido. Para detalhes, consulte Dimensionamento manual.
Dimensionamento agendado
Recomendado para cenários com tráfego previsível. Por exemplo, os setores de alimentação e educação têm picos de negócio claros pela manhã e à noite todos os dias; assim, configure diferentes quantidades de instâncias para diferentes períodos de tempo para alinhar os recursos do servidor ao tráfego real do negócio. Para detalhes, consulte Configurar uma política de auto-scaling.
Dimensionamento baseado em métricas
Indicado para cenários com tráfego relativamente imprevisível. Atualmente, suporta métricas como CPU, memória, conexões TCP, QPS e tempo de resposta (RT). Para detalhes, consulte Configurar uma política de auto-scaling.
Dimensionamento híbrido
Projetado para cenários que exigem tanto o tratamento de tráfego repentino quanto o dimensionamento agendado, como nos setores de Internet, educação e alimentação, onde se ajusta o número de instâncias com granularidade fina para períodos de tempo conhecidos.
Por exemplo, defina o número máximo de instâncias elásticas como max e o mínimo como min em dias úteis. Se não for necessário manter min instâncias nos fins de semana, configure outra quantidade de instâncias para esses dias, reduzindo o valor de min. Para detalhes, consulte Configurar uma política de auto-scaling.
Início e parada agendados
O recurso de início e parada agendados inicia e para aplicações em lotes por namespace conforme um cronograma. Por exemplo, inicie e pare todas as aplicações em um ambiente de desenvolvimento ou teste seguindo uma programação. Se um ambiente de desenvolvimento ou teste for necessário apenas das 08:00 às 20:00 diariamente e ficar ocioso no restante do tempo, configure o início e parada agendados no SAE para reduzir custos. Para detalhes, consulte Criar uma regra de início e parada agendados.
Monitoramento e alertas
O SAE fornece monitoramento de infraestrutura integrado e ARMS Business Monitoring para Java e PHP. O gerenciamento de alertas oferece agregação de alertas, notificação, escalonamento automático e outros recursos que ajudam a detectar e corrigir alertas de negócios rapidamente.
Monitoramento de infraestrutura
O monitoramento de infraestrutura abrange CPU, carga, memória, disco, rede e conexões TCP. Para detalhes, consulte Monitoramento de infraestrutura. O monitoramento de infraestrutura é atualmente alimentado pelo Alibaba Cloud CloudMonitor, então você também pode fazer login no console do CloudMonitor para configurar um painel de monitoramento personalizado.
Monitoramento de aplicações
Em uma arquitetura de microsserviços, a ausência de um sistema de monitoramento dificulta a detecção e o diagnóstico de problemas. O SAE integra o Application Real-Time Monitoring Service (ARMS) para fornecer painéis de aplicação, monitoramento de JVM, monitoramento de chamadas lentas, análise de rastreamento e alertas, reduzindo a barreira para empresas adotarem uma arquitetura de microsserviços. Para detalhes, consulte Monitoramento de Aplicações.
A edição do ARMS integrada por uma aplicação e as taxas aplicáveis dependem da edição da aplicação.
Aplicações Professional Edition do SAE integram o recurso de monitoramento de aplicações ARMS Premium Edition. Após ativar o monitoramento de aplicações, nenhuma taxa extra é cobrada e sua aplicação é monitorada em tempo real. Para detalhes, consulte Monitoramento de aplicações Professional Edition.
Aplicações Standard Edition do SAE integram o monitoramento ARMS Basic Edition, que é gratuito após a ativação do monitoramento de aplicações. A Standard Edition também fornece um ponto de entrada para ativar o monitoramento ARMS Premium Edition. Após ativar o ARMS Premium Edition em uma aplicação Standard Edition, taxas extras serão cobradas e você deverá visualizar os dados no console do ARMS. Para detalhes, consulte Monitoramento de aplicações Standard Edition.
Configurações de alerta
O SAE permite configurar alertas para todos os itens de monitoramento mencionados anteriormente. Para detalhes, consulte Gerenciamento de alertas.
Alta disponibilidade
Após implantar uma aplicação no SAE, três capacidades protegem sua disponibilidade: verificações de saúde informam se as instâncias e serviços da aplicação estão funcionando normalmente e ajudam a localizar problemas quando ocorrem exceções; a implantação multi-vSwitch lida com falhas no nível do data center; e a limitação de taxa e degradação protegem a aplicação contra picos de tráfego.
Implantação multi-vSwitch
Para lidar com falhas no nível do data center, configure múltiplos vSwitches para aplicações SAE de nível de produção. Ao criar um vSwitch, planeje um número suficiente de endereços IP (100 ou mais), pois endereços insuficientes causam falhas na criação ou no dimensionamento elástico. Para detalhes, consulte Alternar vSwitches.
Com múltiplos vSwitches, o SAE dimensiona recursos automaticamente em várias zonas, eliminando a necessidade de rastrear a distribuição de recursos e mantendo o pool geral de recursos disponível. Por exemplo, quando ocorre uma falha pontual ou uma falha de zona, o SAE migra o mesmo número de instâncias defeituosas para nós saudáveis ou outras zonas.
Configure múltiplos vSwitches de uma das seguintes formas.
Na criação — Selecione dois ou mais vSwitches em zonas diferentes para alcançar recuperação de desastres multizona.
Após a criação — Na página Application Information, clique no link Multi-vSwitch Deployment e adicione um vSwitch.
Ao adicionar um vSwitch, atualize a lista de permissões do banco de dados adequadamente. Para detalhes, consulte Acessar bancos de dados da Alibaba Cloud a partir de aplicações.
Inicialização e encerramento graceful
Ao implantar uma aplicação no SAE, o processo geralmente escala horizontalmente (scale-out) primeiro e depois reduz (scale-in). A inicialização e o encerramento graceful de tráfego envolvem dois grandes pontos de dor.
Se uma instância recém-adicionada está pronta para lidar com tráfego.
-
Como destruir uma instância antiga de forma graceful.
O SAE é construído sobre Kubernetes e fornece duas verificações de saúde: a sonda de atividade (liveness probe) para instâncias de aplicação e a sonda de prontidão (readiness probe) para serviços de aplicação. Para resolver os dois pontos de dor, o SAE suporta a sonda de prontidão. Essa sonda verifica periodicamente se uma instância está pronta, e o SAE roteia tráfego para uma nova instância somente após ela estar pronta. Se a verificação falhar, o SAE não roteia tráfego para a instância. Antes de uma instância antiga ser destruída, ela é removida do lado do tráfego, e você pode configurar um script de encerramento e um tempo de espera antes da destruição. Para detalhes, consulte Configurar verificações de saúde.
A sonda de atividade também verifica periodicamente se uma instância foi iniciada. Se a verificação falhar, o SAE reinicia o contêiner automaticamente. Esse recurso suporta O&M automatizado para cenários de exceção, mas pode perder o contexto da falha e impedir a investigação da causa. Decida se deve configurar a sonda de atividade com base no seu cenário.
Além da sonda de prontidão e da sonda de atividade, cenários de microsserviços exigem encerramento graceful para microsserviços para resolver o problema de cache do registro de serviço. Como o cliente consumidor armazena dados em cache, ele não consegue receber a notificação de offline de um provedor de microsserviço a tempo. Consequentemente, geralmente é necessário cancelar o registro da instância do provedor no registro de serviço e aguardar a atualização do cache do consumidor. Para resolver esse problema, o SAE integra-se ao recurso de encerramento graceful do Microservices Engine (MSE) e transforma esse processo em uma capacidade do product.
Em um ambiente de produção, recursos como dimensionamento elástico automático e reversão ou upgrade podem causar indisponibilidade temporária do service ou um grande número de erros de monitoramento de negócios. Para resolver esses pontos de dor, o SAE suporta inicialização graceful para microsserviços. Um consumidor pode chamar um provedor de microsserviço assim que o provedor for registrado no registro de serviço. Nesse momento, no entanto, o provedor ainda pode precisar de inicialização adicional, como a inicialização do pool de conexões do banco de dados. Ative a inicialização graceful para aplicações de microsserviços com tráfego intenso. Para detalhes, consulte Configurar inicialização e encerramento graceful.
Limitação de taxa e degradação
Independentemente de usar uma arquitetura de microsserviços ou monolítica, uma aplicação pode travar repentinamente ao enfrentar picos de tráfego, como em promoções relâmpago, e uma aplicação de microsserviços também pode causar uma falha em cascata. Para esses cenários de alto tráfego, o SAE integra a capacidade de proteção de tráfego do Microservices Engine (MSE), permitindo configurar e gerenciar regras de limitação de taxa e degradação para aplicações Java com facilidade e salvaguardar a disponibilidade da aplicação. Para detalhes, consulte Proteção de tráfego.
Troubleshooting
Utilize os seguintes pontos de entrada quando uma aplicação não estiver rodando ou não puder ser acessada.
Verifique se instâncias e serviços estão funcionando normalmente — Configure verificações de saúde e visualize os resultados para localizar problemas quando ocorrerem exceções. Para detalhes, consulte Inicialização e encerramento graceful.
Verifique a saída da aplicação — Visualize as entradas mais recentes de saída padrão na página Real-time Logs ou pesquise logs coletados no console do SLS. Para detalhes, consulte Logs.
Verifique a conectividade de rede — Confirme se o grupo de segurança e a lista de permissões do service de destino permitem o tráfego. Para mais etapas de troubleshooting, consulte FAQs.
Verifique um registro de microsserviços Java ou centro de configuração — Verifique a versão do nacos-client, verifique a configuração do centro de configuração integrado (ACM) ou do centro de configuração MSE e certifique-se de que os nomes dos namespaces estejam consistentes.
Próximos passos
Depois que sua aplicação estiver em execução, continue pelo caminho que corresponde ao seu objetivo:
Reforce o processo de liberação e o controle de acesso: consulte Implantar uma aplicação.
Adicione observabilidade: consulte Logs e Monitoramento e alertas.
Prepare-se para disponibilidade de nível de produção: consulte Alta disponibilidade.
-
Controle o custo de um ambiente de teste: use Início e parada agendados ou Dimensionamento manual para liberar instâncias que não são mais necessárias.
Para diversos requisitos de negócios, o SAE fornece melhores práticas relacionadas. Além dos tópicos de elasticidade, rede, armazenamento e acesso a bancos de dados da Alibaba Cloud abordados neste documento, as melhores práticas também cobrem imagens, aceleração de aplicações e configuração de parâmetros JVM. Para mais cenários comuns, consulte Melhores práticas.