Hola a todos. Me llamo Ruben y soy ingeniero de software en American Express. Y hoy voy a hablar sobre la revolución de micro frontends que tuvo lugar en American Express.
Así que, primero que nada, comencemos con una historia. Imaginemos que acabas de ser contratado como el nuevo CTO de esta gran, gran corporación. Así que eres responsable de la transformación digital de la empresa, así como de solucionar problemas con la escalabilidad. Y estás a cargo de solucionar estos problemas.
Entonces, la primera decisión que tomas es, bien, necesitamos más desarrolladores. Necesitamos agregar más personas, y eso es lo que haces. Así que, también eres fan de la regla de las dos pizzas, y piensas, bien, necesitamos crear equipos más pequeños y agregar esos desarrolladores a esos equipos. Así que creamos equipos autónomos más pequeños, y porque en el pasado, fuiste parte de esta empresa anterior y tuviste algo de experiencia previa, piensas, oh, creo que deberíamos hacer arquitectura de microservicios aquí. Es una buena idea. Está comprobado. Hay muchos recursos disponibles, y es ampliamente adoptado.
Así que, aprovechemos al máximo la arquitectura de microservicios, y aprovechemos al máximo la escalabilidad horizontal, porque sabemos que la escalabilidad vertical no es suficiente en algún momento, así que queremos comenzar a hacer escalabilidad horizontal. Y eso es genial. Eso está funcionando muy bien. Hasta que, bueno, hasta que intentamos aplicar estos métodos al frontend. ¿Y qué pasa con el frontend? Bueno, el frontend, imaginemos que este frontend es una aplicación monolítica realmente grande. Tiene mucho código heredado. Todos los ingenieros están trabajando en la misma base de código. Y si queremos agregar más ingenieros, obviamente esto es una mala idea, porque están trabajando en la misma base de código. Entonces, cuantos más ingenieros agregues, peor se vuelve, porque será simplemente una pesadilla gestionar a tantas personas trabajando en la misma base de código.
Así que el frontend tiene muchos desafíos. Y estos desafíos son problemas de comunicación, fricción, lleva más y más tiempo agregar nuevas funciones, arreglar y encontrar errores se convierte en un desafío, muy difícil mantener los entornos de producción y desarrollo sincronizados. Y en algún momento de nuestras carreras, todos hemos tenido esta pregunta. Todos estábamos, como, ¿qué tal una reescritura completa? Y piensas, oh, ¿es eso siquiera posible? Parece una tarea muy, muy difícil. Parece una tarea imposible. Pero estás considerando, bien, necesitamos hacer una reescritura completa. Ahora, pero espera un segundo.
Comments