Upload
sumit-chhetri
View
2.071
Download
3
Embed Size (px)
Citation preview
STILL STUCK WITH FTP OR GIT PULL TODEPLOY?
IT'S HIGH TIME TO EMBRACE AUTOMATEDDEPLOYMENT WITH CAPISTRANO
Created by / Sumit Chhetri @shhetri
, Kumaripati, LalitpurYIPL
OUTLINEWho Am I?Deployment?Deployment GoalsBenefits of AutomatedDeploymentSome Infographics and StatsCapistrano
RequirementsTerminologyDemoFuture of DeploymentAny Questions?Thank You
WHO AM I?Sumit Chhetri
Software Engineer @ YIPL
DeveloperPHP
Love to code in FrameworkLaravel
DEPLOYMENT
?
DEPLOYMENT is all of the activities that make a
software system available for useSoftware deployment
copy/clone code base to serverrun composer commandsmigrate your databasereload the web servernotify about the deploymentand so on...
DEPLOYMENT GOALS
One-click / command deployment
Source: devopsreactions.tumblr.com
Anytime & Anywhere
Anyone (with permission) can deploy
Nominal/No downtime (ZDD - zero downtime deployment)
Reliable Rollbacks
Pushed code to production, recalled there was a critical bugSource: devopsreactions.tumblr.com
Reusable and should be reproducible (repeatable)
Scalable
BENEFITS OF AUTOMATED DEPLOYMENT
Deployments become much less error-prone
compared to this...
This simulates a manual deployment
Source: devopsreactions.tumblr.com
Anyone in the team with permission can deploy software
Engineers will spend most of their time developing software
and not have to face this kind of situation...
Problematic deployment is over
Source: devopsreactions.tumblr.com
Deploying to somewhere new is not a headache
You can release features more frequently as its easy,automated and reproducible
DEPLOYING WITH FTP NOW IS LIKE...
Source: devopsreactions.tumblr.com
DEPLOYMENT TOOLS, WHAT ARE THE POPULARONES
Tool Written In Github Stars Github Watchers
Ruby 329
Python 316
Ruby 90
PHP 81
PHP 85
Capistrano 7476
Fabric 5833
Mina 2701
Rocketeer 1731
Deployer 1334Source: , data from 04-Sep-2015Github.com
CAPISTRANOA remote server automation and deployment tool written in
Ruby
Originally a tool for deploying code
Evolved into remote multi-server automation tool
Does everything in parallel
Support these VCS out of the box
1.8 or higherGitMercurialSVN
Easy to integrate with PHP projects
We @ chose capistrano because it is popular and mostimportantly fits for our use-case
YIPL
REQUIREMENTS
Ruby >= 1.9.3
recommended with public keys (password less)
SSH access to all servers,
TERMINOLOGYTaskRecipeNamespaceRoleStages
TASKA concrete set of commands to execute.
RECIPEA collection of tasks.
NAMESPACEOrganizes tasks within recipes and
avoids naming collisions
ROLEServers can have different roles like
app
demo
web
STAGESRefers to each environment being a stage like dev, staging,
testing, production.
Usually means different set of servers.
Can also include configuration per stage.
Or even different tasks.
DEMO
1:33
FUTURE OF DEPLOYMENT with deploying from Hipchat using HubotChat ops
deployment but looks like a problem in Internetchallenged Nepal :)
Docker
ANY QUESTIONS???You can drop me a message via
Email :
Facebook :
Twitter :
Visit to read more on this.
https://www.facebook.com/SHhetri
https://twitter.com/shhetri
YIPL-Blog