L8 - Platform as a Service (PaaS) - Kubernetes 1/2 Flashcards
container orchestration
The management and deployment of multiple containers
container execution platform services
- container placement
- resource and usage monitoring
- health checks
- container scaling
- access to services
- networking of containers
- persistent storage management
container placement
selects a specific host for a specific container or a set of containers using different rules
access to services in container execution platform services
- IP management and load balancing (LB)
What does networking of containers refer to?
- efficient implementation of microservices communication
Examples of container orchestration tools
AWS container service (Amazon ECS)
Azure Container Service
Docker SWARM
MESOS
kubernetes
What is Kubernetes?
- OS for deploying cloud-native applications
- a cluster for running applications
- an orchestration of cloud cloud-native microservices apps
Key features of Kubernetes
- automated deployment and replication of containers
- online scale-out and scale-in of container clusters
- LB over groups of containers
- rolling upgrades of application containers
- automated rescheduling of failed containers
What is a cloud-native application?
Software architecture that solves business problems that can typically only be achieved at the scale of cloud computing.
Cloud Native Maturity Model
- Cloud Native Services
- Application Design
- Automation
Cloud Native Services
- storage, compute
- databases, analytics
- container service, FaaS
Application Design
- general guidelines for scalable, robust cloud applications
- microservices: considered to be most mature cloud application model
Automation in Cloud Native Maturity Model
- deployment, monitoring, predictive analytics
The Twelve Factors of (Cloud Native Services?)
- Codebase (one codebase tracked revision control)
- Dependencies (declare and isolate dependencies)
- Config (store config in the environment)
- Backing services (treat backing services)
- Build, release, run (separate build and run stages)
- Processes (execute the app as one or more stateless processes)
- Port binding (export services via port binding)
- Concurrency (scale out via process model)
- Disposability (fast startup and graceful shutdown)
- Dev/prod parity (keep development, staging and production as similar as possible)
- Logs (treat logs as event streams)
- Admin processes (run admin tasks as one-off processes)
What is a cluster?
- consists of a bunch of nodes and a control plane
- control-plane provides API, scheduler to assign work to nodes, and persistent storage for the cluster state