GCP: análisis de la pila de computación de Google Cloud Platform

Se preparó una traducción del artículo específicamente para estudiantes del curso de Servicios en la nube .


¿Es interesante desarrollar en esta dirección? Vea la grabación del taller profesional de AWS EC2 Service realizado por Egor Zuev - TeamLead en InBit y el autor del programa educativo en OTUS.



Google Cloud Platform (GCP) ofrece muchos servicios, y en particular la pila informática, que contiene Google Compute Engine (GCE), Google Kubernetes Engine (anteriormente Container Engine) (GKE), Google App Engine (GAE) y Google Cloud Functions (GCF ) Todos estos servicios tienen nombres geniales, pero pueden no ser del todo obvios en términos de sus funciones y lo que los hace únicos entre sí. Este artículo está dirigido a aquellos que recién se están familiarizando con los conceptos de la nube, en particular con los servicios en la nube y GCP.



1. Pila de computación


La pila computacional se puede considerar como una abstracción de varios niveles sobre lo que puede proporcionar un sistema informático. Esta pila sube de metal desnudo , que se refiere a los componentes de hardware reales de una computadora, hasta las funciones, que son la unidad de cálculo más pequeña. Lo que es importante tener en cuenta con respecto a la pila es que los servicios se agregan al subir la pila, por ejemplo, la sección "aplicaciones", que se muestra en la Figura 1 a continuación, debe contener todos los componentes básicos de contenedores, máquinas virtuales ( virtuales) máquinas ) y hierro. Del mismo modo, el componente de la máquina virtual debe contener el hardware interno para funcionar.



Figura 1: Pila de computación | Imagen recuperada de Google Cloud


Este modelo, que se muestra en la Figura 1, es la base para describir las ofertas de los proveedores de la nube. Por lo tanto, algunos proveedores solo pueden proporcionar, por ejemplo, contenedores y servicios de menor calidad en la pila, mientras que otros pueden hacer todo lo que se muestra en la Figura 1.


- Si está familiarizado con los servicios en la nube, vaya a la sección 3 para familiarizarse con el equivalente de GCP
- Si solo necesita un resumen de los servicios en la nube, vaya a la sección 2.4

2. Servicios en la nube


El mundo de la computación en la nube es muy diverso. Los proveedores de la nube ofrecen muchos servicios adaptados a los diferentes requisitos del cliente. Es posible que haya oído hablar de términos como IaaS, PaaS, SaaS, FaaS, KaaS, etc. con todas las letras del alfabeto seguidas de aaS. A pesar de la extraña convención de nomenclatura, forman un conjunto de servicios de proveedores en la nube. Observo que hay 3 propuestas principales "como servicio" que los proveedores de la nube casi siempre brindan.


Estos son IaaS, PaaS y SaaS, que designan respectivamente infraestructura como servicio (Infraestructura como servicio), plataforma como servicio (Plataforma como servicio) y software como servicio (Software como servicio). Es importante visualizar los servicios en la nube como niveles de servicio. Esto significa que cuando sube o baja de un nivel a otro, usted, como cliente, cruza varias opciones de servicio que se agregan o eliminan de la oferta principal. Es mejor considerar esto como una pirámide, como se muestra en la Figura 2.


Figura 2: Pirámide aaS | Imagen tomada de Ruby Garage


2.1 Infraestructura como servicio (IaaS)


Este es el nivel más bajo que puede ofrecer un proveedor de servicios en la nube, e incluye un proveedor de servicios en la nube que proporciona infraestructura básica, que incluye middleware, cables de red, procesadores, GPU, RAM, almacenamiento externo, servidores e imágenes subyacentes del sistema operativo. por ejemplo, Debian Linux, CentOS, Windows, etc.


Si recibe una oferta de su proveedor de nube IaaS, esto es lo que debe esperar. Depende de usted, como cliente, ensamblar estas piezas para su negocio. La medida con la que tiene que trabajar puede variar de un proveedor a otro, pero, por regla general, solo obtiene el hardware y el sistema operativo, y el resto depende de usted. Ejemplos de IaaS son AWS Elastic Compute, Microsoft Azure y GCE.


A algunas personas puede no gustarles el hecho de que tienen que instalar imágenes del sistema operativo y tratar con la red, el equilibrio de carga o el tipo de procesador ideal para su carga de trabajo. Aquí es donde subimos la pirámide a PaaS.


2.2 Plataforma como servicio (PaaS)


PaaS incluye solo un proveedor de servicios en la nube que ofrece una plataforma específica en la que los usuarios pueden crear aplicaciones. Esta es una abstracción sobre IaaS, lo que significa que el proveedor de la nube se encarga de todos los detalles de los tipos de CPU, memoria, RAM, almacenamiento, redes, etc. Como se muestra en la Figura 2, usted, como cliente, tiene poco control sobre la plataforma real, ya que la nube el proveedor hace todos los detalles de la infraestructura por usted. Solicita la plataforma seleccionada y crea un proyecto sobre ella. Ejemplos de PaaS son Heroku.


Para alguien, esto puede ser un nivel demasiado alto, ya que no necesariamente quiere construir un proyecto en la plataforma especificada, sino que necesita un conjunto de servicios directamente del proveedor de servicios en la nube. Aquí es donde SaaS entra en escena.


2.3 Software como servicio (SaaS)


SaaS es el servicio más común proporcionado por los proveedores de servicios en la nube. Están destinados a usuarios finales y son accesibles principalmente a través de sitios web como Gmail, Google Docs, Dropbox, etc. En cuanto a Google Cloud, hay varias ofertas fuera de su paquete informático que son SaaS. Estos incluyen Data Studio, Big Query, etc.


2.4 Resumen de servicios en la nube


ComponentesIaasPaaSSaas
Que obtienesObtiene la infraestructura y paga en consecuencia. La libertad de usar o instalar cualquier software, sistema operativo o su composición.Aquí obtienes lo que solicitas. Software, hardware, sistema operativo, entorno web. Obtiene una plataforma lista para usar y paga en consecuencia.No tienes que preocuparte por nada aquí. Se le proporciona un paquete preinstalado personalizado según sus requisitos, y solo tiene que pagar en consecuencia.
ValorInformática básicaIaaS arribaEsto es esencialmente un paquete completo de servicios.
Dificultades técnicasConocimiento técnico requeridoSe le ha dado una configuración básica, pero aún se necesita conocimiento de dominio.No hay necesidad de molestarse con detalles técnicos. El proveedor de SaaS proporciona todo.
Lo que funcionaMáquinas virtuales, almacenamiento, servidores, red, equilibradores de carga, etc.Entornos de tiempo de ejecución (como java runtime), bases de datos (como mySQL, Oracle), servidores web (como tomcat, etc.)Aplicaciones como servicios de correo electrónico (Gmail, correo de Yahoo, etc.), sitios de interacción social (Facebook, etc.)
Cuenta de popularidadPopularmente entre los desarrolladores altamente calificados, los investigadores que necesitan personalización individual de acuerdo con sus requisitos o campo de estudio.El más popular entre los desarrolladores, ya que pueden centrarse en desarrollar sus aplicaciones o scripts. No necesitan preocuparse por la carga del tráfico o la administración del servidor, etc.Más popular entre los consumidores comunes o las empresas que usan software como correo electrónico, uso compartido de archivos, redes sociales, ya que no necesitan preocuparse por los detalles técnicos.

Figura 3: Resumen de ofertas clave en la nube | Imagen cortesía de Amir en Blog Specia


3. Paquete de computación de Google Cloud Platform


Tras examinar las ofertas típicas de los proveedores de la nube en la Sección 2, podemos compararlas con las ofertas de Google Cloud.


3.1 Google Compute Engine (GCE) - IaaS



Figura 4: Icono de Google Compute Engine (GCE)


GCE es una oferta de IaaS de Google. Con GCE, puede crear libremente máquinas virtuales, asignar recursos de procesador y memoria, elegir el tipo de almacenamiento, por ejemplo, SSD o HDD, así como la cantidad de memoria. Es casi lo mismo que si creara su propia computadora / estación de trabajo e hiciera todos los detalles de su trabajo.


En GCE, puede elegir entre micro instancias con procesadores de 0.3 núcleos y 1 GB de RAM a monstruos de 96 núcleos con más de 300 GB de RAM. También puede crear máquinas virtuales de tamaño personalizado para sus cargas de trabajo. Para aquellos que estén interesados, estas son máquinas virtuales que puede ensamblar.


Tipos de máquinas | Compute Engine Documentation | Nube de Google


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



Figura 5: Icono de Google Kubernetes Engine (GKE)


GKE es la oferta informática exclusiva de GCP, que es una abstracción del Compute Engine. En términos más generales, GKE puede clasificarse como Contenedor como servicio (CaaS), a veces llamado Kubernetes como servicio (KaaS), que permite a los clientes lanzar fácilmente sus contenedores Docker en un entorno Kubernetes totalmente administrado. Para aquellos que no están familiarizados con los contenedores, los contenedores ayudan a formar servicios / aplicaciones de forma modular, por lo que diferentes contenedores pueden contener diferentes servicios, por ejemplo, un contenedor puede alojar la interfaz de su aplicación web y el otro puede contener su parte del servidor. Kubernetes automatiza, coordina, gestiona e implementa sus contenedores. Más información aquí.


