Entonces, ya sabes, solo algunas cosas generales que habíamos visto que realmente me gustaron fue probablemente la más grande aquí fue una reducción del 80% en los costos de la nube en general. Así que cuando implementamos esto en masa, nuestros costos de CI, la mayoría de nuestros costos de la nube se redujeron en un 80%, lo cual fue un número asombroso en una empresa de ese tamaño. En promedio, veríamos una reducción de unos 30 minutos en nuestros tiempos de construcción. Y en términos de CI, veríamos, creo que era por proyecto por día, alrededor de 200 horas de CI ahorradas.
Así que cada proyecto al año ahorraría, ya sabes, digamos 80,000 horas al año en, como, horas de CI. Y para un desarrollador, trabajando en, como, tu modo de desarrollo localmente, asumiendo que podrías tener que cambiar de rama aquí y allá, lo pusimos como si tuvieras que hacer cinco, ya sabes, reinicios de tu servidor de desarrollo, hemos, ya sabes, calculado que, está bien, ya sabes, aproximadamente estás viendo alrededor de siete horas a la semana ahorradas por desarrollador en la empresa o, ya sabes, aproximadamente 400 horas al año por desarrollador. En el lado financiero, sin embargo, también vimos algunos números excelentes. Así que para nuestro propio uso personal, hemos visto alrededor de $200 millones al año de ahorros del proyecto o por lo que estamos invirtiendo en él versus lo que estamos obteniendo de él, alrededor de $200 millones al año.
Hemos tenido usuarios externos que también han adoptado esto, y han sido lo suficientemente amables como para darnos su propia información financiera sobre las reducciones. Y estamos viendo, ya sabes, nuevamente, para otro usuario, $32 millones al año. Y lo que realmente me pareció impresionante fue, considerando que estábamos mirando ese tiempo medio para fusionar, que tratamos como latencia del producto. Entre crear algo y llevarlo a producción, ¿cuál es la latencia entre eso? Y tenemos, ya sabes, la mayoría de las construcciones son realmente masivas, así que vemos que el CI toma más de 35 minutos. Así que, ya sabes, por año, solo en un solo repositorio, pudimos recuperar más de 1.6 millones de horas en latencia del producto.
Así que ese es el tiempo desde obtener el PR hasta llevarlo a producción. Y ese es solo uno de los repositorios que tenemos entre los, ya sabes, miles que hay. Así que realmente hubo mucho valor que terminamos viendo de ello, lo cual obviamente es genial para nosotros ver que nuestras teorías habían funcionado. Otro aspecto en el que hemos visto mucho retorno es en realidad el ahorro de ancho de banda, ya que mucho de lo que hemos enfocado el proyecto es realmente buena optimización, realmente buen chunking, métodos inteligentes sobre cómo dividir la aplicación, en lugar de solo, como, Webpack, soluciones súper verbosas allí, tratar de refinarlas un poco más.
Y, ya sabes, hemos tenido usuarios que informan hasta un 50% de ahorro en el ancho de banda de salida en su infraestructura, lo cual para ellos también se tradujo en un par de miles de millones de dólares al año, lo cual, nuevamente, fue bastante agradable de ver. Así que solo para resumir aquí, algunas de las ideas futuras que hemos estado mirando con RSPack es, nuevamente, esa solución agnóstica de lenguaje va a ser muy útil para TypeScript. Estamos buscando hacer de TypeScript un ciudadano de primera clase, lo que nos permitiría hacer cosas como optimizaciones en tiempo de enlace, poder usar toda la información de tipado para optimizar aún más, agitar el árbol, eliminar código muerto en, digamos, métodos privados que no se exportan, cosas que generalmente se pierden en el proceso de transpilación.
Existe la posibilidad de investigar, como, la integración de la verificación de tipos en el empaquetador o crear algo como un servidor de lenguaje ya que la diferencia entre, digamos, empaquetar y verificar tipos son en realidad muy pocas. Hay muchas superposiciones en cómo están construidos. Algunas otras cosas que hemos estado mirando es que probablemente hayas visto algunas de estas características de, como, TurboPack de las que han estado hablando. Una de ellas sería, como, el caché remoto a nivel de función. Así que eso es algo que planeamos hacer de código abierto y lanzar para que lo autohospedes para RSPack, creo que probablemente en el próximo trimestre o dos. No puedo recordar la línea de tiempo exacta allí, pero esencialmente significará que cualquiera que esté construyendo tu aplicación, puedes reciclar sus cachés y tener un caché remoto distribuido del que todos puedan beneficiarse sin costo alguno. Y otro grande sería la división de código a nivel de exportación.
Usualmente cuando divides tu aplicación ahora mismo, la estás dividiendo en base a, cómo lo llamas, la estás dividiendo en base al módulo. El archivo completo con lo que sea que se exporte allí puede ser fragmentado. Pero lo que estamos buscando hacer es en realidad a nivel de exportación, poder tomar una exportación y reubicarla en función de cómo se usa, lo que nos dará mucha más optimización entre módulos y simplemente mucho más, ya sabes, mejor salida de nuestros artefactos, cargas útiles más pequeñas.
Comments