GCP: Analisando a pilha de computação do Google Cloud Platform

Uma tradução do artigo foi preparada especificamente para os alunos do curso de Serviços em Nuvem .


É interessante desenvolver nessa direção? Assista à gravação do workshop profissional do Serviço AWS EC2 realizado por Egor Zuev - TeamLead no InBit e o autor do programa educacional no OTUS.



O Google Cloud Platform (GCP) oferece muitos serviços, e em especial 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 interessantes, mas podem não ser totalmente óbvios em termos de suas funções e o que os torna únicos em relação um ao outro. Este artigo é direcionado para aqueles que estão familiarizando-se com os conceitos de nuvem, em particular com serviços de nuvem e GCP.



1. Pilha de computação


A pilha computacional pode ser considerada como uma abstração de vários níveis sobre o que um sistema de computador pode fornecer. Essa pilha sobe do bare metal , que se refere aos componentes de hardware reais de um computador, até as funções, que são a menor unidade de cálculo. O que é importante observar com relação à pilha é que os serviços são agregados ao subir a pilha, por exemplo, a seção "apps", mostrada na Figura 1 abaixo, deve conter todos os componentes básicos de contêineres, máquinas virtuais ( virtuais) máquinas ) e ferro. Da mesma maneira, o componente da máquina virtual deve conter o hardware interno para funcionar.



Figura 1: Pilha de computação | Imagem recuperada do Google Cloud


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


- Se você conhece os serviços em nuvem, pule para a seção 3 para se familiarizar com o equivalente ao GCP
- Se você precisar apenas de um resumo dos serviços em nuvem, vá para a 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 personalizados para diferentes necessidades do cliente. Você pode 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 provedor de nuvem. Observo que existem três principais propostas "como serviço" que os provedores de nuvem quase sempre fornecem.


São IaaS, PaaS e SaaS, que designam, respectivamente, infraestrutura como serviço (Infraestrutura como serviço), plataforma como serviço (Plataforma como serviço) e software como serviço (Software como serviço). É importante visualizar os serviços em nuvem como níveis de serviço. Isso significa que, quando você sobe ou desce de nível para nível, você, como cliente, cruza várias opções de serviço que são adicionadas ou removidas da oferta principal. É melhor considerar isso como uma pirâmide, como mostra a Figura 2.


Figura 2: Pirâmide aaS | Imagem retirada da Ruby Garage


2.1 Infraestrutura como serviço (IaaS)


Esse é o nível mais baixo que um provedor de serviços em nuvem pode oferecer e inclui um provedor de serviços em nuvem que fornece infraestrutura bare metal, incluindo middleware, cabos de rede, processadores, GPUs, RAM, armazenamento externo, servidores e imagens subjacentes do sistema operacional por exemplo, Debian Linux, CentOS, Windows etc.


Se você receber uma oferta do seu provedor de nuvem IaaS, é isso que você deve esperar. Cabe a você, como cliente, montar essas peças para o seu negócio. A extensão com a qual você deve trabalhar pode variar de provedor para provedor, mas, como regra, você apenas obtém o hardware e o SO, e o resto é com você. Exemplos de IaaS são 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 a rede, balanceamento de carga ou se preocupar com o tipo de processador ideal para sua carga de trabalho. É aqui que subimos a pirâmide para PaaS.


2.2 Plataforma como serviço (PaaS)


O PaaS inclui apenas um provedor de serviços em nuvem que oferece uma plataforma específica na qual os usuários podem criar aplicativos. Essa é 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, redes etc. Como mostrado na Figura 2, você, como cliente, tem pouco controle sobre a plataforma real, uma vez que a nuvem o provedor faz todos os detalhes da infraestrutura para você. Você solicita a plataforma selecionada e constrói um projeto nela. Exemplos de PaaS são Heroku.


Para alguém, isso pode ser um nível muito alto, pois ele não necessariamente deseja criar um 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 cena.


2.3 Software como serviço (SaaS)


O SaaS é o serviço mais comum fornecido pelos provedores de serviços em nuvem. Eles são voltados para usuários finais e são acessíveis principalmente por sites como Gmail, Google Docs, Dropbox, etc. Quanto ao Google Cloud, existem várias ofertas fora da pilha de computadores que são SaaS. Isso inclui o Data Studio, Big Query, etc.


2.4 Resumo dos serviços em nuvem


ComponentesIaasPaaSSaas
O que você ganhaVocê obtém a infraestrutura e paga em conformidade. A liberdade de usar ou instalar qualquer software, sistema operacional ou sua composição.Aqui você obtém o que solicita. Software, hardware, SO, ambiente web. Você obtém uma plataforma pronta para uso e paga em conformidade.Você não precisa se preocupar com nada aqui. Você é fornecido com um pacote pré-instalado personalizado de acordo com seus requisitos e você só precisa pagar em conformidade.
ValorComputação básicaIaaS topEste é essencialmente um pacote completo de serviços.
Dificuldades técnicasConhecimento técnico necessárioVocê recebeu uma configuração básica, mas ainda é necessário conhecimento de domínio.Não há necessidade de se preocupar com detalhes técnicos. O provedor SaaS fornece tudo.
O que funcionaMáquinas virtuais, armazenamento, servidores, rede, balanceadores de carga, etc.Ambientes de tempo de execução (como java runtime), bancos de dados (como mySQL, Oracle), servidores da web (como tomcat, etc.)Aplicativos como serviços de e-mail (Gmail, Yahoo Mail, etc.), sites de interação social (Facebook, etc.)
Contagem de popularidadePopularmente entre desenvolvedores altamente qualificados, pesquisadores que precisam de personalização individual de acordo com seus requisitos ou campo de estudoMais populares entre os desenvolvedores, pois eles podem se concentrar no desenvolvimento de aplicativos ou scripts. Eles não precisam se preocupar com carregamento de tráfego ou gerenciamento de servidores etc.Mais popular entre os consumidores comuns ou empresas que usam software como email, compartilhamento de arquivos, redes sociais, pois não precisam se preocupar com detalhes técnicos

Figura 3: Resumo das principais ofertas de nuvem | Imagem cortesia de Amir no Blog Specia


3. Pacote de computação do Google Cloud Platform


Depois de examinar 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



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


GCE é uma oferta de IaaS do Google. Com o GCE, você pode criar livremente máquinas virtuais, alocar recursos de processador e memória, escolher o tipo de armazenamento, por exemplo, SSD ou HDD, além da quantidade de memória. É quase o mesmo que se você tivesse criado seu próprio computador / estação de trabalho e feito todos os detalhes de seu trabalho.


No GCE, você pode escolher entre micro instâncias com processadores de 0,3 núcleo e 1 GB de RAM e 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 quem está interessado, essas 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)



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


GKE é a oferta de computação exclusiva do GCP, que é uma abstração do Compute Engine. De maneira mais geral, o GKE pode ser classificado como Container como um Serviço (CaaS), às vezes chamado de Kubernetes como Serviço (KaaS), o que permite aos clientes iniciar facilmente seus contêineres Docker em um ambiente Kubernetes totalmente gerenciado. Para aqueles que não estão familiarizados com contêineres, os contêineres ajudam a formar serviços / aplicativos de forma modular, para que contêineres diferentes possam conter serviços diferentes, por exemplo, um contêiner pode hospedar a interface do seu aplicativo Web e o outro pode conter a parte do servidor. O Kubernetes automatiza, coordena, gerencia e implanta seus contêineres. Mais informações aqui.


Google Kubernetes Engine | Google cloud


3.3 Google App Engine (GAE) - (PaaS)



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


Conforme mencionado na Seção 2.2, o PaaS é maior que o IaaS e, no caso do GCP, também pode ser visto como uma frase sobre o GKE. O GAE é um Google PaaS especializado e a melhor forma de se descrever é "leve seu código e nós cuidaremos do resto".


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


O GAE processa automaticamente o dimensionamento para satisfazer a carga e a demanda dos usuários, o que significa que, se o seu site que está vendendo flores atingir um pico repentinamente porque o Dia dos Namorados está chegando, o GAE processará o dimensionamento da infraestrutura subjacente para atender à demanda e garantir que Seu site não cairá devido ao aumento da demanda. Isso significa que você está pagando exatamente pelos recursos que seu aplicativo está exigindo no momento.


O GAE usa o Kubernetes ou sua versão embutida para lidar com tudo isso, para que você não precise se preocupar com isso. O GAE é o melhor para empresas que não estão interessadas na infraestrutura subjacente e apenas se preocupam com a disponibilidade da aplicação 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 deseja executar as tarefas de configuração do servidor, balanceamento de carga e todos os outros devops / SRE demorados. Com o tempo, você pode tentar o GKE e o GCE, mas essa é apenas a minha opinião.


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


Para sua referência : App Engine - Crie back-end da Web e dispositivos móveis escaláveis ​​em qualquer idioma | Google cloud


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



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


Espero que você tenha notado a tendência analisando as frases anteriores. Quanto mais você sobe na escada das soluções de computação GCP, menos precisa se preocupar com tecnologias básicas. Essa pirâmide termina com a menor unidade de cálculo possível, uma função, como mostrado na seção 1.


O GCF é uma oferta relativamente nova do GCP que ainda está em teste beta (no momento em que este artigo foi escrito). As funções de nuvem permitem que determinadas funções escritas por um desenvolvedor sejam acionadas por um evento.


Eles são orientados a eventos e estão na base da palavra-chave sem servidor, o que significa que eles não conhecem os servidores. As funções de nuvem são muito simples e têm muitos usos diferentes que requerem pensamento orientado a eventos. Por exemplo, sempre que um novo usuário efetua login, uma função de nuvem pode ser iniciada para alertar os desenvolvedores.


Na fábrica, quando um determinado sensor atinge um determinado valor, ele pode iniciar uma função de nuvem que realiza algum processamento de informações ou notifica alguma equipe de manutenção, etc.


Funções de nuvem - computação de servidor orientada a eventos | Google cloud


Conclusão


Neste artigo, falamos sobre várias ofertas de 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 passar de uma categoria de serviço para outra, como IaaS em Paas, exigem menos conhecimento do subjacente.


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


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


O Kubernetes Engine é um passo mais alto que o Compute Engine, que permite usar o Kubernetes e contêineres para gerenciar seu aplicativo, permitindo escaloná-lo, se necessário.


O App Engine é um passo mais alto que o Kubernetes Engine, permitindo que você se concentre apenas no seu código, enquanto o Google fornece todos os requisitos da plataforma subjacente.


O Cloud-Functions é o topo da pirâmide de computação, permitindo que você escreva uma função simples que, quando lançada, usa toda a infraestrutura básica para calcular e retornar o resultado.


Obrigado pela atenção!


Twitter: @martinomburajr

Source: https://habr.com/ru/post/pt467749/


All Articles