Blog de Amazon Web Services (AWS)

Migrando Aplicaciones Desktop Rapidamente Para la Nube de Forma Segura y Automatizada

Por Luiz Yanai, Arquitecto de Soluciones y especialista en Serverless, AWS Brasil

Existen diversos tipos de aplicaciones en el mercado con diferentes características y requisitos. Una empresa cuando piensa en colocar sus aplicaciones en la nube para tener los beneficios de escalabilidad, resiliencia y economía de costo, a veces choca con algunas dificultades técnicas de compatibilizar su aplicación con las tecnologías del ambiente en la nube. Un ejemplo de eso son las aplicaciones desktop, por ejemplo, basadas en Delphi, que fueron y todavía son muy utilizadas, pero que están en un modelo de utilización de recursos de computación en la punta cerca del usuario final.

Cuando se habla en estrategias de migración de aplicaciones, generalmente recordamos las 6 R’s:

  • Rehosting: también conocida como “lift and shift”, es la migración pura sin ninguna implementación u optimización de lo que ya existe.
  • Replatforming: migración en la que son hechas pocas optimizaciones para alcanzar algún beneficio tangible, por ejemplo, disminuir el esfuerzo de gestión de banco de datos migrando para una plataforma de banco de datos como servicio como el Amazon Relational Database Service (Amazon RDS).
  • Repurchasing: conducción para un producto diferente, por ejemplo, alguna plataforma de SaaS. Migrando una aplicación CRM para Salesforce.com, un CMS para Drupal y así sucesivamente.
  • Refactoring/Re-architecting: rediseñar como la aplicación está construida y desarrollada y utilizar funcionalidades nativas de la nube.
  • Retain: En algunos casos no hace sentido para el negocio migrar alguna aplicación sea porque ella fue actualizada recientemente o porque todavía no fue priorizada en el momento de la jornada.
  • Retire: Retirar aplicaciones que ya no son utilizadas o que no hacen más sentido para una evolución de negocio.

Figura 1 – Alternativas de Migración de Aplicaciones para la Nube

Aplicaciones desktop presentan un desafío un poco diferente, pues están basadas principalmente en ejecución en la computadora del usuario final. Esto implica también algunos problemas, pues no siempre el hardware en la punta tiene los requisitos mínimos y la administración de seguridad que un servidor necesita para ejecutar una aplicación. En este contexto, queda la pregunta:  ¿Es posible trabajar con este tipo de carga de trabajo en la nube AWS?

¡La respuesta es SI!

El escenario siguiente presenta una arquitectura real donde una empresa provee y administra una plataforma de aplicaciones en la nube AWS que son puestas a disposición para los usuarios finales sustituyendo e antiguo modelo de instalación local. La migración de las aplicaciones para la nube AWS fue hecha sin haber hecho ninguna modificación en las aplicaciones existentes entregando mayor seguridad y muchas veces mejor desempeño para el usuario final.

 

TRABAJANDO CON DIVERSOS BINÁRIOS Y RECURSOS EN LA NUBE

Combinando algunos servicios de automatización, administración y computación para usuario final es posible portar fácilmente sus cargas de trabajo para la nube AWS sin necesidad de refactorización de aplicación agilizando su migración.

Amazon AppStream 2.0 es un servicio de computación para usuario final que permite hacer streaming de aplicaciones tales como cliente/servidor (SAP GUI), gráficos 3D, herramientas de ingeniería (Matlab, R Studio, AutoCad) directamente para el navegador de los usuarios finales.

Los pasos del proceso de configuración de Amazon AppStream 2.0 son presentados abajo:

Generalmente, una única imagen contiene diferentes aplicaciones que pueden ser puestas a disposición para que un grupo de usuarios accedan. En un escenario donde existen varias versiones de una misma aplicación a ser disponibilizada por tipo de usuario final es necesario preocuparse como organizar sus aplicaciones y los recursos a que cada aplicación tendrá acceso.

En el caso de Amazon AppStream 2.0 existen también algunos límites para la definición de recursos en el servicio. Un recurso que puede ser utilizado para que podamos trabajar con un número virtualmente ilimitado de aplicaciones es la Session Script. Usted puede utilizar sesión scripts para administrar la experiencia de usuario de streaming de Amazon AppStream 2.0. Le permite ejecutar scripts antes de iniciar la sesión de streaming, después de que finalice la sesión y también para acceder a recursos en el almacenamiento de Amazon S3, entre otras opciones.

Visión General de la Solución

Considerando que cada usuario final debe tener acceso a un ejecutable pudiendo ser diferente de los demás y un archivo de propriedades INI para comunicación con los recursos adicionales, podemos utilizar la siguiente estructura:

  • Bucket en el Amazon S3 con folders para todas las versiones de cada aplicación. Dentro de esos folders quedan el ejecutable, DLL, y archivo INI. Estos archivos son copiados para la instancia del usuario usando sesión script antes del inicio de la sesión dejando listo el ambiente para que utilice el usuario;
  • Una tabla de banco de datos en Amazon DynamoDB con la relación entre las versiones de aplicaciones y los usuarios. Esta tabla es accedida por la sesión script para determinar en cual folder del bucket se deben buscar los archivos a ser copiados para la instancia de Amazon AppStream 2.0;
  • Una imagen de Amazon AppStream 2.0 con una sesión script para identificar el usuario conectado y verificar en el banco de datos a cual aplicación tiene acceso el para copiar los archivos de S3 para dentro de la imagen y ejecutar la aplicación.
  • Repositorio de usuarios, por ejemplo, Microsoft Active Directory, para controlar el acceso.
  • El grupo de instancias EC2 que soportan los accesos tienen mecanismo de Auto Scaling para crecer o disminuir el número de instancias conforme la carga.
  • Métricas de Amazon CloudWatch para contabilizar el uso del servicio y permitir que se haga posteriormente el cálculo de cobranza del uso de las aplicaciones para el usuario final.

Conclusión y próximos pasos

En ese blog post, describimos una arquitectura que posibilita distribuir diferentes versiones de aplicaciones para los usuarios finales directamente vía streaming para el navegador.

Para saber más sobre otros casos de uso y funcionalidades de Amazon AppStream 2.0, visite los siguientes posts:

Creating an image programmatically with AppStream 2.0 Image Assistant CLI operations

How to use Amazon AppStream 2.0 to reduce your bastion host attack surface


Sobre el autor

Luiz Yanai es arquitecto de Soluciones en AWS y especialista en tecnologías Serverless, actúa auxiliando clientes de diversos segmentos en sus jornadas para la nube. Con más de 15 años de experiencia en arquitectura y desarrollo de Soluciones involucrando sistemas empresariales y de misión crítica