¿Estás considerando la computación serverless? 20 consejos de expertos (y advertencias)
Quienes defienden los modelos de computación serverless destacan su potencial para un desarrollo y despliegue de aplicaciones más ágil y rentable. Los desarrolladores se liberan de la gestión de servidores, lo que les permite concentrarse en escribir código, acelerar el tiempo de salida al mercado y simplificar el escalado.
Sin embargo, pocas tendencias tecnológicas vienen sin complicaciones, y junto con sus ventajas, un modelo de computación serverless trae desafíos propios. A continuación, 20 miembros del Forbes Technology Council comparten consejos importantes (y advertencias) para las organizaciones que estén considerando un modelo de computación serverless. Toma en cuenta estos consejos esenciales para asegurarte de que tu equipo tome una decisión informada para tu organización y esté preparado tanto para los beneficios como para las concesiones.
1. Prepárate para problemas de rendimiento
Adentrarse en las aplicaciones serverless puede resultar tentador para las organizaciones que buscan escalar de forma eficiente. Mi consejo —o más bien, una advertencia— es entender las concesiones que implica. La arquitectura serverless puede reducir los costos operativos y agilizar los procesos de despliegue, pero también introduce desafíos relacionados con la depuración, el monitoreo y posibles inconsistencias de rendimiento debidas a los arranques en frío. - Ken Ringdahl, Kantata
2. Cuidado con los costos ocultos de mano de obra
Muchos expertos recomiendan serverless porque fue popular hace unos años. Sin embargo, rara vez es la respuesta a la mayoría de los problemas de infraestructura. He visto implementaciones serverless que terminaron generando más costos ocultos de mano de obra que los monolitos. Conoce de quién recibes el consejo y pídele que te explique por qué serverless debería preferirse sobre los monolitos. - Federico Imparatta, ataraxy
3. Entiende la necesidad de comprometerte por completo
Las aplicaciones serverless que se ejecutan en un entorno descentralizado son más resilientes frente a problemas como los puntos únicos de falla y la censura, pero tu sistema en conjunto solo puede aprovechar realmente estos beneficios si es serverless en su totalidad. En cuanto a los atributos relevantes de las aplicaciones serverless, tu sistema en conjunto es tan bueno como su eslabón más débil. - Viktor Trón, Swarm
4. Estima y monitorea los costos de uso
Si bien las arquitecturas serverless solo requieren pagar por los recursos consumidos, es clave estimar los costos en función de los patrones de uso, especialmente a medida que la aplicación escala. Deberías monitorear el uso (y emitir alertas si es necesario) para evitar picos de costos inesperados. También recomendaría aplicar estrategias de ahorro disponibles a través de tu proveedor de nube, como utilizar capacidades reservadas u optimizar el código para una mayor eficiencia de uso. - Ilya Lashch, Lightpoint Global
5. Considera si tu aplicación se alinea con las fortalezas de serverless
Mi consejo sería considerar cuidadosamente las necesidades y los requisitos específicos de tu organización antes de adoptar aplicaciones serverless. Es importante evaluar si la naturaleza de tu aplicación se alinea con las fortalezas de serverless, como las cargas de trabajo sin estado y orientadas a eventos. Además, considera los posibles desafíos de la dependencia del proveedor y el control limitado. - Robert Mao, ArcBlock Inc.
6. Revisa las opciones de carga de trabajo y precio
Como dice la conocida letra de la canción: "Puedes hacer el check-out cuando quieras, pero nunca podrás irte". Rápidamente nos encaminamos hacia un mundo multinube y multiedge. Deberías diseñar la TI y la OT de tu negocio en consecuencia, aprovechando la nube serverless adecuada para la carga de trabajo adecuada al precio adecuado. Si apuestas todo a una sola nube para tu negocio, te estás predisponiendo a quedar atrapado en precios desfavorables. - Pete Bernard, EDGECELSIOR
7. Ten en cuenta que algunas API pueden agotar su tiempo de espera
Es bien sabido que las aplicaciones serverless orientadas a eventos son adecuadas para aplicaciones de microservicios y no para aplicaciones monolíticas. Pero muchas aplicaciones de microservicios que ejecutan API de larga duración fallan: agotan su tiempo de espera en ciertas ofertas serverless de nube pública debido a la falta de optimización del rendimiento. Mide los tiempos de tus API antes de pasarte a serverless. - Preeti Shukla, JustFund
8. Planifica para una futura migración
Al adoptar aplicaciones serverless, monitorea y planifica los posibles desafíos de migración para evitar la dependencia del proveedor. El comienzo mismo debe centrarse en explorar soluciones híbridas y diversas opciones de respaldo. - Aditya Malik, ValueMatrix.ai
9. Evalúa a los proveedores serverless según tus necesidades particulares
Evalúa a fondo la escalabilidad, la seguridad y la estructura de costos del proveedor serverless. Comprende cómo estos factores se alinean con tus necesidades específicas, en particular en torno a los patrones de tráfico y la gestión de datos. Serverless puede ofrecer beneficios, pero requiere una planificación cuidadosa para evitar costos y limitaciones inesperados. - Rohit Anabheri, Sakesh Solutions LLC
11. Toma el control de quién puede acceder a tu código
Cuando uses serverless, presta especial atención a mantener todo seguro. Como tu código está distribuido, es más fácil que surjan riesgos de seguridad. Asegúrate de que solo las personas adecuadas puedan acceder a tu código y revisa regularmente si hay problemas de seguridad. - Margarita Simonova, ILoveMyQA
12. Considera las limitaciones y la escalabilidad de tu producto
Comprende las limitaciones de tu producto. A menudo, la simplicidad se traduce en menos deuda técnica, lo que a su vez puede dar lugar a una aplicación flexible. Luego, concéntrate en la escalabilidad. Pregúntate: "¿Puede esto escalar, siendo serverless?". A medida que te adentres en el mundo de los microservicios, es posible que termines con una miríada de aplicaciones de servidor que se apoyan unas a otras. - WaiJe Coler, InfoTracer
13. Trabaja para mitigar los arranques en frío
Los arranques en frío —donde las funciones experimentan latencia en su invocación inicial— pueden afectar el rendimiento de las aplicaciones serverless. Mitiga los problemas de arranque en frío optimizando el tiempo de inicialización de las funciones, reduciendo dependencias e implementando estrategias de calentamiento, como invocaciones programadas o concurrencia aprovisionada, para determinar el enfoque más adecuado para tu carga de trabajo. - Cristian Randieri, Intellisystem Technologies
14. Ten presente el aumento de complejidad en el monitoreo y la depuración
Ten presente el potencial aumento de complejidad en el monitoreo y la depuración. Si bien serverless puede reducir significativamente la gestión de la infraestructura, también puede dificultar la visibilidad de los problemas de rendimiento. Adopta herramientas y prácticas que mejoren la observabilidad para mantener el control y garantizar la fiabilidad y la eficiencia de la aplicación. - Ken Pomella, RevStar
15. Diseña las aplicaciones serverless para que estén desacopladas y sin estado
Al adoptar aplicaciones serverless, concéntrate en diseñarlas de modo que estén desacopladas y sin estado, optimizando la eficiencia del código. Ajusta cuidadosamente el sondeo de las fuentes de eventos modificando los tamaños de lote y el manejo de registros para mejorar el rendimiento. Utiliza el parámetro BatchSize y considera configurar una ventana de agrupamiento para gestionar la invocación de funciones de manera eficaz, maximizando la eficiencia y minimizando la sobrecarga. - Anand Santhanam, Amazon Web Services
16. Considera qué nivel de escala y rendimiento se necesita
Para las organizaciones que piensan en lanzar aplicaciones serverless, vale la pena preguntarse qué nivel de escala y rendimiento es necesario. Aunque serverless sea flexible y económico, podría aun así ser incompatible con los sistemas heredados, y es posible que tengas que soportar la dependencia del proveedor y problemas de latencia. - Jared Thau, Gameverse Interactive Corp.
17. Cuidado con la 'ilusión de la infraestructura invisible'
Definitivamente deberías adoptar serverless por su escalabilidad y rentabilidad, pero cuidado con la "ilusión de la infraestructura invisible". Cuanto menos ves, más importante se vuelve comprender los procesos subyacentes para la seguridad, la resolución de problemas y la optimización. No es magia, es gestión: planifica en consecuencia. - Marc Rutzen, HelloData.ai
18. Considera el impacto en las canalizaciones de CI/CD
Considera el impacto de serverless en tus canalizaciones de integración y entrega continuas. Asegúrate de que tus prácticas de despliegue se adapten a la naturaleza sin estado de la computación serverless. Además, serverless puede reducir los costos iniciales de configuración, pero evalúa con cuidado los costos a largo plazo, ya que un uso extensivo puede volverse caro. - Jo Debecker, Wipro
19. Piensa cuánto tiempo puedes pasar sin acceso a ciertos datos
Sé cuidadoso al migrar a un entorno de nube. Ten en cuenta cuestiones como la prevención de filtraciones, los tiempos de inactividad en la capacidad de acceder a los datos y la gestión del acceso. En cuanto al tiempo de inactividad, piensa cuánto tiempo puedes pasar sin necesitar acceso a ciertos datos. ¿Un día? ¿Una hora? Asegúrate de tener en cuenta el retraso en el acceso que se produce durante la migración. - Jordan Yallen, MetaTope
20. Evita la 'proliferación de funciones'
Ten cuidado con la "proliferación de funciones" que puede acompañar a la adopción de serverless. Una gobernanza estricta y unas directrices arquitectónicas claras son vitales. Consolida las funciones relacionadas y elimina las innecesarias para lograr una arquitectura más ligera y manejable. - Andrew Blackman, EZ Cloud