Arte y Entropía: Introduciendo el Caos en tu Frontend

Rate this content
Bookmark

La Ingeniería del Caos es una tendencia actual que implica estudiar el comportamiento de un sistema frente a eventos externos que a menudo son improbables, pero en este caso provocados (caída del servidor o del balanceador de carga, pérdida de DNS, etc.).

El desorden generado proporciona una gran cantidad de información sobre cómo funcionan nuestros sistemas, lo que nos permite mejorar su robustez.

Pero curiosamente, todos los libros, charlas y tutoriales sobre Ingeniería del Caos pasan por alto un componente importante de nuestros sistemas. Y sin embargo, si hay un área donde la imprevisibilidad, la inconsistencia y la necesidad de resiliencia son preocupaciones centrales, es el frontend.

💥Caos, frontend y arte ancestral japonés 👘: 3 conceptos que a primera vista no tienen nada en común, pero que juntos abren nuevas perspectivas en el desarrollo de nuestras aplicaciones.

This talk has been presented at React Summit 2024, check out the latest edition of this React Conference.

Thibaud Courtoison
Thibaud Courtoison
16 min
18 Jun, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Bienvenido a la charla, Arte y Entropía, Introduciendo el Caos en tu Frontend. La ingeniería del caos es una práctica inventada por Netflix en 2011 para observar cómo reacciona un sistema ante perturbaciones intencionales. Aplicar la ingeniería del caos al frontend es experimental pero necesario, ya que un frontend roto puede afectar negativamente la experiencia del usuario. Las perturbaciones intencionales en el frontend se pueden inducir a través de diversas áreas como solicitudes HTTP con una red 3G lenta o una conexión Wi-Fi inestable. Se pueden utilizar herramientas como los kits de herramientas de frontend del caos para experimentar con la ingeniería del caos en el frontend y abrazar la rotura como parte de la historia de la aplicación.

1. Art & Entropy: Introduciendo el Caos en tu Front-End

Short description:

Bienvenidos a la charla, Art & Entropy, Introduciendo el Caos en tu Front-End. ¿Has oído hablar de Kintsugi? Es el antiguo arte japonés de reparar cerámica y porcelana usando laca con incrustaciones de oro. En los primeros días de Kintsugi, los coleccionistas rompían intencionalmente sus propias cerámicas y las reparaban. Kintsugi puede adaptarse a un nuevo medio. ¿Es nuestra aplicación web perfecta, sin errores, en todos los navegadores y en todos los tamaños de pantalla? No. Pero ¿necesita ser perfecta? No, solo necesita ser resiliente, funcionar sin importar qué. Vamos a usar la ingeniería del caos para asegurarnos de que nuestras aplicaciones sean resilientes. La ingeniería del caos es una práctica inventada por Netflix en 2011. El objetivo es observar cómo reacciona un sistema ante perturbaciones intencionales. Los beneficios de la ingeniería del caos incluyen descubrir e identificar debilidades en un entorno controlado y comprender las interdependencias de los componentes de nuestros sistemas.

