Como veicular sites

Neste artigo, você aprenderá a hospedar um site no Google Cloud Platform (GCP), uma plataforma robusta, flexível, confiável e escalonável para veiculação de sites. Ele foi desenvolvido pelo Google com a mesma infraestrutura usada no Google.com, YouTube e Gmail. Para veicular o conteúdo do site, use o tipo e design de infraestrutura mais adequados para suas necessidades.

Este artigo será útil se você:

  • sabe como criar um site e já implantou e usou alguma infraestrutura de veiculação da Web anteriormente;
  • está avaliando a possibilidade de migrar seu site para o GCP e os meios para fazer isso.

Como escolher uma opção

Se você não está familiarizado com o GCP, uma abordagem razoável é começar usando um tipo de tecnologia que você já conheça. Por exemplo, caso você use servidores de hardware ou máquinas virtuais (VMs) para hospedar o site, talvez com outro provedor de nuvem ou no próprio hardware, o Google Compute Engine tem um paradigma semelhante. Se você já usa uma plataforma como serviço (PaaS, na sigla em inglês) como o Heroku ou Engine Yard, é provável que o Google App Engine seja o melhor lugar para iniciar.

Depois de conhecer melhor o GCP, comece a explorar a variedade de produtos e serviços fornecidos. Por exemplo, se você começou usando o Compute Engine, pode optar por aumentar os recursos do seu site usando o Google Kubernetes Engine ou migrar algumas ou todas as funcionalidades para o App Engine.

Na seguinte tabela, você tem um resumo das opções de hospedagem no GCP:

Opção Produto Armazenamento de dados Balanceamento de carga Escalonabilidade Logging
Site estático

Cloud Storage

Firebase Hosting

Intervalo do Cloud Storage n/a Automaticamente n/a
Máquinas virtuais Compute Engine

API do Cloud SQL, API do Cloud Storage, API do Cloud Datastore e API do Cloud Bigtable. Também é possível usar outro provedor de armazenamento externo.

Discos permanentes baseados em disco rígido, chamados discos permanentes padrão e discos permanentes de estado sólido (SSD, na sigla em inglês).

HTTP(S)

Proxy TCP

Proxy SSL

Terminação IPv6

Rede

Entre regiões

Interno

Automaticamente, com grupos de instâncias gerenciadas

Stackdriver Logging

Stackdriver Monitoring

Console do Stackdriver Monitoring

Contêineres Google Kubernetes Engine (GKE) Semelhante ao Compute Engine, mas interage de maneira diferente com os discos permanentes Rede
HTTP(S)
Autoescalador de cluster

Stackdriver Logging

Stackdriver Monitoring

Console do Stackdriver Monitoring

Plataforma gerenciada App Engine O Google faz isso para você O Google faz isso para você O Google faz isso para você O Google faz isso para você

Após ler todo este artigo, você entenderá as principais tecnologias de veiculação da Web do GCP e terá uma ideia de como elas funcionam. Ele contém links para a documentação completa, tutoriais e artigos de soluções que ajudarão você a se aprofundar quando tiver terminado.

Como entender os custos

Como há muitas variáveis e cada implementação pode ser bem diferente, está além do escopo deste artigo fornecer consultoria específica sobre os custos. Para compreender os princípios do Google sobre o funcionamento dos preços no GCP, consulte a página Preços. Para entender os preços de serviços individuais, consulte a seção Preços dos produtos. Também é possível usar algumas ferramentas que ajudam a avaliar os custos de uso do GCP.

  • Com a calculadora de preços, você faz uma estimativa de uso do GCP de maneira rápida e fácil. Forneça os detalhes sobre os serviços que você quer usar e veja uma estimativa do preço.
  • Com a ferramenta do custo total de propriedade (TCO, na sigla em inglês), você avalia os custos relativos da execução da carga de computação na nuvem e recebe uma estimativa financeira. Você tem várias entradas para a modelagem de custo, que pode ser ajustada, e consegue comparar os custos estimados do Cloud Platform com os do Amazon Web Services. Nessa ferramenta, você não modela todos os componentes de um aplicativo típico, por exemplo, armazenamento e rede.

Como configurar serviços de nome de domínio

