GCP: detalhamento da pilha de computação do Google Cloud Platform

A tradução do artigo foi elaborada especificamente para os alunos do curso "Serviços na nuvem".

Você está interessado em se desenvolver nessa direção? Assista à gravação de uma master class profissional "Serviço AWS EC2", que foi realizado por Egor Zuev - TeamLead na InBit e autor do programa educacional na OTUS.

GCP: detalhamento da pilha de computação do Google Cloud Platform

O Google Cloud Platform (GCP) oferece muitos serviços e, em particular, a pilha de computação que contém o Google Compute Engine (GCE), o Google Kubernetes Engine (anteriormente Container Engine) (GKE), o Google App Engine (GAE) e o Google Cloud Functions (GCF).). Todos esses serviços têm nomes legais, mas podem não ser totalmente óbvios sobre seus recursos e o que os torna únicos em relação aos outros. Este artigo destina-se àqueles que são novos nos conceitos de nuvem, em particular serviços de nuvem e GCP.

GCP: detalhamento da pilha de computação do Google Cloud Platform

1. Pilha de computação

A pilha de computação pode ser considerada uma abstração em camadas sobre o que um sistema de computador pode fornecer. Esta pilha sobe (se move para cima) de "ferro nu" (apenas metal) referindo-se aos componentes de hardware reais do computador, até as funções (funções), que é a menor unidade de cálculo. O que é importante observar sobre a pilha é que os serviços são agregados à medida que sobem na pilha, como a seção "aplicativos" (Aplicativos) mostrado na Figura 1 abaixo deve conter todos os componentes básicos do contêiner (containers), máquinas virtuais (máquinas virtuais) e ferro. Da mesma forma, o componente da máquina virtual deve conter o hardware interno para funcionar.

GCP: detalhamento da pilha de computação do Google Cloud Platform

Figura 1: Pilha de computação | Imagem originária de Parceria

Esse modelo, mostrado na Figura 1, é a base para descrever as ofertas dos provedores de nuvem. Assim, alguns provedores podem fornecer apenas, por exemplo, contêineres e serviços abaixo da qualidade da pilha, enquanto outros podem fornecer tudo o que é mostrado na Figura 1.

- Se você estiver familiarizado com os serviços em nuvem, acesse Seção 3para ver o equivalente do GCP
- Se você deseja apenas um resumo dos serviços em nuvem, acesse Seção 2.4

2. Serviços em nuvem

O mundo da computação em nuvem é muito diversificado. Os provedores de nuvem oferecem muitos serviços adaptados aos diferentes requisitos do cliente. Você já deve ter ouvido falar de termos como IaaS, PaaS, SaaS, FaaS, KaaS, etc. com todas as letras do alfabeto seguidas de "aaS". Apesar da estranha convenção de nomenclatura, eles formam um conjunto de serviços de provedores de nuvem. Afirmo que existem 3 principais ofertas "as a service" (como serviço) que os provedores de nuvem quase sempre fornecem.

Estes são IaaS, PaaS e SaaS, que significam Infrastructure as a Service, Platform as a Service e Software as a Service, respectivamente. É importante visualizar os serviços em nuvem como camadas de serviço. Isso significa que conforme você sobe ou desce de nível para nível, você, como cliente, está passando por várias opções de serviço que são adicionadas ou removidas da oferta principal. É melhor pensar nisso como uma pirâmide, conforme mostrado na Figura 2.
GCP: detalhamento da pilha de computação do Google Cloud Platform

Figura 2: Pirâmide AaS | Imagem originária de Garagem Rubi

2.1 Infraestrutura como serviço (IaaS)

Este é o nível mais baixo que um provedor de serviços em nuvem pode oferecer e inclui um provedor de nuvem que fornece a infraestrutura básica, incluindo middleware, cabos de rede, processadores, GPUs, RAM, armazenamento externo, servidores e imagens básicas do sistema operacional. Por exemplo, Debian Linux, CentOS, Janelas, etc

Se você solicitar uma oferta de um provedor de serviços de nuvem IaaS, é isso que você deve esperar obter. Cabe a você, como cliente, montar essas peças para administrar seu negócio. A extensão do que você precisa trabalhar pode variar de fornecedor para fornecedor, mas geralmente você apenas obtém o hardware e o sistema operacional e faz o resto. Exemplos de IaaS são AWS Elastic Compute, Microsoft Azure e GCE.

Algumas pessoas podem não gostar do fato de terem que instalar imagens do sistema operacional e lidar com rede, balanceamento de carga ou se preocupar com o tipo de processador ideal para sua carga de trabalho. É aqui que subimos na pirâmide para PaaS.

2.2 Plataforma como Serviço (PaaS)

