Serverless vs Containers

Sin servidor y la contenedorización han sido dos de las mayores palabras de moda DevOps en los últimos años, y por una buena razón. En los casos de uso adecuados, ambos pueden mejorar el rendimiento y reducir los costos. Sin embargo, a pesar de su popularidad, no todo el mundo entiende las diferencias entre la informática sin servidor y los contenedores.

Aquí, para ayudarlo a comenzar a trabajar con ambas tecnologías, echaremos un vistazo a qué es cada una, las comparamos, explicaremos cómo se complementan entre sí y exploraremos el tema crítico de la seguridad sin servidor frente a la seguridad de contenedores.

Prueba gratuita de Workload Protection Descargar Serverless EBook

¿Qué son los contenedores?

Los contenedores son unidades ligeras e inmutables de software que incluyen todas las dependencias y el código para ejecutar una aplicación.

Los contenedores se ejecutan sobre "tiempos de ejecución de contenedores" (a veces denominados motores de contenedores) que pueden ejecutarse en una amplia gama de sistemas operativos y plataformas. Dado que los tiempos de ejecución de los contenedores proporcionan todos los recursos del sistema que necesita un contenedor, se minimizan las complejidades operativas de desplegar una aplicación en un sistema operativo tradicional.

Los contenedores también son muy portátiles. En cualquier lugar donde exista el entorno de ejecución del contenedor, los equipos pueden implementar una imagen de contenedor. Además, como los contenedores incluyen sólo lo necesario para ejecutar una aplicación, son más ligeros y rápidos que alternativas como la máquina virtual.

El ejemplo más popular de una plataforma de contenedores es Docker. Sin embargo, Docker no es la única plataforma de contenedores. Por ejemplo, Linux Container (LXC) es anterior a Docker y todavía se usa en la actualidad. Además, existen muchas herramientas que complementan a los contenedores, como Kubernetes (K8s), que se utiliza para orquestar y gestionar la implementación de contenedores a escala.

¿Qué es Serverless?

La tecnología sin servidor es un modelo informático que ejecuta código bajo demanda sin necesidad de aprovisionar o administrar la infraestructura.

A pesar de lo que su nombre indica, hay servidores involucrados en la computación sin servidor. Sin embargo, las empresas no tienen que preocuparse en absoluto por la infraestructura del servidor. En su lugar, los equipos de desarrollo simplemente implementan su código en una plataforma sin servidor y solo se les cobra cuando ese código se ejecuta y consume recursos del servidor.

Dado que las empresas sólo pagan por el tiempo que están utilizando los recursos del servidor (por ejemplo, la CPU), la aplicación sin servidor puede ser una excelente forma de minimizar el coste de desplegar aplicaciones con grandes picos y caídas en el uso. Se trata de un cambio fundamental respecto a la ejecución de servidores bare-metal, máquina virtual o contenedores. No hay ningún costo por el tiempo de inactividad, los cargos solo se producen cuando una aplicación se ejecuta activamente y usa recursos.

Además, la complejidad operativa disminuye porque el proveedor de la plataforma sin servidor abstrae toda la infraestructura. Los equipos DevOps se centran simplemente en su código. Algunos ejemplos populares de plataformas de computación sin servidor son AWS Lambda, Azure App Service y nube Run de Google.

Casos de uso comunes

Ahora que entendemos qué son la informática sin servidor y los contenedores, veamos algunos de sus casos de uso más populares.

Los casos de uso de contenedores más populares incluyen:

  • microservicio. Los contenedores son los bloques de construcción de la arquitectura microservicio. Dado que los contenedores son portátiles, ligeros y fáciles de desplegar, son una opción excelente para crear microservicios de acoplamiento flexible.
  • CI/CD. Los contenedores proporcionan a los equipos de DevOps una forma de eliminar las diferencias de entorno entre dev, QA, staging y la implementación de producción. Como resultado, son muy útiles en los flujos de trabajo de integración continua / implementación continua(CI/CD).
  • "Despliegue en cualquier lugar". La mayoría de las empresas modernas operan en entornos de nube híbrida y multi-nube. Tanto si las empresas necesitan ejecutar una aplicación in situ como en múltiples nubes, los contenedores pueden hacer el trabajo.
  • Migración de aplicaciones heredadas. En muchos casos, es necesario migrar a la nube las aplicaciones monolíticas heredadas. Ponerlos en contenedores facilita este proceso.

