Roadmap_to_cloud

¿Qué son las Cloud-Native Apps?

Una de las partes más importantes – y por lo general compleja – de empezar a usar ambientes Cloud o Multicloud es la migración de aplicaciones. Tanto por generar sobrecostos como por la complejidad del flujo de información entre los distintos componentes de una aplicación o una serie de aplicaciones puede ser un reto mayúsculo. Es peor aún cuando lo que se quiere migrar son aplicaciones legacy y monolíticas.

La respuesta de la industria a esta complejidad es estandarizar una serie de parámetros que permitan la movilidad o portabilidad de aplicaciones de manera más sencilla, barata y efectiva. Y se las conoce como Cloud-Native Apps.

Existen casos que migrar una aplicación puede ser más complejo o más caro que desarrollarla desde cero.

Desarrollo Ágil

El modelo Agile de Desarrollo permite trabajar en desarrollo incremental o Coninuous Delivery, y al mismo tiempo entregar productos usables con feedback constante.
El propio modelo coincide con la forma Cloud Pay-as-you-Go, pudiendo entregar o quitar productos mínimos viables constantemente sin pagar por elementos que no estoy utilizando.
Otra forma interesante de asociar Agile con Cloud es el sandboxing, para permitir el acceso a versiones en desarrollo o pre-desarrollo a algunos usuarios usando Crecimiento elástico de Nodos y la disminución de los mismos una vez pasado a producción, que en ambientes tradicionales es bastante más complicado.

Microservicios y Contenedores

El Siguiente factor diferenciador de las Cloud-Native Apps es desarrollar funciones lo más sencillas posibles que se interconecten entre sí por medio de APIs o WebServices para resolver los requerimientos de la aplicación, permitiendo por ejemplo cambiar una parte del código de una función específica sin afectar toda la aplicación y reutilizar funciones que sean comunes a más de una aplicación.
Unido a esto, la mejor forma de «packetizar» y disponibilizar estos microservicios son los contenedores, la mayor ventaja de usar contenedores es que no se requiere la capa de Sistema Operativo para cada contenedor, teniendo solamente un SO como base usando librerías independientes para cada contenedor. Esto reduce costo por cada uno de los microservicios ya que las instancias no requieren contar cada una con una capa de SO.

Capacidades de automatización

Una de las características más interesantes del Cloud es la capacidad de crecimiento y decrecimiento horizontal de las instancias en base a ciertos parámetros configurables para automatizar la entrega de servicios y para ello las aplicaciones deben estar listas para hacerlo, configurar APIs y desarrollar en base a servicios independientes que se puedan automatizar.

Pivotal: What are cloud-native applications? https://pivotal.io/cloud-native

Como siempre, si algo le gustó, compártelo!