A PaaS inclui apenas um provedor de serviços em nuvem que oferece uma plataforma específica na qual os usuários podem criar aplicativos. É uma abstração sobre IaaS, o que significa que o provedor de nuvem cuida de todos os detalhes dos tipos de CPU, memória, RAM, armazenamento, rede etc. Conforme mostrado na Figura 2, você, como cliente, tem pouco controle sobre o plataforma porque o provedor cuida de todos os detalhes da infraestrutura para você. Você solicita a plataforma escolhida e constrói o projeto nela. Um exemplo de PaaS é o Heroku.

Para alguns, isso pode ser um nível muito alto, pois ele não necessariamente deseja construir o projeto na plataforma especificada, mas precisa de um conjunto de serviços diretamente do provedor de serviços em nuvem. É aqui que o SaaS entra em jogo.

2.3 Software como Serviço (SaaS)

SaaS é o serviço mais comum fornecido por provedores de serviços em nuvem. Eles são destinados a usuários finais e estão disponíveis principalmente em sites como Gmail, Google Docs, Dropbox etc. Quanto ao Google Cloud, existem várias ofertas fora de sua pilha de computação que são SaaS. Isso inclui Data Studio, Big Query, etc.

2.4 Resumo dos serviços em nuvem

Componentes
IaaS
PaaS
SaaS

O que você recebe
Você obtém a infraestrutura e paga de acordo. A liberdade de usar ou instalar qualquer software, sistema operacional ou combinação dos mesmos.
Aqui você recebe o que você pede. Software, hardware, SO, ambiente web. Você obtém uma plataforma pronta para uso e paga de acordo.
Aqui você não precisa se preocupar com nada. Você recebe um pacote pré-instalado personalizado de acordo com suas necessidades e só precisa pagar de acordo.

Valor
Nível básico de computação
Principais IaaS
É essencialmente um pacote completo de serviços.

Dificuldades técnicas
Conhecimento técnico necessário
Você recebe uma configuração básica, mas o conhecimento do domínio ainda é necessário.
Não há necessidade de se preocupar com detalhes técnicos. O provedor SaaS fornece tudo.

com o que funciona
Máquinas virtuais, armazenamento, servidores, rede, balanceadores de carga, etc.
Runtimes (como java runtime), bancos de dados (como mySQL, Oracle), servidores web (como tomcat, etc.)
Aplicativos como serviços de e-mail (Gmail, Yahoo mail, etc.), sites de interação social (Facebook, etc.)

Gráfico de popularidade
Popular entre desenvolvedores altamente qualificados, pesquisadores que exigem personalização para atender às suas necessidades ou área de pesquisa
Mais popular entre os desenvolvedores, pois eles podem se concentrar no desenvolvimento de seus aplicativos ou scripts. Eles não precisam se preocupar em carregar o tráfego ou gerenciar o servidor, etc.
Mais popular entre consumidores em geral ou empresas que utilizam softwares como e-mail, compartilhamento de arquivos, redes sociais, pois não precisam se preocupar com detalhes técnicos.

Figura 3: Resumo das principais ofertas de nuvem | Cortesia de imagem Amir no Blog Specia

3. Pacote de computação Google Cloud Platform

Depois de examinar as ofertas típicas de provedores de nuvem na Seção 2, podemos compará-las com as ofertas do Google Cloud.

3.1 Google Compute Engine (GCE) - IaaS

GCP: detalhamento da pilha de computação do Google Cloud Platform

Figura 4: Ícone do Google Compute Engine (GCE)

GCE é uma oferta de IaaS do Google. Com o GCE, você pode criar máquinas virtuais livremente, alocar recursos de CPU e memória, escolher o tipo de armazenamento, como SSD ou HDD, e a quantidade de memória. É quase como se você construísse seu próprio computador/estação de trabalho e cuidasse de todos os detalhes de como ele funciona.

No GCE, você pode escolher desde microinstâncias com processadores de 0,3 núcleos e 1 GB de RAM até monstros de 96 núcleos com mais de 300 GB de RAM. Você também pode criar máquinas virtuais de tamanho personalizado para suas cargas de trabalho. Para os interessados, são máquinas virtuais que você pode construir.

Tipos de máquinas | Documentação do Compute Engine | Google Cloud

3.2. Google Kubernetes Engine (GKE) - (Caas / Kaas)

GCP: detalhamento da pilha de computação do Google Cloud Platform

Figura 5: ícone do Google Kubernetes Engine (GKE)

O GKE é uma oferta de computação exclusiva do GCP que é uma abstração sobre o Compute Engine. De maneira mais geral, o GKE pode ser classificado como um contêiner como serviço (CaaS), às vezes chamado de Kubernetes como serviço (KaaS), que permite que os clientes executem facilmente seus contêineres Docker em um ambiente Kubernetes totalmente gerenciado. Para quem não está familiarizado com contêineres, os contêineres ajudam a modularizar serviços/aplicativos, de modo que diferentes contêineres podem conter diferentes serviços, por exemplo, um contêiner pode hospedar a interface de seu aplicativo da Web e outro pode conter seu back-end. O Kubernetes automatiza, coordena, gerencia e implanta seus contêineres. Mais informações aqui.