Mi nombre es Thibaut, y me pueden encontrar en Twitter con el nombre de héroe Pseudo. Empecemos. ¿Has oído hablar de Kintsugi? Es el antiguo arte japonés de reparar cerámica y porcelana usando laca con incrustaciones de oro. Como filosofía, Kintsugi trata la rotura y la reparación como parte de la historia de un objeto, en lugar de algo que se debe disfrazar. En los primeros días de Kintsugi, alrededor del siglo XV en Japón, los coleccionistas estaban tan enamorados del resultado que intencionalmente rompían sus propias cerámicas y las reparaban. Con el tiempo, Kintsugi ha evolucionado y se ha fusionado con el arte contemporáneo. Ejemplos incluyen el trabajo de Jan Forman, quien usa Legos para reparar paredes en el paisaje urbano, pero también el trabajo de Raquel Susman, quien usa laca dorada para reparar asfalto. De esta manera, Kintsugi puede adaptarse a un nuevo medio. ¿Un nuevo medio, por qué no la web? Porque sí, preguntémonos. ¿Es nuestra aplicación web perfecta, sin errores, en todos los navegadores y en todos los tamaños de pantalla? No. Pero ¿necesita ser perfecta? No, solo necesita ser resiliente, funcionar sin importar qué. Puede estar rota y funcional, rota y hermosa, como cerámicas reparadas con Kintsugi. Suena bien. Entonces, ¿cómo nos aseguramos de que nuestras aplicaciones sean resilientes? Bueno, vamos a usar la ingeniería del caos para lograrlo. Tal vez hayas escuchado el término antes. Inventada por Netflix en 2011, esta práctica establece paralelismos en la ciencia con la teoría del caos, que es el estudio de la evolución del desorden de la entropía en un sistema. El objetivo es observar cómo reacciona un sistema ante perturbaciones intencionales. Por ejemplo, estrellar intencionalmente un servidor, y observar cómo reacciona la infraestructura. ¿Redirigirá las solicitudes a otros servidores? ¿Reiniciará un servidor y redirigirá el tráfico? ¿Qué tan rápido? Básicamente, rompemos cosas y luego observamos. Lo bueno es que, en lugar de esperar a que las cosas exploten, a verificar que nuestra infraestructura se mantenga, lo hacemos nosotros mismos. Y así es como mejoramos, aprendiendo cómo reacciona nuestra infraestructura ante el caos. Y donde alcanza el siguiente nivel es, en Netflix, lo hacen en producción. Estrellan su infraestructura regularmente, a veces varias veces al día, para asegurarse de que todo funcione correctamente. Y esto los ha llevado a establecer procesos de restauración altamente advanced automatizados hasta el punto en que pueden reiniciar regiones enteras de la infraestructura en solo unos segundos, sin intervención humana. Estos son los beneficios de la ingeniería del caos. En primer lugar, nos ayudará a descubrir e identificar debilidades en un entorno controlado. Sabemos qué rompimos, por lo que podemos revertirlo fácilmente si las cosas se tuercen durante el experimento. También nos dará una mayor comprensión de las interdependencias de los componentes del

2. Aplicando la Ingeniería del Caos al Front-End

Short description:

En una empresa anterior, descubrimos las interdependencias de nuestro sistema cuando una infraestructura no receptiva causó que las solicitudes de inicio de sesión de los usuarios se acumularan indefinidamente. Los beneficios de la ingeniería del caos incluyen confianza e implementación de un protocolo de recuperación ante desastres. Aplicar la ingeniería del caos al front-end es experimental pero necesario, ya que un front-end roto puede afectar negativamente la experiencia del usuario. La ingeniería del caos se aplica en cuatro pasos: definir el estado nominal, hacer una hipótesis, crear perturbaciones y comparar estados. Se pueden crear interrupciones en el front-end a través de diversas áreas, como solicitudes HTTP con una red 3G lenta o Wi-Fi inestable.

nuestros sistemas. Interdependencias. Por ejemplo, en una empresa anterior, teníamos un antiguo servidor heredado que generaba PDF, pero también, y todos lo habían olvidado en ese momento, búsquedas JYP para fines de seguridad. Y un día, la infraestructura en la que se encontraba este servidor se volvió no receptiva. Comenzó una reacción en cadena donde las solicitudes de inicio de sesión de los usuarios, que dependían de JYP, también se volvieron no receptivas. Y ahí fue cuando nos dimos cuenta de que no había tiempos de espera definidos en esas llamadas, lo que a su vez significa que las solicitudes de inicio de sesión de los usuarios se acumulaban indefinidamente, deduciendo así toda nuestra infraestructura. Y, desafortunadamente, así es como redescubrimos las interdependencias de nuestro sistema. El tercer beneficio de la ingeniería del caos es la confianza. ¿Preferirías esperar a que te llamen a las 7 a. m. un domingo porque tu aplicación está caída, o preferirías romperla tú mismo un martes por la tarde y ver que todo funciona bien y que puedes dormir tranquilo en el fin de semana? Y finalmente, nos obligará a implementar un protocolo de recuperación ante desastres. No esperaremos a que ocurra un accidente antes de pensar en soluciones.

