Entender a hospedagem de apps e como ela funciona

O App Hosting processa uma série complexa de tarefas em segundo plano para simplificar a implantação do app. Esta página descreve as partes principais desse fluxo de tarefas, fornecendo informações sobre pontos em que você pode personalizar o fluxo dependendo das necessidades do app.

Google Cloud e arquitetura App Hosting

O App Hosting orquestra um conjunto de produtos do Google Cloud para que você possa implantar, fornecer e monitorar seu app da Web. Os apps são criados com Cloud Build, fornecidos em Cloud Run e armazenados em cache no Cloud CDN. Serviços integrados, como o Cloud Secret Manager, protegem suas chaves de API.

Um diagrama da arquitetura descrita nesta página.

  1. Quando uma confirmação é enviada para seu branch ativo, o Google Cloud Developer Connect envia um evento para Firebase App Hosting.
  2. Em resposta a esse evento, Firebase App Hosting inicia um novo lançamento para cada back-end conectado ao repositório.
  3. O Firebase App Hosting cria um novo build Cloud Build para seu commit. Nesse job, os buildpacks do Google Cloud determinam qual framework está sendo usado no aplicativo para criar um contêiner e uma configuração (incluindo variáveis de ambiente, segredos, instâncias mínimas ou máximas, memória de simultaneidade, CPU e configuração da VPC) que se adapta ao seu aplicativo.
  4. Quando o job Cloud Build for concluído, o contêiner será armazenado em um repositório Artifact Registry dedicado a Firebase App Hosting. O Firebase App Hosting adiciona uma nova revisão Cloud Run a um serviço Cloud Run usando sua imagem e configuração. Depois que a revisão Cloud Run for verificada como saudável, o Firebase App Hosting vai modificar a configuração de tráfego para apontar todas as novas solicitações para a nova revisão Cloud Run. Nesse ponto, o lançamento está concluído.
  5. Quando uma solicitação é enviada para um site hospedado em Firebase App Hosting, ela é transmitida pelo balanceador de carga do Google Cloud com o Cloud CDN ativado. As solicitações não armazenadas em cache são enviadas para seu serviço Cloud Run.

Integração de framework

O App Hosting oferece suporte pré-configurado para build e implantação de apps da Web desenvolvidos nestes frameworks:

  • Next.js 13.5.x e versões mais recentes
  • Angular 18.2.x e versões mais recentes

Consulte os horários de suporte para saber mais sobre versões e níveis de suporte específicos.

Além do Next.js e do Angular, o App Hosting também oferece suporte a qualquer framework da Web que possa fornecer uma saída de build que corresponda à nossa especificação de pacote de saída. Consulte Frameworks e ferramentas para App Hosting para mais informações sobre frameworks, adaptadores de framework e ferramentas relacionadas com suporte para App Hosting.

Como funciona a integração do repositório App Hosting

A conexão importante entre seu repositório do GitHub e o back-end do App Hosting é gerenciada pelo Developer Connect, a plataforma de conectividade do Google Cloud para ferramentas externas de DevOps. Durante a criação de um back-end App Hosting, o fluxo de trabalho da interface do Developer Connect orienta você na instalação do app GitHub do Firebase. As principais etapas desse processo são:

  1. Você concede ao Developer Connect o papel de Administrador do Secret Manager. Isso permite que o sistema armazene credenciais com segurança como "secrets" no Cloud Secret Manager.
  2. Você autoriza o app GitHub do Firebase a acessar seu repositório do GitHub.
  3. O Developer Connect armazena um token de autorização do GitHub dedicado no repositório do gerenciador de segredos do projeto. Não modifique nem exclua esse token.

Além disso, App Hosting se integra à API GitHub Checks para verificar os lançamentos. Essa verificação permite conferir o status do lançamento no GitHub e depurar o processo de implantação em caso de erros.

Integração com o Firebase e outros serviços do Google

O App Hosting configura os ambientes de build e de execução para que você possa inicializar o SDK Admin do Firebase com as Application Default Credentials do Google. Dessa forma, o back-end pode se comunicar com outros produtos do Firebase no momento de build e de execução. Consulte Integrar SDKs do Firebase no seu app da Web para mais informações sobre como inicializar o app e outros tópicos relacionados ao SDK do Firebase.

App Hosting locais

O App Hosting cria os recursos de back-end em um local específico, chamado de região principal. Embora o App Hosting se integre a um CDN global para entrega rápida, o conteúdo não armazenado em cache é veiculado na região principal do app. Essa flexibilidade no local do seu app da Web tem vantagens importantes:

  • Melhoria no desempenho e redução da latência ao deixar os dados geograficamente mais próximos dos usuários.
  • Uma falha catastrófica de App Hosting em uma região não afetaria apps da Web implantados em outras regiões.

É possível escolher qualquer uma dessas regiões ao criar um back-end do App Hosting no console ou na CLI Firebase:

  • us-central1 (Iowa)
  • asia-east1 (Taiwan)
  • europe-west4 (Países Baixos)

A conta de serviço de back-end App Hosting

Durante o build e no momento da execução, o back-end do App Hosting se autentica com outros serviços do Google com uma conta de serviço. Uma conta de serviço padrão para esses fins é criada na primeira vez que você ativa App Hosting em um projeto do Firebase:

firebase-app-hosting-compute@PROJECT ID.iam.gserviceaccount.com

Essa conta de serviço se aplica a todos os back-ends por padrão e tem um conjunto mínimo de permissões para criar, executar e monitorar seu app. Ela também tem permissão para autenticar o SDK Admin com as credenciais padrão do aplicativo para realizar operações como o carregamento de dados de Cloud Firestore. Consulte Papéis do App Hosting do Firebase.

Se o app precisar interagir com outros serviços do Google no momento do build ou em um back-end em execução, será possível personalizar a conta de serviço padrão adicionando papéis. Por exemplo, se o app exigir permissões para a Vertex AI, talvez seja necessário adicionar roles/aiplatform.user ou algum papel relacionado.

Principais termos e definições

  • Back-end: a coleção de recursos gerenciados que o App Hosting cria para desenvolver e executar seu app da Web.
  • Implementação: uma versão específica do app em produção, vinculada a um commit do Git.
  • Branch ativo: a ramificação do repositório do GitHub que é implantada no URL ativo. Geralmente, é a ramificação em que as ramificações de recursos ou de desenvolvimento são mescladas.