Blog de Amazon Web Services (AWS)
Reemplazando el Monolito con AWS, Micro Frontends y Modyo
Por José Antonio Silva, CTO de Modyo
Toda iniciativa de transformación digital debe contar con una plataforma que le permita lanzar y controlar el ciclo de vida de sus productos digitales. Esta plataforma se debe ubicar de forma estratégica entre los usuarios finales y los sistemas core del negocio, controlando la experiencia digital y midiendo de forma continua los flujos e interacciones para aprender del comportamiento digital de ellos.
Durante mucho tiempo, la industria ha estado dominada por soluciones que promueven arquitecturas de despliegue monolíticas, las cuales con el tiempo y el aumento de la complejidad de los desarrollos se vuelven complicadas de mantener y escalar. Esto debido principalmente a los costos asociados al despliegue y posterior mantención de soluciones desacopladas.
Con el auge de las técnicas de devops, como la automatización de infraestructura como código y el despliegue en contenedores, esta realidad ha cambiado, haciendo hoy más fácil que nunca poder desacoplar el monolito en múltiples subsistemas, cada uno gobernado de forma independiente. Mantener múltiples líneas de despliegue paralelas y automatizadas es una tarea que se ha vuelto rutinaria para los equipos de devops.
Si bien los sistemas intermediarios y de backend se han beneficiado rápidamente de esta nueva arquitectura, la proliferación de interfaces construidas en un modelo de Single Page Application (SPA) mediante el uso de frameworks modernos de Javascript como Angular, React y Vue, han creado un nuevo tipo de monolito, pero esta vez en la capa superior, por lo que emulando el desacoplamiento a nivel de microservicios emergen los micro frontends.
Las arquitecturas basadas en micro frontends permiten desplegar los desarrollos de frontend en módulos independientes, los que son capaces de interactuar entre si permitiendo a los equipos ser más ágiles e independientes a la hora de publicar cambios. Como esta forma de trabajo es relativamente nueva, no existen actualmente en el mercado muchas soluciones que puedan actuar como un repositorio y ambiente de ejecución para ellos.
La velocidad a la que evolucionan los mercados demanda a las empresas a pensar cada vez más en forma de productos digitales en lugar de simples proyectos, asumiendo que la diferencia más grande entre uno y otro es que los proyectos terminan, mientras que los productos evolucionan de forma constante.
Para poder garantizar la evolución continua de los productos digitales, se debe contar con plataformas flexibles que permitan hacerse cargo de los cambios continuos que los negocios demandan. La transformación digital se ha presentado como un desafío para la mayoría de las organizaciones que buscan mejorar la experiencia en la interacción de sus clientes con sus productos digitales, los cuales necesitan desarrollarse sobre arquitecturas que privilegian la salida rápida al mercado y la capacidad de realizar modificaciones de forma eficiente.
Acerca de Modyo
Modyo es un Socio de Tecnología APN de nivel Select desde hace más de 8 años y podemos decir con mucho orgullo que el año 2019 fuimos reconocidos como “Technology Partner of Year” para Chile y Perú.
La Plataforma Modyo nace como una alternativa liviana y flexible a las soluciones que actualmente existen en el mercado. Modyo guarda en su core la funcionalidad requerida para poder gestionar la experiencia de los usuarios del sitio delegando todo el procesamiento transaccional a las APIs y micro servicios que se implementan como parte de los productos digitales construidos, en un runtime separado. Modyo permite a sus clientes incorporar elementos modernos de arquitectura, como lo son los micro frontends mediante Widgets, y las Progressive Web Applications mediante el control de los habilitadores técnicos como Service Workers y manifiestos. Además, Modyo cuenta con un completo catálogo de experiencias digitales para el sector financiero, el cual puede ser usado como base para ambiciosos proyectos de Banca transaccional.
Nuestros clientes usan a Modyo como un aliado estratégico que les brinda la posibilidad de modernizar sus plataformas de construcción de experiencias digitales, en un sistema moderno y desacoplado, que sea nativo en la nube y que pueda crecer al ritmo que lo hacen sus negocios.
Si bien los productos y soluciones de Modyo pueden operar en ambientes fuera de la nube de AWS, Modyo recomienda 100% el despliegue de su solución en ésta, ya que garantiza la disponibilidad y escalabilidad de las soluciones al mismo tiempo que provee de un entorno de ejecución seguro y confiable que permite a los equipos focalizarse en resolver los problemas del negocio más que preocuparse por la infraestructura.
Además, para clientes que están en fases más tempranas en su adopción de DevOps y microservicios, Modyo provee un completo servicio llamado Modyo Managed DevOps, con el cual podemos desplegar pipelines automatizados de frontend y backend utilizando AWS CodeBuild y AWS Codedeploy, que despliegan microservicios en contenedores AWS ECS bajo un API Gateway común.
Arquitectura de Referencia en AWS
Modyo cuenta con una arquitectura de referencia que toma ventaja los mejores elementos que existen hoy día en la oferta de nube de Amazon Web Services, dando así respuesta a temas claves como seguridad, escalabilidad elástica de componentes y una estrategia de resiliencia basada en el uso de múltiples zonas de disponibilidad.
Al ser una solución desacoplada, toda la integración hacia los sistemas core de negocio de nuestros clientes se realiza por microservicios que exponen un API, hacia la cual se comunican directamente los Widgets (micro frontends) desplegados en la plataforma. Modyo participa en el ciclo de login dirigiendo al usuario al componente de Single Sign On (SSO) configurado para la solución, y obtiene de vuelta los datos mínimos requeridos para poder perfilar la experiencia digital del usuario.
|
El despliegue de la plataforma Modyo en AWS considera el uso de contenedores AWS ECS dentro en una red privada virtual que sólo admite tráfico en los puertos Web, y cuyo egreso a Internet es controlado por medio de un NAT Gateway. Múltiples contenedores con diferentes roles (servicios) son desplegados para activar el software de Modyo dentro de configuraciones de auto escalabilidad. Los contenidos estáticos e inmutables que dan vida a los sitios y productos digitales de nuestros clientes son distribuidos mediante AWS CloudFront, quién garantiza una menor latencia y mayor velocidad en el acceso a este tipo de elementos.
A nivel de datos y haciendo uso de poderosas herramientas como Amazon Aurora y Amazon Elasticsearch, Modyo puede brindar a sus clientes la tranquilidad de que sus datos se encuentran seguros y disponibles para la aplicación. La plataforma también hace uso de Amazon ElastiCache para generar diferentes niveles de caché interno, que permiten acelerar el acceso al contenido dinámicamente generado.
Desde el punto de vista de seguridad toda la solución activa elementos como AWS CloudTrail, que captura los eventos relevantes, y Amazon GuardDuty, que procesa y alerta patrones sospechosos que deban ser atendidos. Además, toda la solución es continuamente monitoreada por Amazon CloudWatch.
Para el caso del despliegue de microservicios, este puede ser realizado de forma externa por el mismo cliente, o internalizado como parte del despliegue de la plataforma mediante un servicio denominado Modyo Managed DevOps.
El Modyo Managed DevOps contempla el uso de herramientas de Single Sign On (SSO), como Amazon Cognito, en conjunto con Amazon API Gateway, el cual brinda la interfaz necesaria para exponer los microservicios que son desplegados dentro de la plataforma de contenedores Amazon ECS. Dependiendo de los requerimientos de estos servicios, más elementos de AWS pueden ser considerados, como el uso de conexiones de VPN hacia otros sistemas o el uso de motores de almacenamiento de datos.
Tanto el despliegue de la plataforma Modyo como del servicio de Managed DevOps, consideran el uso de pipelines de automatización construidos con AWS CodeBuild, AWS CodePipeline y AWS CodeDeploy. Además, ambos despliegues son gobernados por plantillas de infraestructura como código de AWS CloudFormation.
Modyo, mediante esta arquitectura, es capaz de procesar las cargas de trabajo más exigentes, levantando recursos bajo demanda y brindando un esquema de seguridad que facilita el cumplimiento de las normativas de seguridad de nuestros clientes. Para más información acerca de Modyo visita www.modyo.com.