Serverless y contenedores: dos grandes tecnologías que funcionan mejor juntas

Serverless y contenedores: dos grandes tecnologías que funcionan mejor juntas

Los modelos nativos en la nube que utilizan software en contenedor en un enfoque de entrega continua podrían beneficiarse de la computación sin servidor, donde el proveedor de la nube genera la cantidad exacta de recursos necesarios para ejecutar una carga de trabajo sobre la marcha. Si bien los principales proveedores de la nube lo han reconocido y ya están creando productos para abstraer la infraestructura, es posible que no funcione en todas las situaciones, a pesar de los beneficios.

La nube nativa simplemente implica el uso de aplicaciones en contenedores y Kubernetes. Para entregar software en pequeños paquetes llamados microservicios. Esto permite a los desarrolladores crear y entregar software de forma más rápida y eficiente en un modelo de entrega continua. En el mundo nativo de la nube, debería poder desarrollar el código una vez y ejecutarlo en cualquier lugar, en la nube principal o en cualquier nube pública, o al menos eso es lo ideal.

Sin servidor es en realidad un nombre poco apropiado. Hay servidores subyacentes en el modelo, pero en lugar de máquinas virtuales dedicadas, el proveedor de la nube entrega la cantidad correcta de recursos para ejecutar una carga de trabajo particular durante el tiempo correcto y no más.

Nada es perfecto

Tal disposición parecería estar perfectamente adaptada a un modelo de entrega continua, y si bien los proveedores han reconocido la belleza de tal enfoque, como señaló un ingeniero, nunca hay un almuerzo gratuito en los procesos que son tan complejos, y no lo lograron. Ser una solución perfecta para cada situación.

Arpana Sinha, directora de gestión de producto de Google. dice que la comunidad de Kubernetes realmente ha abrazado la idea sin nivel, pero ella dice que está limitada en su implementación actual, entregada en forma de funciones con productos como AWS Lambda, Google Cloud Functions y Azure Functions.

“En realidad, creo que el concepto de funciones es un concepto limitado. Es desafortunado que eso sea lo único que las personas asocian con serverless ", dijo.

Dice que Google ha intentado ser más expansivo en su definición. "Es básicamente un concepto para desarrolladores en el que puedes pasar de la escritura de código a la implementación sin problemas y la infraestructura se encarga de todo lo demás, asegurándose de que tu código esté implementado en la forma adecuada en las partes más adecuadas y resistentes de la infraestructura, escalando según la aplicación necesita recursos adicionales, reduciéndola a medida que disminuye el tráfico y cobrándole solo lo que consume ", explicó.

Pero Matt Whittington, ingeniero sénior del equipo de Kubernetes en Atlassian, dice que si bien suena bien en teoría, en la práctica la infraestructura totalmente automatizada podría ser poco realista en algunos casos. "Serverless podría ser prometedor para ciertas cargas de trabajo porque realmente permite que los desarrolladores se centren en el código, pero no es una solución perfecta. Todavía hay algunos ajustes subyacentes ".

Dice que es posible que no pueda dejarlo completamente en manos del proveedor, a menos que haya una manera de especificar los requisitos para cada contenedor, por ejemplo, indicándoles que necesita un tiempo mínimo de carga de contenedores, un determinado tiempo de eliminación de contenedores o tal vez deba entregar Es un lugar específico. Dice que en realidad no estará completamente automatizado, al menos mientras los desarrolladores se entretienen con la configuración para asegurarse de que están obteniendo los recursos que necesitan sin aprovisionar en exceso y pagar más de lo que necesitan.

Vendedores que traen soluciones

Los proveedores están poniendo sus dos centavos tratando de crear herramientas que reúnan este ideal. Por ejemplo, Google anunció un servicio llamado Google Cloud Run en Google Cloud Next el mes pasado. Se basa en el proyecto de código abierto Knative, y en esencia combina la bondad de serverless para los desarrolladores que ejecutan contenedores. Otros servicios similares incluyen AWS Fargate y Azure Container Instances, los cuales intentan reunir estas dos tecnologías en un paquete similar.

De hecho, Gabe Monroy, gerente de programas asociado de Microsoft, dice que Azure Container Instances está diseñado para resolver este problema sin depender de un enfoque de programación basado en funciones. “Lo que hace Azure Container Instances es que le permite ejecutar contenedores directamente en la estructura informática de Azure, sin máquinas virtuales, con hipervisor aislado, facturación de pago por segundo. Lo llamamos contenedores sin servidor ", dijo.

Si bien Serverless y los contenedores pueden parecer un buen ajuste, como señala Monroy, no existe un enfoque único para todas las tecnologías nativas en la nube, sea cual sea el enfoque. Algunas personas continuarán utilizando un enfoque de servidor sin función como AWS Lambda o Azure Functions, y otras cambiarán a contenedores y buscarán otras formas de unir estas tecnologías. Pase lo que pase, a medida que las necesidades del desarrollador cambien, está claro que la comunidad de código abierto y los proveedores responderán con herramientas para ayudarlos. Traer Serverless y Containers está juntos es solo un ejemplo de eso.


Source link