GCP: análisis de la pila informática de Google Cloud Platform

La traducción del artículo fue preparada específicamente para estudiantes del curso. "Servicios en la nube".

¿Interesado en desarrollarse en esta dirección? Mira la grabación de una clase magistral profesional "Servicio AWS EC2", que fue realizado por Egor Zuev, TeamLead en InBit y autor del programa educativo en OTUS.

GCP: análisis de la pila informática de Google Cloud Platform

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 interesantes, pero es posible que no sean del todo obvios acerca de sus funciones y lo que los hace únicos entre sí. Este artículo está dirigido a quienes son nuevos en los conceptos de la nube, en particular los servicios de la nube y GCP.

GCP: análisis de la pila informática de Google Cloud Platform

1. Pila de cálculo

Se puede considerar una pila informática como una abstracción en capas de lo que puede proporcionar un sistema informático. Esta pila asciende (se mueve hacia arriba) de "hierro desnudo" (metal básico), refiriéndose a los componentes de hardware reales de la computadora, hasta las funciones (funciones), que representan la unidad de cálculo más pequeña. Lo que es importante tener en cuenta sobre la pila es que los servicios se agregan a medida que se asciende en la pila, como la sección "aplicaciones" (aplicaciones), que se muestra en la Figura 1 a continuación, debe contener todos los componentes básicos del contenedor (contenedores), maquinas virtuales (maquinas virtuales) y hierro. De la misma forma, el componente de máquinas virtuales debe contener hardware en su interior para funcionar.

GCP: análisis de la pila informática de Google Cloud Platform

Figura 1: Pila de cálculo | Imagen procedente de Google Cloud

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

— Si está familiarizado con los servicios en la nube, vaya a seccion 3para ver el equivalente de GCP
— Si solo desea un resumen de los servicios en la nube, vaya a seccion 2.4

2. Servicios en la nube

El mundo de la computación en la nube es muy diverso. Los proveedores de nube ofrecen una variedad de servicios adaptados a los diferentes requisitos de los clientes. 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 de nube. Afirmo que hay tres ofertas principales "como servicio" que los proveedores de la nube casi siempre ofrecen.

Se trata de IaaS, PaaS y SaaS, que significan respectivamente Infraestructura como Servicio, Plataforma como Servicio y Software como Servicio. Es importante visualizar los servicios en la nube como capas de servicios prestados. Esto significa que a medida que sube o baja de un nivel a otro, usted, como cliente, se ve atravesado por diferentes opciones de servicio que se suman o restan a la oferta principal. Es mejor pensar en ello como una pirámide, como se muestra en la Figura 2.
GCP: análisis de la pila informática de Google Cloud Platform

Figura 2: Pirámide aaS | Imagen procedente de Garaje Rubí

2.1 Infraestructura como servicio (IaaS)

Este es el nivel más bajo que un proveedor de nube puede ofrecer e implica que el proveedor de nube entregue la infraestructura básica, incluido middleware, cables de red, CPU, GPU, RAM, almacenamiento externo, servidores e imágenes del sistema operativo subyacente, por ejemplo, Debian Linux, CentOS, Windows. , etc.

Si solicita una cotización a un proveedor de IaaS en la nube, esto es lo que debe esperar recibir. Depende de usted, el cliente, ensamblar estas piezas para administrar su negocio. El alcance de lo que tendrá que trabajar puede variar de un proveedor a otro, pero generalmente 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.

Es posible que a algunas personas no les guste el hecho de tener que instalar imágenes del sistema operativo y ocuparse de las redes, el equilibrio de carga o preocuparse por qué tipo de procesador es ideal para su carga de trabajo. Aquí es donde ascendemos en la pirámide hacia PaaS.

2.2 Plataforma como servicio (PaaS)

PaaS solo implica 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 de 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 porque En la nube, el proveedor maneja todos los detalles de la infraestructura por usted. Solicitas la plataforma elegida y construyes el proyecto sobre ella. Ejemplos de PaaS son Heroku.

Este puede ser un nivel demasiado alto para algunos, ya que no necesariamente quieren construir el proyecto en una plataforma específica, sino que necesitan un conjunto de servicios directamente del proveedor de la nube. Aquí es donde entra en juego SaaS.

2.3 Software como servicio (SaaS)

SaaS representa los servicios más comunes proporcionados por los proveedores de servicios en la nube. Están dirigidos a usuarios finales y se puede acceder a ellos principalmente a través de sitios web como Gmail, Google Docs, Dropbox, etc. En cuanto a Google Cloud, existen varias ofertas fuera de su pila informática que son SaaS. Estos incluyen Data Studio, Big Query, etc.

2.4 Resumen de servicios en la nube

Componentes
IaaS
PaaS
SaaS

Que obtienes
Obtienes la infraestructura y pagas en consecuencia. Libertad de usar o instalar cualquier software, sistema operativo o composición del mismo.
Aquí obtienes lo que pides. Software, hardware, SO, entorno web. Obtiene una plataforma lista para usar y paga en consecuencia.
Aquí no tienes que preocuparte por nada. Se le proporciona un paquete preinstalado personalizado según sus requisitos y todo lo que tiene que hacer es pagar en consecuencia.

Valor
Computación básica
IaaS superior
Este es esencialmente un paquete completo de servicios.

Dificultades técnicas
Conocimientos técnicos requeridos.
Se le proporciona la configuración básica, pero aún necesita conocimientos del dominio.
No hay necesidad de preocuparse por los detalles técnicos. El proveedor de SaaS lo proporciona todo.

¿Con qué funciona?
Máquinas virtuales, almacenamiento, servidores, red, balanceadores de carga, etc.
Entornos 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, Yahoo mail, etc.), sitios de interacción social (Facebook, etc.)

Gráfico de popularidad
Popular entre desarrolladores altamente capacitados e investigadores que requieren personalización según sus requisitos o área de investigación.
Más popular entre los desarrolladores, ya que pueden centrarse en desarrollar sus aplicaciones o scripts. No tienen que preocuparse por la carga de tráfico o la gestión del servidor, etc.
Más popular entre consumidores comunes o empresas que utilizan software como correo electrónico, intercambio de archivos y redes sociales, ya que no necesitan preocuparse por detalles técnicos.

Figura 3: Resumen de las principales ofertas de nube | Imagen proporcionada Amir en Blog Specia

3. Suite de informática de la plataforma Google Cloud

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

3.1 Google Compute Engine (GCE) - IaaS

GCP: análisis de la pila informática de Google Cloud Platform

Figura 4: Icono de Google Compute Engine (GCE)

GCE es una oferta IaaS de Google. Con GCE, puede crear libremente máquinas virtuales, asignar recursos de memoria y CPU, elegir el tipo de almacenamiento como SSD o HDD y la cantidad de memoria. Es casi como si construyera su propia computadora/estación de trabajo y manejara todos los detalles de cómo funciona.

En GCE, puedes elegir desde microinstancias con procesadores de 0,3 núcleos y 1 GB de RAM hasta 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 interesados, estas son máquinas virtuales que pueden construir.

Tipos de máquinas | Documentación de Compute Engine | Nube de Google

3.2. Motor de Google Kubernetes (GKE) - (Caas/Kaas)

GCP: análisis de la pila informática de Google Cloud Platform

Figura 5: Icono de Google Kubernetes Engine (GKE)

GKE es una oferta informática única de GCP que es una abstracción además de Compute Engine. De manera más general, GKE se puede clasificar como Contenedor como Servicio (CaaS), a veces denominado Kubernetes como Servicio (KaaS), lo que permite a los clientes ejecutar fácilmente sus contenedores Docker en un entorno de Kubernetes totalmente administrado. Para aquellos que no están familiarizados con los contenedores, los contenedores ayudan a modularizar servicios/aplicaciones, por lo que diferentes contenedores pueden contener diferentes servicios; por ejemplo, un contenedor puede alojar el front-end de su aplicación web y otro puede contener el back-end de la misma. Kubernetes automatiza, organiza, gestiona e implementa sus contenedores. Más información aquí.

Motor Google Kubernetes | Nube de Google

3.3 Google App Engine (GAE) - (PaaS)

GCP: análisis de la pila informática de Google Cloud Platform

Figura 6: Icono de Google App Engine (GAE)

Como se mencionó en la Sección 2.2, PaaS se ubica por encima de IaaS y, en el caso de GCP, también puede considerarse una oferta por encima de GKE. GAE es la PaaS personalizada de Google y la mejor forma de describirse es "traiga su código y nosotros nos encargaremos del resto".

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

GAE maneja automáticamente el escalado para satisfacer la carga y la demanda de los usuarios, lo que significa que si su sitio web de venta de flores alcanza su punto máximo repentinamente porque se acerca el Día de San Valentín, GAE se encargará de escalar la infraestructura subyacente para satisfacer la demanda y garantizar que su sitio web no colapse debido al aumento de la demanda. Esto significa que pagas exactamente por los recursos que tu aplicación requiere en ese momento.

GAE utiliza Kubernetes o su versión nativa para manejar todo esto para que usted no tenga que preocuparse por ello. GAE es más adecuado para empresas que no están interesadas en la infraestructura subyacente y solo se preocupan por asegurarse de que su aplicación sea accesible de la mejor manera posible.

En mi opinión, GAE es el mejor lugar para comenzar si eres un desarrollador con una gran idea, pero no quieres lidiar con la monotonía de configurar servidores, equilibrar la carga y todos los demás trabajos devops/SRE que consumen mucho tiempo. . Con el tiempo podrás probar GKE y GCE, pero esa es sólo mi opinión.

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

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

3.4 Funciones de Google Cloud - (FaaS)

GCP: análisis de la pila informática de Google Cloud Platform

Figura 7: Icono de Google Cloud Functions (GCF)

Esperemos que hayas notado una tendencia al observar las ofertas anteriores. Cuanto más alto ascienda en la escala de soluciones informáticas de GCP, menos tendrá que preocuparse por la tecnología subyacente. 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 se encuentra en versión beta (en el momento de escribir este artículo). Las funciones de la nube permiten que ciertas funciones escritas por el desarrollador se activen mediante un evento.

Están impulsados ​​por eventos y están en el centro de la palabra de moda "sin servidor", lo que significa que no conocen los servidores. Las funciones de la nube son muy simples y tienen muchos usos diferentes que requieren pensamiento de eventos. Por ejemplo, cada vez que se registra un nuevo usuario, se puede activar una función en la nube para alertar a los desarrolladores.

En una fábrica, cuando un determinado sensor alcanza un determinado valor, puede activar una función de nube que procesa cierta información, o notifica a algún personal de mantenimiento, etc.

Funciones en la nube: informática de servidor basada en eventos | Nube de Google

Conclusión

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

Para una empresa, esto proporciona una flexibilidad crítica que no sólo cumple con sus objetivos operativos, sino que también cumple con otras áreas clave como la seguridad y los costos. Para resumir:

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.

Motor Kubernetes es un paso adelante con respecto a Compute Engine y le permite usar Kubernetes y contenedores para administrar su aplicación, lo que le permite ampliarla según sea necesario.

App Engine es un paso adelante con respecto a Kubernetes Engine, lo que le permite concentrarse solo en su código mientras Google se encarga de todos los requisitos subyacentes de la plataforma.

Funciones de la nube es la cima de la pirámide informática y le permite escribir una función simple que, cuando se ejecuta, utiliza toda la infraestructura subyacente para calcular y devolver el resultado.

Gracias por su atención!

Twitter @martinomburajr

Fuente: habr.com

Añadir un comentario