Superviso la parte de Expedia Group: Plataforma Fiscal Global que recientemente ha experimentado un aumento de diez veces en el volumen de transacciones que fluyen a través de nuestra plataforma.
No solo pudimos mitigar el aumento previsto en los costos de la nube debido al aumento en el volumen transaccional, sino que también redujimos nuestro gasto en la nube en aproximadamente un 45 %.
Esto nos ha permitido contribuir a los objetivos ambiciosos de ahorro de costos en la nube de Expedia Group y brindó oportunidades para que nuestros equipos de ingeniería incorporen estrategias de ahorro de costos en sus prácticas diarias.
Nuestra infraestructura de plataforma tributaria está alojada en la nube de Amazon Web Services (AWS). Y ejecutamos cargas de trabajo de datos ETL (Extracción, Transformación, Carga) en Apache Airflow y Apache Spark. Anticipar el aumento de los costos de la nube y mitigarlos fue un área de enfoque clave para mí y mis equipos durante muchos meses.
En la siguiente sección, cubro las estrategias clave de optimización de costos de la nube que empleamos mientras pensábamos de manera iterativa en este desafío e implementábamos soluciones.
1. Almacenamiento en la nube
los proveedores de la nube cobran por almacenar objetos en sus sistemas de almacenamiento.
Tomemos el ejemplo de los depósitos de almacenamiento de Amazon S3. La tarifa que se cobra aquí depende de varios factores, como su utilización (los GB de almacenamiento, las solicitudes realizadas en su depósito de almacenamiento), la duración del almacenamiento y el nivel de almacenamiento.
Hay muchos niveles de almacenamiento, como S3 Intelligent-Tiering, S3 Standard-Infrequent Access, S3 Glacier Instant Retrieval y S3 Glacier Deep Archive.
Cada nivel de almacenamiento tiene una estructura de precios diferente. Analizar nuestras políticas de migración del ciclo de vida existentes y pasar a niveles de menor precio cuando cambian los patrones de acceso a datos (como cuando disminuye la frecuencia de acceso) ha llevado a reducciones de costos.
Por ejemplo, identificamos una oportunidad para mover datos que residen en el nivel de acceso poco frecuente ($0,0125 por GB) al nivel de recuperación instantánea de Glacier ($0,004 por GB), logrando un ahorro del 60 %.
El análisis de nuestras tendencias de almacenamiento de archivos y la implementación de nuevas políticas de control de versiones, archivado y depuración del ciclo de vida también han dado lugar a reducciones de costos.
Si bien se debe considerar mantener múltiples copias de datos para fines de recuperación ante desastres, también analizamos las implicaciones de costos de almacenar estos datos.
Por ejemplo, creamos reglas de ciclo de vida de S3 para mantener una cantidad menor y limitar la cantidad de versiones no actuales almacenadas.
También implementamos políticas de eliminación para eliminar versiones no actuales después de unos meses.
2. Aprovechar los procesadores AWS Graviton
Amazon Elastic MapReduce (Amazon EMR) es un servicio que le permite procesar grandes cantidades de datos. Amazon EMR aprovecha las instancias de Amazon Elastic Compute Cloud (EC2) para distribuir el procesamiento y escalar entornos de big data.
Las instancias Amazon EC2 funcionan con procesadores Intel y AMD. Los procesadores Graviton de Amazon tienen un precio más bajo y nos brindaron la oportunidad de dejar de utilizar procesadores basados en Intel.
Pasar a procesadores AWS Graviton de menor costo en todas nuestras instancias de plataforma nos permitió obtener ahorros adicionales anualizados en los costos de la nube.
3. Gestión de clústeres de EMR
existen varios métodos de optimización de costos que se pueden habilitar para gestionar de manera más efectiva los clústeres de EMR.
Algunas áreas en las que invertimos son el escalado automático de los clústeres de EMR, la habilitación de instancias puntuales y los clústeres transitorios de EMR, la reducción del tiempo de ejecución de los clústeres transitorios y la terminación automática de los clústeres en función del tiempo de inactividad.
Además, aprovechamos los paneles, métricas, alertas e informes de Expedia habilitados centralmente para monitorear y actuar ante cualquier aumento en nuestros costos de nube.
Las estrategias mencionadas anteriormente han demostrado ser efectivas para reducir significativamente nuestros costos de nube en nuestras cargas de trabajo de big data y ETL.
Los equipos deben emplear estrategias adaptadas a las necesidades de atención al cliente, los acuerdos de nivel de servicio (SLA) y la pila tecnológica de su plataforma.
Cuando sea posible, se recomienda analizar las necesidades por adelantado y considerar paquetes y servicios de nube apropiados, teniendo en cuenta las implicaciones de costos a largo plazo.
Monitorear nuestro gasto en la nube es un viaje constante. Mis equipos de ingeniería participaron en el innovador evento Slashathon organizado en Expedia Group en junio de 2023, que aportó recomendaciones adicionales de optimización de costos para impulsar aún más los ahorros.
¡Todo esto no podría haberse logrado sin la destreza intelectual y el impulso de mis increíbles equipos de ingeniería! #Taxmanians #Intaxicados #TaxRangers.