An Application Centric Approach to Devops

30
Application Centric Devops Orchestration, DevOps Automation & What’s in Between DeWayne Filppi @dfilppi Dir. Solution Architecture Gigaspaces Inc.

description

When thinking about automation and orchestration most people have tools like CloudFormation, Chef or Puppet in mind. These tools do a great job at allocating infrastructure resources and configuring them. But in reality, when deploying and managing complete application stacks, there’s much more to it. You need things to be done in a certain order; there are dependencies to consider and information to share between your application tiers, and then there’s everything related to post deployment - recovering from failures, scaling and continuously deploying your code, to name some. In this session we’ll discuss what it takes to orchestrate and automate your applications through the entire lifecycle, and without losing control.

Transcript of An Application Centric Approach to Devops

Page 1: An Application Centric Approach to Devops

Application Centric DevopsOrchestration, DevOps Automation

& What’s in Between

DeWayne Filppi @dfilppiDir. Solution ArchitectureGigaspaces Inc.

Page 2: An Application Centric Approach to Devops

What It Really Takes to

Deploy and Manage Apps

Provision

Install

Configure

Deploy

Monitor

Scale

Page 3: An Application Centric Approach to Devops

Quite often we end up with this..

Page 4: An Application Centric Approach to Devops

LoadBalancer Web DataBase

LoadBalancer Web DataBase

Your Journey Start Here

Your Journey Start Here

Application Centric Infrastructure Centric

Map Application Dependencies, SLA (performance, scaling, HA)

Map Application To machine instances

Page 5: An Application Centric Approach to Devops

Environment Creation

Code Push Monitoring & Alarming

Repairing Scaling

Technical Perspective

• Infrastructure Centric

• Application Centric

Environment Creation

SW Infra. Setup & Config

Code Push Monitoring & Alarming

Repairing Scaling

Page 6: An Application Centric Approach to Devops

INFRASTRUCTURE CENTRIC TOOLS

Page 7: An Application Centric Approach to Devops

Configuration Management

Defined

Page 8: An Application Centric Approach to Devops

APPLICATION CENTRIC TOOLS

Page 9: An Application Centric Approach to Devops

Configuration Management

Defined

• Directive & Directives Script

• Master Node & Children Nodes

• Remote Execution

Page 10: An Application Centric Approach to Devops

App Centric Devops – the AWS way…

Page 11: An Application Centric Approach to Devops

App Centric Devops – the AWS way…

• Key abstractions– Stack (a complete deployment)– Layers (tiers)– Instances (per layer scaling)– Apps (from a repo)

Page 12: An Application Centric Approach to Devops

App Centric Devops – the AWS way…

• Layer def example

Page 13: An Application Centric Approach to Devops

App Centric Devops – the AWS way…

• Characteristics– Full stack definition– Lifecycle event handling– Auto healing– Network configuration– Chef integration– Elastic scaling

Page 14: An Application Centric Approach to Devops

Cloudify provides the equivalent of Amazon OpsWork on OpenStack and other clouds

App Centric Devops – the AWS way…

Page 15: An Application Centric Approach to Devops

App Centric Devops – the Cloudify way…1 Upload your recipe

2 Cloudify creates VMs, configures network & installs agents

3 Agents install and manage your app

4 Cloudify automates monitoring, healing and scaling

Page 16: An Application Centric Approach to Devops

® Copyright 2012 GigaSpaces Ltd. All Rights Reserved

compute { template "SMALL_LINUX"}

SMALL_LINUX : template imageId "us-east-1/ami-76f0061f“ remoteDirectory "/home/ec2-user/gs-files“ machineMemoryMB 1600 hardwareId "m1.small" availabilityZones([“us-east-1”,”us-east-2”]) localDirectory "upload" keyFile "myKeyFile.pem"

options ([ "securityGroups" : ["default"] as String[], "keyPair" : "myKeyFile” ]) overrides (["jclouds.ec2.ami-query":"", "jclouds.ec2.cc-ami-query":""]) privileged true}

SMALL_LINUX : template{ imageId "1234" machineMemoryMB 3200 hardwareId "103" remoteDirectory "/root/gs-files" localDirectory "upload" keyFile "gigaPGHP.pem“ availabilityZones([“az1”,”az2”]) options ([ "openstack.securityGroup" : "default", "openstack.keyPair" : "gigaPGHP” ]) privileged true}

