Melhores Práticas para Nuvem e Serverless
Ajuste de cold start, observabilidade e salvaguardas de custo.
Busque em todas as páginas da documentação
Ajuste de cold start, observabilidade e salvaguardas de custo.
Aplique estas regras em modelos de CI, arquivos README de serviço e revisões de plataforma para que cada implantação Go obtenha latência, contas e resposta a incidentes previsíveis.
CGO_ENABLED=0 para Lambda e contêineres mínimos. Evita surpresas com o linker dinâmico em runtimes fornecidos.-ldflags="-s -w" a menos que você precise de símbolos Delve em desenvolvimento. Zips menores carregam mais rápido no cold start.bootstrap na raiz do zip para provided.al2023. Nomes incorretos falham em tempo de execução com erros opacos.sync.Once, não em init(). Mantém caminhos de código não utilizados fora do caminho de cold start.context.Context da plataforma para todas as chamadas SDK. Honra os prazos de desconexão do API Gateway, Cloud Run e cliente.context.WithTimeout ligeiramente abaixo dos limites da plataforma. Retorne erros estruturados antes de interrupções forçadas./tmp no Lambda. Trate o armazenamento da instância como efêmero.* em identidades de tempo de execução.--allow-unauthenticated após picos.govulncheck em módulos que tocam SDKs de nuvem. Problemas de cadeia de suprimentos chegam primeiro aos caminhos de credenciais e HTTP.log/slog para stdout/stderr. CloudWatch, Cloud Logging e App Insights analisam campos estruturados.ReadHeaderTimeout em cada http.Server em contêineres. Bloqueia slowloris antes que os manipuladores sejam executados.http.Server.Shutdown limitado. Cloud Run e ECS enviam sinais de término antes de SIGKILL.Latência ponta a ponta p99 dividida por caminho frio vs. quente.
Se o frio domina, corrija o empacotamento e a inicialização antes de aumentar os gastos com memória.
O desenvolvimento pode ser mais flexível para velocidade, mas não deve compartilhar funções ou segredos de produção.
Use contas ou namespaces separados com políticas paralelas.
Camadas ajudam equipes poliglota a compartilhar agentes; binários Go puros raramente precisam de camadas, a menos que distribuam extensões de observabilidade.
Prefira binários únicos menores primeiro.
Teste de caos para entregas duplicadas de SQS e retentativas HTTP em testes de integração; afirme um único efeito colateral visível.
Quando você precisar de operadores, CRDs personalizados, recursos de service mesh ou padrões de cluster multi-equipe uniformes que as funções gerenciadas não podem hospedar.
Sim - deixe espaço livre acima do tamanho ativo do heap; mortes por OOM são mais difíceis de depurar do que configurações de memória ligeiramente mais altas.
Versões de Stack: Esta página foi escrita para Go 1.26.x (padrão Green Tea GC, modernizadores go fix - verifique o patch na compilação), chi (mais recente - verifique na compilação), gin (mais recente - verifique na compilação), echo (mais recente - verifique na compilação), google.golang.org/grpc (mais recente - verifique na compilação), sigs.k8s.io/controller-runtime (mais recente - verifique na compilação), kubebuilder (mais recente - verifique na compilação), tinygo (mais recente - verifique os alvos de placa na compilação), wazero (mais recente - verifique na compilação) e golangci-lint (conjunto de linters mais recente - verifique na compilação).
Revisado por Chris St. John·Última atualização: 19 de jul. de 2026