Geralmente, você precisa registrar um nome do domínio para seu site. Use um registrador de nome de domínio público, por exemplo, o Google Domains para registrar um nome exclusivo. Para ter o controle completo sobre o Sistema de Nome de Domínio (DNS, na sigla em inglês), use o Google Cloud DNS como provedor DNS. Na documentação do Cloud DNS, você encontra um guia de início rápido para fazer isso.

Ao usar um provedor de DNS existente, geralmente você precisa criar um par de registros nesse provedor. Para um nome de domínio, por exemplo, example.com, você teria que criar um registro A. Para o subdomínio www.example.com, você criaria um registro CNAME do www para apontá-lo ao domínio example.com. O registro A mapeia um nome de host para um endereço IP. O registro CNAME cria um alias para o registro A.

Se o registrador também é um provedor de DNS, provavelmente você não precisa de mais nada. Agora, se você usa provedores diferentes para registro e DNS, verifique se os servidores de nomes associados ao domínio estão corretos no registrador.

Depois que as alterações de DNS são feitas, dependendo dos valores de vida útil (TTL, na sigla em inglês) da zona, as atualizações de registro levam algum tempo para serem propagadas. Quando o nome do host é novo, as alterações são aplicadas rapidamente porque, como os resolvedores de DNS não têm os valores anteriores armazenados em cache, as informações necessárias para encaminhar solicitações são recebidas do provedor de DNS.

Como hospedar um site estático

A maneira mais simples de veicular o conteúdo do site com o HTTP(S) é hospedar as páginas da Web estáticas. Elas são veiculadas sem alterações, exatamente como foram desenvolvidas, geralmente em HTML. Um site estático é uma boa opção se as páginas raramente são alteradas após a publicação, por exemplo, postagens do blog ou se elas fazem parte do site de uma pequena empresa. Muita coisa pode ser feita com páginas estáticas, mas se você precisa que o site tenha muitas interações com os usuários por meio de código no servidor, considere as outras opções discutidas neste artigo.

Como hospedar um site estático no Cloud Storage

Para hospedar um site estático no Cloud Storage, crie um intervalo do Cloud Storage, faça upload do conteúdo e teste o novo site. É possível disponibilizar seus dados diretamente do storage.googleapis.com ou confirmar que é o proprietário do domínio e usar seu nome de domínio. Em ambas as maneiras, você tem a exibição consistente e rápida a partir de caches globais próximos dos usuários finais.

As páginas da Web estáticas podem ser criadas como você quiser. Por exemplo, é possível escrever páginas manualmente usando HTML e CSS. Use um gerador de sites estáticos, como Jekyll, Ghost ou Hugo, para criar o conteúdo. Eles facilitam a criação do site porque permitem que você edite em markdown, além de fornecer modelos e ferramentas. Nesses geradores, geralmente, um servidor da Web local é fornecido para que você visualize o conteúdo.

Depois que o site estático estiver funcionando, use o método que quiser para atualizar as páginas. Esse processo pode ser tão simples quanto copiar manualmente uma página atualizada para o intervalo. Também é possível usar uma abordagem mais automatizada, por exemplo, armazenar o conteúdo no GitHub e usar um webhook para executar um script que atualize o intervalo. Um sistema mais avançado ainda é usar uma ferramenta de integração/entrega contínuas (CI/CD, na sigla em inglês) como o Jenkins para atualizar o conteúdo nesse intervalo. Ele tem um plug-in do Cloud Storage que fornece uma etapa pós-compilação do Google Cloud Storage Uploader para publicar os artefatos da compilação no Cloud Storage.

Se você tem um aplicativo da Web que precisa veicular conteúdo ou mídia estática de upload do usuário, o uso do Cloud Storage pode ser uma maneira econômica e eficiente de hospedar e veicular esse conteúdo e, ao mesmo tempo, reduzir o volume de solicitações dinâmicas para o aplicativo.

Além disso, o Cloud Storage consegue aceitar diretamente o conteúdo enviado pelo usuário. Desse modo, os usuários fazem o upload de grandes arquivos de mídia diretamente e de maneira segura, sem a necessidade de proxy para seus servidores.

