Por qué los desarrolladores no son amigos de Serverless



Recientemente vi un video de un buen desarrollador y youtuber llamado "Serverless Senselessness". Me gustaron los pensamientos del autor, pero no estoy de acuerdo con algunas de sus declaraciones y quiero discutirlas en este artículo.



El video comienza con una broma: "Hay dos cosas en el mundo que no entiendo: las niñas y la informática sin servidor". No sé nada sobre la relación de este desarrollador con las chicas, pero ¿tiene razón sobre Serverless? Echemos un vistazo a sus principales puntos críticos y analicemos los posibles argumentos que abogan por la computación sin servidor.



Alerta de spoiler: creo en Serverless. Solo necesita saber cuándo y cómo utilizar esta tecnología.




Crítica sin servidor



El principal argumento en contra de la computación sin servidor es la velocidad. O el conocido problema de arranque en frío. El arranque en frío es un retraso en la ejecución del código (puede llegar hasta 1 segundo para lenguajes como JavaScript, Python, Go, Java, Ruby), que ocurre debido a la necesidad de asignar recursos computacionales, recuperar el código y lanzar el contenedor. desde el lado del proveedor.



A veces se trata de milisegundos. Esto plantea la pregunta: ¿es realmente la rapidez con la que el código completa su tarea como la principal métrica de éxito para la gestión del ciclo de vida de las aplicaciones?



Como persona que trabajó en TI y se enfrentó al desarrollo de tecnologías relevantes, no estoy seguro de cuál es la métrica de velocidad clave. Después de todo, existen otros criterios como la velocidad de los ciclos de desarrollo, la facilidad de mantenimiento, el tiempo de recuperación del producto, los bajos costos para el usuario final y la reducción del riesgo de interrupciones al garantizar operaciones de TI ininterrumpidas. Finalmente, ahorrando tiempo a los desarrolladores. Si lo piensa bien, la Computación sin servidor cumple con todos estos criterios.



¿Qué faltan los desarrolladores? Los beneficios reales de Serverless



Si le importa la velocidad de ejecución del código hasta tal punto que la posible latencia de 200 milisegundos (hasta un segundo) es inaceptable para su trabajo, es posible que la computación sin servidor no funcione para usted, y esto es completamente normal. Sin embargo, esta no es una razón para llamar a Serverless algo inútil. Todos deben decidir qué tan inaceptables son para él esos retrasos.



La computación sin servidor es una forma poderosa de administrar la infraestructura de TI, especialmente para las empresas que pueden no tener los recursos para comprar su propia infraestructura y contratar especialistas para mantener los servidores 24 horas al día, 7 días a la semana.



- Serverless . « ». Serverless, .




En la mayoría de los casos con los que me he encontrado, el uso de la informática sin servidor es un orden de magnitud más económico que el uso de recursos autohospedados. Esto es cierto no solo por el costo de la potencia informática como tal. Lo que hace que Serverless sea más económico es que la solución ahorra el tiempo necesario para operar, escalar y mantener la infraestructura. Experimentará ahorros de costos reales porque no tiene que contratar un equipo de ingenieros de sistemas internos. El buen talento cuesta mucho más que la informática sin servidor.



No estoy diciendo que la informática sin servidor sea una panacea y sea adecuada para todos. Si sus cargas de trabajo son estables y tiene suficiente experiencia para administrar su infraestructura, es posible que sea mejor ejecutar en servidores clásicos.



El arranque en frío se puede nivelar



Volviendo a la cuestión del tiempo de ejecución del código, el problema del inicio en frío depende en gran medida de cómo codifique y configure Serverless.



En general, hay muchas formas de suavizar un arranque en frío "calentándolo". Por lo tanto, puede ejecutar funciones con cierta frecuencia, iniciar un servicio con más frecuencia o mantener algunos de los contenedores funcionando todo el tiempo (si el proveedor lo permite). Estas acciones proporcionarán el "ambiente cálido" necesario para que comiencen las funciones.



Además, algunos proveedores sin servidor ofrecen sistemas de monitoreo integrados que le notifican cualquier función de arranque en frío para que pueda agilizar el proceso. Incluso puede sincronizar con el correo electrónico o espacios de trabajo como Slack; los mensajes de inicio en frío llegarán a su bandeja de entrada.