La cuestión es que en todos los recursos que existen sobre el tema de la ingeniería del caos, libros, documentación, todo se trata de la infraestructura. Así que me dije a mí mismo, ¿por qué no aplicarlo al frontend esta vez, porque no importa cuán resistente sea tu infraestructura, cuántos balanceadores de carga tengas, cuántas redundancias tengas, si tu frontend está roto, a los usuarios no les importa. Toda su experiencia en tu aplicación será negativa. Entonces, como dije, no hay recursos sobre el tema de la ingeniería del caos aplicada al frontend, ni tampoco hay herramientas todo en uno o cajas de herramientas para hacerlo. Entonces, lo que viene a continuación en esta charla es experimental. Veamos hasta dónde podemos llevar este tema. Comencemos con lo básico de la ingeniería del caos. Se aplica en cuatro pasos. Primero, definiremos el estado nominal de nuestro sistema. Por ejemplo, el usuario puede iniciar sesión, el usuario puede ver la última temporada de The Witcher. Segundo, haremos una hipótesis. Asumiremos la continuidad del estado nominal durante el experimento. El usuario todavía puede iniciar sesión, el usuario todavía puede ver la última temporada de The Witcher, y usaremos dos grupos para eso, grupo de control y grupo de prueba. Y tercero, crearemos intencionalmente una perturbación que reproduzca un evento real, por ejemplo, un fallo del servidor. Y finalmente, compararemos los estados de los dos grupos y trataremos de refutar la hipótesis planteada anteriormente. ¿Nuestros usuarios todavía pueden iniciar sesión y ver la última temporada de The Witcher? Si no pueden, entonces acabamos de identificar una falla en la resiliencia de nuestro sistema. Nuestro objetivo es aplicar este experimento de ingeniería del caos al frontend. Para los pasos uno, dos y cuatro, no es muy diferente de la ingeniería del caos clásica. Así que vamos a analizar el paso tres y cómo podemos crear interrupciones en el frontend. Hay algunas áreas de perturbaciones que podemos ver. La primera es las solicitudes HTTP. Puede ser en forma de una red 3G lenta, Wi-Fi inestable, CDN no receptiva, etc.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

No resuelvas problemas, elimínalos
React Advanced 2021React Advanced 2021
39 min
No resuelvas problemas, elimínalos
Top Content
Kent C. Dodds discusses the concept of problem elimination rather than just problem-solving. He introduces the idea of a problem tree and the importance of avoiding creating solutions prematurely. Kent uses examples like Tesla's electric engine and Remix framework to illustrate the benefits of problem elimination. He emphasizes the value of trade-offs and taking the easier path, as well as the need to constantly re-evaluate and change approaches to eliminate problems.
Los Átomos de Jotai Son Simplemente Funciones
React Day Berlin 2022React Day Berlin 2022
22 min
Los Átomos de Jotai Son Simplemente Funciones
Top Content
State management in React is a highly discussed topic with many libraries and solutions. Jotai is a new library based on atoms, which represent pieces of state. Atoms in Jotai are used to define state without holding values and can be used for global, semi-global, or local states. Jotai atoms are reusable definitions that are independent from React and can be used without React in an experimental library called Jotajsx.
Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Debugging JavaScript is a crucial skill that is often overlooked in the industry. It is important to understand the problem, reproduce the issue, and identify the root cause. Having a variety of debugging tools and techniques, such as console methods and graphical debuggers, is beneficial. Replay is a time-traveling debugger for JavaScript that allows users to record and inspect bugs. It works with Redux, plain React, and even minified code with the help of source maps.
El Epic Stack
React Summit US 2023React Summit US 2023
21 min
El Epic Stack
Top Content
This Talk introduces the Epic Stack, a project starter and reference for modern web development. It emphasizes that the choice of tools is not as important as we think and that any tool can be fine. The Epic Stack aims to provide a limited set of services and common use cases, with a focus on adaptability and ease of swapping out tools. It incorporates technologies like Remix, React, Fly to I.O, Grafana, and Sentry. The Epic Web Dev offers free materials and workshops to gain a solid understanding of the Epic Stack.
Luchando contra la Deuda Técnica con la Refactorización Continua
React Day Berlin 2022React Day Berlin 2022
29 min
Luchando contra la Deuda Técnica con la Refactorización Continua
Top Content
This Talk discusses the importance of refactoring in software development and engineering. It introduces a framework called the three pillars of refactoring: practices, inventory, and process. The Talk emphasizes the need for clear practices, understanding of technical debt, and a well-defined process for successful refactoring. It also highlights the importance of visibility, reward, and resilience in the refactoring process. The Talk concludes by discussing the role of ownership, management, and prioritization in managing technical debt and refactoring efforts.
Programación AHA
React Summit Remote Edition 2020React Summit Remote Edition 2020
32 min
Programación AHA
Top Content
The Talk discusses the concept of AHA programming, which emphasizes thoughtful abstractions. It presents a live-coded example of the life-cycle of an abstraction and demonstrates how to fix bugs and enhance abstractions. The importance of avoiding complex abstractions and the value of duplication over the wrong abstraction are highlighted. The Talk also provides insights on building the right abstractions and offers resources for further learning.

