¡Revolución Jamstack! - JavaScript, API y Markup

Fernando Mercadal

viernes, 28 de mayo de 2021

Como dijo Heráclito de Éfeso en la Antigua Grecia, allá por el 500 a.C. “la única constante es el cambio.” Y probablemente estaba hablando sobre el desarrollo web. Hoy, vamos a sumergirnos en una nueva ola en este hermoso y turbulento mar de tecnología web: la revolución Jamstack.

Como muchas otras personas, comencé en el desarrollo web cuando el frontend solo trataba sobre HTML + CSS + Javascript (jQuery, para ser honesto) y el backend funcionaba con un stack LAMP (sistema operativo Linux, con el servidor web Apache, los datos del sitio almacenados en una base de datos MySQL, y contenido dinámico procesado por PHP). 

No hace mucho tiempo, vivimos los años dorados del stack MEAN, cuando por primera vez Javascript unió los mundos y nos permitió manejar el frontend y el backend con el mismo lenguaje. MEAN incluye MongoDB, Express.js, Angular y Node.js (también hay variantes como MERN utilizando React.js o MEVN utilizando Vue.js).

Hoy en día, estamos comenzando a entender una nueva idea, la arquitectura Jamstack. Y quizás, como hice yo, te estés preguntando: ¿Por qué? ¿Cuándo va a terminar esto? ¿Por qué nos odias, Señor de la Web? Pero no te preocupes, ¡aparentemente uno de los beneficios de Jamstack es que hará nuestras vidas más fáciles, así que echemos un vistazo y tratemos de responder algunas preguntas.

¿Qué es Jamstack?

JAM significa JavaScript, API y Markup.

JavaScript: Las funcionalidades dinámicas son manejadas por JavaScript. No hay restricciones sobre qué marco o biblioteca debes utilizar.

APIs: Las operaciones del lado del servidor se abstraen en APIs reutilizables y se accede a ellas a través de HTTPS con JavaScript. Estas pueden ser servicios de terceros o tu función personalizada.

Markup: Los sitios web se sirven como archivos HTML estáticos. Estos pueden generarse a partir de archivos fuente, como Markdown, utilizando un Generador de Sitios Estáticos.

Según jamstack.org, esta arquitectura está “diseñada para hacer que la web sea más rápida, más segura y más fácil de escalar. Se basa en muchas de las herramientas y flujos de trabajo que los desarrolladores aman y que brindan la máxima productividad.”

https://jamstack.org/

Los principios fundamentales de Jamstack

Jamstack se basa en dos principios principales:

Pre-renderización: Para generar el markup que representa una vista con antelación a cuando se requiere. Esto sucede durante una construcción en lugar de bajo demanda, para que los servidores web no necesiten realizar esta actividad para cada solicitud recibida.

Desacoplamiento: El proceso de crear una separación limpia entre sistemas o servicios. Al desacoplar los servicios necesarios para operar un sitio, cada parte componente puede volverse más fácil de entender, puede intercambiarse o actualizarse independientemente, y puede designar la responsabilidad a especialistas dedicados, ya sea dentro de una organización o como un miembro externo.

Esto significa que todo el frontend está preconstruido en páginas y activos estáticos altamente optimizados durante el proceso de construcción. Por lo tanto, estos sitios estáticos pueden servirse directamente desde un CDN, reduciendo el costo, la complejidad y el riesgo. Afortunadamente, hay muchas herramientas familiares que nos permiten construir estos sitios, como Gatsby, NextJS, NuxtJS, Hugo, Jekyll, Eleventy, por nombrar algunas.

Una vez que tenemos el markup y otros activos de interfaz de usuario servidos de manera rápida y segura directamente desde un CDN, los sitios pueden usar JavaScript y APIs para comunicarse con servicios backend, lo que permite que las experiencias se mejoren y personalicen.

Esto también nos permite externalizar algunos servicios como autenticación e identidad, pagos, gestión de contenido, servicios de datos, búsqueda y mucho más. Los sitios Jamstack pueden utilizar esos servicios en el tiempo de construcción, y también en tiempo de ejecución directamente desde el navegador a través de JavaScript. El desacoplamiento limpio de estos servicios conduce a una mayor portabilidad y flexibilidad, así como a un riesgo significativamente reducido.
 

Los beneficios de Jamstack

Una arquitectura Jamstack beneficia a los sitios y flujos de trabajo de proyectos de diferentes maneras, entre las que podemos destacar

