The Open Application Model from Alibaba’s Perspective

Key Takeaways

What is the Open Application Model (OAM)?

Background

Who We Are

We Manage All Kinds of Kubernetes Clusters

We Serve Application Operators, Who Serve Developers

The Problems of Cooperation

Interactions Between Infra Operators and Application Operators

apiVersion: "app.alibaba.com/v1"
kind: CronHPA
metadata:
name: cron-scaler
spec:
timezone: America/Los_Angeles
schedule:
- cron: '0 0 6 * * ?'
minReplicas: 20
maxReplicas: 25
- cron: '0 0 19 * * ?'
minReplicas: 1
maxReplicas: 9
template:
spec:
scaleTargetRef:
apiVersion: apps/v1
name: php-apache
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50

OAM’s Traits

Discoverable Capabilities

$ kubectl get traits
NAME AGE
cron-scaler 19m
auto-scaler 19m

A Trait Provides A Structured Description for A Given Capability.

apiVersion: core.oam.dev/v1alpha1
kind: Trait
metadata:
name: cron-scaler
spec:
appliesTo:
- core.oam.dev/v1alpha1.Server
properties: |
{
"$schema":"http://json-schema.org/draft-07/schema#",
"type":"object",
"properties":{
"timezone":{
"description":"Timezone for the CRON expressions of this scaler.",
"type":"string"
},
"schedule":{
"type":"array",
"items":[
{
"type":"object",
"properties":{
"cron":{
"description":"CRON expression for this scaling rule.",
"type":"string"
},
"minReplicas":{
"description":"Lower limit for the number of replicas.",
"type":"integer",
"default":1
},
"maxReplicas":{
"description":"Upper limit for the number of replicas.",
"type":"integer"
}
}
}
]
},
"template":{
...
}
}
}

Manageable Capabilities

apiVersion: core.oam.dev/v1alpha1
kind: ApplicationConfiguration
metadata:
name: failed-example
spec:
components:
- name: nginx-replicated-v1
instanceName: example-app
traits:
- name: auto-scaler
properties:
minimum: 1
maximum: 9
- name: cron-scaler
properties:
timezone: "America/Los_Angeles"
schedule: "0 0 6 * * ?"
cpu: 50
...

Interactions Between Application Operators and Application Developers

kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
deploy: example
template:
metadata:
labels:
deploy: example
spec:
containers:
- name: nginx
image: nginx:1.7.9
securityContext:
allowPrivilegeEscalation: false

Sorry, Not My Concern

Who is the Real Owner?

Is “Clear Cut” the Solution?

Developers’ Voices Should be Heard

OAM’s Component and ApplicationConfiguration

Define the Application; Don’t Just Describe It.

The ApplicationConfiguration

apiVersion: core.oam.dev/v1alpha1
kind: ApplicationConfiguration
metadata:
name: my-awesome-app
spec:
components:
- componentName: nginx
instanceName: web-front-end
parameterValues:
- name: connections
value: 4096
traits:
- name: auto-scaler
properties:
minimum: 3
maximum: 10
- name: security-policy
properties:
allowPrivilegeEscalation: false

Beyond Application Management

The Future of OAM

About the Authors

Original Source:

--

--

--

Follow me to keep abreast with the latest technology news, industry insights, and developer trends. Alibaba Cloud website:https://www.alibabacloud.com

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Introducing model profiling in Amazon SageMaker Debugger — AWS re:Invent 2020

Database Migration with Alibaba Cloud — Part 1

Free .net core hosting on Heroku through Docker and GitHub. Deploy with Unit-tests

Weekly Roundup Dec. 19th 2017

Connecting Azure DevOps with Azure

Photo from Unsplash with a brightened Azure DevOps and Azure logo.

Libraries in C

What!? 80 Million I/O Per Second with a Standard 2U Intel® Xeon® System!

Algorithm Practice: Solving the ‘Find the Pair That Equals the Sum’ Question in Ruby and Javascript

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Alibaba Cloud

Alibaba Cloud

Follow me to keep abreast with the latest technology news, industry insights, and developer trends. Alibaba Cloud website:https://www.alibabacloud.com

More from Medium

Bind Istio with API Gateway — IaaC

How to setup Horizontal Pod Autoscaling(HPA) on AWS EKS

How To EP.1 | Minio + K8S + Ingress + Cloudflare TLS

kafkaVision: An open-source monitoring tool for Apache Kafka