300 likes | 433 Views
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. Logstash. Graphite. Jenkins.
E N D
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 Logstash Graphite Jenkins Nagios Nginx Hadoop Gunicorn PostgreSQL ActiveMQ MongoDB
The Business Is Doing Great, Thx (esp. Cat paper crafts), But… Rolling out new code is Painful http://www.interestingtopics.net/storage/5762c0bec0add88fae0c3958d61effe1.jpg
So, Let’s have a closer look at DevOpsProcesses 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 Application Middleware NGinx Gunicorn Postgres Infrastructure Host Networks Storage WE need Workflows
Let’s have a look at AWS • Compared to OpenStack
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
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
How It Works in Practice Blueprint + Runtime Model Metrics REST API Policy Engine Workflow Engine DSL Task Broker GUI Agent Plugins Plugin Metrics Collector 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 githubgithub.com/cloudifysource/cosmo-managergithub.com/cloudifysource/cosmo-mezzanine-example
How Does It Fit into the OpenStackEco-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