GCP: Análise da pilha de computação do Google Cloud Platform

A tradução do artigo foi preparada especialmente para os alunos do curso «Serviços em Nuvem».

Está interessado em desenvolver nesta direção? Assista à gravação do workshop profissional «Serviço AWS EC2», que foi conduzido por Egor Zuyev — TeamLead na empresa InBit e autor do programa educacional na OTUS.

GCP: Análise da pilha de computação do Google Cloud Platform

Google Cloud Platform (GCP) oferece uma variedade de serviços, incluindo uma stack de computação que contém Google Compute Engine (GCE), Google Kubernetes Engine (anteriormente — Container Engine) (GKE), Google App Engine (GAE) e Google Cloud Functions (GCF). Todos esses serviços têm nomes imponentes, mas suas funções e o que os torna únicos em relação uns aos outros podem não ser tão evidentes. Este artigo é destinado àqueles que estão se familiarizando com conceitos de nuvem, especificamente com serviços em nuvem e GCP.

GCP: Análise da pilha de computação do Google Cloud Platform

1. Stack de Computação

A stack de computação pode ser vista como uma abstração em múltiplas camadas sobre o que um sistema de computação pode oferecer. Esta stack se eleva (moves up) desde o "hardware nu" (bare metal), referindo-se aos componentes físicos reais de um computador, até funcionalidades (functions), que representam a menor unidade de computação. É importante notar em relação à stack que os serviços se agregam à medida que se avança na stack, por exemplo, a seção "aplicativos" (apps), mostrada na figura 1 abaixo, deve conter todos os componentes básicos de contêineres (containers), máquinas virtuais (virtual machines) e hardware. Da mesma forma, o componente de máquinas virtuais deve conter o hardware necessário para funcionar.

GCP: Análise da pilha de computação do Google Cloud Platform

Figura 1: Stack de Computação | Imagem obtida de Google Cloud

Este modelo, mostrado na figura 1, serve de base para descrever as ofertas dos provedores de nuvem. Assim, alguns provedores podem oferecer apenas, por exemplo, contêineres e serviços inferiores na qualidade da stack, enquanto outros oferecem tudo o que é mostrado na figura 1.

— Se você está familiarizado com serviços em nuvem, vá para seção 3, para conhecer o equivalente ao GCP
— Se você precisa apenas de um resumo sobre serviços em nuvem, vá para seção 2.4

2. Serviços em Nuvem

O mundo da computação em nuvem é muito diversificado. Os provedores de nuvem oferecem uma variedade de serviços adaptados às diferentes necessidades dos clientes. Você já deve ter ouvido falar de termos como IaaS, PaaS, SaaS, FaaS, KaaS, etc., com todas as letras do alfabeto seguidas por "aaS". Apesar da estranha convenção de nomenclatura, eles formam um conjunto de serviços de provedores de nuvem. Posso afirmar que existem 3 ofertas principais "como serviço" (as a Service) que os provedores de nuvem quase sempre disponibilizam.

Essas são IaaS, PaaS e SaaS, que significam respectivamente infraestrutura como serviço (Infrastructure as a Service), plataforma como serviço (Platform as a Service) e software como serviço (Software as a Service). É importante visualizar os serviços em nuvem como níveis de serviços oferecidos. Isso significa que ao subir ou descer um nível, você, como cliente, atravessa diferentes opções de serviço que são adicionadas ou removidas da oferta principal. É melhor considerar isso como uma pirâmide, como mostrado na Figura 2.
GCP: Análise da pilha de computação do Google Cloud Platform

Figura 2: Pirâmide "aaS" | Imagem obtida de Ruby Garage

2.1 Infraestrutura como Serviço (IaaS)

Este é o nível mais baixo que um provedor de nuvem pode oferecer, e inclui um provedor de computação em nuvem fornecendo infraestrutura "crua", incluindo middleware, cabos de rede, processadores, placas gráficas, memória RAM, armazenamento externo, servidores e imagens de sistemas operacionais básicos, como Debian Linux, CentOS, Windows, etc.

