Cómo Trulia comenzó a pagar su deuda técnica.

Cómo Trulia comenzó a pagar su deuda técnica.

Como todas las compañías de software saben, con el tiempo, a medida que el código envejece y las soluciones se basan en soluciones, la base del código se vuelve inflada. Cada vez es más difícil sortear la deuda técnica que ha acumulado con el tiempo. Es realmente imposible evitar este fenómeno, pero en algún momento, las compañías se dan cuenta de que la deuda es tan grande que limita su capacidad para crear nuevas funcionalidades. Eso es precisamente lo que Trulia enfrentó en 2017 cuando comenzó un proceso para pagar esa deuda y modernizar su arquitectura.

Trulia es un sitio de bienes raíces fundado en 2005, hace una eternidad en términos de tecnología. La compañía salió a bolsa en 2012 y fue adquirida por Zillow en 2014 por $ 3.5 mil millones, pero ha continuado operando como una marca independiente bajo el paraguas de Zillow. Comprendió que muchas cosas habían cambiado tecnológicamente en los 12 años desde su inicio, cuando la ingeniería comenzó a pensar en esto. El equipo sabía que tenía una base de código monolítica monumental que estaba inhibiendo la capacidad de actualizar el sitio.

Si bien intentaron extraer algunas de las funciones más nuevas como servicios, en realidad no hicieron que el sitio fuera más ágil porque estos servicios siempre tenían que vincularse con esa base de código central monolítica. El equipo de desarrollo sabía que si se trataba de escapar de esta trampa de codificación, se necesitaría una revisión completa.

Lluvia de ideas amplio cambio

Como es de esperar, un proceso como este no ocurre de la noche a la mañana, toma meses para planificar e implementar. Todo comenzó en 2017, cuando la compañía celebró lo que llamaron una "Semana de la innovación" con todo el equipo de ingeniería. A los grupos de ingenieros se les ocurrieron ideas sobre cómo resolver este problema, pero el que llamó más la atención fue Project Islands, que involucró el desglose de las diferentes partes del sitio como islas de codificación individuales que podrían operar de manera independiente.

Suena simple, pero en la práctica implicaba dividir toda la base de código en servicios. Usarían Next.js y React para reconstruir el front-end y GraphQL, una tecnología de base de datos gráfica de código abierto para reconstruir el back-end.

Deep Varma, el vicepresidente de ingeniería de Trulia, señaló que como empresa fundada en 2005, el sitio fue creado en PHP y MySQL, dos tecnologías de desarrollo populares desde ese momento. Varma dice que cada vez que sus ingenieros realizaban un cambio en cualquier parte del sitio, necesitaban hacer un lanzamiento completo del sistema. Esto causó un importante cuello de botella.

Lo que realmente tenían que hacer era pasar a una arquitectura de microservicios completamente moderna que permitiera a los equipos de ingeniería trabajar independientemente en un enfoque de entrega continua sin romper el código de ningún otro equipo. Ahí es donde el concepto de islas entró en juego.

Islas en la corriente

Las islas eran en realidad microservicios. Cada uno podría comunicarse con un conjunto de servicios comunes centrales como autenticación, pruebas A / B, barra de navegación, pie de página, todas las piezas que necesitaría cada base de código mini, al tiempo que permite que los equipos que construyen estas islas trabajen de forma independiente y no requiere una gran reconstrucción cada vez que agregan un nuevo elemento o cambian algo.

Isla Cousine. Seychelles. Foto: Martin Harvey / Getty Images

La dura realidad de este tipo de revisión se enfocó cuando los equipos se dieron cuenta de que tenían que estar escribiendo las nuevas piezas mientras el viejo sistema todavía estaba en su lugar y funcionando. En un video que hizo la compañía describiendo el esfuerzo, un ingeniero lo comparó con cambiar el motor de un 747 en medio de un vuelo.

Varma dice que no intentó hacer todo de una vez, ya que necesitaba ver si el enfoque de las islas funcionaría primero en la práctica. En noviembre de 2017, reunió al primer equipo de ingeniería, y en enero había construido el shell de la aplicación (la pieza de servicios comunes) y una isla de microservicio. Cuando la prueba de concepto tuvo éxito, Varma supo que estaban en el negocio.

Construyendo el archipiélago

Una cosa es construir una sola isla, pero otra cuestión es construir una cadena de ellos y ese sería el siguiente paso. En abril pasado, la ingeniería había mostrado suficiente progreso como para presentar la idea completa a la alta gerencia y obtener el visto bueno para avanzar con un proyecto más complejo.

Foto de Rock Islands, Palau, Micronesia: J.W.Alker / Getty Images

Primero, tomó un poco de trabajo con el equipo de desarrollo de Next.js para lograr que el marco de desarrollo funcionara como ellos querían. Varma dijo que trajo al equipo de Next.js para trabajar con sus ingenieros. Dijo que necesitaban descubrir cómo unir las distintas islas y resolver las dependencias entre los diferentes servicios. El equipo de Next.js realmente cambió su plan de desarrollo para Trulia, acelerando la entrega de estos requisitos, entendiendo que otras compañías tendrían problemas similares.

En julio pasado, la compañía lanzó Neighborhoods, la primera funcionalidad de isla completamente independiente en el sitio. Recientemente, se mudó de propiedades fuera del mercado a las islas. Las propiedades fuera del mercado, como su nombre lo indica, son páginas con información sobre propiedades que ya no están en el mercado. Varma dice que estas páginas en realidad constituyen una parte significativa del tráfico de la compañía.

Si bien Varma no diría cuánto del sitio se ha trasladado a las islas en este punto, dijo que el objetivo es mover a la mayoría a la nueva plataforma en 2019. Todo esto muestra que una revisión completa de un sitio complejo no lo hace. Ocurre de la noche a la mañana, pero Trulia está tomando medidas para abandonar el sistema original que creó en 2005 y pasar a una arquitectura más moderna y flexible que ha creado con las islas. Es posible que no haya saldado su deuda técnica en su totalidad en 2018, pero hizo un largo camino para sentar las bases para hacerlo.


Source link