Explicación de la migración a la nube y la modernización de aplicaciones
Marzo 23, 2022
Marzo 23, 2022
Pasarse a la nube es un punto de inflexión para muchas organizaciones. Cuando una empresa establecida hace el cambio de datos a la nube, a menudo es una decisión del cuerpo directivo y de la junta directiva. Lo bien que la empresa navegue por muchas decisiones involucradas y llegue a la recompensa deseada depende de qué tan bien planifique su equipo, comprenda los matrices y ejecute para respaldar los objetivos comerciales estratégicos de la organización.
Para extraer todo el rendimiento de la inversión (ROI) de una transformación en la nube, la empresa necesita entender, entre otras cosas: la migración a la nube, la arquitectura nativa de la nube y la modernización de las aplicaciones. Los tres términos se relacionan con la forma en que hace que las aplicaciones funcionen de manera eficiente en el entorno de la nube.
La migración a la nube es el proceso de mover aplicaciones, sistemas y datos de los servidores locales a los servidores de un proveedor de servicios. Algunos utilizan el término migración a la nube para referirse a un “levantamiento y cambio” básico sin configuración de aplicaciones ni ajustes básicos de código para aprovechar las características de la nube, como el escalado automático de computación, almacenamiento y redes. Otros lo ven como una implementación probada en la nube, lo que significa que el equipo técnico de la empresa o los ingenieros en la nube contratados realizan ajustes de configuración básicos para ayudar a que las aplicaciones funcionen mejor en el entorno de la nube.
Lo que definitivamente no significa la migración a la nube es la modernización de las aplicaciones, es decir, el proceso de actualizar o reemplazar aplicaciones para que la empresa ejecute un software compatible con la arquitectura de la nube y la aproveche al máximo. Esto también se denomina ser nativo de la nube.
Si se hace bien, hay beneficios significativos de una migración a la nube seguida de la modernización de la aplicación de la mayoría o todas las aplicaciones, como escalabilidad bajo demanda, ahorro de costos a lo largo del tiempo y recursos de nube instantáneos que se convierten en su laboratorio de I+D para la innovación digital. Quizá lo mejor de todo es que cuando la empresa identifica una nueva oportunidad de negocio, el camino hacia la innovación ya no pasa por un cuello de botella tecnológico que detiene el proceso.
Aunque puede tener una buena razón de negocio para hacerlo, la decisión de dejar las aplicaciones heredades clave en las instalaciones o colocarlas tal cual en la nube podría significar que no obtendrá tanto rendimiento de la inversión (ROI) de su migración como lo haría si opta por la modernización.
La migración a la nube necesita un plan bien pensado. Muchas migraciones de la nube fallan porque las ramificaciones completas de mover todos o la mayoría de sus procesos a la nube - detalles como el desglose de dependencias y reponer hardware, software y ubicaciones de datos - no son identificados por el equipo de migración de la nube. Es importante evaluar si los líderes de TI y los actores clave tienen la experiencia necesaria para migrar con éxito. Tome esa decisión temprano y contrate nuevos talentos y/u obtenga ayuda experimentada de profesionales de migración.
Esperar mover las aplicaciones y sistemas a la nube y ejecutarlos como siempre lo ha hecho con todas las ventajas que ofrece la nube. Para estar preparado para la innovación, para hacer un uso completo de la escalabilidad y para ver una reducción significativa de costos, el paso a la nube debe centrarse en una implementación nativa de la nube siempre que sea posible.
¿Qué significa nube nativa? Los componentes de la arquitectura de la nube se diseñaron desde cero para ejecutarse y funcionan de manera diferente al software específico del hardware en su centro de datos. La nube se creó para respaldar la escalabilidad, portabilidad, resiliencia, rendimiento y confiabilidad. La arquitectura nativa de la nube proporciona una plataforma que admite una serie de funcionalidades específicas de la nube, como las aplicaciones escalables automáticamente de la computación sin servidor cuyos recursos subyacentes son visibles para el usuario y no requieren ningún tipo de gestión.
La arquitectura nativa de la nube también se caracteriza por contenedores y microservicios. Un contenedor es una construcción de software en la nube, evocadora de una máquina virtual, que contiene todo lo que una aplicación necesita para funcionar. En esencia, la arquitectura nativa de la nube se diseñó para admitir el uso de fragmentos de código más pequeños que se ejecutan de forma independiente llamados microservicios. Si se reescribe una aplicación monolítica para que sea nativa de la nube, en lugar de una gran aplicación, estará compuesta por muchos microservicios discretos de funcionamiento independiente y actualizables por separado. Los microservicios generalmente tienen pocas o ninguna dependencia y realizan una acción o tarea enfocada.
Cuando se combina con una potente automatización, la arquitectura nativa de la nube permite a los desarrolladores de software realizar cambios significativos centrados en el negocio con frecuencia y con un mínimo esfuerzo.
Hacer que las aplicaciones funcionen y aprovechen la funcionalidad basada en la nube que ya existe es un enfoque nativo de la nube. Requiere aprender un nuevo conjunto de buenas prácticas. En un mundo ideal, se cambiaría a aplicaciones diseñadas para funcionar en la nube, se reescribirían las aplicaciones propietarias para la nube y se dejarían atrás los sistemas y base de datos heredados. Muchas empresas abordan el desafío en todos los frentes: aplicaciones de ‘elevar y cambiar’ al mismo tiempo que están reescribiendo una o más aplicaciones principales, mientras que simultáneamente cambia una base de datos heredada por un producto nativo de la nube.
¿Qué podría salir mal? En un gran cambio (y una gran inversión) hay que gestionar cuidadosamente. Como puede ser complejo, muchas organizaciones posponen el trabajo para hacer que sus aplicaciones sean nativas de la nube y sus viajes a la nube pueden estancarse.
Sin embargo, hay otra manera. Una que puede llevarlo hasta la nube nativa mientras mantiene algunas de las que no puede desprenderse. Si se tiene la experiencia interna para manejar la modernización de aplicaciones, está en buena forma. Muchas empresas no lo hacen. Hay empresas externas (incluida PwC) que pueden encargarse de los cambios y reescrituras de aplicaciones. Como se ha mencionado anteriormente, la modernización de aplicaciones es el proceso de actualizar las aplicaciones, repotenciar para que funcionen de forma nativa de la nube.
Hay tres enfoques principales para la modernización de aplicaciones: serverless, contenedores y cambio de plataforma.
Este enfoque implica avanzar de manera audaz, probablemente dejando atrás una o más aplicaciones y desarrollando una o más aplicaciones serverless o sin servidor. La computación serverless es un conjunto de servicios subyacentes en la nube que elimina por completo cualquier apariencia de gestión de servidores. La arquitectura serverless puede realizar escalas automáticas hacia arriba y hacia abajo dictadas por las cargas de trabajo y la demanda actuales. Eso significa que solo paga por los recursos que utilizan las aplicaciones. Durante las horas de menor actividad, las aplicaciones sin servidor se cierran parcialmente y se ahorrará dinero. Con los contenedores y las máquinas virtuales, está pagando para que esos recursos estén disponibles durante todo el día. Podría decirse que las aplicaciones sin servidor son el punto culminante de la creación de la nube. Serverless también ofrece la reducción de costos más potencial. Una desventaja es que las aplicaciones deben estar escritas específicamente para usarlas.
Serverless permite a los desarrolladores centrarse en sus aplicaciones en lugar de los dolores de cabeza que supone la gestión y el funcionamiento de servidores o tiempos de ejecución. Esta reducción del trabajo auxiliar permite a los desarrolladores ahorrar tiempo.
Los buenos usos de serverless son para las nuevas construcciones de aplicaciones. El código que consume muchos recursos, como una canalización de procesamiento de imágenes, es un excelente caso de uso para serverless. También es útil de forma ad hoc cuando se necesita configurar una carga de trabajo inesperada. Y el serverless sobresale cuando el patrón de tráfico aumenta significativamente. Detecta automáticamente el cambio de carga y se ajusta instantáneamente.
La segunda forma de hacer que las aplicaciones existentes funcionen de manera más eficiente en la nube es colocarlas en un contenedor, junto con todas las dependencias de aplicaciones necesarias como marcos, tiempos de ejecución, monitoreo y aplicaciones de soporte, creando un entorno autosuficiente. La superposición de microservicios y otros bits nativos de la nube puede mejorar la elasticidad y prepararlo para quizás hacer un cambio más grande más adelante.
Los contenedores son más adecuados para las empresas que buscan flexibilidad para instalar y utilizar software con requisitos de versión específicos. Usted tiene control total del lenguaje de programación instalado y la versión de tiempo de ejecución con contenedores. Esto permite que las aplicaciones se muevan rápidamente entre servidores host y se vuelve extremadamente útil para migrar aplicaciones heredadas a la nube porque permite a los desarrolladores replicar el entorno de ejecución original de una aplicación.
Los contenedores son ideales para las organizaciones que no deseen reescribir sus aplicaciones en el código propietario de un proveedor de servicio en la nube. Usando contenedores puede separar su código de aplicación monolítico en piezas más pequeñas que pueden ejecutarse de forma independiente.
El enfoque de cambio de plataforma consiste en mover aplicaciones casi como están, mientras se reemplazan o modifican ligeramente algunos componentes para aprovechar la nube. La personalización del código puede hacer que su aplicación empresarial soporte la escalabilidad, por ejemplo, pero probablemente no con toda la funcionalidad deseable de una aplicación nativa en la nube.
Un ejemplo de una modificación típica de cambio de plataforma es transformar la manera en que un programa interactúa con la base de datos para beneficiarse de los servidores de plataforma que permite una mejor escalabilidad y una mayor disponibilidad en el entorno de la nube. El cambio de plataforma permite que los equipos de infraestructura se concentren en servicios de mayor valor agregado para el negocio.
Cambiar la plataforma migrando desde la base de datos heredada en un enfoque común para la modernización. Algunos incluso se plantean cambiar a un motor de base de datos de código abierto nativo de la nube para sustituir los costosos motores con licencia. Cuando se replantean las cargas de trabajo de las bases de datos, el objetivo es liberar a la organización del cuidado y la alimentación diarios de la base de datos.