Google Kubernetes Engine | Nube de Google


3.3 Google App Engine (GAE) - (PaaS)



Figura 6: Icono de Google App Engine (GAE)


Como se mencionó en la Sección 2.2, PaaS es más alto que IaaS, y en el caso de GCP también se puede ver como una oración sobre GKE. GAE es un Google PaaS especializado, y la mejor manera de describirse es "llevar su código y nosotros nos encargaremos del resto".


Esto garantiza que los clientes que usan GAE no tengan que lidiar con hardware / middleware básico y que ya puedan tener una plataforma preconfigurada lista para funcionar; todo lo que necesitan hacer es proporcionar el código necesario para ejecutarlo.


GAE procesa automáticamente el escalado para satisfacer la carga y la demanda de los usuarios, lo que significa que si su sitio web que vende flores alcanza repentinamente un pico porque se acerca el Día de San Valentín, GAE procesará el escalado de la infraestructura subyacente para satisfacer la demanda y garantizar que Su sitio web no caerá debido a una mayor demanda. Esto significa que está pagando exactamente por los recursos que su aplicación requiere actualmente.


GAE usa Kubernetes o su versión incorporada para manejar todo esto para que no tenga que preocuparse por eso. GAE es lo mejor para las empresas que no están interesadas en la infraestructura subyacente y solo se preocupan de que su aplicación esté disponible de la mejor manera posible.


En mi opinión, GAE es el mejor lugar para comenzar si usted es un desarrollador con una gran idea, pero no desea realizar las tareas de configuración del servidor, equilibrio de carga y todos los demás devops / SRE que requieren mucho tiempo. Con el tiempo, podrías probar GKE y GCE, pero esta es solo mi opinión.


Descargo de responsabilidad : AppEngine se utiliza para aplicaciones web, no para aplicaciones móviles.


Para su referencia : App Engine: cree backends móviles y web escalables en cualquier idioma | Nube de Google


3.4 Funciones de Google Cloud - (FaaS)



Figura 7: Icono de Google Cloud Functions (GCF)


Espero que hayas notado la tendencia al analizar las oraciones anteriores. Cuanto más alto suba en la escala de las soluciones informáticas GCP, menos tendrá que preocuparse por las tecnologías básicas. Esta pirámide termina con la unidad de cálculo más pequeña posible, una función, como se muestra en la sección 1.


GCF es una oferta de GCP relativamente nueva que todavía está en pruebas beta (en el momento de escribir este artículo). Las funciones en la nube permiten que un evento active ciertas funciones escritas por un desarrollador.


Se basan en eventos y subyacen a la palabra de moda sin servidor, lo que significa que no conocen los servidores. Las funciones en la nube son muy simples y tienen muchos usos diferentes que requieren un pensamiento basado en eventos. Por ejemplo, cada vez que un nuevo usuario inicia sesión, se puede iniciar una función en la nube para alertar a los desarrolladores.


En la fábrica, cuando un determinado sensor alcanza un cierto valor, puede iniciar una función en la nube que realiza algún procesamiento de información o notifica a algún personal de mantenimiento, etc.


Funciones en la nube - Computación de servidor dirigida por eventos | Nube de Google


Conclusión


En este artículo, hablamos sobre varias ofertas en la nube, como IaaS, PaaS, etc., y cómo la pila informática de Google implementa estos diferentes niveles. Hemos visto que los niveles de abstracción al pasar de una categoría de servicio a otra, como IaaS en Paas, requieren menos conocimiento del subyacente.


Para las empresas, esto proporciona una flexibilidad crítica que no solo cumple con sus objetivos operativos, sino que también satisface otras áreas clave, como la seguridad y el costo. Resumiendo:


Compute Engine : le permite crear su propia máquina virtual, asignando ciertos recursos de hardware, por ejemplo, RAM, procesador, memoria. También es bastante práctico y de bajo nivel.


El motor de Kubernetes es un paso más alto que el motor de cómputo, que le permite usar Kubernetes y contenedores para administrar su aplicación, lo que le permite escalarlo si es necesario.


App Engine es un paso más alto que Kubernetes Engine, lo que le permite concentrarse solo en su código, mientras que Google proporciona todos los requisitos de la plataforma subyacente.


Cloud-Functions es la parte superior de la pirámide informática, lo que le permite escribir una función simple que, cuando se inicia, utiliza toda la infraestructura básica para calcular y devolver el resultado.


Gracias por su atencion!


Twitter: @martinomburajr

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


All Articles