TRANSFORMACIÓN DIGITAL/
CLOUD COMPUTING/
¿Cuál es la diferencia entre Kubernetes y Severless?
El concepto de los contendores se resume en crear un contenedor el cual tenga todas las dependencias requeridas pre instaladas, poner el código de la aplicación dentro de este y correr donde sea que el runtime del contenedor este instalado.
Si el número de aplicaciones crece en nuestro sistema, se convierte en complicado de gestionar. Docker no es suficiente, ya que necesitamos una coordinación para hacer el despliegue, la supervisión de servicios, el reemplazo, el escalado automático y, en definitiva, la administración de los distintos servicios que componen nuestra arquitectura distribuida.
Podemos ver a Kubernetes como un marco para ejecutar sistemas distribuidos a partir de imágenes simples de Docker. Se encarga de sus requisitos de escalado, implementación y equilibrio de carga. Todo eso se puede describir fácilmente usando archivos YAML simples y reutilizados, creando un entorno replicable por diseño.
Con solo cambiar algunos archivos de configuración, se tiene un control total sobre las instancias de contenedores (servicios y pods), las redes y la implementación. Kubernetes se encarga de sus requisitos de escalado, conmutación por error, patrones de implementación y más.
La utilización de esta tecnología va creciendo día a día, y casi todos los proveedores empiezan a ser compatibles entre sí, gracias a Docker y Kubernetes. Google, Microsoft, Amazon o IBM, por ejemplo, ya lo son y trabajan bajo un mismo estándar. La lucha ahora se encuentra en mover toda esa carga de trabajo que aún no está en la nube: la nube híbrida.
¿Y que es Severless?
En Severless, toda la lógica de negocios , es implementada como funciones y eventos. Las aplicaciones se dividen en diferentes funcionalidades, los cuales son detonados por eventos. Uno sube el código de la función y añade un evento a este. El proveedor de la nube se ocupa del resto y asegura que tus funciones estén siempre disponibles y utilizables, no importando que.
Serverless es un modelo de nube en el que desea estar libre de servidor e infraestructura. El objetivo es evitar el costo fijo, reducir el tiempo de comercialización y la fricción entre los equipos de operación y desarrollo. Las implementaciones sin servidor más comunes tienen contenedores sin estado con un SDK que permite que su código se integre en el sistema y se le facture según el uso de los recursos.
Por supuesto, los servidores no están extintos. No se ven porque están ocultos por el proveedor, que ofrece el servicio. Los servidores todavía están activos, pero no se ve ningún espacio de memoria RAM, CPU o disco. Permite a los desarrolladores concentrarse solo en el código, y es posible poner su esfuerzo donde realmente se necesita.
¿Cuáles son las ventajas de Kubernetes?
La gran ventaja de usar Kubernetes es que puede manejar su clúster como si fuera una granja de servidores normal, pero sin el costo de administrarlo físicamente. Lógicamente, puede recrear el paralelismo entre los servidores y los componentes de su clúster. Tiene pods y servicios que puede instanciar como si fuera una máquina virtual. Tienes redes, almacenamiento, etc. Esto se traduce en un control más profundo de todos los componentes individuales con acceso de bajo nivel al clúster.
¿Cuáles son las ventajas de Serverless?
Kubernetes es un gran paso adelante en la reducción del esfuerzo de los administradores de sistemas, pero no lo redujo a totalmente. El enfoque Severless, básicamente, evita cualquier componente de administrador de sistemas, ya que la única parte de la que debe ocuparse es el código fuente. Es como escoger un juego de ladrillos de lego y juntarlos. Cada ladrillo funciona, individualmente. Solo necesita dejar que se comuniquen correctamente.
¿Serverless es el final de Kubernetes?
Aunque Severless parece algo más reciente que Docker y kubernetes, sus fechas de lanzamiento fueron muy próximas, el primer lanzamiento de AWS Lambda fue en 2014, Docker tuvo el primer lanzamiento oficial en el 2013, y Kubernetes nació en 2014.
Por lo que la tecnología Severless no nació después de Kubernetes y no podemos considerar la tecnología Severless como un reemplazo de los contenedores. Son solo dos enfoques diferentes para implementar la parte de alojamiento en una aplicación web. Puede que en algunos casos, prefieras una tecnología u otro, y esto depende de cada caso.
Como conclusión a nivel general , podemos decir que es preferible escoger contenedores y kubernetes cuando sea necesario más flexibilidad, o cuando necesitan migrar servicios o sistemas legacy, y por otro lado, es más conveniente escoger Serverless cuando se necesite velocidad de desarrollo, una pronta salida a mercado, que escale la aplicación automáticamente y costos de ejecución más bajos en el inicio del proyecto.