infrastructure for continuous delivery & microservices: paas or docker?

41
Infrastructure for Continuous Delivery & Microservices: PaaS or Docker? Eberhard Wolff Fellow @ewolff

Upload: eberhard-wolff

Post on 06-Jan-2017

1.055 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Infrastructure for ContinuousDelivery & Microservices: PaaS or

Docker?Eberhard Wolff

Fellow@ewolff

Page 2: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?
Page 3: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

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

Page 4: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Why This Talk?

> 2008: Google App Engine

> Google Infrastructure for the masses!

> 2010: Selling PaaS into Enterprise

> Future of application development!

> Didn‘t really take off

Page 5: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

What is Cloud?

Page 6: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Cloud = Self Service

Page 7: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Infrastructureas a Service

Platformas a Service

Softwareas a Service

Software or Service that you use

Components thatyou integrate into

your app

Virtual ApplicationServer

Handles Scale-Out

Mostly Managed by Provider

Virtual Servers

Manage Everything Yourself

Page 8: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

PaaS

Your application

Including database, scaling,monitoring, HTTP handling...

Page 9: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Cloud might be...

> Private / internal “on premise”

> Public “off premise”

Page 10: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Why PaaS?

> Scaling?

> Pay-as-you-go?

> Quickly and easily deploy applications?

Page 11: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Continuous Delivery isthe value propostion

of PaaS

Page 12: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Issues With PaaS> Standardized infrastructure

> Not flexible

> Hard to migrate existing applications

> Installing PaaS on-premise hard

> Enterprise=On-Premise

> Huge success for Internet apps

Page 13: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

PaaS

Your application

Page 14: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Continuous Delivery:Build Pipeline

CommitStage

AutomatedAcceptance

Testing

AutomatedCapacityTesting

ManualExplorative

TestingRelease

Deploy Deploy Deploy Deploy

Automated

Reproducible

Fast

Page 15: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Continuous Delivery: State of the Art

> Roll your own deployment automation

> Chef, Puppet, Ansible

> Use some kind of virtualization

> ...or Docker

Page 16: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Docker> No true virtualization

> Linux Containers (lxc)

> Shared kernel

> Separate file systems

> Separated network interfaces

Page 17: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Docker File Systems

> Storage backends

> Devicemapper (block devices)

> Read only base images

> + Read/write image

> Can be stacked Ubuntu

Java

Application

Read / Write

Page 18: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Docker = Lightweight

> One base image

> Other images are just a diff

> Little storage

> Kernel etc. shared

> Almost no overhead over a processCPU

Page 19: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Docker =Simple Deployment

RUN COPY

Page 20: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Docker =Simple Deployment

> Dockerfile

> Just a shell script

> Behind the scenes: Optimization

> Every Dockerfile line = filesystem snapshot

> Reuse snapshots for all other Dockerfiles

Page 21: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Docker‘s History

> Public PaaS must separate tenants

> Ideally multiple tenants per VM

> Docker started as foundation for dotCloud PaaS

> Docker and PaaS related

Page 22: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Why Docker Over PaaS?

> Still simple deployment

> Still simple installation

> Unlimited flexibility

Page 23: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Your application

Load Balancer

Log Parser

Cache

Monitoring

Database

Page 24: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Microservices

Page 25: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Definition Microservice

> Independent deployment unit

> Separate data handling & storage

> Should include UI

> Process

> VM

> Docker container

> Any technology

Server

MicroService

Page 26: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Operations

> Operating 50-100 Microservices?

> Huge challenge

> Only option: Standardize

Page 27: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Your application

Load Balancer

Log Parser

Cache

Monitoring

Database

Standardize

??

Page 28: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

StandardizedEnvironment?

Page 29: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Congrats on Building Your Own PaaS!

Page 30: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Demo: ElasticBeanstalk

Page 31: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Amazon ElasticBeanstalk

> Application:Contains all versions & environments

> Version:Deployabel artifact

> Environment:Runs a version of the application

Page 32: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Elastic BeanstalkFeatures

> Supports multiple environments

> Blue/green deployment support

> Scalable infrastructure

> Log files stored in S3

> Monitoring through Cloud Watch

> Also via CLI, API or Cloud Formation

Page 33: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

But just a WARis not enough

Page 34: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Elastic Beanstalk

Turn KeyComponents

Paas Flexibility

Modify BeanstalkImage

Beanstalk+Docker

ElasticBeanstalk

Java, Go, Python...

Databases(RDS)

ElastiCache ...

You ownEC2 Virtual Machine

AdditionalServices

Page 35: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

But I want to run in mydatacenter!

Page 36: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Cloud Foundry

> Open Source PaaS

> Foundation for IBM Bluemix, Pivotal CF ...

Page 37: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Cloud Foundry

Included Servicese.g. MySQL...

Paas Flexibility

Your ownBuildback

Cloud FoundryBuildpacks

Java, Node, Ruby, Go

You ownService

AdditionalServices

Page 38: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Demo: Cloud Foundry

Page 39: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Conclusion

Page 40: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Conclusion

> Continuous Delivery = PaaS Value Proposition

> PaaS lacked flexibility

> Docker orignates from PaaS

> Microservices = Standardization

> Standardization = Your Own PaaS

> Buy instead of build?

> Modern PaaS provide the needed flexibility

Page 41: Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Thank You!@ewolff