This document discusses automating DevOps processes through orchestration and workflows. It introduces Petsy, a pet art company that needs to automate deployments. Common DevOps workflows like deployment, infrastructure upgrades, and scaling are described. The document then introduces the Cloudify project for defining application topologies and workflows through a TOSCA-inspired DSL. A live demo of installing Mezzanine is shown to demonstrate how workflows can install applications and dependencies. The document concludes by discussing how Cloudify fits into the OpenStack ecosystem.
3. So They’re Services Are Deployed
on OpenStack
Logstash
PostgreSQL
Nginx
Hadoop
Graphite
Gunicorn
ActiveMQ
MongoDB
Jenkins
Nagios
4. The Business
Is Doing
Great, Thx
(esp. Cat
paper
crafts), But…
Rolling out new
code is Painful
http://www.interestingtopics.net/storage/5762c0bec0add88fae0c3958d61effe1.jpg
6. So, Let’s
have a closer
look at
DevOps
Processes
It’s about
Workflows
and
Triggers
7. Automated
Deployment
• Triggers:
Manual, CI Server
• Flow:
– Provision Cloud
Resources:
Compute, Storage, Net
work
– Configure servers
– Push code
– Start components
http://www.flickr.com/photos/smilemark/4611091236/sizes/m/in/photostream/
8. Infra
Upgrade
• Trigger: Critical
updates, patches, et
c.
• Flow: Take down
relevant
processes, one by
one, apply
patch, and
reconnect to cluster.
In some cases
restarts server
9. App upgrade
(or more
generally, CD
)
• Trigger: CI
server, Manual
• Flow:
Canary, Red/Black,
A/B…
– In general – Partial
deploy, verify, rollback /
complete deploy
10. 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.)
12. Automation refers to all the layers
Application
Middleware
Infrastructure
Proxy Config
Python App
Schema
NGinx
Gunicorn
Postgres
Host
Networks
Storage
WE need Workflows
21. • Nodes
Application
Topologies
– The layers in the cake e.g. VM, web
server, app module
– Actions (can be
grouped into
Interfaces)
• Relationships
– Actions
– Requirements <->
capabilities
24. How It Works in Practice
REST
API
Blueprint
Runtime
Model
Workflow
Engine
DSL
+
Metrics
Policy
Engine
Task
Broker
GUI
Agen
t
Plugins
Plugin
Metrics
Collecto
r
Agen
t
Plugin
25. 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
26. Some
Resources
• Framework (code
name – Cosmo)
code and sample app
are available on
github
github.com/cloudifysource/cosmo-
manager
github.com/cloudifysource/cosmo-mezzanineexample
29. How Does It Fit into the OpenStack
Eco-System?
• The need was identified (Call for TOSCA
like DSL, TOSCA YAML proposal for heat
• Mistral Project - WFaaS, should be
relevant WRT DevOps Automation
• Solum Project
– Solum Blueprints identified the needs:
• Cross Cloud
• Continuous Deployment
Goals:Why Workflows are critical part of automation of applications on the cloudClarify the need for something like OpsWorksWhy do we think this OpsWorks is needed in addition to other projects
They do it manually, pushing code to git, then compiling
They also realized that in order to run well in the cloud they need DevOps and automationWhat are the options
The building blocks are triggers and workflowsTriggers because triggers need to be automated as well as events resulting from policies / integrationetcWorkflows – because these are complex multi-step processesLet’s have a look at few typical use cases
Let’s see how the could have automate it over AWS as a benchmark