It’s the App, Stupid!

Post on 25-Feb-2016

40 views 3 download

Tags:

description

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. - PowerPoint PPT Presentation

Transcript of It’s the App, Stupid!

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