El siguiente informe constituye una guía para audiencias del ámbito técnico sobre cómo usar los productos sin servidor de Google Cloud Platform (GCP). Asimismo, la guía ofrece consejos sobre cómo crear microservicios sin servidor, así como los beneficios empresariales sin servidor.

¿Qué quiere decir "sin servidor"?

"Sin servidor" significa que no hay aprovisionamiento por adelantado, ni administración de servidores, ni forma de pago por uso para la creación de aplicaciones. Desde el comienzo del desarrollo cliente-servidor, TI tuvo que administrar los servidores para el alojamiento de aplicaciones (cálculo) y las bases de datos de las aplicaciones. Google Cloud siempre ha creído en la visión del modelo sin servidor al debutar con Google App Engine en el 2008, el primer servicio informático totalmente sin servidor. Desde entonces, la oferta de productos sin servidor de Google ha evolucionado tanto en el ámbito del desarrollo de aplicaciones como en el de las analíticas.

gcp-history-diagram

Modelo sin servidor para el desarrollo de aplicaciones

Alojar la aplicación

Las opciones de alojamiento de aplicaciones sin servidor de GCP son Cloud Functions y App Engine. Ambos servicios resumen la necesidad de administrar cualquier servidor y se escalarán de forma dinámica según sea necesario. Cloud Functions es para unidades de código más pequeñas que se activan mediante eventos en la nube o peticiones HTTP y solo se facturan por petición, lo que puede dar como resultado ahorros para aplicaciones con patrones de tráfico bajos o desiguales. App Engine sirve para unidades de código más grandes (por ejemplo, un sitio web) que se activan mediante eventos HTTP o en la nube.

Para los clientes que necesitan más control, Kubernetes Engine y Compute Engine son servicios de menor nivel que requieren una administración explícita de los servidores. Kubernetes Engine descarga parte de la administración del servidor utilizando Kubernetes; sin embargo, todavía hay algo de administración de la infraestructura informática subyacente y requiere un esfuerzo en el equipo de desarrollo y operaciones del cliente para automatizar el escalado.

Por lo general, las aplicaciones escritas con Cloud Functions y App Engine tienen solo dos formas de comunicación: peticiones HTTP síncronas y eventos asíncronos a través de Pub/Sub. La elección de la comunicación depende de las necesidades de la aplicación. Ambos servicios suprimen la necesidad de configurar balanceadores de carga o administrar las colas de eventos de forma manual, lo que mejora aún más la productividad del desarrollador y disminuye la sobrecarga operativa.

Almacenar los datos de la aplicación

Los productos de bases de datos sin servidor de GCP son Cloud Datastore y Firebase. Ambos son una base de datos NoSQL sin servidor que escala automáticamente en función del tráfico. Por ejemplo, Pokémon GO aprovechó Cloud Datastore para escalar automáticamente 50 veces más que el tráfico previsto en el lanzamiento. Cloud Datastore permite ahorrar de forma significativa en costes y gestión en la administración de tu propia base de datos NoSQL, como Cassandra y MongoDB. Firebase tiene características y funcionalidades adicionales para desarrolladores de aplicaciones móviles y web, como la sincronización de datos en tiempo real entre clientes, OAuth y Analytics integrados.

Para los clientes que necesitan más control o requisitos especiales de bases de datos, pueden instalar su propia base de datos en máquinas virtuales de GCP con discos persistentes, o usar uno de los productos de bases de datos administrados de GCP como Bigtable, Spanner o Cloud SQL. Estas bases de datos administradas descargan gran parte de la sobrecarga de administración operativa, pero aún requieren que el cliente controle de forma explícita las escalas en función de las necesidades de la aplicación.

Modelo sin servidor para Analytics

El análisis sin servidor de GCP abarca el almacenamiento de datos, las canalizaciones de datos (ETL) y el aprendizaje automático. La columna vertebral de estos productos es Cloud Pub/Sub y Google Cloud Storage, que permite la transferencia de datos de transmisión y por lotes de cualquier tamaño o velocidad.

