An Application Centric Approach to Devops
-
Upload
dfilppi -
Category
Technology
-
view
778 -
download
2
description
Transcript of An Application Centric Approach to Devops
![Page 1: An Application Centric Approach to Devops](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/1.jpg)
Application Centric DevopsOrchestration, DevOps Automation
& What’s in Between
DeWayne Filppi @dfilppiDir. Solution ArchitectureGigaspaces Inc.
![Page 2: An Application Centric Approach to Devops](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/2.jpg)
What It Really Takes to
Deploy and Manage Apps
Provision
Install
Configure
Deploy
Monitor
Scale
![Page 3: An Application Centric Approach to Devops](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/3.jpg)
Quite often we end up with this..
![Page 4: An Application Centric Approach to Devops](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/4.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/5.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/6.jpg)
INFRASTRUCTURE CENTRIC TOOLS
![Page 7: An Application Centric Approach to Devops](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/7.jpg)
Configuration Management
Defined
![Page 8: An Application Centric Approach to Devops](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/8.jpg)
APPLICATION CENTRIC TOOLS
![Page 9: An Application Centric Approach to Devops](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/9.jpg)
Configuration Management
Defined
• Directive & Directives Script
• Master Node & Children Nodes
• Remote Execution
![Page 10: An Application Centric Approach to Devops](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/10.jpg)
App Centric Devops – the AWS way…
![Page 11: An Application Centric Approach to Devops](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/11.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/12.jpg)
App Centric Devops – the AWS way…
• Layer def example
![Page 13: An Application Centric Approach to Devops](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/13.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/14.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/15.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/16.jpg)
® 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](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/17.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/18.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/19.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/20.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/21.jpg)
PaddyPower View
![Page 22: An Application Centric Approach to Devops](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/22.jpg)
PUTTING APPLICATION AND CONFIGURATION CENTRIC TOOLS TOGETHER
![Page 23: An Application Centric Approach to Devops](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/23.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/24.jpg)
Cloudify Chef Integration
(Post Deployment)
![Page 25: An Application Centric Approach to Devops](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/25.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/26.jpg)
Remote Execution
![Page 27: An Application Centric Approach to Devops](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/27.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/28.jpg)
Example: Running MySQL
![Page 29: An Application Centric Approach to Devops](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/29.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052618/554baa81b4c905b8618b53fc/html5/thumbnails/30.jpg)
Thank You!