Para conseguir o desempenho ideal do site estático, consulte Práticas recomendadas do Google Cloud Storage.

Para mais informações, consulte as seguintes páginas:

Como hospedar um site estático com o Firebase hosting

No Firebase hosting, você tem hospedagem estática rápida e segura para o aplicativo da Web. Com apenas um simples comando, os aplicativos e o conteúdo estático são implantados facilmente e com rapidez em uma rede de entrega de conteúdo (CDN, na sigla em inglês) global.

Estas são algumas das vantagens do Firebase hosting:

  • O SSL está integrado no Firebase hosting sem a necessidade de configuração, ou seja, o conteúdo sempre é exibido com segurança. Os certificados SSL são provisionados nos domínios personalizados sem custos.
  • Todo o conteúdo é veiculado por HTTPS.
  • O conteúdo é exibido rapidamente para os usuários a partir de bordas da CDN no mundo todo.
  • Com a Firebase CLI, o aplicativo é executado em segundos. As ferramentas de linha de comando facilitam essa tarefa porque adicionam os destinos de implantação ao processo de criação.
  • Você tem recursos de gerenciamento de versões como implantação atômica de novos recursos, controle completo de versão e rollbacks com um clique.
  • No Hosting, você tem uma configuração prática para aplicativos de página única e outros sites parecidos com aplicativo.
  • O Hosting foi desenvolvido para ter total compatibilidade com outros recursos do Firebase.

Para mais informações, consulte as seguintes páginas:

Como usar máquinas virtuais com o Compute Engine

Para os casos de uso de infraestrutura como serviço (IaaS, na sigla em inglês), você tem o Google Compute Engine no GCP. O Compute Engine disponibiliza uma infraestrutura de computação robusta, mas você precisa escolher e configurar os componentes da plataforma que quer usar. É sua responsabilidade configurá-lo, administrá-lo e monitorar os sistemas. O Google garante que os recursos estejam disponíveis, confiáveis e prontos para uso, mas você precisa provisioná-los e gerenciá-los. A vantagem, nesse caso, é que você tem controle completo dos sistemas e flexibilidade ilimitada.

Use o Compute Engine para desenvolver e implantar praticamente qualquer sistema de veiculação de site que quiser. Você usa as VMs, chamadas de instâncias, para criar o aplicativo, muito semelhante ao que faria na própria infraestrutura de hardware. No Compute Engine, você tem vários tipos de máquina disponíveis para personalizar a configuração, de modo que ela atenda às necessidades e ao orçamento. Escolha os sistemas operacionais, as pilhas de desenvolvimento, as linguagens, as bibliotecas, os serviços e outras tecnologias de software que preferir.

Como configurar automaticamente com o GCP Marketplace

A maneira mais fácil de implantar uma pilha de disponibilização na Web completa é usando o GCP Marketplace. Com apenas alguns cliques, você implanta qualquer uma das mais de 100 soluções plenamente concretizadas com o click-to-deploy do Google ou o Bitnami.

Google Cloud Platform Marketplace

Por exemplo, é fácil configurar uma pilha LAMP ou o WordPress com o GCP Marketplace. Em poucos minutos, o sistema implanta uma pilha de software completa e funcionando em uma única instância. Antes da implantação, o GCP Marketplace mostra uma estimativa de custo para exibir o site, fornece informações claras sobre quais versões dos componentes de software serão instaladas e permite que você personalize a configuração alterando nomes de instâncias de componente, escolhendo do tipo de máquina e escolhendo um tamanho de disco, por exemplo. Depois da implantação, você tem controle completo sobre todas as instâncias do Compute Engine, as respectivas configurações e o software.

Como configurar manualmente

Você também pode optar por criar sua infraestrutura no Compute Engine manualmente, seja criando a configuração do zero ou partindo de uma implantação do GCP Marketplace. Por exemplo, talvez convenha usar uma versão específica de um componente de software não oferecido pelo GCP Marketplace ou você pode preferir instalar e configurar tudo por conta própria.

O fornecimento de uma biblioteca completa e práticas recomendadas para configurar um site estão além do escopo deste artigo. Entretanto, para configurar uma infraestrutura de veiculação da Web no Compute Engine, do ponto de vista geral técnico, os seguintes itens são necessários:

  • Compreender os requisitos: caso você esteja criando um site, verifique se já sabe quais componentes serão necessários, por exemplo, instâncias, requisitos de armazenamento e infraestrutura de rede. Se o aplicativo está sendo migrado de uma solução existente, provavelmente você já conhece esses requisitos, mas ainda assim precisa pensar em como mapear a configuração atual para os serviços do GCP.
  • Planejar o projeto: pense na arquitetura e elabore o projeto. Seja o mais claro possível.
  • Criar os componentes: os componentes, que geralmente você encara como recursos físicos, por exemplo, computadores e comutadores de rede, são fornecidos pelos serviços do Compute Engine. Para ter um computador, você precisa criar uma instância do Compute Engine. Se você quer um disco rígido permanente, é necessário criá-lo também. Com o Google Cloud Deployment Manager, esse processo se torna fácil e reproduzível.
  • Configurar e personalizar: depois de escolher os componentes, você precisa configurá-los, instalar e configurar o software e, por fim, desenvolver e implantar o código de qualquer personalização necessária. Para replicar a configuração, execute scripts de shell. Isso ajudará a acelerar as futuras implantações. O Cloud Deployment Manager também é útil aqui, porque ele disponibiliza modelos de configuração declarativa e flexível para implantação automática de recursos. Também é possível usar ferramentas de automatização de TI como o Puppet e o Chef.
  • Implantar os recursos: isso se refere às páginas da Web, imagens e assim por diante.
  • Testar: verifique se tudo funciona conforme o esperado.
  • Implantar para a produção: disponibilize seu site para o mundo ver e usar.

Para ajudá-lo a dar os primeiros passos e compreender a configuração manual de instâncias no Compute Engine, faça um ou mais dos seguintes tutoriais:

Como armazenar dados com o Compute Engine

A maioria dos sites precisa de algum tipo de armazenamento. Isso pode ser necessário por vários motivos, por exemplo, para salvar os arquivos de upload dos usuários e, claro, os recursos do site.

No GCP, vários serviços de armazenamento gerenciado são fornecidos, incluindo:

  • um banco de dados SQL no Cloud SQL, baseado no MySQL;
  • duas opções de armazenamento de dados NoSQL: Cloud Datastore e Cloud Bigtable;
  • armazenamento de objetos consistente, escalável e de grande capacidade no Cloud Storage. Ele tem vários modelos:
    • Com o multirregional, você tem máxima disponibilidade e redundância geográfica.
    • Com o regional, você tem máxima disponibilidade e um local de armazenamento específico.
    • O nearline é a escolha de baixo custo ideal para os dados que são acessados com frequência menor do que uma vez por mês.
    • O coldline é opção de custo mais baixo para arquivamento, backup e recuperação de desastre;
  • discos permanentes no Compute Engine, a serem usados como armazenamento principal para as instâncias. No Compute Engine, você encontra os discos permanentes padrão, que são baseados em disco rígido, e os discos permanentes em estado sólido (SSD, na sigla em inglês). Uma outra opção é configurar a tecnologia que você prefere no Compute Engine usando discos permanentes. Por exemplo, é possível configurar o PostgreSQL como banco de dados SQL ou o MongoDB como armazenamento NoSQL. Para entender toda a variedade e benefícios desses serviços no GCP, consulte Como escolher uma opção de armazenamento.

Balanceamento de carga com o Compute Engine

Para qualquer site que opere em escala, o uso das tecnologias de balanceamento de carga para distribuir a carga de trabalho entre os servidores geralmente é um requisito. Ao elaborar a arquitetura dos servidores da Web com carga balanceada no Compute Engine, você tem várias opções disponíveis:

A implantação do balanceamento de carga é flexível, e você pode usar o Compute Engine com suas soluções existentes. Para ver alguns exemplos, consulte as informações no Balanceamento de carga interno com dimensionamento automático usando HAProxy e Consul, sobre como fazer o dimensionamento automático da carga do HAProxy e da camada de servidor de back-end. Para ver informações sobre uma solução possível que pode ser usada no lugar do balanceador de carga do Compute Engine, consulte Balanceamento de carga HTTP(S) usando NGINX.

Distribuição de conteúdo com o Compute Engine

Como o tempo de resposta é uma métrica fundamental para qualquer site, o uso de um CDN para reduzir a latência e aumentar o desempenho geralmente é um requisito, especialmente para um site com tráfego global da Web.

O Google Cloud Content Delivery Network usa os pontos de presença de extremidade do Google distribuídos globalmente para fornecer conteúdo de locais de cache mais próximos aos usuários. O Cloud CDN funciona com o balanceamento de carga HTTP(S). Para veicular conteúdo fora do Google Compute Engine, do Google Cloud Storage ou ambos, de um único endereço IP, basta ativar o Cloud CDN para um balanceador de carga HTTP(S).

Como fazer o escalonamento automático com o Compute Engine

É possível configurar a arquitetura para que os servidores sejam adicionados e removidos de acordo com a demanda. Com essa abordagem, você garante o bom desempenho do site mesmo sob carga de pico e, ao mesmo tempo, mantém os custos sob controle durante os períodos de demanda normal. Com o Compute Engine, você tem um autoescalador que pode ser usado para esse propósito.

O escalonamento automático é um recurso de grupos de instâncias gerenciados. Um grupo de instâncias gerenciado é um pool homogêneo de instâncias de máquinas virtuais, criado a partir de um modelo de instância comum. Um autoescalador adiciona ou remove instâncias nesse grupo. No Compute Engine, você tem os grupos de instâncias gerenciados e não gerenciados, mas somente os gerenciados podem ser usados com um autoescalador. A documentação do Compute Engine contém um guia completo sobre o escalonamento automático.

Para uma visão mais aprofundada sobre o que é necessário para criar um solução de aplicativo da Web escalável e resiliente, consulte Como criar aplicativos da Web escaláveis e resilientes.

Como gerar registros e monitorar com o Compute Engine

O GCP inclui recursos que você usa para monitorar o que acontece no site.

No Google Stackdriver Logging, os registros são coletados e armazenados a partir dos aplicativos e serviços no GCP. Para ver ou exportar esses registros e integrá-los com registros de terceiros, use um agente de geração de registros.

Stackdriver Logging

Com o Google Stackdriver Monitoring, você tem painéis e alertas para o site. Para configurá-lo, use o console do Stackdriver Monitoring. É possível analisar as métricas de desempenho de serviços na nuvem, máquinas virtuais e servidores comuns de código aberto como MongoDB, Apache, Nginx e Elasticsearch. Use a Stackdriver Monitoring API para recuperar os dados de monitoramento e criar métricas personalizadas.

Painel do Stackdriver Monitoring

Como gerenciar DevOps com o Compute Engine

Para informações sobre o gerenciamento das operações e desenvolvimento com o Compute Engine, consulte os seguintes artigos:

Como usar contêineres com o Kubernetes Engine

Talvez você já esteja usando contêineres como os Docker. Para a veiculação na Web, o uso de contêineres traz muitas vantagens:

  • Componentização: você usa contêineres para separar os vários componentes do aplicativo da Web. Por exemplo, imagine um servidor da Web e um banco de dados executados pelo site. Eles podem ficar em contêineres separados, e a modificação e atualização de um deles não afeta o outro. À medida que o desenvolvimento do aplicativo se torna mais complexo, os contêineres se tornam uma boa escolha para uma arquitetura orientada a serviços, incluindo microsserviços. Esse tipo de design oferece escalabilidade, entre outros benefícios.
  • Portabilidade: um contêiner tem tudo o que é preciso para a execução. O aplicativo e as dependências dele são incluídas no mesmo pacote. Você consegue executar os contêineres em várias plataformas, sem se preocupar com os detalhes subjacentes do sistema.
  • Implantação rápida: na hora da implantação, como o sistema foi criado a partir de um conjunto de definições e imagens, as partes podem ser implantadas de modo rápido, confiável e automático. Geralmente, os contêineres são pequenos e podem ser implantados com muita rapidez, se comparados, por exemplo, com as máquinas virtuais.

