Deploying an OAM application to Rudr on top of Kubernetes

Deploying an OAM application to Rudr on top of Kubernetes

Over the last few years, Kubernetes (K8s) imposed itself as the leading container orchestration environment. Kubernetes collects wisdom, code, and efforts from hundreds of corporate contributors and thousands of individual contributors: 90,000 commits, 2,500 contributors, and #1 GitHub project.

Such a success has driven the more than noticeable growth of (fully managed) Kubernetes services on public clouds, Azure Kubernetes Service (AKS), a certified Kubernetes conformant, being one example on Azure as Microsoft is concerned, and elsewhere on the devices on the edge, for example with Azure Stack Hub, as well as on the organizations’ on-premises infrastructure.

As a result, the Kubernetes community is a more than vibrant one and people are constantly looking for ways to make Kubernetes easier for organizations to adopt and easier for developers to use.

An Open Application Model for cloud-native applications

Microsoft is part of this vibrant community and leads in the associated committees to help shape the future of Kubernetes and its ecosystem.

No alt text provided for this image


In this context, Microsoft and Alibaba Cloud have jointly created and recently announced a new open source project under the Open Web Foundation: the Open Application Model (OAM) project, a specification for building cloud-native applications. See blog post Announcing the Open Application Model (OAM), an open standard for developing and operating applications on Kubernetes and other platforms.

The project homepage is https://openappmodel.io.

IDC predicts by 2022, 35% of all production applications will be cloud-native vs. less than 10% today. See IDC FutureScape: Multiplied Innovation Takes Off, Powered by AI, Distributed Public Cloud, Microservices, Developer Population Explosion, Greater Specialization and Verticalization, and Scaling Trust.

In the context, OAM is a specification that allows application developers/architects to define the resources their applications need to run on Kubernetes clusters. It draws the (possible) future of app development and provisioning, with the ability to build portable applications that work across cloud service providers (CSP), devices on the edge, and your on-premises infrastructure if any. Today, application developers/architects need to know and code for each infrastructure they deploy to…

OAM offers a platform agnostic application model, that not only is applications focused, and not on container infrastructure, but also provides a great separation of concerns with clearly defined roles for application developers, application operators, and infrastructure operators.

The core vision of this team-centric and consistent specification for cloud, edge-devices and on-premises, is indeed to communicate and connect application developers/architects, application operators, and infrastructure operators in a standardized approach, making cloud-native application management and delivery simpler and more efficient compared to today’s situation.

No alt text provided for this image

OAM allows to model the application according to the roles responsible for building and running applications and operating infrastructure:

  • Application developers/Architects are responsible for describing what a microservice or component does, and how it can be configured in a platform-neutral setting to deliver business value. They are the domain experts.
  • Application operators are responsible for configuring the runtime aspects of one or more of these microservices. They use powerful and extensible operational traits consistently across platforms and environments. They are the domain experts on the platform.
  •  Infrastructure operators are responsible for setting up and maintaining the infrastructure within which applications run. They configure their environments to satisfy any unique operating requirements. They are the domain experts on the low-level details.

Rudr is a Kubernetes reference implementation for OAM.

No alt text provided for this image

Rudr thus provides OAM application level primitives for Kubernetes as Custom Resources Definitions (CRDs).

No alt text provided for this image

Hence, as per documentation, “Rudr is able to provide OAM style application level APIs including Components for application developers/architects to define applications, and Traits for application operators to define operational capabilities. Meanwhile, infrastructure operators still work on Kubernetes itself. Rudr controllers will maintain the mapping between OAM CRDs (e.g., Component) and Kubernetes API resources (e.g., Deployment).”

As outlined above, OAM is platform agnostic. While Rudr is Microsoft’s initial open implementation of OAM, that is built on top of Kubernetes, OAM itself is not tightly bound to Kubernetes.

It is possible to develop implementations for numerous other environments including small-device form factors, like edge deployments and elsewhere, where Kubernetes may not be the right choice, or serverless environments where users don’t want or need the complexity of Kubernetes.

For a very first glimpse, watch Dapr, Rudr, OAM | Mark Russinovich presents next gen app development & deployment hereafter.

Or, check out these two short episodes on the Azure Friday:

  1. Learn all about Open Application Model (OAM) ;
  2. Intro to Rudr: A Kubernetes Implementation of the Open Application Model.

For a more in-depth content, you can have a look at the following great articles from Alibaba Cloud:

Ready for a “test drive”?

Does it sound interesting so far? If so, let’s start getting our hands a little bit dirty by deploying an OAM application to Rudr.

To get a “drive” with Rudr, I prepare complete step-by-step instructions for Windows 10. (These instructions can be easily adapted to Linux as Linux will be largely featured. Develop on Windows, deploy on Linux :-))

First, to prepare your environment on Windows 10, follow all the step-by-step instructions as per walkthrough Set up on Windows 10 a development environment for Rudr.

Then, for your “drive” experience, follow all the step-by-step instructions as per walkthrough: Deploy, inspect, and update an OAM application with Rudr.

This concludes this article. I hope you’ve enjoyed the (short) guided tour!

To learn more about Rudr, please check out the Using Rudr guide, as well as the advanced How-To topics.

Thanks, Philippe

2020-02-05 update: You can now download the guide Understanding and leveraging the Open Application Model (OAM) and Rudr – A starter guide for developers and others. This guide is part of the series New perspectives for cloud-native applications with the Open Application Model (OAM), and the Distributed Application Runtime (Dapr) I published on the Microsoft Download Center (https://aka.ms/CloudNativeAppsFuture).

要查看或添加评论,请登录

Philippe Beraud的更多文章

社区洞察

其他会员也浏览了