Dataflow es un servicio administrado para desarrollar y ejecutar una amplia gama de patrones de procesamiento de datos que incluyen ETL, así como operaciones informáticas por lotes y continuas. Dataflow está concebido para administrar conjuntos de datos sin límites, desordenados y de escala global (por ejemplo, registros web, estadísticas de uso de dispositivos móviles y redes de sensores), que son cada vez más comunes en el día a día de las empresas. Este tipo de datos supone una pesadilla de administración del servidor debido a los requisitos de recursos dinámicos. Dataflow sintetiza estas preocupaciones y escala automáticamente los recursos informáticos subyacentes para cumplir con los requisitos de latencia, corrección y coste del usuario.

BigQuery es el producto de almacenamiento de datos de bajo coste y escala de petabytes de GCP. El secreto del bajo coste y el alto rendimiento de BigQuery es la capacidad de escalar automáticamente a miles de CPU a través de petabytes de datos. Los usuarios pueden consultar datos de manera interactiva a través de la API de BigQuery.

En el caso de las organizaciones que desean ir más allá de los análisis tradicionales basados en QSL, Cloud ML Engine es un servicio de aprendizaje automático gestionado basado en el popular framework TensorFlow. Cuenta con APIs de predicción por lotes y en tiempo real (en línea), y también escala automáticamente según los requisitos de recursos. También puedes elegir procesar los datos en TensorFlow mediante GPUs y TPUs para un aprendizaje e inferencia más rápidos.

Modelo sin servidor para la arquitectura de microservicios

Los productos sin servidor de GCP resuelven ciertas dificultades a las que se enfrentan las organizaciones al implementar arquitecturas de microservicios.

Reducción del coste de la infraestructura: Para las arquitecturas de microservicios, se requiere que cada servicio tenga su propio clúster y base de datos de servidores de aplicaciones. Compartir infraestructura es un antipatrón. Debido a que los microservicios llevan a una explosión en servicios más pequeños, el número correspondiente de servidores que necesitan ejecutar bases de datos y servidores de aplicaciones también explota. Sin escalamiento dinámico del modelo sin servidor, las empresas se suelen ver obligadas a aprovisionar recursos informáticos en exceso.

Reducción del coste operativo: El coste operativo que suponen el aprovisionamiento y la administración de muchos clústeres de servidores también explota cuando aumenta el número de microservicios. Al proporcionar el aprovisionamiento de autoservicio listo para usar de servidores para informática y bases de datos, los costes operativos se reducen de forma drástica. Todas las ofertas sin servidor de GCP proporcionan APIs para administrar productos sin servidor, por lo que los equipos de operaciones de una empresa pueden gastar sus recursos implementando requisitos de alto nivel de permisos en lugar de administrar servidores individuales.

Evitar largas cadenas de llamada síncronas: Un problema común con los microservicios es que los servicios se desarrollan de forma aislada y, a menudo, dan como resultado cadenas de llamada síncronas que conducen a un rendimiento deficiente para los microservicios a los que se enfrentan los clientes. Un patrón para eliminar este problema es mediante la asíncrona "informática previa" de resultados de un conjunto de microservicios, así como mediante el almacenamiento de los resultados en una base de datos de baja latencia o alto rendimiento. Los servicios Cloud Pub/Sub, de informática y de bases de datos de GCP permiten la creación fácil y económica de dichas arquitecturas.

Beneficios comerciales del modelo sin servidor:

Las aplicaciones con requisitos rápidos de escala en el mercado e impredecibles son las que más se benefician de la informática y bases de datos sin servidor. Con frecuencia, los proyectos de innovación empresarial o el desarrollo de empresas emergentes se incluyen dentro de esta categoría.

Conclusión

  • Google se compromete a proporcionar a sus clientes un amplio conjunto de productos sin servidor. Con el paso de los años, GCP ha presentado nuevos productos sin servidor que abarcan tanto el desarrollo de aplicaciones como el análisis.
  • Los microservicios son especialmente adecuados para la informática sin servidor en términos de coste y rendimiento.
  • Las aplicaciones y bases de datos que no son aptas para alojarse en los productos sin servidor de GCP se pueden mezclar y combinar con servicios como Compute Engine, Kubernetes Engine o Cloud SQL.
  • Los beneficios comerciales suponen menos tiempo de lanzamiento y menores costes de infraestructura y operaciones en comparación con el uso de soluciones sin servidor.