It’s the App, Stupid!Orchestration, Automation, Scaling
& What’s in Between
Yaron Parasol, Uri Cohen GigaSpaces @yaronpar, @uri1803
Meet Petsy, Selling Pet Art and Supporting Pet Artists Since 2013
So They’re Services Are Deployed on OpenStack
Gunicorn
PostgreSQL
Hadoop
ActiveMQ
Nginx
MongoDB
Logstash
Graphite
Jenkins
Nagios
The Business Is Doing
Great, Thx (esp. Cat
paper crafts), But…
Rolling out new code is Painful
http://www.interestingtopics.net/storage/5762c0bec0add88fae0c3958d61effe1.jpg
They Need to Automate!!
So, Let’s have a closer
look at DevOps
Processes
It’s about Workflows
and Triggers
Automated Deployment
• Triggers: Manual, CI Server• Flow: – Provision Cloud
Resources: Compute, Storage, Network
– Configure servers – Push code– Start components
http://www.flickr.com/photos/smilemark/4611091236/sizes/m/in/photostream/
InfraUpgrade
• Trigger: Critical updates, patches, etc.
• Flow: Take down relevant processes, one by one, apply patch, and reconnect to cluster. In some cases restarts server
App upgrade (or more generally,
CD)
• Trigger: CI server, Manual • Flow: Canary,
Red/Black, A/B…– In general – Partial
deploy, verify, rollback / complete deploy
Node Failure • Trigger: #$%@
happens… • Flow: Detect, provision
VM, attach storage, add to network, reconfigure app (load balancer in case of web serve, DB connection in case of database, etc.)
Scaling • Trigger: System
SLAs, Schedule• Flow: Add new
nodes, push code, reconfigure dependent nodes, reconfigure LB
Automation refers to all the layers
Proxy Config Python App Schema
Infrastructure
Middleware NGinx Gunicorn Postgres
Application
Host Networks Storage
WE need Workflows
Let’s have a look at AWS
• Compared to OpenStack
The AWS Stack
The OpenStack Equivalents
OpenShift/ CloudFoundry
**Solum**Heat Nova, Cinder,
Neutron etc..?
He Calls It Devops Automation
http://www.allthingsdistributed.com/2013/02/aws-opsworks.html
Still a bit too rigid
OpsWorks – We can do
better!
• Integrated with Heat• Cross Clouds• Custom Workflows• Not limited to Chef• Open Monitoring
and Policies
How do you build the WF
piece?
• Introduction to the Cloudify COSMO project
Our TOSCA-Inspired Building Blocks
Application Topologies
Workflows
Policies
Application Topologies
• Nodes – The layers in the cake -
e.g. VM, web server, app module
– Actions (can be grouped into Interfaces)
• Relationships– Actions– Requirements <->
capabilities
Workflows
• Create and interact with nodes using actions
Policies• Trigger workflows
based on a certain system state
DSL
GUI
How It Works in PracticeBlueprint + RuntimeModel
Metrics
Plugins
WorkflowEngine
TaskBroker
PolicyEngine
AgentMetrics
Collector
Plugin
RESTAPI
Agent
Plugin
Live Demo – Installing Mezzanine
• Create the VMs• Install Postgres • Install Gunicorn• Install NGinx• Create DB on Postgres• Push app to Containers• Configure App connection to DB• Configure Nginx routing rules• Start components in the right order
Some Resources
• Framework (code name – Cosmo) code and sample app are available on github github.com/cloudifysource/cosmo-manager github.com/cloudifysource/cosmo-mezzanine-example
Plans, Plans
Plans, Plans
How Does It Fit into the OpenStack Eco-System?
• The need was identified (Call for TOSCA like DSL)• Solum Project– Solum Blueprints identified the needs:• Cross Cloud• Continuous Deployment
– As of last week we have joined Solum• In order to contribute the relevant parts into Solum
Thank You!
Come meet us in booth C27