12
Microservices und Container Eine noch perfektere Kombination Wolfram Richter Principal Solution Architect Oct. 5th, 2016

Microservices und Container

Embed Size (px)

Citation preview

Page 1: Microservices und Container

Microservices und Container

Eine noch perfektere Kombination

Wolfram Richter Principal Solution Architect Oct. 5th, 2016

Page 2: Microservices und Container

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

Page 3: Microservices und Container

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

Page 4: Microservices und Container

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

Page 5: Microservices und Container

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…

Page 6: Microservices und Container

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

Page 7: Microservices und Container

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

Page 8: Microservices und Container

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

Page 9: Microservices und Container

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

Page 10: Microservices und Container

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

Page 11: Microservices und Container

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

Page 12: Microservices und Container

12

Demo Time!