Upload
nguyenminh
View
216
Download
1
Embed Size (px)
Citation preview
Microservices und Container
Eine noch perfektere Kombination
Wolfram Richter Principal Solution Architect Oct. 5th, 2016
2
Agenda
Recap: What is Microservice Architecture (MSA) Prerequisites and Implications of MSA Containers and how they benefit MSA Kubernetes as Container Orchestrator OpenShift as development and runtime environment for MSA Demo
3
What is Microservice Architecture (MSA)? A best practice approach to decompose complex applications into independent systems
Source: Fowler
● Small
● Organized around business capabilities
● Independently deployable & scaleable
● Decentralized governance
● Decentralized data management
Promises of Microservice Architecture
4
Divide and Conquer: Break down a large problem into small pieces which can be solved easily
Technology Benefits
● Enable technology diversity ● Select best fit for a particular
problem ● Scale-out architecture ● Isolate fault domains
Business Benefits
● Business Agility / Time to Market ● Minimize Risk
○ Incremental Deployments ○ Increased Resilience
● Feedback Loops ○ A/B Testing, Canary
deployments ○ DevOps Teams
5
Business agility
Minimized Risk
Feedback Loops
Technology diversity Scalability
Isolate fault domains
At Development / Deployment Time: ● Automation ● Continuous Integration / Delivery ● Configuration Management ● Service / API design
○ Domain boundaries ○ Forward/backward compat.
● Rigorous testing ● Dependency management ● Design for eventual consistency ● Artifact repositories ● …
At Runtime: ● Standardization ● Isolation ● Service Discovery ● Load Balancing ● Circuit Breaker, Fallback ● Health checks & automated
recovery ● Log aggregation ● Tracing ● Infrastructure Monitoring ● ...
To be successful with MSA…
6
● Easy to deploy and portable across host systems
● Created from immutable, layered images ● Isolated from a host operating system.
In RHEL, this is done through: ● Control Groups (cgroups) ● kernel namespaces ● SELinux, sVirt, iptables ● Docker
Containers package applications with dependencies and isolate the runtime Providing high density, efficiency and enabling quick turnaround times
HOST OS
SERVER
CONTAINER
LIBS APP
CONTAINER
LIBS APP
7
At Development / Deployment Time: ● Automation ● Continuous Integration / Delivery ● Configuration Management ● Service / API design ● Rigorous Testing ● Dependency management ● Design for eventual consistency ● Artifact repositories
Containers provide standardization, automation and dependency management In addition to a great user experience for developers, making them much more productive
At Runtime: ● Standardization ● Isolation ● Service Discovery ● Load Balancing ● Circuit Breaker, Fallback ● Health checks & automated recovery ● Distributed logging ● Tracing ● Infrastructure Monitoring
8
Kubernetes is a container orchestrator that allows to manage applications, not machines Greek for “Helmsman”; also the root of the word “Governor” (from latin: gubernator)
Master Node
Bare Metal Virtual Private Cloud Public Cloud
Storage
Operator External Services
9
At Development / Deployment Time: ● Automation ● Continuous Integration / Delivery ● Configuration Management ● Service / API design ● Rigorous Testing ● Dependency management ● Design for eventual consistency ● Artifact repositories
Kubernetes adds vital capabilities to deploying, configuring and running MSAs Based on Google’s lessons learned operating containers at scale, broad community adoption
At Runtime: ● Standardization ● Isolation ● Service Discovery ● Load Balancing ● Circuit Breaker, Fallback ● Health checks & automated recovery ● Distributed logging ● Tracing ● Infrastructure Monitoring
10
OpenShift Container Platform bundles Kubernetes with additional capabilities
SERVICE CATALOG (LANGUAGE RUNTIMES, MIDDLEWARE, DATABASES, …)
SELF-SERVICE
APPLICATION LIFECYCLE MANAGEMENT (CI / CD)
BUILD AUTOMATION DEPLOYMENT AUTOMATION
CONTAINER CONTAINER CONTAINER CONTAINER CONTAINER
NETWORKING SECURITY STORAGE REGISTRY LOGS & METRICS
CONTAINER ORCHESTRATION & CLUSTER MANAGEMENT (KUBERNETES)
RED HAT ENTERPRISE LINUX
CONTAINER RUNTIME & PACKAGING (DOCKER)
ATOMIC HOST
INFRASTRUCTURE AUTOMATION & COCKPIT
11
At Development / Deployment Time: ● Automation ● Continuous Integration / Delivery ● Configuration Management ● Service / API design ● Rigorous Testing ● Dependency management ● Design for eventual consistency ● Artifact repositories
Openshift Container Platform lets teams collaborate to build and operate microservices Provides all the plumbing to let you focus on the design & development of microservices
At Runtime: ● Standardization ● Isolation ● Service Discovery ● Load Balancing ● Circuit Breaker, Fallback ● Health checks & automated recovery ● Distributed logging ● Tracing ● Infrastructure Monitoring
12
Demo Time!