Seguridad: Al eliminar múltiples partes y sistemas de la infraestructura de hosting, hay menos servidores y sistemas que endurecer contra ataques. El hosting de páginas y activos pre-generados en modo solo lectura reduce aún más los vectores de ataque. Mientras tanto, herramientas y servicios dinámicos pueden ser proporcionados por proveedores con equipos dedicados a asegurar sus sistemas específicos y brindar altos niveles de servicio.

Escalabilidad: Las arquitecturas populares manejan cargas de tráfico pesadas agregando lógica para almacenar en caché vistas y recursos populares. Dado que los sitios Jamstack se sirven completamente desde un CDN, no hay lógica o flujo de trabajo complejo para determinar qué activos se pueden almacenar en caché y cuándo se puede almacenar todo en una red de entrega de contenido, caracterizada por despliegues simples, redundancia incorporada y capacidad de carga increíble.

Rendimiento: Los sitios Jamstack eliminan la necesidad de generar vistas de página en un servidor en el momento de la solicitud generando páginas con anticipación durante una construcción. Es posible un rendimiento muy alto sin introducir infraestructuras costosas o complejas.

Mantenibilidad: Se reduce la complejidad de hosting, así como las tareas de mantenimiento. Un sitio pre-generado, que se sirve directamente desde un host simple o directamente desde un CDN, es casi libre de mantenimiento.

Portabilidad: Los sitios Jamstack están pre-generados. Eso significa que puedes hospedarlos desde una amplia variedad de servicios de hosting y tener una mayor capacidad para moverlos a tu host preferido. Cualquier solución de hosting estático simple debería poder servir un sitio Jamstack.

Experiencia del desarrollador: Los sitios Jamstack se pueden construir con una amplia variedad de herramientas. Como mencionamos antes, no dependen de tecnologías de propiedad o marcos específicos. En cambio, se construyen sobre herramientas y convenciones ampliamente disponibles. 

¡Para resumir!


Los beneficios de Jamstack son ciertamente atractivos y las herramientas a utilizar no son completamente desconocidas. Puede que este sea un muy buen momento para seguir profundizando en esta nueva arquitectura y tratar de sacar lo mejor de ella, al menos antes de que surja algo nuevo!

👏 🎉 Apreciamos mucho este tiempo juntos. Nos vemos por ahí.

Por favor, recuerda mantenerte a salvo!

si estás buscando un nuevo equipo de desarrollo para manejar tu transformación digital, nos encantaría que consideraras nuestro equipo. Envíanos un correo a info@darwoft.com para ver si podríamos ser una buena opción.

Construyamos lo que viene. Juntos.

 

Compártelo

Compártelo

Compártelo

Compártelo

Hablemos

Ahora.

¡Estamos emocionados de escuchar sobre nuevos proyectos! Por favor, complete los detalles a continuación y nos pondremos en contacto con usted dentro de un día hábil.

Shape icon

Hablemos

Ahora.

¡Estamos emocionados de escuchar sobre nuevos proyectos! Por favor, complete los detalles a continuación y nos pondremos en contacto con usted dentro de un día hábil.

Shape icon

Hablemos.

¡Estamos emocionados de escuchar sobre nuevos proyectos! Por favor, complete los detalles a continuación y nos pondremos en contacto con usted dentro de un día hábil.

Shape icon

Hablemos.

¡Estamos emocionados de escuchar sobre nuevos proyectos! Por favor, complete los detalles a continuación y nos pondremos en contacto con usted dentro de un día hábil.

Shape icon

Hablemos /

EE. UU.

1050 SW 6th ave. Suite 1100 Portland, OR 97204, EE. UU. / +1 971 724 7505

ARGENTINA

Jujuy 1412, Edificio Cardinales

2 Bloque, 2 Piso, Oficina 201, 5000 Córdoba

+54 351 881 66 29

COLOMBIA

Calle 10 B #36 -32 El Ático 2 edificio

Oficina 402 - Medellín

+57 302 3281060

Hablemos /

EE. UU.

1050 SW 6th ave. Suite 1100 Portland, OR 97204, EE. UU. / +1 971 724 7505

ARGENTINA

Jujuy 1412, Edificio Cardinales

2 Bloque, 2 Piso, Oficina 201, 5000 Córdoba

+54 351 881 66 29

COLOMBIA

Calle 10 B #36 -32 El Ático 2 edificio

Oficina 402 - Medellín

+57 302 3281060