On Wednesday, Microsoft and Alibaba Cloud revealed "an open standard for developing and operating applications on Kubernetes and other platforms," that isn't yet a standard and looks rather redundant in light of similar projects.
The Open Application Model (OAM), released as an open source project under the oversight of the Open Web Foundation, defines how to describe applications in a way that separates the concerns of developers – how the application is made – and operators – how the application is deployed.
For example, a developer implementing file storage might specify that data will get written to a file path but wouldn't need to be describe what the kind of storage volume that gets mounted or how that requirement gets fulfilled.
"Separating the application definition from the operational details of the cluster enables application developers to focus on the key elements of their application rather than the operational details of where it deploys," Microsoft explains in a blog post, noting that this separation of concerns allows code to be more modular, reusable, and reliable.
The OAM model covers components (discrete, runnable, described units), workload types (that a component can execute), traits (defining operations-specific features like auto-scaling), application scopes (boundaries representing groups of components), and an application configuration (describing component instances, traits, and scopes, in conjunction with configuration data).
Microsoft has also created an implementation of its specification, a project called Rudr, which sounds like it ought to be ride sharing app for boats but really is just a name chosen for its thematic association with Kubernetes (Greek for a ship's captain or pilot).
Using Rudr to install applications on a Kubernetes cluster involves defining a YAML component schematic – no one said it would be exciting. Incidentally, Rudr is written in Rust rather than Go, the language used for Kubernetes, because Rust's generics allowed Rudr's developers to create Kubernetes controllers with less code.
OAM, Microsoft insists, stands apart from the platform-as-a-service application model in that it's platform agnostic – everyone uses Kubernetes but you don't have to – and is designed to be extensible, portable, and vendor-neutral.
In an email to The Register, Tom Petrocelli, research fellow at IT consultancy Amalgam Insights, said while he's generally pleased with Microsoft's embrace of the open source, the company seems to want to push standards, which the open source community tends to avoid.
Google will not donate Knative framework 'to any foundation for the foreseeable future'READ MORE
Beyond OAM, he points to the company's proposed Service Mesh Interface (SMI), announced at Kubecon+CloudNativeCon EU in Barcelona earlier this year.
While OAM addresses a legitimate pain point for those deploying applications to Kubernetes, Petrocelli contends there are already several open source projects and private products that do as much.
"I admit that I'm skeptical of these standards, which seems like a way to lock in technology from outside the upstream open source projects," said Petrocelli. "In this case, I have to wonder why we need another application bundle project when we already have CNAB. CNAB's description reads almost identically to the OAM description."
Petrocelli also points to Cloud Native Build Packs from Pivotal (adapted from Cloud Foundry), VMWare Bitnami Stacksmith, and Docker Applications, which is CNAB compliant.
"So, to call it a 'standard' is at best an overstatement and seems at odds with the goals of the wider community," said Petrocelli. "Put another way, it sounds more like an old fashioned Microsoft 'standard' tech than real open source, despite Alibaba's involvement." ®