Motor Kubernetes do Google | Google Nuvem

3.3 Google App Engine (GAE) - (PaaS)

GCP: detalhamento da pilha de computação do Google Cloud Platform

Figura 6: Ícone do Google App Engine (GAE)

Conforme mencionado na seção 2.2, a PaaS fica acima da IaaS e, no caso do GCP, também pode ser vista como uma proposta acima do GKE. O GAE é um PaaS especializado do Google e, como eles se descrevem melhor, "traga seu código, nós cuidaremos do resto".

Isso garante que os clientes que usam o GAE não precisem lidar com hardware/middleware subjacente e já possam ter uma plataforma pré-configurada pronta para uso; tudo o que eles precisam fazer é fornecer o código necessário para executá-lo.

O GAE lida automaticamente com o dimensionamento para atender à carga e demanda do usuário, o que significa que, se o seu site de flores atingir o pico repentinamente porque o Dia dos Namorados está chegando, o GAE cuidará do dimensionamento da infraestrutura subjacente para atender à demanda e garantir que seu site não seja desativado devido ao aumento da demanda . Isso significa que você paga exatamente pelos recursos que seu aplicativo precisa no momento.

O GAE usa o Kubernetes ou sua versão integrada para lidar com tudo isso, para que você não precise se preocupar com isso. O GAE é mais adequado para empresas que não estão interessadas na infraestrutura subjacente e se preocupam apenas em tornar seu aplicativo acessível da melhor maneira possível.

Na minha opinião, o GAE é o melhor lugar para começar se você é um desenvolvedor com uma ótima ideia, mas não quer lidar com a tarefa de configurar servidores, balanceamento de carga e todos os outros trabalhos demorados de devops/SRE. Com o tempo, você pode experimentar o GKE e o GCE, mas essa é apenas a minha opinião.

Isenção de responsabilidade: AppEngine é usado para aplicativos da Web, não para aplicativos móveis.

Para revisão: App Engine - Crie back-ends móveis e da Web escalonáveis ​​em qualquer idioma | Google Cloud

3.4 Funções do Google Cloud - (FaaS)

GCP: detalhamento da pilha de computação do Google Cloud Platform

Figura 7: Ícone do Google Cloud Functions (GCF)

Espero que tenham percebido uma tendência ao analisar as propostas anteriores. Quanto mais alto você sobe na escada da GCP Computing, menos precisa se preocupar com a tecnologia subjacente. Essa pirâmide culmina na menor unidade de cálculo possível, a função, conforme mostrado na Seção 1.

O GCF é uma oferta relativamente nova do GCP que ainda está em versão beta (no momento da redação deste artigo). As funções de nuvem permitem que certas funções escritas por um desenvolvedor sejam acionadas por algum evento.

Eles são orientados a eventos e estão no centro da palavra da moda "sem servidor", o que significa que eles não conhecem os servidores. Cloud Functions são muito simples e têm muitos usos diferentes que exigem pensamento orientado a eventos. Por exemplo, toda vez que um novo usuário se registra, uma função de nuvem pode ser acionada para alertar os desenvolvedores.

Em uma fábrica, quando um determinado sensor atinge um determinado valor, ele pode acionar uma função de nuvem que faz algum processamento de informações ou notifica algum pessoal de manutenção, etc.

Cloud Functions - Computação de Servidor Orientada a Eventos | Google Cloud

Conclusão

Neste artigo, falamos sobre as diferentes ofertas de nuvem como IaaS, PaaS etc. e como a pilha do Google Compute implementa essas diferentes camadas. Vimos que as camadas de abstração ao passar de uma categoria de serviço para outra, como IaaS para Paas, exigem menos conhecimento do subjacente.

Para os negócios, isso fornece flexibilidade crítica que não apenas atende às suas metas operacionais, mas também satisfaz outras áreas importantes, como segurança e custo. Resumindo:

Compute Engine - permite que você crie sua própria máquina virtual alocando certos recursos de hardware, como RAM, processador, memória. Também é bastante prático e de baixo nível.

Motor Kubernetes é uma evolução do Compute Engine, que permite usar Kubernetes e contêineres para gerenciar seu aplicativo, permitindo escaloná-lo conforme necessário.

Motor de aplicação é uma evolução do Kubernetes Engine, permitindo que você se concentre apenas no seu código, enquanto o Google fornece todos os requisitos da plataforma subjacente.

Funções da nuvem é o ápice da pirâmide computacional, permitindo que você escreva uma função simples que, quando executada, usa toda a infraestrutura subjacente para calcular e retornar um resultado.

Obrigado!

Twitter: @martinomburajr

Fonte: habr.com

Adicionar um comentário