Declarative Compute Configuration

Page 17: An Application Centric Approach to Devops

Declarative Network Configuration

network { template "APPLICATION_NET" accessRules {[ incoming ([ accessRule { type "PUBLIC“ portRange "8000-8097" target "0.0.0.0/0" }, accessRule { type "APPLICATION" portRange "1-40000" target "0.0.0.0/0" } ]),outgoing ([ accessRule { type "PUBLIC" portRange "8443" target "0.0.0.0/0" }, accessRule { type "APPLICATION" portRange "1-40000" target "0.0.0.0/0" } ….

Instance LevelCloud Level

cloudNetwork {

management { networkConfiguration { name "Cloudify-Management-Network" subnets ([

subnet { name "Cloudify-Management-Subnet"

range "177.86.0.0/24" options ([ "gateway" : "177.86.0.111" ])}

]) custom ([ "associateFloatingIpOnBootstrap" : "true" ]) } }

templates ([ "APPLICATION_NET" : networkConfiguration {

name "Cloudify-Application-Network"subnets ([ subnet { name "Cloudify-Application-Subnet"

range "160.0.0.0/24"options { gateway "null" }

}])custom ([ "associateFloatingIpOnBootstrap" : "true" ])

} ]) }

Page 18: An Application Centric Approach to Devops

DevOps Automation: Example 1• Very large U.S. hardware/software

company.• Use Cloudify for Continuous

Delivery• Stack: Cloudify, Chef, Openstack• Reason for Choosing Cloudify

– Dozens of roles across multiple orgs.– Chef shop, needed backwards compatibility.– Cloud portability– SDN support– Devops integration with existing

Jenkins/Chef infrastructure to build internal PAAS on internal cloud.

Page 19: An Application Centric Approach to Devops

DevOps Automation: Bleeding edge• Full automation of stack deployment/scaling

across multiple AZs.• Multi-tier SDN governed stack deployments

(nets/subnets/firewalls/routers etc…)• Scaling to 1000s of nodes across org• Auto scaling based on load• Uses hosted chef for cookbook, attribute

storage.• Replaces home grown system that uses chef

server to coordinate complex/cluster deployments.

Page 20: An Application Centric Approach to Devops

DevOps Automation: PaddyPower

• Ireland's largest online betting service.

• Use Cloudify for Continuous Delivery

• Stack: Cloudify, Chef, Cloud Stack• Reason for Choosing Cloudify

– PAAS strives to abstract provisioning and deployment thus reducing complexity.

– PAAS constrains applications to use features provided by the platform.

– Cloudify was geared to work in DevOps environment

Page 21: An Application Centric Approach to Devops

PaddyPower View

Page 22: An Application Centric Approach to Devops

PUTTING APPLICATION AND CONFIGURATION CENTRIC TOOLS TOGETHER

Page 23: An Application Centric Approach to Devops

Cloudify Chef Integration(Deployment)

• Install Chef Agent• Setup Chef Server• Support existing Chef

Recipes/Cookbooks• Remote Execution• Application

Dependency• Cloud portability

Page 24: An Application Centric Approach to Devops

Cloudify Chef Integration

(Post Deployment)

Page 25: An Application Centric Approach to Devops

Cloudify Chef Integration(Advances)

• Advanced Orchestration– Self Healing– Auto-Scaling– DR Automation– DevOps Policies*

• Standard Recipe (Yaml/Tosca)*

Page 26: An Application Centric Approach to Devops

Remote Execution

Page 27: An Application Centric Approach to Devops

Update

Orchestrator

Jenkins

API

Update

LoadBalancer Web Database

Update war()Reload()

snapshot()Alter-table()

addNode()removeNode()

Monitoring Alarming

Page 28: An Application Centric Approach to Devops

Example: Running MySQL

Page 29: An Application Centric Approach to Devops

References• Cloudify Project Home Page:

Cloudifysource.org • Cloudify Github site: https://github.com/CloudifySource/cloudify

• Cloudify & Chef Integration• Blog Post: • Earlier Video Presentation

Page 30: An Application Centric Approach to Devops

Thank You!