Workshops on related topic

React, TypeScript y TDD
React Advanced 2021React Advanced 2021
174 min
React, TypeScript y TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Masterclass Web3 - Construyendo Tu Primer Dapp
React Advanced 2021React Advanced 2021
145 min
Masterclass Web3 - Construyendo Tu Primer Dapp
Top Content
Featured WorkshopFree
Nader Dabit
Nader Dabit
En esta masterclass, aprenderás cómo construir tu primer dapp de pila completa en la blockchain de Ethereum, leyendo y escribiendo datos en la red, y conectando una aplicación de front end al contrato que has desplegado. Al final de la masterclass, entenderás cómo configurar un entorno de desarrollo de pila completa, ejecutar un nodo local e interactuar con cualquier contrato inteligente usando React, HardHat y Ethers.js.
Fundamentos de Remix
React Summit 2022React Summit 2022
136 min
Fundamentos de Remix
Top Content
Featured WorkshopFree
Kent C. Dodds
Kent C. Dodds
Construir aplicaciones web modernas está lleno de complejidad. Y eso solo si te molestas en lidiar con los problemas
¿Cansado de conectar onSubmit a las API del backend y asegurarte de que tu caché del lado del cliente se mantenga actualizada? ¿No sería genial poder utilizar la naturaleza global de CSS en tu beneficio, en lugar de buscar herramientas o convenciones para evitarla o trabajar alrededor de ella? ¿Y qué te parecería tener diseños anidados con una gestión de datos inteligente y optimizada para el rendimiento que simplemente funciona™?
Remix resuelve algunos de estos problemas y elimina completamente el resto. Ni siquiera tienes que pensar en la gestión de la caché del servidor o en los conflictos del espacio de nombres global de CSS. No es que Remix tenga APIs para evitar estos problemas, simplemente no existen cuando estás usando Remix. Ah, y no necesitas ese enorme y complejo cliente graphql cuando estás usando Remix. Ellos te tienen cubierto. ¿Listo para construir aplicaciones más rápidas de manera más rápida?
Al final de esta masterclass, sabrás cómo:- Crear Rutas de Remix- Estilizar aplicaciones de Remix- Cargar datos en los cargadores de Remix- Mutar datos con formularios y acciones
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Vue.js London Live 2021Vue.js London Live 2021
169 min
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Top Content
Featured WorkshopFree
Mikhail Kuznetsov
Mikhail Kuznetsov
Vue3 fue lanzado a mediados de 2020. Además de muchas mejoras y optimizaciones, la principal característica que trae Vue3 es la API de Composición, una nueva forma de escribir y reutilizar código reactivo. Aprendamos más sobre cómo usar la API de Composición de manera eficiente.

Además de las características principales de Vue3, explicaremos ejemplos de cómo usar bibliotecas populares con Vue3.

Tabla de contenidos:
- Introducción a Vue3
- API de Composición
- Bibliotecas principales
- Ecosistema Vue3

Requisitos previos:
IDE de elección (Inellij o VSC) instalado
Nodejs + NPM
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
JSNation 2023JSNation 2023
174 min
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
Top Content
Featured WorkshopFree
Alba Silvente Fuentes
Roberto Butti
2 authors
Esta masterclass de SvelteKit explora la integración de servicios de terceros, como Storyblok, en un proyecto SvelteKit. Los participantes aprenderán cómo crear un proyecto SvelteKit, aprovechar los componentes de Svelte y conectarse a APIs externas. La masterclass cubre conceptos importantes incluyendo SSR, CSR, generación de sitios estáticos y despliegue de la aplicación usando adaptadores. Al final de la masterclass, los asistentes tendrán una sólida comprensión de la construcción de aplicaciones SvelteKit con integraciones de API y estarán preparados para el despliegue.
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Node Congress 2024Node Congress 2024
152 min
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Featured Workshop
Emanuel Scirlet
Miguel Henriques
2 authors
Ven y aprende cómo puedes potenciar tus aplicaciones modernas y seguras utilizando GraphQL y Javascript. En este masterclass construiremos una API de GraphQL y demostraremos los beneficios del lenguaje de consulta para APIs y los casos de uso para los que es adecuado. Se requiere conocimiento básico de Javascript.