Com a computação de contêiner no GCP, você tem ainda mais vantagens para a veiculação na Web:

  • Orquestração: o Kubernetes Engine é um serviço gerenciado, criado a partir do Kubernetes, que é o sistema de orquestração de contêineres de código aberto apresentado pelo Google. Com ele, o código é executado nos contêineres que são parte de um cluster composto de instâncias do Compute Engine. Em vez de administrar contêineres individuais ou criar e encerrar cada contêiner manualmente, você gerencia o cluster automaticamente por meio do Kubernetes Engine, que usa a configuração definida por você.
  • Registro de imagem: no Google Container Registry, você tem o armazenamento particular das imagens Docker no GCP. Ele pode ser acessado por meio de um ponto de extremidade HTTPS, ou seja, as imagens são recuperadas em qualquer máquina, seja uma instância do Compute Engine ou o próprio hardware. O serviço de registro hospeda as imagens personalizadas no Cloud Storage, abaixo do projeto do console do GCP. Com essa abordagem, você garante que, por padrão, as imagens personalizadas sejam acessadas apenas pelos membros do projeto.
  • Mobilidade: significa que você tem a flexibilidade para mover e combinar as cargas de trabalho com outros provedores de nuvem, ou misturar as cargas de trabalho de computação na nuvem com implementações locais para criar uma solução híbrida.

Como armazenar dados com o Kubernetes Engine

Como o Kubernetes Engine é executado no GCP e usa instâncias do Compute Engine como nodes, as opções de armazenamento têm bastante em comum com o armazenamento no Compute Engine. É possível acessar o Cloud SQL, Cloud Storage, Cloud Datastore e Cloud Bigtable por meio das respectivas APIs ou, se quiser, usar outro provedor de armazenamento externo. Entretanto, as interações do Kubernetes Engine com os discos permanentes e com uma instância normal do Compute Engine são diferentes.

Uma instância do Compute Engine inclui um disco anexado. Quando você usa o Compute Engine, enquanto a instância existir, o volume permanecerá disponível para ela. Você consegue até mesmo desanexar o disco e usá-lo em uma instância diferente. Por outro lado, em um contêiner, os arquivos no disco são temporários. Quando ele é reiniciado, por exemplo, após uma falha, esses arquivos são perdidos. Para resolver esse problema, uma abstração de volume é usada no Kubernetes e um dos tipos de volume é o gcePersistentDisk. Isso significa que você pode usar os discos permanentes do Compute Engine com contêineres para impedir que seus arquivos de dados sejam excluídos quando você usa o Kubernetes Engine.

Para compreender os recursos e benefícios de um volume, primeiro é preciso entender um pouco sobre os pods. Pense no pod como um host lógico específico do aplicativo para um ou mais contêineres que é executado em uma instância do node. Quando os contêineres são membros de um pod, é possível compartilhar vários recursos, incluindo um conjunto de volumes de armazenamento compartilhados. Com esses volumes, os dados são mantidos quando o contêiner é reiniciado e podem ser compartilhados com os contêineres desse pod. É claro que também é possível ter somente um contêiner e volume em um pod, mas ele é uma abstração obrigatória para conectar esses recursos logicamente.

Para um exemplo, consulte o tutorial Como usar discos permanentes com WordPress e MySQL.

Balanceamento de carga com o Kubernetes Engine

Várias arquiteturas grandes de veiculação na Web requerem múltiplos servidores para compartilhar as demandas do tráfego. Como o Kubernetes Engine permite que você crie e gerencie vários contêineres, nodes e pods com facilidade, é a opção natural para um sistema de serviço da Web com balanceamento de carga.

Como usar o balanceamento de carga de rede

A maneira mais fácil de criar um balanceador de carga no Kubernetes Engine é usar o balanceamento de carga de rede do Compute Engine. Com ele, você faz o balanceamento dos sistemas com base nos dados recebidos de protocolo de Internet (IP, na sigla em inglês) como endereço, porta e tipo de protocolo. O balanceamento de rede usa as regras de encaminhamento. Elas apontam para pools de destino que listam quais instâncias estão disponíveis para serem usadas no balanceamento.

Com o balanceamento de carga de rede, é possível fazer o balanceamento adicional com protocolos baseados em TCP/UDP, por exemplo, o tráfego SMTP, e o aplicativo pode inspecionar os pacotes diretamente.

Para implantar o balanceamento de carga de rede, basta adicionar o campo type: LoadBalancer ao arquivo de configuração do serviço.

Como usar o balanceamento de carga HTTP(S)

Caso precise de outros recursos avançados de gerenciamento de carga, por exemplo, o balanceamento HTTPS, baseado em conteúdo ou entre regiões, é possível integrar o serviço Kubernetes Engine com o recurso de balanceamento HTTP/HTTPS do Compute Engine. No Kubernetes, você tem o recurso Ingress, que encapsula uma coleção de regras de roteamento do tráfego externo para os pontos de extremidade do Kubernetes. No Kubernetes Engine, um recurso Ingress trata o provisionamento e a configuração do balanceador de carga HTTP/HTTPS do Compute Engine.

Para mais informações sobre como usar o balanceamento de carga HTTP/HTTPS no Kubernetes Engine, consulte a documentação.

Como escalonar com o Kubernetes Engine

Para o redimensionamento automático dos clusters, use o Autoescalador de cluster. Essa funcionalidade verifica periodicamente se há pods aguardando um node com recursos livres, mas que ainda não foram programados. Se esse é o caso, o pool de nós é redimensionado no autoescalador, caso esse redimensionamento permita que os pods em espera sejam programados.

No Autoescalador de cluster, o uso de todos os nodes também é monitorado. Quando um node não é necessário por um longo período de tempo, e todos os pods dele podem ser facilmente programados em outro local, esse node é excluído.

Para mais informações sobre o Autoescalador de cluster, as limitações e práticas recomendadas, consulte a documentação do Autoescalador de cluster.

Como registrar e monitorar com o Kubernetes Engine

Assim como no Compute Engine, no Stackdriver Logging e no Stackdriver Monitoring são fornecidos serviços de geração de registros e monitoramento. No Stackdriver Logging, esses registros são coletados e armazenados a partir dos aplicativos e serviços. Para ver ou expor esses registros, e integrá-los com registros de terceiros, use um agente de geração de registros.

No Stackdriver Monitoring, você tem painéis e alertas para o site. Para configurá-lo, use o console do Stackdriver Monitoring. É possível analisar as métricas de desempenho de serviços na nuvem, máquinas virtuais e servidores comuns de código aberto como MongoDB, Apache, Nginx e Elasticsearch. Use a Stackdriver Monitoring API para recuperar os dados de monitoramento e criar métricas personalizadas.

Como gerenciar o DevOps com o Kubernetes Engine

Ao usar o Kubernetes Engine, você já tira proveito de vários benefícios que são considerados importantes para o DevOps, especialmente quando se fala em facilitar o empacotamento, a implantação e o gerenciamento. Para os requisitos da CI/CD, utilize ferramentas conhecidas como o Jenkins. Consulte os seguintes artigos:

Como criar uma plataforma gerenciada com o App Engine

No GCP, a plataforma gerenciada como serviço (PaaS, na sigla em inglês) se chama Google App Engine. Ao criar o site no App Engine, você só precisa se concentrar na codificação dos recursos, e o Google cuida do gerenciamento da infraestrutura de suporte. O App Engine conta com uma grande variedade de recursos que facilitam bastante a escalabilidade, o balanceamento de carga, a geração de registros, o monitoramento e a segurança, o que não aconteceria se você criasse e gerenciasse tudo por conta própria. Com o App Engine, você codifica em várias linguagens de programação, além de usar os outros serviços do GCP com facilidade.

O App Engine tem o ambiente padrão, onde você executa os aplicativos em um ambiente seguro, em sandbox. Nesse ambiente, as solicitações são distribuídas entre vários servidores, e o escalonamento é feito neles para atender às demandas de tráfego. O aplicativo é executado no próprio ambiente seguro e confiável que é independente do hardware, sistema operacional ou local físico do servidor. Para uma arquitetura de amostra de um aplicativo executado nesse ambiente, consulte Arquitetura: aplicativo da Web no Google App Engine.

Aplicativo da Web que usa o App Engine e outros componentes

