Este artigo discute como hospedar um site no Google Cloud. O Google Cloud oferece uma plataforma robusta, flexível, confiável e escalonável para servir sites. O Google construiu o Google Cloud usando a mesma infraestrutura que o Google usa para fornecer conteúdo de sites como Google.com, YouTube e Gmail. Você pode servir o conteúdo do seu site usando o tipo e design de infraestrutura que melhor atende às suas necessidades Você pode achar este artigo útil se você for: - Conhecimento sobre como criar um site e ter implantado e executado alguma infraestrutura de serviço da web antes - Avaliar se e como migrar seu site para o Google Cloud Se você deseja criar um site simples, considere usar o Google Sites, uma ferramenta estruturada de criação de páginas da Web e wiki. Para obter mais informações, visite a ajuda do Sites ## Escolhendo uma opção Se você é novo no uso do Google Cloud, é uma abordagem razoável começar usando o tipo de tecnologia com a qual você já está familiarizado. Por exemplo, se você atualmente usa servidores de hardware ou máquinas virtuais (VMs) para hospedar seu site, talvez com outro provedor de nuvem ou em seu próprio hardware, o Compute Engine fornece um paradigma familiar para você. Se você já usa uma oferta de plataforma como serviço (PaaS), como Heroku ou Engine Yard, o App Engine pode ser o melhor lugar para começar. Se você prefere computação sem servidor, o Cloud Run provavelmente é uma boa opção para você Depois de se familiarizar com o Google Cloud, você pode explorar a riqueza de produtos e serviços que o Google Cloud oferece. Por exemplo, se você começou usando o Compute Engine, pode aumentar os recursos do seu site usando o Google Kubernetes Engine (GKE) ou migrar parte ou toda a funcionalidade para o App Engine e o Cloud Run A tabela a seguir resume suas opções de hospedagem no Google Cloud: |Opção||Produto||Armazenamento de dados||Balanceamento de carga||Escalabilidade||Log e monitoramento| |Site estático|| | Armazenamento na núvem Hospedagem Firebase |Depósito de armazenamento em nuvem|| | HTTP(S) opcional |Automaticamente| |Máquinas virtuais||Compute Engine|| | Cloud SQL Admin API, Cloud Storage API, Datastore API e Cloud Bigtable API, ou você pode usar outro provedor de armazenamento externo Discos permanentes baseados em disco rígido, chamados | | HTTP(S) Proxy TCP Proxy SSL terminação IPv6 Rede Entre regiões interno |Automaticamente com grupos de instâncias gerenciadas| |Contêineres||GKE||Semelhante ao Compute Engine, mas interage com discos permanentes de maneira diferente||Rede | HTTP(S) |Escalador automático de cluster| |Plataforma gerenciada|| | App Engine |Serviços do Google Cloud, como Cloud SQL, Firestore, Cloud Storage e bancos de dados acessíveis de terceiros|| | HTTP(S) Gerenciado pelo Google |Gerenciado pelo Google| |Sem servidor|| | Cloud Run |Serviços do Google Cloud, como Cloud SQL, Firestore, Cloud Storage e bancos de dados acessíveis de terceiros|| | HTTP(S) Gerenciado pelo Google |Gerenciado pelo Google| Este artigo pode ajudar você a entender as principais tecnologias que podem ser usadas para veiculação da Web no Google Cloud e dar uma ideia de como as tecnologias funcionam. O artigo fornece links para documentação completa, tutoriais e artigos de soluções que podem ajudá-lo a obter uma compreensão mais profunda, quando estiver pronto ## Entendendo os custos Como há muitas variáveis ​​e cada implementação é diferente, está além do escopo deste artigo fornecer conselhos específicos sobre custos. Para entender os princípios do Google sobre como os preços funcionam no Google Cloud, consulte a página de preços. Para entender os preços de serviços individuais, consulte a seção de preços do produto. Você também pode usar a calculadora de preços para estimar como seria o uso do Google Cloud. Você pode fornecer detalhes sobre os serviços que deseja usar e ver uma estimativa de preços ## Configurando serviços de nome de domínio Normalmente, você desejará registrar um nome de domínio para seu site. Você pode usar um registrador de nomes de domínio público, como o Google Domains, para registrar um nome exclusivo para seu site. Se você deseja controle total de seu próprio sistema de nome de domínio (DNS), pode usar o Cloud DNS para servir como seu provedor de DNS. A documentação do Cloud DNS inclui um início rápido para ajudá-lo Se você tiver um provedor de DNS existente que deseja usar, geralmente precisará crie alguns registros com esse provedor. Para um nome de domínio como example.com, você cria um Um registro com seu provedor de DNS. Para o subdomínio www.example.com, você cria um registro CNAME para www para apontar isso para o domínio example.com. o Um registro mapeia um nome de host para um endereço IP o O registro CNAME cria um alias para o Uma gravação Se o seu registrador de nomes de domínio também for seu provedor de DNS, isso provavelmente é tudo o que você precisa fazer. Se você usar provedores separados para registro e DNS, certifique-se de que seu registrador de nomes de domínio tenha os servidores de nomes corretos associados ao seu domínio Depois de fazer as alterações de DNS, as atualizações de registro podem levar algum tempo para se propagar, dependendo dos valores de tempo de vida (TTL) em sua zona. Se este for um novo nome de host, as alterações entrarão em vigor rapidamente porque os resolvedores de DNS não têm valores anteriores em cache e podem entrar em contato com o provedor de DNS para obter as informações necessárias para rotear solicitações ## Hospedando um site estático A maneira mais simples de servir o conteúdo do site por HTTP(S) é hospedar *páginas da web estáticas*. Páginas da web estáticas são servidas inalterados, como foram escritos, geralmente usando HTML. Usando um site estático é uma boa opção se as páginas do seu site raramente mudam depois de terem sido publicado, como postagens de blog ou páginas que fazem parte de uma pequena empresa local na rede Internet. Você pode fazer muito com páginas da web estáticas, mas se precisar que seu site ter interações robustas com usuários por meio de código do lado do servidor, você deve considere as outras opções discutidas neste artigo Hospedando um site estático com Cloud Storage Para hospedar um site estático no Cloud Storage, você precisa criar um balde de armazenamento em nuvem, carregue o conteúdo e teste seu novo site. Você pode servir seus dados diretamente de storage.googleapis.com, ou você pode verifique se você é o proprietário do seu domínio E use seu nome de domínio Você pode criar suas páginas da Web estáticas como quiser. Por exemplo, você poderia páginas de autoria manual usando HTML e CSS. Você pode usar um *gerador de site estático*, tal como Jekyll, Fantasma, ou Hugo, para criar o conteúdo Com geradores de sites estáticos, você cria um site estático autoria em remarcação, e fornecendo modelos e ferramentas. Geradores de sites geralmente forneça um servidor da Web local que você possa usar para visualizar seu conteúdo Depois que seu site estático estiver funcionando, você poderá atualizar as páginas estáticas usando qualquer processo que você gosta. Esse processo pode ser tão direto quanto copiar manualmente um página atualizada para o bucket. Você pode optar por usar uma abordagem mais automatizada, como armazenar seu conteúdo no GitHub e, em seguida, usar um webhook executar um script que atualiza o bucket. Um sistema ainda mais avançado pode usar um ferramenta de integração contínua/entrega contínua (CI/CD), como Jenkins, para atualizar o conteúdo do balde. Jenkins tem um armazenamento em nuvem plugar que fornece um Etapa pós-compilação do Google Cloud Storage Uploader para publicar a compilação artefatos para Cloud Storage Se você tiver um aplicativo da Web que precisa fornecer conteúdo estático ou mídia estática carregada pelo usuário, usar o Cloud Storage pode ser uma maneira econômica e eficiente de hospedar e fornecer esse conteúdo, reduzindo a quantidade de solicitações dinâmicas para seu aplicativo da Web Além disso, o Cloud Storage pode aceitar diretamente o conteúdo enviado pelo usuário. Esse recurso permite que os usuários carreguem grandes arquivos de mídia de forma direta e segura, sem proxy por meio de seus servidores Para obter o melhor desempenho de seu site estático, consulte as práticas recomendadas para armazenamento em nuvem Para mais informações, consulte as seguintes páginas: - Hospedar um site estático - J é para Jenkins (postagem no blog) - Band Aid 30 no Google Cloud (postagem do blog) - Documentação de armazenamento em nuvem Hospedando um site estático com o Firebase Hosting O Firebase Hosting fornece hospedagem estática rápida e segura para seu aplicativo da web. Com o Firebase Hosting, você pode implantar aplicativos da Web e conteúdo estático em uma rede global de distribuição de conteúdo (CDN) usando um único comando Aqui estão alguns benefícios que você obtém ao usar o Firebase Hosting: - O SSL de configuração zero é integrado ao Firebase Hosting. Fornece certificados SSL em domínios personalizados gratuitamente - Todo o seu conteúdo é servido por HTTPS - Seu conteúdo é entregue aos seus usuários a partir das bordas da CDN em todo o mundo - Usando o Firebase CLI, você pode colocar seu aplicativo em funcionamento em segundos. Use ferramentas de linha de comando para adicionar destinos de implantação ao seu processo de compilação - Você obtém recursos de gerenciamento de lançamento, como implantação atômica de novos ativos, versão completa e reversões com um clique - A hospedagem oferece uma configuração útil para aplicativos de página única e outros sites mais parecidos com aplicativos - A hospedagem foi criada para ser usada perfeitamente com outros recursos do Firebase Para mais informações, consulte as seguintes páginas: ## Como usar máquinas virtuais com o Compute Engine Para casos de uso de infraestrutura como serviço (IaaS), o Google Cloud fornece o Compute Engine. O Compute Engine fornece uma infraestrutura de computação robusta, mas você deve escolher e configurar os componentes da plataforma que deseja usar. Com o Compute Engine, é sua responsabilidade configurar, administrar e monitorar os sistemas. O Google garante que os recursos estejam disponíveis, confiáveis ​​e prontos para uso, mas cabe a você provisioná-los e gerenciá-los. A vantagem, aqui, é que você tem controle total dos sistemas e flexibilidade ilimitada Use o Compute Engine para projetar e implantar praticamente qualquer sistema de veiculação de site que você desejar. Você pode usar VMs, chamadas de instâncias, para criar seu aplicativo, da mesma forma que faria se tivesse sua própria infraestrutura de hardware. O Compute Engine oferece uma variedade de tipos de máquinas para personalizar sua configuração para atender às suas necessidades e ao seu orçamento. Você pode escolher quais sistemas operacionais, pilhas de desenvolvimento, idiomas, estruturas, serviços e outras tecnologias de software de sua preferência Configurando automaticamente com o Google Cloud Marketplace A maneira mais fácil de implantar uma pilha completa de serviço da Web é usando o Google Cloud Marketplace. Com apenas alguns cliques, você pode implantar qualquer uma das mais de 100 soluções totalmente realizadas com Google Click to Deploy ou Bitnami Por exemplo, você pode configurar uma pilha LAMP ou WordPress com Cloud Marketplace. O sistema implanta uma pilha de software completa e funcional em apenas alguns minutos em uma única instância. Antes de implantar, o Cloud Marketplace mostra estimativas de custo para executar o site, fornece informações claras sobre quais versões dos componentes de software ele instala para você e permite que você personalize sua configuração alterando nomes de instância de componente, escolhendo o tipo de máquina e escolhendo um tamanho de disco. Depois de implantar, você tem controle total sobre as instâncias do Compute Engine, suas configurações e o software Configurando manualmente Você também pode criar sua infraestrutura no Compute Engine manualmente, criando sua configuração do zero ou com base em uma implantação do Google Cloud Marketplace. Por exemplo, você pode querer usar uma versão de um componente de software não oferecido pelo Cloud Marketplace, ou talvez prefira instalar e configurar tudo por conta própria Fornecer uma estrutura completa e práticas recomendadas para configurar um site está além do escopo deste artigo. Mas, de uma visão de alto nível, o lado técnico da configuração de uma infraestrutura de serviço da Web no Compute Engine exige que você: Entenda os requisitos. Se você estiver criando um novo site, certifique-se de entender os componentes necessários, como instâncias, necessidades de armazenamento e infraestrutura de rede.Se você estiver migrando seu aplicativo de uma solução existente, provavelmente já entende esses requisitos, mas precisa pensar em como sua configuração existente é mapeada para os serviços do Google Cloud.Planeje o projeto.Pense em sua arquitetura e anote seu design.Seja o mais explícito possível.Crie os componentes.Os componentes que você normalmente considera ativos físicos, como computadores e comutadores de rede, são fornecidos por meio de serviços no Compute Engine.Por exemplo, se você deseja um computador, precisa criar uma instância do Compute Engine.Se você deseja uma unidade de disco rígido persistente, crie-a também.Cloud Deployment Manager ou Terraform torna este processo fácil e repetível.Configure e personalize.Depois de ter os componentes desejados, você precisa configurá-los, instalar e configurar o software e escrever e implantar qualquer código de personalização necessário.Você pode replicar a configuração executando scripts de shell, o que ajuda a acelerar implantações futuras.O Deployment Manager também ajuda aqui, fornecendo modelos de configuração declarativos e flexíveis para implantação automática de recursos.Você também pode aproveitar as ferramentas de automação de TI, como Puppet e Chef.Implante os ativos.Presumivelmente, você tem páginas da web e imagens.Teste.Verifique se tudo funciona conforme o esperado.Implantar para produção.Abra seu site para o mundo ver e usarPara ajudá-lo a começar e entender como é configurar instâncias do Compute Engine manualmente, tente um ou mais dos os seguintes tutoriais:Como armazenar dados com o Compute Engine A maioria dos sites precisa de algum tipo de armazenamento. Você pode precisar de armazenamento por vários motivos, como salvar arquivos que seus usuários carregam e, claro, os ativos que seu site usa O Google Cloud oferece uma variedade de serviços de armazenamento gerenciado, incluindo: - Um banco de dados SQL no Cloud SQL, baseado em MySQL - Duas opções para armazenamento de dados NoSQL: Firestore e Cloud Bigtable - Armazenamento de objetos consistente, escalável e de grande capacidade em Armazenamento na núvem Cloud Storage vem em várias classes: - Padrão fornece disponibilidade máxima - Nearline oferece uma opção de baixo custo ideal para dados acessados ​​menos de uma vez por mês - Coldline oferece uma escolha de baixo custo ideal para dados acessados ​​menos de uma vez por trimestre - Archive fornece a opção de menor custo para arquivamento, backup e recuperação de desastres - Discos permanentes no Compute Engine para uso como armazenamento primário para suas instâncias. ofertas do Compute Engine ambos os discos permanentes baseados em disco rígido, chamados discos permanentes padrão e discos permanentes de estado sólido (SSD). Você também pode optar por configurar sua tecnologia de armazenamento preferida no Compute Engine usando discos permanentes. Por exemplo, você pode configurar o PostgreSQL como seu banco de dados SQL ou o MongoDB como seu armazenamento NoSQL. Para entender toda a gama e benefícios dos serviços de armazenamento no Google Cloud, consulte Como escolher uma opção de armazenamento Balanceamento de carga com o Compute Engine Para qualquer site que opere em escala, o uso de tecnologias de balanceamento de carga para distribuir a carga de trabalho entre os servidores costuma ser um requisito. Você tem várias opções ao arquitetar seus servidores da Web com balanceamento de carga no Compute Engine, incluindo: - Balanceamento de carga HTTP(S) Explica os fundamentos do uso do Cloud Load Balancing - Balanceamento de carga baseado em conteúdo. Demonstra como distribuir o tráfego para diferentes instâncias com base na URL de entrada - Balanceamento de carga entre regiões. Demonstra a configuração de instâncias de VM em diferentes regiões e o uso de balanceamento de carga HTTP ou HTTPS para distribuir o tráfego entre as regiões - Balanceamento de carga do Proxy TCP. Demonstra a configuração do balanceamento de carga do Proxy TCP global para um serviço que existe em várias regiões - Balanceamento de carga do Proxy SSL. Demonstra a configuração do balanceamento de carga do Proxy SSL global para um serviço que existe em várias regiões - Terminação IPv6 para balanceamento de carga HTTP(S), Proxy SSL e Proxy TCP. Explica a terminação IPv6 e as opções para configurar balanceadores de carga para lidar com solicitações IPv6 - Balanceamento de carga de rede. Mostra um cenário básico que define uma configuração de balanceamento de carga de camada 3 para distribuir o tráfego HTTP em instâncias íntegras - Balanceamento de carga entre regiões usando back-ends Microsoft IIS. Mostra como usar o balanceador de carga do Compute Engine para distribuir tráfego para servidores Microsoft Internet Information Services (IIS) - Configurando o balanceamento de carga interno Você pode configurar um balanceador de carga que distribui o tráfego de rede em uma rede privada que não está exposta à Internet. O balanceamento de carga interno é útil não apenas para aplicativos de intranet em que todo o tráfego permanece em uma rede privada, mas também para aplicativos da Web complexos em que um front-end solicita servidores de back-end usando uma rede privada A implantação do balanceamento de carga é flexível e você pode usar o Compute Engine com suas soluções existentes. Por exemplo, balanceamento de carga HTTP(S) usando Nginx é uma solução possível que você pode usar no lugar do balanceador de carga do Compute Engine Distribuição de conteúdo com o Compute Engine Como o tempo de resposta é uma métrica fundamental para qualquer site, usar um CDN para diminuir a latência e aumentar o desempenho costuma ser um requisito, especialmente para um site com tráfego global da web O Cloud CDN usa os pontos de presença distribuídos globalmente do Google para fornecer conteúdo de locais de cache mais próximos dos usuários. O Cloud CDN funciona com balanceamento de carga HTTP(S). Para fornecer conteúdo do Compute Engine, Cloud Storage ou ambos de um único endereço IP, ative o Cloud CDN para um balanceador de carga HTTP(S) Escalonamento automático com o Compute Engine Você pode configurar sua arquitetura para adicionar e remover servidores conforme a demanda varia. Essa abordagem pode ajudar a garantir que seu site tenha um bom desempenho sob carga de pico, mantendo os custos sob controle durante os períodos de demanda mais típicos. O Compute Engine fornece um escalonador automático que você pode usar para essa finalidade O escalonamento automático é um recurso de grupos de instâncias gerenciadas. Um grupo de instâncias gerenciadas é um pool de instâncias de máquina virtual homogêneas, criadas a partir de um modelo de instância comum. Um escalonador automático adiciona ou remove instâncias em um grupo de instâncias gerenciadas. Embora o Compute Engine tenha grupos de instâncias gerenciadas e não gerenciadas, você só pode usar grupos de instâncias gerenciadas com um escalonador automático. Para mais informações, consulte escalonamento automático no Compute Engine Para uma visão aprofundada do que é necessário para criar uma solução de aplicativo da web escalável e resiliente, consulte Construindo aplicativos da web escaláveis ​​e resilientes Geração de registros e monitoramento com o Compute Engine O Google Cloud inclui recursos que você pode usar para acompanhar o que está acontecendo com seu site O Cloud Logging coleta e armazena registros de aplicativos e serviços no Google Cloud. Você pode visualizar ou exportar logs e integrar logs de terceiros usando um agente de registro O Cloud Monitoring fornece painéis e alertas para o seu site. Você configura o monitoramento com o console do Google Cloud. Você pode revisar as métricas de desempenho para serviços em nuvem, máquinas virtuais e servidores de código aberto comuns, como MongoDB, Apache, Nginx e Elasticsearch. Você pode usar a API Cloud Monitoring para recuperar dados de monitoramento e criar métricas personalizadas O Cloud Monitoring também fornece verificações de tempo de atividade, que enviam solicitações aos seus sites para ver se elas respondem. Você pode monitorar a disponibilidade de um site implantando uma política de alerta que cria um incidente se a verificação de tempo de atividade falhar Como gerenciar o DevOps com o Compute Engine Para obter informações sobre como gerenciar o DevOps com o Compute Engine, consulte os seguintes artigos: - Teste de carga distribuída usando Kubernetes - Executando o Spinnaker no Compute Engine - Gerenciamento de implantações no Google Cloud com Spinnaker ## Como usar contêineres com GKE Talvez você já esteja usando contêineres, como contêineres do Docker. Para serviço na web, os contêineres oferecem várias vantagens, incluindo: Componentização. Você pode usar contêineres para separar os vários componentes do seu aplicativo da web. Por exemplo, suponha que seu site execute um servidor web e um banco de dados. Você pode executar esses componentes em contêineres separados, modificando e atualizando um componente sem afetar o outro. À medida que o design do seu aplicativo se torna mais complexo, os contêineres são uma boa opção para uma arquitetura orientada a serviços, incluindo microsserviços. Esse tipo de design suporta escalabilidade, entre outros objetivos. Portabilidade. Um contêiner tem tudo o que precisa para executar seu aplicativo e suas dependências são agrupadas. Você pode executar seus contêineres em várias plataformas, sem se preocupar com os detalhes do sistema subjacente. Desenvolvimento rápido. Quando é hora de implantar, seu sistema é construído a partir de um conjunto de definições e imagens, para que as partes possam ser implantadas de forma rápida, confiável e automática. Os contêineres geralmente são pequenos e implantados muito mais rapidamente em comparação com, por exemplo, máquinas virtuais A computação de contêiner no Google Cloud oferece ainda mais vantagens para o serviço da Web, incluindo: Orquestração. O GKE é um serviço gerenciado criado no Kubernetes, o sistema de orquestração de contêineres de código aberto introduzido pelo Google. Com o GKE, seu código é executado em contêineres que fazem parte de um cluster composto por instâncias do Compute Engine. Em vez de administrar contêineres individuais ou criar e encerrar cada contêiner manualmente, você pode gerenciar automaticamente o cluster por meio do GKE, que usa a configuração definida por você. Registro de imagem. O Container Registry ou o Artifact Registry fornecem armazenamento privado para imagens do Docker no Google Cloud. Você pode acessar o registro por meio de um ponto de extremidade HTTPS para extrair imagens de qualquer máquina, seja uma instância do Compute Engine ou seu próprio hardware. O serviço de registro hospeda suas imagens personalizadas no Cloud Storage em seu projeto do Google Cloud. Essa abordagem garante, por padrão, que suas imagens personalizadas sejam acessíveis apenas pelos principais que têm acesso ao seu projeto. Mobilidade. Isso significa que você tem flexibilidade para mover e combinar cargas de trabalho com outros provedores de nuvem ou combinar cargas de trabalho de computação em nuvem com implementações locais para criar uma solução híbrida Como armazenar dados com o GKE Como o GKE é executado no Google Cloud e usa instâncias do Compute Engine como nós, suas opções de armazenamento têm muito em comum com o armazenamento no Compute Engine. Você pode acessar Cloud SQL, Cloud Storage, Datastore e Bigtable por meio de suas APIs ou pode usar outro provedor de armazenamento externo, se desejar. No entanto, o GKE interage com os discos permanentes do Compute Engine de maneira diferente do que uma instância normal do Compute Engine faria Uma instância do Compute Engine inclui um disco anexado. quando você usa Compute Engine, enquanto a instância existir, o volume do disco permanecerá com a instância. Você pode até mesmo desconectar o disco e usá-lo com outro instância.Mas em um contêiner, os arquivos em disco são efêmeros.Quando um contêinerreinicia, como após uma falha, os arquivos em disco são perdidos.O Kubernetes resolveesse problema usando uma abstração devolumee um tipo de volume égcePersistentDiskIsso significa que você pode usar discos permanentes do Compute Engine com contêineres paraimpedir que seus arquivos de dados sejam excluídos ao usar o GKEPara entender os recursos e benefícios de um volume , primeiro você deve entender um pouco sobre os pods.Você pode pensar em um pod como um host lógico específico do aplicativo para um ou mais contêineres.Um pod é executado em uma instância de nó.Quando os contêineres são membros de um pod, eles podem compartilhar vários recursos, incluindo um conjunto de volumes de armazenamento compartilhado.Esses volumes permitem que os dados sobrevivam às reinicializações do contêiner e sejam compartilhados entre os contêineres dentro do pod.Claro, você também pode usar um único contêiner e volume em um pod, mas o pod é uma abstração necessária para conectar logicamente esses recursos uns aos outrosPara um exemplo , consulte o tutorial Usando discos permanentes com WordPress e MySQLBalanceamento de carga com GKEMuitas grandes arquiteturas de serviço da Web precisam ter vários servidores em execução que possam compartilhar as demandas de tráfego.Como você pode criar e gerenciar vários contêineres, nós e pods com o GKE, é uma opção natural para um sistema de serviço da Web com balanceamento de cargaUsando balanceamento de carga de redeA maneira mais fácil de criar um balanceador de carga no GKE é usar o balanceamento de carga de rede do Compute Engine.O balanceamento de carga de rede pode balancear a carga de seus sistemas com base nos dados recebidos do protocolo da Internet, como endereço, porta e tipo de protocolo.O balanceamento de carga de rede usa regras de encaminhamento.Essas regras apontam para pools de destino que listam quais instâncias estão disponíveis para serem usadas para balanceamento de carga Com o balanceamento de carga de rede, você pode balancear a carga de protocolos baseados em TCP/UDP adicionais, como o tráfego SMTP, e seu aplicativo pode inspecionar diretamente os pacotes Você pode implantar o balanceamento de carga de rede simplesmente adicionando o tipo: LoadBalancer campo ao seu arquivo de configuração de serviço Usando balanceamento de carga HTTP(S) Se você precisar de recursos de balanceamento de carga mais avançados, como balanceamento de carga HTTPS, balanceamento de carga baseado em conteúdo ou balanceamento de carga entre regiões, poderá integrar seu serviço GKE com o recurso de balanceamento de carga HTTP/HTTPS do Compute Engine. O Kubernetes fornece o recurso Ingress que encapsula uma coleção de regras para rotear o tráfego externo para os endpoints do Kubernetes. No GKE, um recurso Ingress processa o provisionamento e a configuração do balanceador de carga HTTP/HTTPS do Compute Engine Para obter mais informações sobre como usar o balanceamento de carga HTTP/HTTPS no GKE, consulte Como configurar o balanceamento de carga HTTP com o Ingress Como escalonar com o GKE Para redimensionamento automático de clusters, você pode usar o Cluster Autoscaler. Este recurso verifica periodicamente se existem pods que estão esperando por um nó com recursos livres, mas não estão sendo agendados. Se esses pods existirem, o dimensionador automático redimensionará o pool de nós se o redimensionamento permitir que os pods em espera sejam agendados Cluster Autoscaler também monitora o uso de todos os nós. Se um nó não for necessário por um longo período de tempo e todos os seus pods puderem ser agendados em outro lugar, o nó será excluído Para obter mais informações sobre o Cluster Autoscaler, suas limitações e práticas recomendadas, consulte a documentação do Cluster Autoscaler Geração de registros e monitoramento com o GKE Assim como no Compute Engine, o Logging and Monitoring fornece seus serviços de registro e monitoramento. Logging coleta e armazena logs de aplicativos e serviços. Você pode visualizar ou exportar logs e integrar logs de terceiros usando um agente de registro O monitoramento fornece painéis e alertas para o seu site. Você configura o monitoramento com o console do Google Cloud. Você pode revisar as métricas de desempenho para serviços em nuvem, máquinas virtuais e servidores de código aberto comuns, como MongoDB, Apache, Nginx e Elasticsearch. Você pode usar a API de monitoramento para recuperar dados de monitoramento e criar métricas personalizadas Gerenciando DevOps com GKE Ao usar o GKE, você já obtém muitos dos benefícios que a maioria das pessoas pensa quando pensa em DevOps. Isso é especialmente verdadeiro quando se trata de facilidade de empacotamento, implantação e gerenciamento. Para suas necessidades de fluxo de trabalho de CI/CD, você pode aproveitar ferramentas populares como Jenkins. Veja os seguintes artigos: ## Como criar uma plataforma gerenciada com o App Engine No Google Cloud, a plataforma gerenciada como serviço (PaaS) é chamada de App Engine. Ao criar seu website no App Engine, você se concentra na codificação de seus recursos e deixa o Google se preocupar com o gerenciamento da infraestrutura de suporte. O App Engine fornece uma ampla variedade de recursos que tornam a escalabilidade, o balanceamento de carga, o registro, o monitoramento e a segurança muito mais fáceis do que se você tivesse que criar e gerenciá-los sozinho. O App Engine permite que você codifique em várias linguagens de programação e pode usar vários outros serviços do Google Cloud O App Engine fornece o ambiente padrão, que permite executar aplicativos em um ambiente seguro e em área restrita. O ambiente padrão do App Engine distribui solicitações em vários servidores e dimensiona os servidores para atender às demandas de tráfego. Seu aplicativo é executado em seu próprio ambiente seguro e confiável, independente do hardware, sistema operacional ou localização física do servidor Para oferecer mais opções, o App Engine oferece um ambiente flexível. Quando você usa o ambiente flexível, seu aplicativo é executado em instâncias configuráveis ​​do Compute Engine, mas o App Engine gerencia o ambiente de hospedagem para você. Isso significa que você pode usar tempos de execução adicionais, incluindo tempos de execução personalizados, para mais opções de linguagem de programação. Você também pode aproveitar parte da flexibilidade que o Compute Engine oferece, como escolher entre uma variedade de 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ê escreve o código-fonte em versões específicas das linguagens de programação compatíveis Com o ambiente flexível, você escreve o código-fonte em uma versão de qualquer uma das linguagens de programação suportadas. Você pode personalizar esses tempos de execução ou fornecer seu próprio tempo de execução com uma imagem Docker personalizada ou Dockerfile Se a linguagem de programação que você usa é uma preocupação principal, você precisa decidir se os tempos de execução fornecidos pelo ambiente padrão do App Engine atendem aos seus requisitos. Caso contrário, você deve considerar o uso do 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 idioma Os tutoriais a seguir podem ajudar você a começar a usar o ambiente padrão do App Engine: - Olá mundo em Python - Olá mundo em Java - Olá Mundo em PHP - Olá Mundo em Ruby - Olá mundo em Go - Olá mundo em Node.js Os tutoriais a seguir podem ajudá-lo a começar a usar o ambiente flexível: - Introdução ao Python - Introdução ao Java - Introdução ao PHP - Introdução ao Go - Introdução ao Node.js - Introdução ao Ruby - Introdução ao .NET Como armazenar dados com o App Engine O App Engine oferece opções para armazenar seus dados: |Nome||Estrutura||Consistência| |Firestore||Sem esquema||Extremamente consistente.| |Cloud SQL||Relacional||Extremamente consistente.| |Armazenamento em nuvem||Arquivos e seus metadados associados||Fortemente consistente, exceto ao executar operações de lista que obtêm uma lista de depósitos ou objetos.| Você também pode usar vários bancos de dados de terceiros com o ambiente padrão Para obter mais detalhes sobre armazenamento no App Engine, consulte Escolher uma opção de armazenamento e, em seguida, selecione sua linguagem de programação preferida Ao usar o ambiente flexível, você pode usar todas as mesmas opções de armazenamento do ambiente padrão e também uma variedade maior de bancos de dados de terceiros. Para obter mais informações sobre bancos de dados de terceiros no ambiente flexível, consulte Usando bancos de dados de terceiros Balanceamento de carga e escalonamento automático com o App Engine Por padrão, o App Engine encaminha automaticamente as solicitações recebidas para as instâncias de back-end apropriadas e faz o balanceamento de carga para você. No entanto, se você quiser aproveitar os recursos de balanceamento de carga HTTP(S) de nível empresarial completo do Google Cloud, você pode usar grupos de endpoints de rede sem servidor Para dimensionamento, o App Engine pode criar e desativar instâncias automaticamente conforme o tráfego flutua, ou você pode especificar um número de instâncias a serem executadas independentemente da quantidade de tráfego Registro e monitoramento com o App Engine No App Engine, as solicitações são registradas automaticamente e você pode visualizá-las logs no console do Google Cloud. O App Engine também funciona com bibliotecas padrão específicas de linguagem que fornecem funcionalidade de registro e encaminha as entradas de registro para os registros no console do Google Cloud. Por exemplo, em Python você pode usar o módulo de log Python padrão e em Java você pode integrar o logback appender ou java.util.logging com registro em nuvem. Essa abordagem habilita todos os recursos do Cloud Logging e requer apenas algumas linhas de código específico do Google Cloud O Cloud Monitoring fornece recursos para monitorar seus aplicativos do App Engine. Por meio do console do Google Cloud, você pode monitorar incidentes, verificações de tempo de atividade e outros detalhes ## Como criar uma plataforma sem servidor com o Cloud Run A plataforma sem servidor do Google Cloud permite que você escreva o código do seu jeito sem se preocupar com a infraestrutura subjacente. Você pode criar aplicativos sem servidor de pilha completa com armazenamento, bancos de dados, aprendizado de máquina e muito mais do Google Cloud Para seus sites conteinerizados, você também pode implantá-los no Cloud Run, além de usar o GKE. O Cloud Run é uma plataforma sem servidor totalmente gerenciada que permite executar aplicativos em contêineres altamente escalonáveis ​​no Google Cloud. Você só paga pelo tempo em que seu código é executado Usando contêineres com o Cloud Run, você pode aproveitar tecnologias maduras, como Nginx, Express.js e Django, para criar seus sites, acessar seu banco de dados SQL no Cloud SQL e renderizar páginas HTML dinâmicas A documentação do Cloud Run inclui um início rápido para você começar Como armazenar dados com o Cloud Run Os contêineres do Cloud Run são efêmeros e você precisa entender suas cotas e limites para seus casos de uso. Os arquivos podem ser armazenados temporariamente para processamento em uma instância de contêiner, mas esse armazenamento sai da memória disponível para o serviço, conforme descrito no contrato de tempo de execução Para armazenamento persistente, semelhante ao App Engine, você pode escolher os serviços do Google Cloud, como Cloud Storage, Firestore ou Cloud SQL. Como alternativa, você também pode usar uma solução de armazenamento de terceiros Balanceamento de carga e escalonamento automático com o Cloud Run Por padrão, quando você cria no Cloud Run, ele encaminha automaticamente as solicitações recebidas para os contêineres de back-end apropriados e faz o balanceamento de carga para você. No entanto, se você quiser aproveitar os recursos de balanceamento de carga HTTP(S) de nível empresarial completo do Google Cloud, você pode usar grupos de endpoints de rede sem servidor Com o balanceamento de carga HTTP(S), você pode ativar o Cloud CDN ou atender ao tráfego de várias regiões. Além disso, você pode usar middleware como o API Gateway para aprimorar seu serviço Para o Cloud Run, o Google Cloud gerencia o escalonamento automático da instância de contêiner para voce. Cada revisão é dimensionado automaticamente para o número de instâncias de contêiner necessárias para lidar todas as solicitações recebidas. Quando uma revisão não recebe nenhum tráfego, por padrão ele é dimensionado para zero instâncias de contêiner. No entanto, se desejar, você pode altere este padrão para especificar uma instância a ser mantida ociosa ou *quente* usando a configuração mínima de instâncias Registro e monitoramento com o Cloud Run O Cloud Run tem dois tipos de registros, que são enviados automaticamente para o Cloud Logging: - Logs de solicitação: logs de solicitações enviadas aos serviços do Cloud Run. Esses logs são criados automaticamente - Logs de contêiner: logs emitidos das instâncias de contêiner, geralmente de seu próprio código, gravados em locais com suporte, conforme descrito em Gravando logs de contêiner Você pode visualizar os logs do seu serviço de duas maneiras: - Use a página do Cloud Run no console do Google Cloud - Use o Cloud Logging Logs Explorer no console do Google Cloud Ambos os métodos de visualização examinam os mesmos registros armazenados no Cloud Logging, mas o Explorador de registros fornece mais detalhes e mais recursos de filtragem O Cloud Monitoring fornece monitoramento de desempenho, métricas e verificações de tempo de atividade do Cloud Run, além de alertas para enviar notificações quando determinados limites de métrica são excedidos. Os preços do pacote de operações do Google Cloud se aplicam, o que significa que não há cobrança por métricas na versão totalmente gerenciada do Cloud Run. Observe que você também pode usar métricas personalizadas do Cloud Monitoring O Cloud Run é integrado ao Cloud Monitoring *sem instalação ou configuração necessária*. Isso significa que as métricas do seu Os serviços do Cloud Run são capturados automaticamente quando estão em execução ## Construindo sistemas de gerenciamento de conteúdo Servir um site significa gerenciar os ativos do site. O Cloud Storage fornece um repositório global para esses ativos. Uma arquitetura comum implanta conteúdo estático no Cloud Storage e sincroniza com o Compute Engine para renderizar páginas dinâmicas. O Cloud Storage funciona com muitos sistemas de gerenciamento de conteúdo de terceiros, como WordPress, Drupal e Joomla. O Cloud Storage também oferece uma API compatível com o Amazon S3, portanto, qualquer sistema que funcione com o Amazon S3 pode funcionar com o Cloud Storage O diagrama abaixo é um exemplo de arquitetura para um sistema de gerenciamento de conteúdo ## Qual é o próximo - Explore arquiteturas de referência, diagramas, tutoriais e práticas recomendadas sobre o Google Cloud. Dê uma olhada em nosso Cloud Architecture Center.