Conecta con nosotros

A Fondo

Microsoft anuncia dos nuevos proyectos open source para desarrolladores: Dapr y OAM

Publicado el

Microsoft

Microsoft sigue adelante con su apuesta por el código abierto. Después de poner en marcha numerosos proyectos open source, y de asegurar hace apenas unos días que «con la mano en el corazón, Microsoft es una empresa de código abierto«, la compañía ha presentado dos nuevos proyectos open source para desarrolladores: Dapr y OAM.

Dapr, abreviatura de Distributed Application Runtime, que quiere decir Tiempo de ejecución de aplicaciones distribuido, está pensado para facilitar el desarrollo de aplicaciones para microservicios. Mientras, OAM (Open Application Model, que significa Modelo abierto de aplicación) es un nuevo estándar para el desarrollo y operación de aplicaciones en Kubernetes y otras plataformas. Con ellos, Microsoft pretender ayudar a los desarrolladores a eliminar barreras al desarrollar aplicaciones para la nube y el edge.

En el desarrollo de OAM, los de Redmond han trabajado en conjunción con Alibaba, que tiene intención de lanzar un servicio gestionado basada en ella. Es una especificación para describir aplicaciones, de manera que «la descripción de la aplicación quede separada de los detalles de cómo se ha desplegado y gestionado la aplicación por parte de la infraestructura. Esta separación tiene numerosas ventajas de cara al desarrollo, y facilita la creación de aplicaciones«.

Según explican desde la propia compañía en su blog dedicado al open source, «en el mundo real, cada clúster de Kubernetes es distinto, desde ingress hasta la malla de servicios. Separar la definición de la aplicación de los detalles operativos del clúster permite a los desarrolladores de aplicaciones centrarse en los elementos clave de su aplicación, en vez de tener que hacerlo en los detalles operativos del punto en el que se despliega. Además, la separación de estos asuntos también permite que los arquitectos de plataforma desarrollar componentes reutilizables. A los desarrolladores de aplicaciones les da la ocasión de centrarse en integrar estos componentes con su código para desarrollar aplicaciones fiables. Así, el objetivo de OAM es facilitar el desarrollo de aplicaciones, así como la gestión de aplicaciones complejas«.

En la actualidad, la especificación se está desarrollando según el acuerdo de la Open Web Foundation, y sus creadores tienen como objetivo «llevar OAM a una fundación neutral en cuanto a fabricante con la que se pueda poner en marcha una gestión abierta y una colaboración«. Microsoft ha puesto en marcha ya una implementación abierta de OAM para Kubernetes, denominada Rudr, y apunta que es solo el principio de lo que se puede hacer con esta especificación.

Dapr es, para Microsoft, «una rutina open source, portable y centrada en eventos que facilita a los desarrolladores el desarrollo de aplicaciones resilientes con y sin estado de microservicio que se ejecutan tanto en la nube como en edge«. También se centra en aportar facilidades a los desarrolladores tanto si crean algo desde cero como si trabajan con código ya existente.

Incluye además bloques de desarrollo que no dependen de ningún lenguaje de programación en particular, y SDKs específicos para usarlo con Go, Java, JavaScript, .NET y Python. Los desarrolladores pueden utilizarlo para desarrollar aplicaciones con cualquier lenguaje y framework invocando estos bloques a través de APIs estándar, como HTTP o gRPC.

El CTO de Microsoft Azure, Mark Russinovich, ha destacado de OAM en un encuentro con Techcrunch que soluciona un problema al que se enfrentan muchos equipos de desarrollo a diario, y es que Kubernetes no tiene concepto de aplicación. Así, «tiene concepto de un despliegue y de servicios, pero nada que interconecte todo de manera coherente en una unidad y un ciclo de despliegue que un desarrollador entienda como similar a como él enfoca sus aplicaciones«.

Además, apunta que mientras que Kubernetes tiene gráficos de Helm, una vez que se despliega una aplicación, Kubernetes desconoce las relaciones entre los objetos que se representan en estos gráficos, por lo que «necesitamos un concepto de aplicación en un cluster de Kubernetes«.

Básicamente, OAM es un archivo YAML. Puede incorporarse a un marketplace o un catálogo de servicios y desplegarse a partir de entonces. Pero además, según Russinovich, con OAM el desarrollador puede pasar las especificaciones al equipo de operaciones y este puede desplegarlo sin tener que hablar con el desarrollador. Por otra parte, Kubernetes es complicado para los desarrolladores, y además está más centrado en la infraestructura, OAM facilita que el desarrollador no se tenga que centrar también en ella y pueda hacerlo en la app.

Mientras tanto, Dapr tiene como fin último conseguir que los microservicios y el desarrollo nativo en la nube sean accesibles para la empresa. Según Russinovich, si se echa un vistazo a la lista de problemas que se encuentran los desarrolladores cuando desarrollan aplicaciones distribuidas y basadas en microservicios, «quieren que estas estén impulsadas por eventos, por lo que tiene que gestionar elementos como los propios eventos y la respuesta a diversos detonantes que los activan. Quieren que los microservicios se comuniquen entre ellos, por lo que tienen que recurrir a Pub/sub«.

Así, los desarrolladores tienen que ocuparse del descubrimiento de servicios y gestión de estados. Y en función de si se trata de una app con estado o sin él, los desarrolladores tienen que trabajar con distintos SDKs y modelos de programación. Pero con Dapr no necesitan un SDK, porque como hemos mencionado proporciona sus servicios a través de un HTTP local o de un extremo gRPC, manteniendo el código de la aplicación separado del de Dapr. Por eso, Dapr también es independiente del lenguaje en el que se desarrolla.

Redactora de tecnología con más de 15 años de experiencia, salté del papel a la Red y ya no me muevo de ella. Inquieta y curiosa por naturaleza, siempre estoy al día de lo que pasa en el sector.

Lo más leído