Para que você tenha mais opções, o ambiente flexível é oferecido no App Engine. Quando você usa esse ambiente, o aplicativo é executado nas instâncias configuráveis do Compute Engine, mas o ambiente de hospedagem é gerenciado pelo App Engine. Isso significa que tempos de execução adicionais podem ser usados, incluindo os personalizados, para que você tenha mais opções de linguagem de programação. Essa flexibilidade também traz outras vantagens no Compute Engine, por exemplo, a escolha de várias opções de CPU e memória.

Linguagens de programação

O ambiente padrão do App Engine fornece tempos de execução padrão, e você grava o código-fonte em versões específicas das linguagens de programação compatíveis.

Com o ambiente flexível, você grava o código-fonte em uma versão de qualquer uma das linguagens de programação compatíveis. Você pode personalizar esses tempos de execução ou fornecer seu próprio tempo de execução com uma imagem do Docker personalizada ou um Dockerfile.

Quando a linguagem de programação é uma questão importante, você precisa verificar se os tempos de execução fornecidos no ambiente padrão do App Engine atendem seus requisitos. Se esse não for o caso, pense em usar o ambiente flexível.

Para determinar qual ambiente atende melhor às necessidades do seu aplicativo, consulte Como escolher um ambiente do App Engine.

Tutoriais de primeiros passos por linguagem

Você dará os primeiros passos no ambiente padrão do App Engine com os seguintes tutoriais:

Você dará os primeiros passos no ambiente flexível do App Engine com os seguintes tutoriais:

Como armazenar dados com o App Engine

No App Engine, você tem estas opções para armazenar os dados:

Nome Estrutura Consistência
Cloud Datastore Sem esquemas Bastante consistente, exceto para executar consultas globais.
Cloud SQL Relacional Bastante consistente.
Cloud Storage Arquivos e metadados associados Bastante consistente, exceto para executar operações de listagem de intervalos ou objetos.

Também é possível usar vários bancos de dados de terceiros com o ambiente padrão.

Para mais detalhes sobre o armazenamento no App Engine, consulte a documentação. Depois de abrir essa página, para selecionar a linguagem de programação preferida, clique no nome dela, na parte superior direita.

No ambiente flexível, todas as opções de armazenamento do ambiente padrão podem ser usadas, assim como uma grande variedade de bancos de dados de terceiros. Para mais informações sobre esses bancos de dados no ambiente flexível, consulte Como usar bancos de dados de terceiros.

Balanceamento de carga e escalonamento automático com o App Engine

Quando você usa o App Engine, o balanceamento de carga e o escalonamento automático são gerenciados automaticamente.

Como gerar registros e monitorar com o App Engine

No Google App Engine, as solicitações são registradas automaticamente e você pode ver esses registros no console do GCP. O App Engine também trabalha com bibliotecas padrão de linguagens específicas, que fornecem a funcionalidade de geração de registros. Ele também encaminha as entradas delas para os registros no console. Por exemplo, é possível usar o módulo padrão de geração de registros no Python e, no Java, a API java.util.logging.Logger.

Com o Stackdriver Monitoring, você tem recursos de monitoramento dos aplicativos no App Engine. Você monitora os incidentes, as verificações de funcionamento e outros detalhes usando o console do GCP.

Como criar sistemas de gerenciamento de conteúdo

Veicular um site significa gerenciar os recursos dele. No Cloud Storage, você tem um repositório global para esses recursos. Em uma arquitetura comum, o conteúdo estático é implantado no Cloud Storage e sincronizado com o Compute Engine para que as páginas dinâmicas sejam renderizadas. O Cloud Storage trabalha com muitos sistemas de gerenciamento de conteúdo de terceiros, como WordPress, Drupal e Joomla. Uma API compatível com S3 também é fornecida, ou seja, qualquer sistema compatível com S3 também trabalha com o Cloud Storage.

Para ver uma arquitetura de amostra de um sistema de gerenciamento de conteúdo, consulte Gerenciamento de conteúdo.

Sistema de gerenciamento de conteúdo no Google Cloud Platform

Próximas etapas

  • Teste outros recursos do Google Cloud Platform. Veja nossos tutoriais.
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…