La portabilidad en la nube algún día parece ser un avance revolucionario. Las expectativas fueron altas durante el lanzamiento de Amazon S3 en 2006 y otros servicios similares. Los proveedores prometieron la posibilidad de migrar aplicaciones entre diferentes servicios de manera transparente. ¡Oh, qué mundo maravilloso sería!

Y para cepillar un futuro en el que las empresas pudieran ir sin esfuerzo a los proveedores que ofrecen mejores precios o capacidades. A pesar del entusiasmo inicial que rodea el modelo de nube pública, es "como un servicio" y "a pedido", la promesa de portabilidad ha demostrado ser difícil de alcanzar y costosa.

De 2017, tuve subrayado que la portabilidad de las aplicaciones en la nube era de ciencia ficción. Hoy, sigue siendo complejo y costoso, esencialmente, las mismas razones que en ese momento. Por supuesto, todo es posible en la informática siempre que su negocio tenga bolsillos profundos y esté listo para gastar sin contar. Pero pocos CIO tienen una chequera abierta, por lo que el principal problema es que la portabilidad de las aplicaciones de una nube a otra requiere mucho más trabajo de lo que los proveedores esperaban.

La ruta del contenedor y sus límites

El desafío fundamental radica en las diferencias inherentes entre las nubes. Cada proveedor trabaja con API, protocolos y conjuntos de características únicas, lo que crea importantes obstáculos técnicos para la migración. Lo que, en última instancia, clasifica los servicios en la nube entre los proveedores de TI tradicionales. Como Roy Illsley, analista jefe de OMDIA, señala, los entornos en la nube y en el sitio requieren diferentes trabajos para adaptar las aplicaciones a nuevas plataformas. Estos esfuerzos pueden variar desde ajustes menores hasta reescrituras casi completas del código de aplicación, dependiendo de los sistemas operativos y los lenguajes de programación. Esta observación no debería ser sorprendente, sin embargo, es para muchas personas que migran a la informática desmaterializada.

Aunque la transferencia de aplicaciones que operan en máquinas virtuales pueden parecer manejables, disminuye ciertas ventajas de la nube, incluida la flexibilidad en la escala. Con respecto a las aplicaciones "nativas de la nube", diseñadas específicamente para entornos en la nube, la realidad es igual de compleja. Aunque Kubernetes es un estándar utilizado por todos los proveedores, grandes y pequeñas aplicaciones de movimiento construidas sobre esta tecnología de una nube a otra a menudo requiere tener en cuenta las variaciones en las configuraciones.

En realidad, estas migraciones nunca son tan fáciles como lo sugieren los promotores de contenedores y kubernetes. Yo mismo participé en varios proyectos de desarrollo basados ​​en contenedores que se han descarrilado porque los gerentes de TI no lo habían entendido obvio.

¿Todavía tenemos que cazar el espejismo de la portabilidad?

Algunos expertos siempre recomiendan la búsqueda de portabilidad en la nube debido a sus ventajas estratégicas. Según Sid Nag, de Gartner, una cierta portabilidad permite a las empresas mitigar el riesgo de bloquear a la oferta de este o aquel proveedor. Sin embargo, en esta área, otras palancas están en manos de las empresas, como su poder de negociación durante las renovaciones de contrato y las opciones estratégicas permiten protegerse de la dependencia excesiva de un solo proveedor.

La portabilidad requiere una planificación cuidadosa y anticipación en las opciones de arquitectura para minimizar las dependencias que vinculan las aplicaciones a servicios en la nube específicos. Esto generalmente implica adoptar el enfoque del denominador común más pequeño: correr en todas partes, tampoco es hacer en ningún lado correctamente. A menudo surgen problemas de rendimiento y optimización, lo que hace que estas aplicaciones "portátiles" sean demasiado caras para explotar, incluso en la nube.

La ausencia de estándares formales en la nube impone compatibilidad y garantía operativa en diferentes entornos en manos de las empresas. Los servicios de servicio específicos a menudo empujan a los desarrolladores a diseñar aplicaciones optimizadas para ecosistemas como AWS o Azure. La migración de datos agrega otra capa de complejidad. La portabilidad de los datos a menudo implica mover datos al mismo tiempo que las aplicaciones, que pueden ser técnicamente difícil y costosa.

Algunas pistas para empresas

Ante esta tabla, ¿cuáles son las palancas disponibles para las empresas? Estas tienen varias opciones para minimizar los costos asociados con las dificultades de portabilidad en la nube.

Implementar aplicaciones de varios proveedores. Las empresas pueden implementar una aplicación de varios proveedores de la nube para distribuir riesgos y reducir la dependencia de un solo jugador. Esta estrategia también ofrece una ventaja al negociar condiciones contractuales o migración de servicios. Evita encontrarse pies y puños vinculados a un proveedor y optimizar los costos aprovechando los servicios más rentables ofrecidos aquí y allá.

Dicho esto, se equivocaría al pensar que el multicloud es la respuesta a la falta de portabilidad. Deberá adjuntar su aplicación a las funciones nativas para optimizarlas para un proveedor de nubes específico. Como dije antes, la portabilidad se ha descarrilado y realmente no tienes buenas tarjetas. El enfoque de "múltiples proveedores" minimiza el impacto negativo, pero no resuelve el problema de la portabilidad.

Cree aplicaciones con portabilidad en mente. Este enfoque implica tecnologías de contenedores, como Docker y plataformas de orquestación, como Kubernetes. Resumen Las aplicaciones de la infraestructura subyacente garantizan su compatibilidad con múltiples entornos. Además, evitar servicios propietarios y optar por herramientas de código abierto puede mejorar la portabilidad y reducir los costos asociados con las reconfiguraciones o la migración. A pesar de todo, y una vez más, la mayoría de las empresas no pueden evitar usar los servicios nativos de un proveedor, necesarios para permitir que el contenedor opere de manera efectiva y la aplicación para cumplir con los requisitos de la empresa.

Utilice la gestión efectiva de datos para minimizar los costos de transición. Las empresas deben considerar estructurar sus datos para facilitar el paso de una nube a otra mientras tienen en cuenta los costos de salida de datos. El uso de una solución híbrida de transferencia de nubes o nubes en la nube también puede ayudar a mantener el acceso a los datos transparentes y reducir los costos asociados. La arquitectura de datos del diseñador, al tiempo que tiene en cuenta la portabilidad, también evita procesos de migración de datos costosos y complicados.

Aquí hay un consejo que a menudo doy: no tenga en cuenta la portabilidad de las aplicaciones en la nube cuando las crea. Esto solo agrega costos y riesgos, y la mayoría de las aplicaciones nunca dejarán la plataforma en la nube que inicialmente los recibió.

A menudo escucho que las empresas quieren poder mudarse si el proveedor se declara en quiebra, ya no es confiable o aumenta sus precios. Estos riesgos son reales, pero poco probables. Todas las solicitudes se pueden mover si hay suficiente dinero. Encontrará que el costo del riesgo de una mudanza de aplicaciones es mucho menor que el de la portabilidad en la nube.