paas ecosystem overview
TRANSCRIPT
PaaS Ecosystem Overview
Dmitry Meytin December 2015
What is PaaS?
NOT iPaaS, MPaaS nor APaaS
Code
Push and Build
Deploy & Run
Monitor & Bug Discovery
Fix the bug
Update & Build
Gradually Redeploy
Scale Horizontally & Vertically
Enjoy automation
PaaS. What else?
Timeline
2007 2008 2015
Lattice
Swarm
Marathon
2006
Heroku-like PaaS
Heroku-like PaaS
• Buildpacks• Containers• Application vs Service• 12-factor applications• Multi-cloud/Specific Cloud
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
Application vs Service
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
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
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
CloudFoundry Architecture v2.0 (not Lattice/DIEGO)
Cloud Foundry Service Broker
Blueprint-like PaaS
Blueprint-based PaaS
• No code-to-binary step• Multi-layered• Legacy application support• Service discovery• VMs and/or Containers• Rich life-cycle management
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)• …
OASIS TOSCA
TOSCA Example
StackStorm
Cloudify
Container Evolution
Container Evolution• High Adoption• Network Management• Volume Management (persistent data)• Security• Service discovery• Hardware Acceleration (Intel Clear Containers)• Live Migration!
μicroservices
Simple NetflixOSS style microservices architecture on three AWS Availability
Zones
Container EvolutionContainer Evolution
Following Borg & Omega
Warehouse-Scale Computer OS
Kubernetes
Conceptual difference – remediation vs self-organization
Self-Organization
More Tools
Vamp.io
Source-to-image
OpenShift v3.0
Fabric8
CloudFoundry DIEGO (DEA-GO)
HashiCorp Atlas
SERF
Nomad
ConsulVaultHCL
Serf
Otto
• otto compile• otto dev• otto infra• otto build• otto deploy
Otto NomadTerraForms
Consul
Vault
DevOps Process
Orientation map, anyone?
P24E – Programmable infrastructurE
Conclusions
• Don’t hesitate to try• You still can create your own solution
Q&A