¿Cuánta latencia es aceptable para sus cargas de trabajo?



Es bueno que conozca la respuesta a esta pregunta. La latencia de arranque en frío se suele denominar milisegundos. En todos los casos de uso con los que me he encontrado en mi trabajo como ingeniero de datos, los retrasos en el trabajo diario no se notan.



Además, los proveedores avanzados le permiten crear una infraestructura híbrida que incluye servidores y computación sin servidor.



La informática sin servidor se trata de NoOps y escalabilidad



Serverless le permite generar valor comercial más rápido, ya que el proveedor de la nube se hace cargo de la mayoría de las operaciones de TI. Asigna potencia de cálculo, escala los clústeres a la carga requerida, supervisa la seguridad y las actualizaciones, se ocupa de la integridad del equipo, etc. Dado que los dolores de cabeza asociados con la gestión de la infraestructura han desaparecido, puede concentrarse en trabajar con los clientes. ¿Es esto lo principal al final?



Serverless libera el tiempo de ingenieros altamente calificados para que puedan concentrarse en resolver problemas comerciales en lugar de administrar clústeres.



¿Cuándo es especialmente útil la informática sin servidor?



Imagina que estás iniciando una startup. Es posible que al principio no necesite una infraestructura significativa y que solo tenga un desarrollador. El paradigma sin servidor le permite comenzar de a poco y escalar automáticamente a medida que su negocio crece con un modelo de costos de pago por uso.



Otro grupo que puede beneficiarse enormemente de la informática sin servidor son las pequeñas empresas que no tienen un departamento de TI grande. La capacidad de administrar todo el ciclo de vida de una aplicación con un solo ingeniero de DevOps (no un equipo de programadores) es un gran beneficio de la Computación sin servidor.



Si su sitio o aplicación está bajo carga estacional, Serverless también es una excelente opción. Por ejemplo, si tiene un negocio de comercio electrónico, es probable que experimente picos durante el Black Friday y la Nochevieja. La infraestructura sin servidor le permite adaptar el consumo de capacidad a tales situaciones.



Además, no todos los eventos de la vida se pueden predecir. Imagínese vendiendo desinfectantes para manos, otros antisépticos, mascarillas y artículos similares en su tienda en línea. Luego hubo una pandemia global y ahora todos necesitan sus productos. Con una infraestructura sin servidor, estará listo para cualquier carga de trabajo.



Velocidad de ejecución de código versus velocidad de ciclos de desarrollo



La velocidad del desarrollo del producto también es útil. En muchos casos, Serverless Computing admite una arquitectura de microservicio, lo que significa ciclos de desarrollo más rápidos y componentes de arquitectura relativamente independientes entre sí.



Resulta que Serverless ayuda a iterar más rápido en el ciclo de desarrollo y entregar el producto al usuario final más rápido, lo que solo compensa esos milisegundos de latencia debido a los arranques en frío periódicos.



Desventajas de Serverless que no se mencionaron en el video



Algunas de las desventajas de la Computación sin servidor no se mencionaron en el video, y quiero nombrarlas para darle una imagen completa sin adornos.



Si bien la Computación sin servidor puede ser ideal en algunos casos en términos de costo, escalabilidad y administración de infraestructura, no es una panacea para todos.



  1. Existe el riesgo de un bloqueo del proveedor . Los proveedores hacen que sus servicios sean tan convenientes y rentables que usted corre el riesgo de estar vinculado a un proveedor de nube en particular.
  2. , , . , SSH , ​​ , .
  3. , .
  4. - , .




En general, el uso de nuevos paradigmas en TI, como la computación sin servidor u otros servicios en la nube, en la misma lógica que nuestras tecnologías familiares locales “domésticas”, no es una buena idea. Cuando copia y pega directamente los flujos de trabajo de la infraestructura física a la nube, pierde muchos de los beneficios de los servicios en la nube, si es que no los pierde.



No hay razón para esperar que cualquier tecnología sea aplicable a todas las empresas, no tenga inconvenientes y sea barata.



Desde mi punto de vista, no deberíamos hablar categóricamente de Serverless (como, de hecho, de otras soluciones de TI), considerando solo un aspecto del trabajo e ignorando el resto. La informática sin servidor tiene sentido. Si sabe cuándo y cómo usarlos.






All Articles