WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
Container Orchestration
1. The only constant is change
The only constant is change
Container Orchestration
Kubernetes, Swarm, and beyond
2. The only constant is change
Introduction
• Open source advocate for the past 10
years.
• Actively involved with Cloud and
OpenStack since its inception..
• CTO & Founder GigaSpaces
• Cloudify and GigaSpaces tech
specialist
• Solution Architect & Evangelist
• CTO Group Architect @ GigaSpaces
3. The only constant is change
About Cloudify
• Open source
orchestration tool
• Extremely
unopinionated
• TOSCA model based
• Can manage containers
directly or indirectly
• Plugin oriented design
4. The only constant is change
Orchestration
• Overloaded term
• For our purposes:
– Automation
– Perhaps the final
frontier of devops
– Usually refers to high
level automation of
distributed systems
5. The only constant is change
Container Orchestration (CME)
• Multiple hosts
• Placement control
• Networking
• Placement
• Affinity/anti-affinity
• High availability
• Scaling
• Load balancing
• Rolling upgrades
6. The only constant is change
Focus
• Kubernetes
• Docker Swarm
• Related Infrastructure
Automation
• Cloudify/TOSCA
Approach
• Demo
7. The only constant is change
Kubernetes Overview
• Open sourced by Google
• Master/worker
• Pod unit of deployment/scale
• Replication Controller (autoheal/scale)
• Service support with LB external IP
• Overlay networks (IP per pod) + DNS
• No supported master HA
• Container agnostic
• Placement, affinity + anti-affinity
• YAML deployment model
10. The only constant is change
Swarm (Docker 1.12) Overview
• Integrated into Docker engine
• Manager/worker
• Auto heal, manual scale
• Service support with LB fixed IP
• Overlay networks & DNS
• Highly available manager
• Network security (TLS) with CA
• Node placement + Affinity/anti-affinity
• Deployment modeling via Compose
11. The only constant is change
Kubernetes/Swarm Contrasts
• Swarm Setup Super Simple
• Lack of Pod in Swarm a –
• Lack of HA in Kubernetes a –
• Swarm tie to Docker may be a –
• Swarm lack of autoscale may be a –
• Swarm built in security a +
• Declarative vs imperative?
• Swarm playing catchup (service/replicas) but
also some cool features
12. The only constant is change
Related Services
• Google Container Engine (GKE)
– Hosted Kubernetes in Google Compute Engine
– Dynamic infrastructure
• AWS Containers
– Docker + autoscaled infrastructure
• Azure
– Hosted Swarm (heal,scale)
• IBM
– Docker + autoscaled/healed infrastructure
• Many others , and…..
15. The only constant is change
Openstack Magnum
• Container clusters as a service
– K8S
– Swarm
– Mesos
• Infrastructure automation
– Uses Heat
– Bays
– Healing
– Scaling
– LBAAS integration
– Security (TLS)
• But naturally limited to Openstack
16. The only constant is change
Openstack Magnum
• Kubernetes first and most mature
– Adds TLS config
• Cert generation + CA
– Adds HA to master
• Bays provide multi-tenant
isolation
• Support VMs and bare metal
(ironic)
• Very active project
17. The only constant is change
Cloudify And TOSCA
• Consider Magnum style capabilities
but cloud agnostic
– Standards based model (TOSCA)
– Hybrid management (containers, non-
containers intermixed).
– High availability and autoscaling for
container orchestrators.
– Target any cloud, virtualization or bare
metal.
18. The only constant is change
TOSCA
• Oasis Spec
• Defines modeling language:
• Describe components and relationships
• Veeerrry generic
• Components can be hardware, software,
or just abstract.
• Each component can have code
associated
• Each relationship can have code
associated
22. The only constant is change
Simple Swarm Demo
• Swarm Cluster on Openstack
• Simple start: 1 manager, 1 worker
• Sufficient to show infrastructure
level
– Autohealing
– Auto-scale up: based on CPU sliding
window (Riemann driven)
– Auto-scale down: same window, after
cooldown.
23. The only constant is change
Hybrid Possibilities
• Consider architecture with mixed
container/non-container components
– E.g. database on VM, web on K8s
• Unopinionated orchestration to the
rescue
• All components modeled in blueprints
• Configuration overlayed on native
Kubernetes descriptors (YAML)
• Example walkthrough ……
24. The only constant is change
Thanks for being here
Questions? Email dewayne@gigaspaces.com
Blog: http://getcloudify.org/blog/
Github: https://github.com/cloudify-examples/docker-swarm-blueprint,
https://github.com/cloudify-examples/kubernetes-cluster-blueprint,
https://github.com/cloudify-examples/cloudify-kubernetes-plugin-blueprint