Home Mundo Viaje en la nube de Uber: abrazar el brazo en un mundo...

Viaje en la nube de Uber: abrazar el brazo en un mundo x86

11
0

Súper embarcado en una migración estratégica de centros de datos locales a Infraestructura de Oracle Cloud (OCI) y Plataforma en la nube de Google en febrero de 2023. Un componente clave de esta migración era integrar las computadoras a base de brazo en su flota predominantemente X86 para reducir los costos, mejorar el rendimiento de los precios y garantizar la flexibilidad del hardware en medio de las incertidumbres de la cadena de suministro.

Las arquitecturas X86 y ARM representan filosofías fundamentalmente diferentes en el diseño de procesadores, con sus distinciones que dan forma al panorama informático durante décadas. Mientras que X86 (desarrollado por Intel y AMD) sigue un Computación compleja establecida de instrucciones (CISC) Enfoque que prioriza la compatibilidad hacia atrás y las instrucciones complejas ejecutadas en el microcódigo, el brazo abarca Instrucciones reducidas Configuración (RISC) Principios con instrucciones más simples y de longitud fija que se ejecutan en un solo ciclo.

Esta diferencia arquitectónica se manifiesta en términos prácticos: los procesadores X86 generalmente ofrecen un rendimiento máximo más alto para tareas computacionalmente intensivas, pero consumen más potencia, lo que los hace dominantes en las computadoras de escritorio y los servidores donde las salidas eléctricas están fácilmente disponibles; Mientras tanto, los procesadores ARM se destacan en eficiencia energética, ofreciendo mejores relaciones de rendimiento por vatio que los han convertido en la arquitectura elegida para dispositivos móviles, sistemas integrados y cada vez más para centros de datos conscientes de energía.

La integración de la arquitectura múltiple no se trataba simplemente de implementar un nuevo hardware. Para el equipo de infraestructura de Uber, significaba repensar los sistemas fundamentales que habían estado exclusivamente basados ​​en X86 durante años. El viaje reveló cómo los supuestos de arquitectura profundamente pueden impregnar cada capa de una pila de tecnología.

En la base de esta transición se encontraba el abrazo estratégico de la infraestructura de Oracle Cloud de los procesadores ARM de Ampere Computing. Estos chips ofrecen una notable eficiencia energética: un brazo de rasgos perfeccionado en el espacio móvil ahora escalado a entornos de centros de datos. Para los proveedores de nubes, esto se traduce en ahorros de energía sustanciales y una mayor densidad de cálculo, reduciendo los costos de energía y los requisitos de huella física.

Para Uber, estas ventajas se alinean perfectamente con sus objetivos de sostenibilidad. A medida que la compañía trabaja hacia cero emisiones, la adopción de la infraestructura informática de eficiencia energética representa un paso significativo para reducir su impacto ambiental y al mismo tiempo mejorar su estructura de costos.

La transición comenzó con la preparación a nivel de host, creando imágenes compatibles con el brazo que abarcan el sistema operativo, el núcleo y los componentes esenciales de infraestructura. Una vez que los anfitriones pudieron arrancar, el equipo enfrentó su tubería de compilación, que reveló una compleja red de dependencias. El sistema de contenedores de Uber dependía de Makisuuna herramienta optimizada para X86 que no pudo compilar cruzando el brazo.

Construir tuberías para imágenes de contenedores

En lugar de reescribir más de 5,000 procesos de construcción de servicios, el equipo empleó un enfoque de arranque inteligente. Ellos apalancaron Google Bazel Para construir una versión ARM de Makisu, que luego podría construir otros servicios de forma nativa. Esta tarea aparentemente sencilla expuso dependencias circulares: Makisu se ejecutó en Buildkite, que se ejecutó en la plataforma Odin de Uber, que dependía de los agentes anfitriones, todo construido con Makisu.

La ruptura de esta dependencia circular requería una reconstrucción metódica de cada capa utilizando las capacidades de la arquitectura múltiple de Bazel. El equipo comenzó con agentes anfitriones, luego reconstruyó los componentes de Odin, seguido de Buildkite, y finalmente Makisu. Esta base permitió una tubería de compilación distribuida que podría generar imágenes de contenedores de arquitectura múltiple unificadas.

Si bien este enfoque duplicó los costos de construcción (con más de 400,000 compilaciones de contenedores semanales), la economía aún favoreció la adopción del brazo. El sistema de compilación distribuido también proporcionó una ventaja crucial: habilitó la migración gradual y controlada en lugar de un enfoque de todo o nada.

Los sistemas de implementación requirieron mejoras similares. Uber implementó restricciones de colocación específicas de arquitectura y mecanismos automáticos de respuesta que volverían a X86 si surgieran problemas de compatibilidad. Estas salvaguardas permitieron al equipo migrar los servicios de forma incremental mientras mantenía la confiabilidad de la producción.

El despliegue exitoso de sus primeros servicios basados ​​en ARM marcó un hito técnico, lo que demuestra que la infraestructura múltiple de arquitectura podría funcionar a escala de Uber. Sin embargo, el viaje desde este éxito inicial hasta la migración de miles de servicios requiere estrategias y herramientas adicionales.

A medida que los proveedores de la nube expanden sus opciones de arquitectura de procesador, organizaciones como Uber y Bitmovin demuestran tanto los desafíos como los beneficios potenciales de incorporar diversas arquitecturas informáticas en sistemas de infraestructura a gran escala. Bitmovin está completo migración de sus servicios de codificación Armarse a los procesadores, junto con las experiencias de Uber, ofrece información valiosa sobre cómo las empresas pueden navegar por la heterogeneidad arquitectónica a gran escala.



Fuente