Algunos de los casos de uso sin servidor más populares son:

  • API. Las interfaces de programación de aplicaciones (API) como las API REST y las implementaciones GraphQL son un caso de uso muy extendido en la computación sin servidor. Dado que las transacciones de API son de corta duración y pueden escalarse rápidamente hacia arriba y hacia abajo, la tecnología sin servidor proporciona una plataforma sólida sobre la que construir backends de API.
  • Procesamiento de datos. La tecnología sin servidor puede permitir el procesamiento de datos de múltiples fuentes mediante funciones sencillas. Como resultado, la informática sin servidor funciona bien para los equipos que necesitan procesar y analizar datos a escala, pero que desean evitar la gestión de la infraestructura.
  • IoT. La computación sin servidor proporciona una forma directa y basada en eventos para que el dispositivo de IoT y los sistemas externos se comuniquen de forma asíncrona.
  • Contenido dinámico del sitio web. Una de las funciones clásicas de la tecnología sin servidor es agregar contenido dinámico y lógica a sitios web estáticos. Por ejemplo, AWS Lambda se utiliza a menudo para añadir funcionalidad dinámica a un sitio estático alojado en S3.

 

Por supuesto, esto es solo una muestra de lo que es posible con los contenedores y la informática sin servidor. En términos generales, los contenedores son útiles en cualquier lugar donde las imágenes portátiles, ligeras e inmutables deban implementarse de manera confiable. La computación sin servidor es útil en una variedad de aplicaciones en las que las cargas de trabajo son muy variables y minimizar el esfuerzo de gestión de la infraestructura es una prioridad.

Informática sin servidor frente a contenedores: diferencias y cómo pueden complementarse

Como podemos ver, la informática sin servidor y los contenedores tienen algunas similitudes de alto nivel. Eliminan la complejidad y facilitan a los equipos el despliegue y la ampliación de la aplicación. Sin embargo, hay varias diferencias importantes a tener en cuenta, entre ellas:

  • Estructura de costos. Con los contenedores, tanto si se ejecutan en la empresa como en la nube, las empresas pagan por ellos mientras están encendidos. Con la informática sin servidor, las empresas solo pagan por lo que usan. En el caso de las cargas de trabajo con una demanda constante, es posible que esto no suponga una gran diferencia. En el caso de las cargas de trabajo altamente ampliables, esto puede suponer un importante ahorro de costos con la tecnología sin servidor.
  • Capacidad de prueba. Con los contenedores, los equipos pueden probar fácilmente su aplicación en cualquier lugar. Con las funciones sin servidor, los equipos están limitados a la plataforma en la nube que ejecuta las funciones y no pueden realizar el mismo nivel de pruebas contra las funciones sin servidor.
  • implementación. Para escalar una aplicación basada en contenedores hacia arriba o hacia abajo, los contenedores deben desplegarse o escalarse de algún modo (por ejemplo, utilizando Kubernetes). Con severless, ylcode simplemente se ejecuta en una plataforma de "caja negra" que proporciona un proveedor.
  • Complejidad operativa. Ese paradigma de "caja negra" con la tecnología sin servidor puede ser un gran beneficio para los equipos que buscan minimizar la complejidad operativa. Efectivamente, no hay infraestructura para administrar sin servidor. Con los contenedores, es posible delegar la gestión de la infraestructura en un proveedor, pero no siempre es así.
  • Dependencia del proveedor. Los contenedores pueden "ejecutarse en cualquier lugar", pero con la tecnología sin servidor, las empresas dependen en gran medida de la plataforma que ejecuta su código. Por ejemplo, el uso de funciones AWS Lambda hace que una aplicación dependa más de la plataforma de AWS, mientras que con los contenedores Docker se puede implementar en cualquier plataforma que pueda ejecutar Docker.

