Serverless es mucho más que una palabra de moda. Y en este artículo, comprenderá cómo Google Cloud Platform hace que la tecnología sin servidor funcione para sus usuarios. Si mira hacia atrás, la mayoría de los primeros días de Google Cloud se centraron en lo que podría llamarse una oferta sin servidor, ya que implementaron y ofrecieron productos con este principio fundamental: usted le proporciona a Google su código y Google hará el resto. No hay servidores que administrar ni clústeres que configurar, aprovisionar o actualizar. Además, la infraestructura se escala automáticamente para satisfacer la demanda de carga y solo se le facturan los recursos consumidos. Como desarrollador que crea aplicaciones web, API móviles o servicios de back-end, esto brinda a los usuarios la capacidad de concentrarse en la lógica comercial de sus aplicaciones. GCP ofrece una serie de productos diferentes para ayudarlo a lograr exactamente lo que necesita.
La función como servicio es un enfoque muy popular para la informática sin servidor. Los desarrolladores escriben un fragmento de código (una función) que se activa en un evento o en una solicitud HTTP entrante. Este código de función puede comunicarse con una base de datos y con otros servicios antes de generar otro evento o simplemente enviar una respuesta.
Google Cloud Functions admite varios lenguajes de programación, como Python, Node.js, Go, Java y más por venir, y estos se pueden usar con un gran conjunto de bibliotecas y marcos. Simplemente implemente su función junto con su lista de dependencias, que se resolverán directamente en la nube, y configure el evento que desenstringrá su ejecución.
Puede ser un evento HTTP, pero también la carga de un archivo en un depósito de Cloud Storage, el cambio de datos en una base de datos, la publicación de un mensaje en una cola o tema de publicación/suscripción, o varios otros eventos. A las funciones se les pueden asignar variables de entorno de tiempo de implementación. Se pueden implementar en cualquier región o en varias desde un solo proyecto y admiten hasta varios gigabytes de memoria. Las funciones también se pueden configurar con restricciones de seguridad específicas, como acceso con privilegios mínimos con identidad por función. Incluso puede usar el servidor de metadatos Compute para obtener tokens de identidad en tiempo de ejecución. Las funciones de la nube se facturan por la cantidad de invocaciones, el tiempo de cómputo y la red saliente, o salida, con los primeros 2 millones de invocaciones gratis cada mes.
Las funciones en la nube son probablemente la forma más fácil de acceder a uno de los muchos servicios poderosos de GCP, desde API de aprendizaje automático hasta otras soluciones de almacenamiento y procesamiento que los desarrolladores han utilizado para implementar todo, desde código de conexión hasta aplicaciones completas basadas en microservicios. Ahora, como desarrollador, es posible que desee aún más libertad en los lenguajes y marcos que utiliza. Y lo que es más importante, es posible que prefiera entregar una imagen de contenedor de Docker cuidadosamente diseñada en lugar del código fuente. Cloud Run ofrece una verdadera experiencia sin servidor si lo que desea usar es una imagen de contenedor HTTP sin estado. Simplemente cree la imagen, cárguela en Cloud Registry y cree un servicio Cloud Run usando ese contenedor. El siguiente comando se puede utilizar para hacerlo:
$ gcloud beta run deploy --image gcr.io/project/image
O bien, puede usar la consola en la nube como se muestra a continuación:
En esta etapa, su aplicación ya está implementada y ejecutándose en la nube. Y puede olvidarse del aprovisionamiento o la administración de servidores. Cloud Run hace eso por ti. Se amplía y reduce de forma automática y rápida en función del tráfico entrante, e incluso se reduce a cero. Solo paga por los recursos que utiliza su aplicación hasta el milisegundo 100 más cercano. Debido a que Cloud Run está diseñado con Knative , también puede usarlo con su propio clúster de Kubernetes Engine. Con Cloud Run en GKE, puede crear e implementar aplicaciones en su propio clúster de Kubernetes con la misma experiencia y los mismos beneficios. Ya sea que se ejecute en GKE o no, Cloud Run admite la implementación de varios servicios en un solo proyecto de GCP, ya sea en varias regiones o en espacios de nombres específicos.cuando se ejecuta en un clúster de GKE. Cada servicio expone un punto final único. Cada implementación de servicio crea una revisión y las requests se enrutan automáticamente tan pronto como sea posible a la última revisión de servicio en buen estado. Finalmente, cada revisión que recibe la solicitud se escala automáticamente a la cantidad de instancias de contenedor necesarias para manejar todas estas requests.
Tenga en cuenta que una instancia de contenedor determinada puede recibir varias requests al mismo tiempo. Con la configuración de simultaneidad, puede establecer la cantidad máxima de requests que se pueden enviar en paralelo a una instancia de contenedor determinada.
Cloud Run esencialmente le brinda la flexibilidad del desarrollo moderno basado en contenedores con todos los beneficios de un entorno completamente sin servidor, escalable automáticamente según las necesidades de su aplicación.
Si está creando una aplicación web completa con varios servicios y aún desea implementar el código fuente y conservar todos los beneficios sin servidor, debe consultar Google App Engine. App Engine es donde encontrará las rutas sin servidor de Google Cloud Platform. App Engine es una plataforma administrada que le permite elegir el idioma con el que se sienta más cómodo. Simplemente ejecute el siguiente comando y App Engine se encargará de cargar su código y ejecutarlo en la infraestructura de Google.
$ gcloud app deploy
Los tiempos de ejecución de App Engine de segunda generación, disponibles para Java, Node, PHP, Go y Python, ofrecen una experiencia verdaderamente idiomática con la capacidad de usar cualquier API de idioma y cualquier marco con acceso al sistema de archivos de lectura/escritura y con aislamiento proporcionado . de GVisor , una poderosa tecnología de sandbox de código abierto. Las aplicaciones de App Engine se pueden crear con varios servicios, cada uno de los cuales puede usar diferentes idiomas y se puede escalar de forma independiente. Cada servicio puede ofrecer múltiples versiones, todas activas al mismo tiempo, y es trivial para usted configurar implementaciones por etapas o pruebas A/B en estas versiones con división de tráfico.
App Engine lleva las herramientas listas para usar un paso más allá con herramientas completas de administración del rendimiento de la aplicación disponibles, como la depuración en vivo de las aplicaciones de producción, el seguimiento de las requests que fluyen a través de su sistema e incluso la creación de perfiles de CPU y montón de su aplicación.
Google App Engine es una plataforma madura sin servidor. Se pueden escribir aplicaciones modernas y más avanzadas con una combinación de Cloud Functions, App Engine y Cloud Run. Y tanto Cloud Pub/Sub como Cloud Tasks son soluciones populares y elegantes para integrar estas diferentes partes o incluso simplemente para combinar múltiples funciones.
Cloud Pub/Sub es un sistema de eventos simple, confiable y escalable que ofrece mensajería asincrónica de muchos a muchos que desvincula fácilmente a los remitentes y los receptores. Admite la entrega al menos una vez y es global de forma predeterminada sin infraestructura para administrar. Simplemente publique y consuma hasta cientos de millones de mensajes por segundo.
Cloud Tasks , por otro lado, ofrece un sistema de despacho para gestionar la ejecución de un gran número de tareas distribuidas. Es ideal para mensajes asíncronos uno a uno y viene con controles de límite de velocidad.
Cloud Scheduler es un servicio de trabajo cron completamente administrado que le permite programar tareas que se invocan a través de puntos finales HTTPS, temas de Cloud Pub/Sub o aplicaciones de App Engine.
Todas estas soluciones que se analizan brevemente aquí están completamente administradas y monitoreadas. El registro y el informe de errores están integrados.
Publicación traducida automáticamente
Artículo escrito por ddeevviissaavviittaa y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA