Llegamos a ustedes gracias a:



Reportajes y análisis

¿PaaS, CaaS o FaaS? Cómo elegir

[17/04/2020] Imagine que entra a un supermercado que se especializa en hamburguesas -todo tipo de hamburguesas, pero solo hamburguesas. Cuando se trata de hamburguesas, las opciones de la tienda son infinitas.

Si usted es un chef de hamburguesas, vaya al pasillo uno para encontrar las opciones de carne de res, pollo y otras proteínas, junto con todos los tipos de queso, pan, verduras, condimentos y otros ingredientes que podría necesitar para construir su propia hamburguesa y sus acompañamientos. Incluso hay una selección de platos y recipientes para empaquetar la comida.

Si no tiene el tiempo, la habilidad o el interés para armar la hamburguesa, diríjase al pasillo dos donde puede comprar una de las hamburguesas en un kit. Además de las opciones clásicas, hay una opción orgánica, una vegetariana e incluso una keto. Solo tiene que seguir las instrucciones para comer una deliciosa hamburguesa.

En ese momento, mientras está en la cola de la caja, su jefe lo llama y le dice que tiene que hacer 300 hamburguesas de diferentes tipos en las dos horas previas al almuerzo. Además de hacer las hamburguesas, tiene que poner en marcha un proceso para servirlas y que le paguen. Tendrá que ser cuidadoso porque algunos clientes quieren pedidos especiales y, otros intentarán cortar la línea y robarles el almuerzo.

Por último, habrá una inspección de salud y seguridad durante el almuerzo, así que será mejor que lo que haga cumpla con las regulaciones. Y lo siento, pero solo tendrá un par de personas que tienen poca experiencia en este tipo de operaciones trabajando con usted.

Haciendo la hamburguesa de nube

Elegir entre las arquitecturas de nube se parece a esta operación improvisada de hamburguesas, y en muchos sentidos es más complicado. Los desarrolladores, ingenieros, arquitectos y líderes de TI tienen consideraciones normativas, de plataforma, de rendimiento y muchas otras al considerar qué arquitecturas de nube implementar.

¿Qué arquitectura ofrecerá una mejor experiencia a los clientes y dará un producto de mayor calidad? ¿Cuál será más fácil de implementar para cumplir con el plazo de entrega? ¿Qué camino manejará mejor los problemas de soporte, cumplimiento y seguridad? Y, por último, ¿qué enfoque puede implementar al menor costo?

Los ingenieros pueden seleccionar las opciones de contenedor como servicio (CaaS) y contenerizar aplicaciones, lo que equivale a que el chef cree y ponga en marcha su comida a través del pasillo uno. Si no tienen esa experiencia, pueden seleccionar las opciones de plataforma como servicio (PaaS), que equivalen a elegir un kit en el pasillo dos y, seguir las instrucciones y restricciones.

¿Ni CaaS ni PaaS satisfacen sus necesidades? Bueno, podría construir todo desde cero (infraestructura como servicio o IaaS) o implementar funciones en entornos sin servidores (serverless) (función como servicio FaaS).

FaaS es un tipo de computación sin servidor o serverless computing diseñada para responder a una sola tarea. Por ejemplo, una FaaS puede ser utilizada para autenticar a un usuario, hacer un chequeo de ortografía en un cuerpo de texto, o realizar un cálculo matemático.

Hay muchas opciones arquitectónicas para alojar, configurar, administrar e implementar el código en la nube, y las cosas se complican aún más cuando se consideran las diferentes ofertas de productos. Las opciones de PaaS incluyen Azure App Service, AWS Elastic Beanstalk, Google App Engine, Red Hat OpenShift, y Heroku de Salesforce, solo por nombrar algunos. Si es que está explorando las soluciones de CaaS, Amazon, Google y Microsoft tienen su propio servicio gestionado de Kubernetes con su propio acrónimo (EKS, GKE y AKS, respectivamente). Además, hay otras opciones como VMware, IBM, Oracle, Rackspace, etc.

Hay más opciones serverless. Azure Serverless tiene funciones serverless, pods de Kubernetes y entornos de aplicación. AWS tiene más opciones de serverless y las divide en categorías funcionales para computación, almacenamiento, almacenes de datos, API proxies, y más. Google Cloud toma la definición más amplia de serverless e incluye servicios como BigQuery y AutoML.

Consideraciones clave de CaaS, PaaS, FaaS y serverless

Hay varias consideraciones que vale la pena resaltar al revisar estas diferentes arquitecturas de nubes.

  • Público objetivo: Las opciones de PaaS y FaaS se dirigen en primer lugar a los desarrolladores, haciendo que la solución sea fácil de configurar e integrar con los canales de CI/CD para su implementación. Los contenedores parametrizan el entorno operativo y la configuración de la plataforma, por lo que estas herramientas están generalmente dirigidas a los operadores y administradores de sistemas.
  • Configurabilidad versus agilidad: En general, CaaS es la opción más configurable, dando a los operadores la mayor flexibilidad para seleccionar plataformas y configuraciones para la contenerización. Las opciones PaaS y FaaS se centran en la agilidad y, en ayudar a los desarrolladores a implementar y probar el código más rápidamente.
  • Algunas soluciones de PaaS son sesgadas: Las soluciones de PaaS y FaaS por diseño son preseleccionadoras, lo que significa que usted ya está bloqueado en su elección de plataforma y opciones de configuración. Estas soluciones están diseñadas con base en las opiniones del diseñador sobre lo que los desarrolladores quieren, las mejores prácticas y las características de rendimiento del objetivo. Para los operadores que prefieren más flexibilidad o más controles, una PaaS o FaaS sesgada puede ser demasiado restrictiva.
  • Habilidades y curva de aprendizaje: Una generalización justa es que las soluciones CaaS tienen una curva de aprendizaje más pronunciada y requieren más habilidades que las soluciones PaaS y FaaS.
  • Vendor lock-in: Las soluciones CaaS generalmente son desarrolladas en Kubernetes y son portátiles a través de diferentes opciones de cloud hosting. Aunque las soluciones PaaS y FaaS pueden ser diseñadas con Kubernetes como base, normalmente no exponen la capa de Kubernetes a los usuarios finales, y en su lugar presentan configuraciones más simplificadas. Estas son propiedad de la solución PaaS y FaaS, y a menudo están diseñadas para ejecutarse en una sola nube. Algunos líderes de TI encuentran esto problemático y están preocupados por estar atrapados en el proveedor de nube.