Se você solicitar uma oferta de IaaS de um provedor de nuvem, é isso que você deve esperar receber. Com você, como cliente, fica a responsabilidade de montar essas partes para o funcionamento do seu negócio. O grau de complexidade com que você terá que trabalhar pode variar de provedor para provedor, mas, em geral, você só receberá o hardware e o SO, e o restante é por sua conta. Exemplos de IaaS incluem AWS Elastic Compute, Microsoft Azure e GCE.

Algumas pessoas podem não gostar do fato de ter que instalar imagens do SO e lidar com redes, balanceamento de carga ou se preocupar com qual 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 fornecedor 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 fornecedor de nuvem cuida de todos os detalhes de tipos de CPU, memória, RAM, armazenamento, redes, etc. Como mostrado na figura 2, você, como cliente, tem pouco controle sobre a plataforma real, uma vez que o provedor de nuvem lida com todos os detalhes da infraestrutura por você. Você solicita a plataforma escolhida e constrói seu projeto nela. Exemplos de PaaS incluem Heroku.

Para alguns, isso pode ser um nível muito alto, pois eles não necessariamente querem construir um projeto na plataforma mencionada, mas sim precisam de um conjunto de serviços diretamente do fornecedor de serviços em nuvem. É aqui que entra o SaaS.

2.3 Software como Serviço (SaaS)

O SaaS representa os serviços mais comuns oferecidos por fornecedores de serviços em nuvem. Eles são destinados a usuários finais e estão disponíveis principalmente por meio de sites, como Gmail, Google Docs, Dropbox, etc. No que diz respeito 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 sobre Serviços em Nuvem

Componentes
IaaS
PaaS
SaaS

O que você recebe
Você obtém infraestrutura e paga de acordo. A liberdade de usar ou instalar qualquer software, sistema operacional ou sua composição.
Aqui você recebe o que solicita. Software, hardware, sistema operacional, ambiente web. Você obtém uma plataforma pronta para uso e paga de acordo.
Aqui você não precisa se preocupar com nada. Um pacote pré-configurado de acordo com suas exigências é fornecido, e você só precisa pagar de acordo.

O valor
Nível básico de computação
Topo do IaaS
Isso é essencialmente um pacote completo de serviços

Complexidades técnicas
Necessita de conhecimentos técnicos
Você recebe uma configuração básica, mas ainda precisa de conhecimento especializado.
Não é necessário se preocupar com os detalhes técnicos. O fornecedor de SaaS fornece tudo.

Com o que trabalha
Máquinas virtuais, armazenamento, servidores, redes, balanceadores de carga, etc.
Ambientes de execução (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 qualificados e pesquisadores que precisam de personalização conforme suas demandas ou área de pesquisa.
Mais popular entre desenvolvedores, pois podem se concentrar no desenvolvimento de seus aplicativos ou scripts. Não precisam se preocupar com a carga de tráfego ou gestão do servidor etc.
Mais popular entre consumidores comuns ou empresas que utilizam software como e-mail, serviços de compartilhamento de arquivos e redes sociais, pois não precisam se preocupar com detalhes técnicos.

Figura 3: Resumo das principais ofertas em nuvem | Imagem fornecida Amir no Blog Specia

3. Pacote de computação Google Cloud Platform

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

3.1 Google Compute Engine (GCE) — IaaS

GCP: Análise 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 também a quantidade de memória. É quase como se você tivesse criado seu próprio computador / estação de trabalho e lidasse com todos os detalhes de seu funcionamento.

No GCE, você pode escolher desde instâncias micro 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 aqueles interessados — são máquinas virtuais que você pode montar.

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

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

GCP: Análise da pilha de computação do Google Cloud Platform

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

O GKE é uma solução computacional única da GCP, que representa uma abstração sobre o Compute Engine. Em termos mais gerais, o GKE pode ser classificado como uma categoria de "Container como Serviço" (CaaS), às vezes chamada de "Kubernetes como Serviço" (KaaS), que permite aos clientes executar facilmente seus contêineres Docker em um ambiente Kubernetes totalmente gerenciado. Para aqueles que não estão familiarizados com contêineres, eles ajudam a modularizar serviços/aplicações, de modo que diferentes contêineres possam conter diferentes serviços, por exemplo, um contêiner pode hospedar a interface do seu aplicativo web, enquanto outro pode conter sua parte de servidor. O Kubernetes realiza a automação, coordenação, gerenciamento e implantação de seus contêineres. Mais informações aqui.

Google Kubernetes Engine | Google Cloud

3.3 Google App Engine (GAE) — (PaaS)

GCP: Análise da pilha de computação do Google Cloud Platform

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

Como mencionado na seção 2.2, o PaaS está acima do IaaS e, no caso do GCP, também pode ser visto como uma oferta sobre o GKE. O GAE é um PaaS especializado do Google, e como eles mesmos se descrevem melhor — "traga seu código, e nós cuidaremos do resto".

Isso garante que os clientes que utilizam o GAE não tenham que lidar com o hardware/software 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 sua execução.

O GAE lida automaticamente com o dimensionamento para atender à carga e à demanda do usuário, o que significa que se seu site de venda de flores de repente alcançar um pico, porque o Dia dos Namorados está se aproximando, o GAE gerenciará o dimensionamento da infraestrutura subjacente para atender à demanda e garantir que seu site não fique fora do ar devido ao aumento na demanda. Isso significa que você paga apenas pelos recursos que seu aplicativo precisa no momento.

O GAE utiliza 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 garantir que seu aplicativo esteja disponível da melhor maneira.

Na minha opinião, o GAE é o melhor lugar para começar se você é um desenvolvedor com uma ótima ideia, mas não quer se ocupar com o trabalho rotineiro de configuração de servidores, balanceamento de carga e todo o trabalho duro 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 web, e não para aplicativos móveis.

Para referência: App Engine — Crie backends escaláveis para web e mobile em qualquer linguagem | Google Cloud

3.4 Google Cloud Functions — (FaaS)

GCP: Análise da pilha de computação do Google Cloud Platform

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

Espero que você tenha percebido a tendência ao analisar as propostas anteriores. Quanto mais alto você sobe na escada das soluções computacionais do GCP, menos precisa se preocupar com as tecnologias subjacentes. Esta pirâmide culmina na menor unidade possível de computação, que é a função, conforme mostrado na Seção 1.

O GCF é uma oferta relativamente nova do GCP que ainda está em fase de beta (no momento da redação deste artigo). As funções em nuvem permitem que determinadas funções escritas pelo desenvolvedor sejam executadas em resposta a um evento.

Elas são acionadas por eventos e estão por trás da palavra da moda 'serverless', ou seja, não conhecem servidores. As funções em nuvem são muito simples e têm muitas aplicações diferentes que requerem um raciocínio baseado em eventos. Por exemplo, sempre que um novo usuário se registra, uma função em nuvem pode ser acionada para alertar os desenvolvedores.

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

Funções em nuvem — Computações serverless acionadas por eventos | Google Cloud

Conclusão

Neste artigo, falamos sobre as várias ofertas em nuvem, como IaaS, PaaS etc., e como a pilha de computação do Google implementa esses diferentes níveis. Vimos que os níveis de abstração ao mudar de uma categoria de serviço para outra, como de IaaS para PaaS, exigem menos conhecimento sobre o que está por trás.

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

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

Kubernetes Engine — é um passo acima do Compute Engine, permitindo que você utilize Kubernetes e contêineres para gerenciar seu aplicativo, possibilitando escalá-lo quando necessário.

App Engine — é um passo acima do Kubernetes Engine, permitindo que você se concentre apenas no seu código, enquanto o Google cuida de todos os requisitos da plataforma básica.

Cloud-Functions — é o auge da pirâmide computacional, permitindo escrever uma função simples que, ao ser executada, utiliza toda a infraestrutura básica para computar e retornar o resultado.

Obrigado pela atenção!

Twitter: @martinomburajr

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster