Cómo aprovechar al máximo el cómputo sin servidor y evitar errores comunes

Según algunas medidas, más de la mitad de las empresas han adoptado la tecnología de servidores sin servidor. Si estás en el lado de "aún no" en esa ecuación, Anna Geller, ingeniera líder de la comunidad de Prefect, ha ofrecido múltiples formas en las que la computación sin servidor no solo ayuda a las empresas a construir con más eficacia, sino que también anima a los desarrolladores a codificar de manera más productiva.

Y sin embargo, como ha señalado Paul Johnston, co-fundador de Serverless Days, muchos desarrolladores se acercan a la tecnología sin servidor de manera incorrecta y tropiezan en el proceso.

Como él señaló: "Si tratas un sistema sin servidor como un sistema de software y tratas de construirlo de esa manera, es mucho más probable que te enfrentes a dificultades que obtener el mejor resultado posible".

Índice de Contenido
  1. ¿Por qué utilizar tecnología sin servidor?
  2. Construyendo con la coreografía en mente

¿Por qué utilizar tecnología sin servidor?

Una de las mejores cosas de la tecnología sin servidor, según Geller, es que fomenta buenas prácticas de ingeniería. Por ejemplo, si podemos estar de acuerdo en que "es beneficioso construir componentes de software individuales de tal manera que sean responsables de una sola tarea", entonces la tecnología sin servidor ayuda porque "fomenta el código que es fácil de cambiar y sin estado".

Además, continuó, la tecnología sin servidor prácticamente obliga a los desarrolladores a construir código reproducible.

"La tecnología sin servidor no solo te obliga a hacer tus componentes pequeños, sino que también requiere que definas todos los recursos necesarios para la ejecución de tu función o contenedor", dijo Geller.

Domina la instalación de SFTPGo en Ubuntu 22.04 y lleva tu servidor al siguiente nivel

Al requerir servicios autocontenidos de este tipo, la tecnología sin servidor anima a los desarrolladores a preocuparse por "la coreografía en lugar de la orquestación, con cada componente desempeñando un papel más consciente de la arquitectura", como ha planteado Mike Roberts de Symphonia.

Esta idea de la arquitectura impulsada por eventos es poderosa, pero también es donde muchos desarrolladores se desvían del camino.

Construyendo con la coreografía en mente

"Los sistemas sin servidor deberían ser (aunque rara vez lo son) considerados como un gran número de sistemas muy pequeños y desacoplados, completamente independientes entre sí, conectados por eventos", señaló Johnston.

Bueno, eso es exactamente cómo funciona el software, ¿verdad?

"Sí", añadió, "eso es 'software' en el sentido general. Pero no es 'software' en el sentido en que la mayoría de los desarrolladores o gerentes lo piensan".

Algunas de estas diferencias entre los sistemas sin servidor y el pensamiento de los sistemas de software se deben a la seguridad: la tecnología sin servidor requiere que el desarrollador confíe algunas preocupaciones de seguridad al proveedor de la nube subyacente, y a una pérdida general de control porque, nuevamente, aunque el desarrollador se centre en la lógica de su aplicación, el proveedor de la nube sigue gestionando los servidores en su nombre. Pero es realmente en el área de las pruebas donde se expone la diferencia necesaria en el enfoque.

Cómo instalar CouchDB en Debian 11 Server: Guía paso a paso

"El gran elemento de desacoplamiento dentro de un sistema sin servidor significa que no tienes el mismo requisito de pruebas entre equipos", enfatizó Johnston. "Cada elemento individual necesita pruebas (esto no cambia), pero debido a que cada elemento está desacoplado (o debería estarlo) y es pequeño (o debería serlo), no debe haber prácticamente ningún acoplamiento entre equipos y elementos. Si hay prácticamente ningún acoplamiento entre equipos y elementos de un sistema, entonces... solo tienes que probar los elementos (excepto cuando haya acoplamiento y debas probar)".

Las pruebas unitarias siguen siendo relativamente sencillas, pero las pruebas de integración se vuelven más difíciles y aún más importantes.

"Parte de la razón por la que considerar las pruebas de integración es importante es que nuestras unidades de integración con la tecnología sin servidor son mucho más pequeñas que con otras arquitecturas", escribió Roberts. "Dependemos mucho más de las pruebas de integración que en otros estilos arquitectónicos".

Esto se complica por la necesidad de depender de las nubes para dichas pruebas, lo que puede resultar incómodo.

"Depender de entornos de pruebas basados en la nube en lugar de ejecutar todo localmente en mi computadora portátil ha sido un verdadero desafío para mí", dijo Roberts.

Y luego está el enfoque de la arquitectura (y las pruebas) que difiere.

Cómo instalar y configurar Unbound en Ubuntu para acelerar la resolución DNS

"Entonces, el proceso de desarrollo [en el mundo sin servidor] se trata de construir muchos elementos pequeños y desacoplados, y probarlos", dijo Johnston. "El proceso de gestión más amplio se trata de entender cómo encajan esos elementos pequeños y desacoplados".

En resumen, se trata de coreografía, no de orquestación.

¿Un cambio insuperable de pensamiento? Claramente no. Pero sí es diferente, y como argumentan Johnston, Roberts y otros, comprender esas diferencias y construir en consecuencia es clave para aprovechar al máximo la tecnología sin servidor.

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Desarrollo, allí encontraras muchos artículos similares a Cómo aprovechar al máximo el cómputo sin servidor y evitar errores comunes , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.