Preguntas para guiar su investigación y creación de prototipos

Cuando se enfrentan a tantas opciones, algunas organizaciones realizarán una mínima cantidad de investigación y creación de prototipos, y seleccionarán el camino que llegue más lejos más rápidamente. Otras invertirán una cantidad significativa de tiempo, energía y dinero para investigar las alternativas, consultar a los expertos y seleccionar opciones para implementaciones robustas.

Ambos enfoques son mejores que el que su organización se paralice por la multiplicidad de opciones, no seleccione ninguna y no vaya a ninguna parte. En el mundo acelerado en el que cada empresa trata de obtener una ventaja técnica, ser demasiado conservador y mantener el statu quo solo inhibirá las oportunidades de negocio.

Por ello, consulté con expertos para identificar algunas preguntas clave que deberían ayudar a reducir las opciones y el campo de juego:

  1. ¿Son ustedes un equipo pequeño con solo unas pocas aplicaciones? En estos casos, debería considerar las opciones más simples de PaaS y serverless, en las que podrá aprovechar al máximo la plataforma requerida preconfigurada, sin tener que invertir mucho tiempo y experiencia. DJ Navarrete, director de arquitectura de plataforma en AvidXchange, sugiere que "para las pequeñas y medianas empresas que pueden requerir más soporte de gestión de cambios para tener éxito, y para aquellas que buscan aumentar la madurez, la estabilidad y la velocidad rápidamente, PaaS es atractivo porque ofrece un camino más rápido para la implementación y las ganancias de eficiencia".
  2. ¿Tiene cargas útiles episódicas, pero aun así tiene que escalar proporcionalmente cuando sea necesario? El ámbito podría ser un microservicio o una función, pero también podría crecer hasta convertirse en aplicaciones y bases de datos completas. Estos casos de uso son ideales para la computación sin servidor, donde solo se paga por el uso requerido.
  3. ¿Tiene usted una obligación de cumplimiento o una norma reglamentaria que le obligue a informar sobre opciones o configuraciones subyacentes específicas en el contenedor de ejecución, la aplicación, la base de datos, el sistema operativo o la infraestructura? Wayne Anderson, arquitecto de seguridad y cumplimiento del Modern Workplace Center of Excellence de Microsoft, dice que esta es una razón fundamental por la que se descartan las opciones serverless. Los departamentos legales o los auditores suelen interpretar que el PCI y otros requisitos de cumplimiento requieren una prueba de la configuración del entorno informático.
  4. ¿Está aprovechando muchas plataformas especializadas o aplicaciones heredadas? En estos casos, puede ser difícil encontrar opciones comerciales de PaaS que sean compatibles. Al mismo tiempo, desarrollar contenedores puede simplificar la implementación y la gestión de la dependencia.
  5. ¿Es usted una gran organización o empresa que opera en múltiples nubes y con varias plataformas de aplicaciones y datos en producción? Estas organizaciones pueden optar por estandarizar en los contenedores, que proporciona la mayor flexibilidad porque soporta múltiples plataformas y opciones de configuración. Serverless puede seguir siendo una consideración si el cumplimiento no es un factor. Las empresas pueden alejarse de las opciones de PaaS si tienen la suficiente habilidad y capacidad para desarrollar la amplia gama de opciones en Kubernetes. Las organizaciones con suficiente escala y habilidades técnicas, como Shopify, podrían elegir diseñar su propia PaaS con los Kubernetes y los contenedores como base.
  6. ¿Está desarrollando microservicios y estandarizando en una arquitectura de microservicios basada en la nube? Mark Heath sugiere que la Faas o los contenedores son buenas opciones, así como las funciones de alojamiento en contenedores. Heath señala que las funciones sin servidor pueden ser más fáciles de configurar y menos costosas de soportar, mientras que los contenedores pueden simplificar el desarrollo local y proporcionar más opciones para asegurar los endpoints.
  7. Al consultor de nube Sarbjeet Johal le gusta saber si está construyendo plataformas, aplicaciones o servicios, y si la audiencia es interna, externa u orientada al cliente, o machine consumable. Conocer el tipo de aplicación y usuario final le ayuda a anticipar las necesidades y requisitos futuros. Por ejemplo, Johal señala, "para las aplicaciones externas se quiere registrar mucho más control de acceso, los volúmenes de datos pueden aumentar de manera impredecible y la aplicación puede tener una mayor longevidad en comparación con las aplicaciones internas. Si un servicio o plataforma es machine consumable, entonces puede que necesite algún tipo de medición". La previsión de la hoja de ruta y de las necesidades futuras debería ayudar a promover algunas opciones y a descartar otras.

Una vez que haya reducido las opciones, lo mejor es realizar una prueba de concepto. No se cocinan 300 hamburguesas sin probar la receta.