paas ecosystem overview

52
PaaS Ecosystem Overview Dmitry Meytin December 2015

Upload: dmitry-meytin

Post on 14-Apr-2017

1.213 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: PaaS Ecosystem Overview

PaaS Ecosystem Overview

Dmitry Meytin December 2015

Page 2: PaaS Ecosystem Overview

What is PaaS?

NOT iPaaS, MPaaS nor APaaS

Page 3: PaaS Ecosystem Overview

Code

Page 4: PaaS Ecosystem Overview

Push and Build

Page 5: PaaS Ecosystem Overview

Deploy & Run

Page 6: PaaS Ecosystem Overview

Monitor & Bug Discovery

Page 7: PaaS Ecosystem Overview

Fix the bug

Page 8: PaaS Ecosystem Overview

Update & Build

Page 9: PaaS Ecosystem Overview

Gradually Redeploy

Page 10: PaaS Ecosystem Overview

Scale Horizontally & Vertically

Page 11: PaaS Ecosystem Overview

Enjoy automation

Page 12: PaaS Ecosystem Overview

PaaS. What else?

Page 13: PaaS Ecosystem Overview

Timeline

2007 2008 2015

Lattice

Swarm

Marathon

2006

Page 14: PaaS Ecosystem Overview

Heroku-like PaaS

Page 15: PaaS Ecosystem Overview

Heroku-like PaaS

• Buildpacks• Containers• Application vs Service• 12-factor applications• Multi-cloud/Specific Cloud

Page 16: PaaS Ecosystem Overview

Buildpack magic

bin/detect bin/compile

• Installing plugins• Building artifacts• Caching artifacts

bin/release

• Addonsmysql:50mb

• Config_vars PATH: "bin:/usr/bin:/bin"

• Procfilehello param1 param2

Container Creation Process

Page 17: PaaS Ecosystem Overview

Application vs Service

Page 18: PaaS Ecosystem Overview

The Twelve-Factor App (1)I. CodebaseOne codebase tracked in revision control, many deploys

II. DependenciesExplicitly declare and isolate dependencies

Dependency Library

V1 V2 V3

Codebase Codebase Codebase

Packaging System

IV. ConfigStore config in the environment

- File- Environment variables

III. Backing ServicesTreat backing services as attached resources

Page 19: PaaS Ecosystem Overview

The Twelve-Factor App (2)V. Build, release, runStrictly separate build, release and run stages

VI. ProcessesExecute the app as one or more stateless processes

- Fully stateless- Share-nothing

VII. Port bindingExport services via port binding

• The twelve-factor app is completely self-contained

• There is no runtime injection of a webserver into the execution environment

VIII. ConcurrencyScale out via the process model

Share-nothing, horizontally partitionable nature of twelve-factor app processes

Page 20: PaaS Ecosystem Overview

The Twelve-Factor App (3)X. Dev/prod parityKeep development, staging, and production as similar as possible

- Minimize the time gap: a developer may write code and have it deployed hours or even just minutes later

- Minimize the personnel gap: developers who wrote code are closely involved in deploying it managing it in production

- Minimize the tools gap: keep development and production as similar as possible

XI. LogsTreat logs as event streams

• Each running process writes its event stream, unbuffered, to

• Use log routers and log aggregators• Build alert system according to user-

defined heuristics

XII. Admin processesRun admin/management tasks as one-off processes

• Running database migrations• Running one-time scripts committed into

the app’s repo

IX. DisposabilityMaximize robustness with fast startup and graceful shutdown

- Processes should strive to minimize startup time

- Processes shut down gracefully when they receive a SIGTERM signal from the process manager

- Handle unexpected, non-graceful terminations (crash-based design)

STDOUT

Page 21: PaaS Ecosystem Overview

CloudFoundry Architecture v2.0 (not Lattice/DIEGO)

Page 22: PaaS Ecosystem Overview

Cloud Foundry Service Broker

Page 23: PaaS Ecosystem Overview

Blueprint-like PaaS

Page 24: PaaS Ecosystem Overview

Blueprint-based PaaS

• No code-to-binary step• Multi-layered• Legacy application support• Service discovery• VMs and/or Containers• Rich life-cycle management

Page 25: PaaS Ecosystem Overview

Blueprint Standards

• OASIS TOSCA (Physical Host + VMs + Containers)

• Murano PL (VMs + Containers)• Virtuozzo Application Packaging Standard

(Containers/VMs)• Jelastic Packaging Standard (Containers)• Kubernetes/Swarm/Marathon (Containers)• HashiCorp Configuration Language• (Containers)• …

Page 26: PaaS Ecosystem Overview

OASIS TOSCA

Page 27: PaaS Ecosystem Overview

TOSCA Example

Page 28: PaaS Ecosystem Overview

StackStorm

Page 29: PaaS Ecosystem Overview

Cloudify

Page 30: PaaS Ecosystem Overview

Container Evolution

Page 31: PaaS Ecosystem Overview

Container Evolution• High Adoption• Network Management• Volume Management (persistent data)• Security• Service discovery• Hardware Acceleration (Intel Clear Containers)• Live Migration!

Page 32: PaaS Ecosystem Overview

μicroservices

Page 33: PaaS Ecosystem Overview

Simple NetflixOSS style microservices architecture on three AWS Availability

Zones

Container EvolutionContainer Evolution

Page 34: PaaS Ecosystem Overview

Following Borg & Omega

Page 35: PaaS Ecosystem Overview

Warehouse-Scale Computer OS

Page 36: PaaS Ecosystem Overview

Kubernetes

Page 37: PaaS Ecosystem Overview

Conceptual difference – remediation vs self-organization

Page 38: PaaS Ecosystem Overview

Self-Organization

Page 39: PaaS Ecosystem Overview

More Tools

Page 40: PaaS Ecosystem Overview

Vamp.io

Page 41: PaaS Ecosystem Overview

Source-to-image

Page 42: PaaS Ecosystem Overview

OpenShift v3.0

Page 43: PaaS Ecosystem Overview

Fabric8

Page 44: PaaS Ecosystem Overview

CloudFoundry DIEGO (DEA-GO)

Page 45: PaaS Ecosystem Overview

HashiCorp Atlas

SERF

Page 46: PaaS Ecosystem Overview

Nomad

ConsulVaultHCL

Serf

Page 47: PaaS Ecosystem Overview

Otto

• otto compile• otto dev• otto infra• otto build• otto deploy

Otto NomadTerraForms

Consul

Vault

Page 48: PaaS Ecosystem Overview

DevOps Process

Page 49: PaaS Ecosystem Overview

Orientation map, anyone?

Page 50: PaaS Ecosystem Overview

P24E – Programmable infrastructurE

Page 51: PaaS Ecosystem Overview

Conclusions

• Don’t hesitate to try• You still can create your own solution

Page 52: PaaS Ecosystem Overview

Q&A