microservices, devops, continuous delivery – more than three buzzwords

55
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords Eberhard Wolff Fellow @ewolff

Upload: eberhard-wolff

Post on 08-Jan-2017

1.710 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Microservices, DevOps, Continuous Delivery – More Than Three

Buzzwords

Eberhard WolffFellow

@ewolff

Page 2: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Microservices, DevOps, Continuous

Delivery –How Do They Relate?

Page 3: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Microservices, DevOps, Continuous

Delivery –How Do They Solve

Problems?

Page 4: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Page 5: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

http://microservices-buch.de/ http://microservices-book.com/

Page 6: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Microservices?

Page 7: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

UNIX Philosophy

> Write programs that do one thing and do it well

> Write programs to work together

> Write programs with a common interface

Page 8: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Definition Microservice

> Independent deployment unit

> Separate data handling & storage

> Should include UI

> Order process, Billing, Catalog…

> Process

> VM

> Docker container Server

MicroService

Page 9: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Deployment Monolith> Might be well-structured inside.

> But: Can only be deployed as a whole

Page 10: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Continuous Delivery:Build Pipeline

CommitStage

AutomatedAcceptance

Testing

AutomatedCapacityTesting

ManualExplorative

TestingRelease

Deploy Deploy Deploy Deploy

Automated

Reproducible

Fast

Page 11: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Continuous Delivery:Build Pipeline

CommitStage

AutomatedAcceptance

Testing

AutomatedCapacityTesting

ManualExplorative

TestingRelease

Deploy Deploy Deploy Deploy

Billing

Page 12: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Continuous DeliveryPipeline too complex

or slow?

Page 13: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Continuous DeliveryPipeline too complex

or slow?Consider changing the

architecture!

Page 14: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Microservices: Challenges

> 50 or 100 Microservices

> Deployment?

> Monitoring?

> Log Analysis?

> Need Automation

> Need common foundation for operations

> Small deployment units are not enough

Page 15: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Continuous Delivery Pipeline

CommitStage

AutomatedAcceptance

Testing

AutomatedCapacityTesting

ManualExplorative

Testing

ReleaseIntegrationTest

Microservice Complete System

CommitStage

AutomatedAcceptance

Testing

AutomatedCapacityTesting

ManualExplorative

Testing

CommitStage

AutomatedAcceptance

Testing

AutomatedCapacityTesting

ManualExplorative

Testing

Page 16: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

IntegrationTests

TestsMicroservices Unit Tests

Page 17: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Microservices canonly be deployed

independently if testsare independent!

Page 18: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Microservices canonly be deployed

independently if yourContinuous Delivery

Pipeline works.

Page 19: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Microservices + Continuous Delivery!

Page 20: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Why all the hassle?

Page 21: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Conway‘s Law

Architecture

copies

communication structures

of the organization

Page 22: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Conway’s Law as a Limit

> Organization drives architecture

> Teams of experts

> i.e. UI, logic & database team

> Three technical artifacts

Page 23: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

E CommerceShop

Change Order

Process!

UI

Logic

DB

Page 24: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

time

DBTeam Sprint

LogicTeam Sprint

GUITeam Sprint

3 sprints

Page 25: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Order SearchBilling

Team for each business feature

Let architecture drive the organization

Order Billing Search

Page 26: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Deployment Monolith + Conway’s Law

Deployment Monolith

Stories

Technical Coordination

Coordinating Releases

StoriesStories

Order Billing Search

Page 27: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Team can deploy without integrationChanges can be deployed independently & quickly

Strong & enforced modularization

Technology stack per MicroserviceOne or many Microservices per Team

Synergy Microservices / Conway’s Law

Order SearchBilling

Order Billing Search

Page 28: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Microservices

Microservice

Stories

TechnicalCoordination

Microservice

Stories

TechnicalCoordination

Microservice

Stories

TechnicalCoordination

Order Billing Search

Release Release Release

Page 29: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Microservices: Challenges

> Deployment?

> Monitoring?

> Log Analysis?

Ops

Page 30: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Micro- and Macro-Architecture

Page 31: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Macro-Architecture

> Global decision

> Influence the whole system

> i.e. all Microservices

> Less Marco-Architecture – less coordination

Page 32: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Micro-Architecture

> Local decisions

> Per Microservice

Page 33: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Macro- and Micro-Architecture for Ops

> Macro

> Define Log Analysis, Monitoring, Deployment tools

> Defined globally

> Micro

> Concrete deployment, monitoring, logging

> Defined per team / Microservice

Page 34: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Microservices Teams need many technical

skills.

Page 35: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Microservices Teams need Ops.

Page 36: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

DevOps

Page 37: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

DevOps / Microservices

> Teams consist primarily of Devs

> Devs interested in Docker, ELK ...

> ... lots of experience in Ops

> More Ops effort

Page 38: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Microservices = hugeopportunity for Ops!

Page 39: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

How Much DevOps isNeeded?

> Should all teams do full ops for theirservices?

> IMHO optional

> But: Organizational barriers might causeadditional technical complexity

Page 40: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Continuous Delivery:Build Pipeline

CommitStage

AutomatedAcceptance

Testing

AutomatedCapacityTesting

ManualExplorative

TestingRelease

Dev Ops

Common TechnologiesLog, Monitoring, Deployment

Page 41: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

DevOps = Collaboration not

Organization

Page 42: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

This changes softwaredevelopment

fundamentally.

Page 43: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Maintainability

Page 44: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Maintainability: Classical Approach

> Clear architecture

> Good code quality

> Many tests

Dev

Page 45: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Maintainability:New Approach

CommitStage

AutomatedAcceptance

Testing

AutomatedCapacityTesting

ManualExplorative

TestingRelease

Fast und Reliable

Fast Feedback

Page 46: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Maintainibility:New Approach

> Continuous Delivery simplifies roll out

> ...and test them

> ...and monitor them

> Microservices limit size and risk of changes

DevOps

Page 47: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Scalability

Page 48: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Scalabilty:Classical Approach

> Implement technical constraints

> E.g. statelessness

> Use appropiate technologies

Dev

Page 49: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Performance Risk

> Hard to really predict performance

> Load test simulate user on a different environment

Page 50: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Scalability: Alternative Approach

> Don‘t do anything stupid in the architecture

> Identify bottleneck

> Eliminate bottleneck

> Common technique

Page 51: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Enable Alternative Approach

> Monitoring to identify bottleneck

> Fast deployment to eliminate bottleneckDevOps

Page 52: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Maintainability: New Approach

CommitStage

AutomatedAcceptance

Testing

AutomatedCapacityTesting

ManualExplorative

TestingRelease

Fast

Monitor all relevant data

Page 53: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Conclusion

Page 54: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Conclusion

> Synergy:Microservices and Continuous Delivery

> Microservices and Continuous Deliverysupport and require DevOps

> DevOps = Collaboration

> Enable alternative approaches e.g. tomaintainability and scalability

Page 55: Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords

Thank You!@ewolff