A pesar de las diferencias, los contenedores y la informática sin servidor no son necesariamente mutuamente excluyentes. Por ejemplo, es posible usar Docker para incluir funciones sin servidor en contenedores. Además, plataformas como nube Run de Google están diseñadas para desplegar contenedores utilizando el modelo de pago por uso sin servidor.

Descripción de la seguridad sin servidor frente a la seguridad de contenedores

Al igual que las propias tecnologías, la seguridad sin servidor frente a los contenedores es un tema DevSecOps lleno de matices.

La tecnología sin servidor elimina muchos de los problemas de seguridad asociados a la gestión de la infraestructura, pero sigue habiendo muchas consideraciones importantes en materia de seguridad sin servidor. Por ejemplo, las configuraciones inseguras de los privilegios sin servidor pueden crear vulnerabilidad en la aplicación. Además, más funciones y protocolos para habilitar flujos de trabajo sin servidor significan más vectores de ataque potenciales que proteger. La descarga de complejidad también conlleva una contrapartida de seguridad: dado que los proveedores de servicios manejan gran parte de la infraestructura, la visibilidad de la implementación sin servidor es limitada.

Por otro lado, la seguridad de los contenedores viene con su propio conjunto único de desafíos. Por ejemplo, abastecerse e implementar de forma segura solo contenedores de confianza, y mantenerlos parcheados, puede ser un desafío operativo. Además, la gestión de identidades y accesos (IAM) y la gestión de la configuración de contenedores son aspectos importantes de una postura de seguridad sólida.

Mejora de la seguridad de los contenedores y sin servidor con CheckPoint

Aunque ambos enfoques del desarrollo de aplicaciones reducen la complejidad, no eliminan la necesidad de una postura de seguridad sólida y es necesario integrar la seguridad en los procesos de desarrollo. Seguir el principio de privilegios mínimos y adoptar políticas de "confianza cero" es una parte importante para mantener la seguridad de su infraestructura, pero los equipos de desarrollo también necesitan la tecnología y la experiencia en el dominio para implementar las soluciones de seguridad adecuadas.

El software CheckPoint está diseñado específicamente para abordar estos desafíos. Por ejemplo, CloudGuard proporciona multiseguridad en la nube de extremo a extremo para todos los activos en la nube de la empresa, incluida la implementación sin servidor y basada en contenedores. CloudGuard ofrece funciones como la prevención de amenazas, la gestión de la postura de seguridad en la nube, la protección de la carga de trabajo en la nube (para contenedores y aplicaciones sin servidor) y la caza inteligente de amenazas.

Pasos siguientes: Más información sobre la seguridad sin servidor frente a la seguridad de contenedores

Si desea empezar a mejorar su postura ante los contenedores o la seguridad sin servidor, regístrese hoy mismo para obtener una comprobación de seguridad instantánea y gratuita. La comprobación puede ayudarle a identificar los errores de configuración que pueden poner en peligro la seguridad y el cumplimiento de la normativa en los entornos de nube. Alternativamente, si desea probar CloudGuard por sí mismo, puede registrarse para una prueba gratuita.

Si está interesado en obtener más información sobre la seguridad sin servidor frente a la seguridad de los contenedores , la 

El libro electrónico Seguridad sin servidor Advantage y la Guía para la seguridad de los contenedores son un buen punto de partida.

x
  Comentarios
Este sitio web utiliza cookies para optimizar su funcionalidad y para fines de análisis y marketing.Al seguir usando este sitio web, usted acepta el uso de cookies.Para obtener más información, lea nuestro Aviso de cookies.