Llegamos a ustedes gracias a:



Reportajes y análisis

6 buenas prácticas de finops para reducir los costos de la nube

[03/07/2023] Algunos equipos de desarrollo esperan a optimizar sus aplicaciones para tener en cuenta los costos hasta que los informes y las facturas muestran cargos superiores a los previstos, o cuando los costos de la nube aumentan más rápido de lo esperado. Otros consideran cuidadosamente el costo de ejecutar y escalar la infraestructura durante las fases de diseño y construcción de un proyecto. Algunas grandes empresas van un paso más allá y crean una función de finops para guiar el proceso y la selección de su arquitectura de nube.

[Reciba lo último de CIO Perú suscribiéndose a nuestro newsletter semanal]

Centralizar los costos de la nube desde las nubes públicas y la infraestructura del centro de datos es una preocupación clave de finops. Lo primero que hace finops es crear una vista única del consumo, lo que permite prever los costos. Las plataformas finops también pueden centralizar operaciones como la desconexión de recursos infrautilizados, o la predicción de cuándo abandonar instancias de nube reservadas de mayor precio. Plataformas como Apptio, CloudZero y HCMX FinOps Express, entre otras, pueden ayudar a optimizar los costos de la nube. También proporcionan herramientas para catalogar y seleccionar pilas nativas de la nube aprobadas para nuevos proyectos.

Veremos algunas de las mejores prácticas de finops que los equipos de desarrollo deben tener en cuenta durante las fases de planificación y desarrollo de aplicaciones. Pero primero consideremos el panorama general: ¿Qué debe tener en cuenta un equipo de desarrollo responsable desde el punto de vista fiscal a la hora de desarrollar nuevas aplicaciones en la nube o al principio de un proyecto de modernización de aplicaciones?

Gestionar los costos de la nube

"No se limite a levantar y cambiar", señala Nitha Puthran, vicepresidente senior de nube, infraestructura y seguridad de Persistent Systems. "Analice la aplicación para determinar el mejor camino para minimizar los costos y maximizar la escalabilidad".

Otra recomendación procede de Justin Cobbett, director de marketing de producto de Akamai. "Construir su entorno para que coincida con el caso de uso de cada aplicación y aprovechar las implementaciones multicloud o híbridas es una forma segura de ahorrar costos, aumentar el rendimiento y reducir el riesgo", afirma.

Los desarrolladores pueden reducir gastos automatizando las pruebas, configurando canalizaciones CI/CD y dando prioridad a otras optimizaciones devops que repercuten en los costos. Desplegar la infraestructura como código y mejorar la gestión de incidencias son dos formas de reducir costos en las operaciones de TI.

Comparar la infraestructura y las plataformas en la nube

Es fácil crear un entorno en una nube pública y desplegar aplicaciones en él, pero puede que no sea una arquitectura de ejecución óptima desde el punto de vista del rendimiento o la fiabilidad.

"Los desarrolladores de hoy pueden elegir entre una infraestructura monolítica en la nube que los bloquea, y la opción de montar una infraestructura en la nube a partir de proveedores de servicios IaaS y PaaS modernos y modulares", afirma Kevin Cochrane, director de marketing de Vultr. "Al elegir esto último, pueden acelerar el tiempo de producción, agilizar las operaciones y gestionar los costos de la nube pagando solo por la capacidad que necesitan".

Por ejemplo, una aplicación de bajo uso puede ser menos costosa de configurar, ejecutar y administrar en AWS Lambda con una base de datos en AWS RDS, en lugar de ejecutarla en instancias reservadas de AWS EC2. La clave para el equipo de devops es considerar múltiples arquitecturas de implementación y tener en cuenta el rendimiento, la fiabilidad, la escalabilidad y los costos a la hora de seleccionar un enfoque.

Integrar la capacidad de observación en la modernización de aplicaciones

Crear capacidad de observación en aplicaciones nativas de la nube no es difícil, pero ¿qué ocurre si se hace durante la modernización de una aplicación? La creación de capacidad de observación en una aplicación es una práctica recomendada para facilitar la gestión de incidencias y encontrar las causas fundamentales de los problemas de rendimiento. El flujo de datos que crea también puede ayudar a identificar oportunidades de optimización de costes.

"Las organizaciones se están moviendo cada vez más hacia arquitecturas basadas en la nube, que son extremadamente complejas y dinámicas, lo que dificulta la comprensión de lo que está sucediendo con sus datos dentro de sus despliegues y gastos", sostiene Rohit Choudhary, cofundador y CEO de Acceldata. "La observabilidad de los datos puede ayudar a las organizaciones a detectar e identificar las causas principales de las discrepancias de datos, y proporcionar recomendaciones sobre las formas de mejorar la eficiencia y la fiabilidad de sus sistemas de datos, reduciendo los costos generales de la nube".

¿Qué puede decir la observabilidad sobre los costos? Una aplicación con una elevada utilización de recursos durante periodos de bajo uso, o que realice más llamadas a la base de datos o a la API de lo esperado, puede disparar los costos. Estas serían buenas razones para considerar optimizaciones de código.

Travis Greene, director senior de marketing de productos de operaciones digitales de OpenText, comparte esta recomendación para encontrar los costos ocultos de la nube y las áreas de gasto excesivo. "Identifique las anomalías utilizando una plataforma de observabilidad multi-nube, comprenda sus fuentes y tome medidas rápidas para cerrar la utilización derrochadora", indica. Tomar estas medidas "puede minimizar las sorpresas de facturación que asolan a muchas organizaciones hoy en día".

Prever y medir los periodos de mayor uso de cada aplicación

Cuando hay demasiadas aplicaciones que modernizar, los equipos de desarrollo a menudo se sienten presionados para crear, probar y desplegar aplicaciones en la nube, sin dedicar suficiente tiempo a optimizar la infraestructura de la nube. Esto a veces significa poner en marcha entornos y servicios, y dejarlos funcionando 24 horas al día, 7 días a la semana o en horarios fijos.

McKinsey calcula que las empresas pueden recortar entre un 15% y un 20% de los costos de la nube mediante optimizaciones, y eso puede empezar por prever y capturar las métricas de uso de las aplicaciones.

Rich Hoyer, director de customer finops de SADA, afirma. "A menudo, las organizaciones permiten que los servicios en la nube funcionen 24 horas al día, 7 días a la semana, aunque no se estén utilizando. Crear una programación automatizada de la carga de trabajo es una de las oportunidades de ahorro en la nube que más se pasan por alto, y el ahorro potencial de programar servicios, como pruebas y desarrollo, para que funcionen solo cuando se utilizan es sorprendentemente significativo".

Revisar los costos de integración y flujo de datos

Uno de los costos más difíciles de estimar antes de desplegar una aplicación en nubes públicas, es el de los movimientos de datos entre nubes y servicios en nube. Los cargos por salida de datos pueden ser significativos para aplicaciones que realizan integración entre herramientas SaaS, transformaciones de datos para almacenes de datos o pasos de procesamiento en flujos de datos IoT. Sean Knapp, fundador y CEO de Ascend, recomienda: "Evita mover los datos entre nubes cuando sea posible y procéselos donde estén utilizando plataformas de canalización de datos push-down".

Knapp también advierte de un aspecto que se pasa por alto a la hora de diseñar integraciones, canalizaciones y transformaciones de datos que pueden multiplicar por tres los costos de computación. "Muchos sistemas de canalización generan costos de reprocesamiento innecesarios, ya que no hacen inventario de los propios datos", afirma. "Si algo cambia en la lógica del pipeline, o se produce un error en tiempo de ejecución, hay que volver a ejecutar todo el pipeline para garantizar la coherencia".

La lección es planificar canalizaciones de datos flexibles que admitan actualizaciones incrementales en lugar de cambios que requieran un reprocesamiento completo de todo el conjunto de datos.

Elija funciones propias que aporten valor real

Las nubes públicas ofrecen una amplia gama de servicios, con la esperanza de que los desarrolladores aprovechen sus capacidades incorporadas. El uso de estas funciones puede resultar cómodo y rentable a corto plazo, pero también obliga a la aplicación a ejecutarse en la plataforma del proveedor de la nube pública.

"Hoy en día, la mayoría del software escrito para la nube utiliza los detalles específicos de implementación del propio proveedor de la nube", afirma Jonathan Oliver, CEO y CTO de Smarty. "Si bien el software se ejecutará, solo funcionará para el proveedor de nube en cuestión, y no se puede portar o mover fácilmente a un nuevo proveedor de nube sin un esfuerzo significativo".

Tendencia de los costos de la nube pública y de los precios de los proveedores

Otras dos recomendaciones se centran en las disciplinas posteriores a la implementación y deberían ayudar a las organizaciones a alinear estrategias a medida que evolucionan las arquitecturas, los servicios y los precios de la nube pública.

"Los desarrolladores deben tener una visibilidad completa de la utilización de los recursos en la nube, ya sea almacenamiento, computación, red o servicios", anota Ravi Mayuram, vicepresidente senior de productos e ingeniería de Couchbase. "Esto permitirá a los desarrolladores dimensionar correctamente la utilización de los recursos antes de que se produzcan sobrecostos".

Esa disciplina ayuda a hacer un seguimiento de los costos en función de la utilización y otros factores que los equipos de negocio, y devops pueden medir y controlar.

Carl Perry, director de gestión de productos de Snowflake, recomienda realizar también un seguimiento del rendimiento y el compromiso del proveedor para ayudar a los clientes a reducir costos. "El aspecto más importante que los desarrolladores deben tener en cuenta es si una plataforma en la nube tiene un historial de mejora de costos para los clientes", afirma. "Elegir una empresa que mejore continuamente el rendimiento de su servicio significa que los desarrolladores verán cómo sus costos disminuyen automáticamente a medida que la empresa lanza actualizaciones."

Conclusión

Los equipos de devops hoy en día deben gestionar una tremenda presión para construir y modernizar aplicaciones. Hacerlo sin tener en cuenta los costos cambiantes de la nube puede conducir a una deuda técnica y a gastos crecientes. Las mejores prácticas que aquí se comentan pueden ayudarle a sortear esos escollos en cada fase del ciclo de vida del desarrollo de software.

Puede ver también: