Managing and deploying applications on CloudStack (or any other cloud for that matter) can be a daunting task. Resource provisioning, software installation and configuration, failure detection and handling, scaling and continuous delivery are just some of the processes that should be performed (read: automated) in order to do it properly. There are multiple tool chains that tackle some of these processes, each with its own focus and level of control. These can range from pure CM tools such as Chef or Puppet, which focus on repeatable and consistent configuration of servers, all the way to full blown PaaS environments that focus on developer productivity and hide many of the complexities of the underlying infrastructure.
In this session Uri will present the problem domain of application deployment and management on the cloud, the benefits and shortcomings of common approaches to it, and what (he believes) is still missing.
3. So Their Services Are Deployed
on CloudStack
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
5. The Business
Is Doing
Great, Thx
(esp. Cat
paper crafts),
But…
MTTR is… mehhh
Mehhh
http://fineartamerica.com/featured/wooly-sheep-ramona-johnston.html
9. Infra
Upgrade
• Trigger: Critical
updates, patches,
etc.
• Flow: Take down
relevant processes,
one by one, apply
patch, and
reconnect to cluster.
In some cases
restarts server
10. Code Push
(or more
generally,
CD)
• Trigger: CI server,
Manual
• Flow: Canary,
Red/Black, A/B…
– In general – Partial
deploy, verify, rollback /
complete deploy
11. 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.)
26. OpsWorks –
We Can Do
Better!
• Integrated with
CloudStack (and
other clouds)
• Custom
Workflows
• Not limited to
Chef
• Open Monitoring
and Policies
28. • 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
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
One of their servers failed last week, and it took almost a day to configure and bring up a new server. They use a certain CM tool, Still better than the week it took the time before, but that’s doesn’t cut it
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
Great at creating resources, basic integration with Chef / puppet for swconfig, basic built in monitoring and alarming, moving to ceilometer in Havana
Env setup is not automated SW infra setup is good but has no startup orchestration
Env setup is not automated SW infra setup is good but has no startup orchestration
Healthnmon is more geared toward cloud resource monitoring and is has more opinionated domain model, ceilometer seems to be picking momentum and