SlideShare une entreprise Scribd logo
1  sur  63
Télécharger pour lire hors ligne
{{ Dev with Ops in MindDev with Ops in Mind }} :: Building
Consistent Environment with
Vagrant and Chef
Gerald Z. Villorente
Senior Drupal Developer | DevOps Engineer | Proud Dad
About MeAbout Me
 Open-source advocateOpen-source advocate
 Learned how to power on and operate a PC in 2005Learned how to power on and operate a PC in 2005
 Became system administrator in 2007Became system administrator in 2007
 Became web developer in 2009Became web developer in 2009
 Drupalista since 2011Drupalista since 2011
 Drupal Developer at CNN Travel | KiteSystems 2011-2013Drupal Developer at CNN Travel | KiteSystems 2011-2013
 DevOps Engineer at BodogNation | Novenix Corp. 2013-2014DevOps Engineer at BodogNation | Novenix Corp. 2013-2014
About MeAbout Me
 Started to learn how to use computer in 2005Started to learn how to use computer in 2005
 I became a computer technician in 2007I became a computer technician in 2007
 I became a Web Developer in 2009I became a Web Developer in 2009
 Drupalista since 2011Drupalista since 2011
 Drupal Developer at CNN Travel | KiteSystems 2011-2013Drupal Developer at CNN Travel | KiteSystems 2011-2013
 DevOps Engineer at BodogNation 2013-2014DevOps Engineer at BodogNation 2013-2014
 Drupal Engineer and Mutant at X-Team 2014-presentDrupal Engineer and Mutant at X-Team 2014-present
About MeAbout Me
 Started to learn how to use computer in 2005Started to learn how to use computer in 2005
 I became a computer technician in 2007I became a computer technician in 2007
 I became a Web Developer in 2009I became a Web Developer in 2009
 Drupalista since 2011Drupalista since 2011
 Drupal Developer at CNN Travel | KiteSystems 2011-2013Drupal Developer at CNN Travel | KiteSystems 2011-2013
 DevOps Engineer at BodogNation 2013-2014DevOps Engineer at BodogNation 2013-2014
 Drupal Engineer and Mutant at X-Team 2014-presentDrupal Engineer and Mutant at X-Team 2014-present
Drupal Engineer and Mutant atDrupal Engineer and Mutant at X-TeamX-Team 2014-present2014-present
(A global development team of 100+ carefully chosen specialists. )(A global development team of 100+ carefully chosen specialists. )
About YouAbout You
 Dev EngineerDev Engineer
 Ops EngineerOps Engineer
 DevOps EngineerDevOps Engineer
 Web ArchitectWeb Architect
 Not a Graphic Designer (do you really care?)Not a Graphic Designer (do you really care?)
Dev Setup (traditional)Dev Setup (traditional)
Agenda:
Bullet Proof SetupBullet Proof Setup
Agenda:
VagrantVagrant
Agenda:
Agenda:
Why Vagrant?Why Vagrant?
Dev with Ops in MindDev with Ops in Mind
Agenda:
Agenda:
Agenda:
Why Chef?Why Chef?
Dev SetupDev SetupDev SetupDev Setup
Inconsistent OS between Prod, Dev, Staging, and Local
Inconsistent Web Server between Prod, Dev, Staging, and Local
IIS
Apache
NginX
Lighttpd
Inconsistent version of libraries, server, and database.
PHP 5.3
PHP 5.4
PHP 5.5
Apache 2.2
Apache 2.4
Drush 4.x
Drush 5.x
Varnish 3.x
Varnish 4.x
MySQL 5.1
MySQL 5.5
Inconsistent settings/configurations.
memory_limit = 256M
max_allowed_packet = 16M
set beresp.http.cache-control = "max-age = 300";
upload_max_filesize = 2M
key_buffer = 16M
max_file_uploads = 20
query_cache_limit = 1M
Different libraries and extensions (Ex. GD vs. Imagemagick)Different libraries and extensions (Ex. GD vs. Imagemagick)Different libraries and extensions (Ex. GD vs. Imagemagick)Different libraries and extensions (Ex. GD vs. Imagemagick)
Unfortunately, most ofUnfortunately, most of
the time ...the time ...
Unfortunately, most ofUnfortunately, most of
the time ...the time ...
Bullet Proof SetupBullet Proof SetupBullet Proof SetupBullet Proof Setup
Prod = Stage = Dev = LocalProd = Stage = Dev = LocalProd = Stage = Dev = LocalProd = Stage = Dev = Local
Virtualized EnvironmentsVirtualized EnvironmentsVirtualized EnvironmentsVirtualized Environments
 Consistent operating systems and libraries and extentions.Consistent operating systems and libraries and extentions.
 New comers can get going with the development right away. NoNew comers can get going with the development right away. No
more painful setups.more painful setups.
 Redistributable in case of hardware failure.Redistributable in case of hardware failure.
 Consistent operating systems and libraries and extentions.Consistent operating systems and libraries and extentions.
 New comers can get going with the development right away. NoNew comers can get going with the development right away. No
more painful setups.more painful setups.
 Redistributable in case of hardware failure.Redistributable in case of hardware failure.
Reasons why we should:
 Can never get the networking between host and guest OS.Can never get the networking between host and guest OS.
 Scared of the command line.Scared of the command line.
 Massive overhead keeping the VM up to date.Massive overhead keeping the VM up to date.
 Can never get the networking between host and guest OS.Can never get the networking between host and guest OS.
 Scared of the command line.Scared of the command line.
 Massive overhead keeping the VM up to date.Massive overhead keeping the VM up to date.
Reasons why we don't:
VagrantVagrantVagrantVagrant
A tool for building andA tool for building and
distributing virtualizeddistributing virtualized
environments.environments.
A tool for building andA tool for building and
distributing virtualizeddistributing virtualized
environments.environments.
Why Vagrant?Why Vagrant?Why Vagrant?Why Vagrant?
IsolationIsolationIsolationIsolation
Mirror ProductionMirror ProductionMirror ProductionMirror Production
Test Ops scriptsTest Ops scripts
with a free serverwith a free server
Test Ops scriptsTest Ops scripts
with a free serverwith a free server
Designers and QADesigners and QA
can setup their environmentcan setup their environment
easilyeasily
Designers and QADesigners and QA
can setup their environmentcan setup their environment
easilyeasily
Faster OnboardingFaster OnboardingFaster OnboardingFaster Onboarding
DemoDemoDemoDemo
Getting StartedGetting Started
 Install Virtualbox | VMwareInstall Virtualbox | VMware
 Install VagrantInstall Vagrant
 Import your base OS (Import your base OS ($ vagrant box add [BASE_NAME] [PATH.box]$ vagrant box add [BASE_NAME] [PATH.box]))
 Generate Vagrantfile config (Generate Vagrantfile config ($ vagrant init [BASE_NAME]$ vagrant init [BASE_NAME]))
 Boot your guest machine (Boot your guest machine ($ vagrant up$ vagrant up))
Getting StartedGetting Started
 Install Virtualbox | VMwareInstall Virtualbox | VMware
 Install VagrantInstall Vagrant
 Import your base OS (Import your base OS ($ vagrant box add [BASE_NAME] [PATH.box]$ vagrant box add [BASE_NAME] [PATH.box]))
 Generate Vagrantfile config (Generate Vagrantfile config ($ vagrant init [BASE_NAME]$ vagrant init [BASE_NAME]))
 Boot your guest machine (Boot your guest machine ($ vagrant up$ vagrant up))
DistributionDistribution
$ vagrant package --base VM_ID --output BOX_NAME.box
DistributionDistribution
$ vagrant package --base VM_ID --output BOX_NAME.box
Dev withDev with
Ops in MindOps in Mind
Dev withDev with
Ops in MindOps in Mind
The Goal: Develop CookbooksThe Goal: Develop Cookbooks
and Modules to run in aand Modules to run in a
VM and ProductionVM and Production
The Goal: Develop CookbooksThe Goal: Develop Cookbooks
and Modules to run in aand Modules to run in a
VM and ProductionVM and Production
Little Extra EffortLittle Extra Effort
Big GainBig Gain
Good PracticesGood Practices
Little Extra EffortLittle Extra Effort
Big GainBig Gain
Good PracticesGood Practices
Vagrant and DevOps:
ChefChef
A tool for automating the provisioning and management of serversA tool for automating the provisioning and management of servers
ChefChef
A tool for automating the provisioning and management of serversA tool for automating the provisioning and management of servers
A Good ExampleA Good ExampleA Good ExampleA Good Example
Why Chef?Why Chef?Why Chef?Why Chef?
Less documentationLess documentationLess documentationLess documentation
Bash doesn't scale. Seriously.Bash doesn't scale. Seriously.
Bash is a wonderful thing, but like all UNIX tools, it is fundamentallyBash is a wonderful thing, but like all UNIX tools, it is fundamentally
limited by design. Bash doesn't have a code reuse mechanism morelimited by design. Bash doesn't have a code reuse mechanism more
powerful than functions.powerful than functions.
Bash doesn't scale. Seriously.Bash doesn't scale. Seriously.
Bash is a wonderful thing, but like all UNIX tools, it is fundamentallyBash is a wonderful thing, but like all UNIX tools, it is fundamentally
limited by design. Bash doesn't have a code reuse mechanism morelimited by design. Bash doesn't have a code reuse mechanism more
powerful than functions.powerful than functions.
Maybe you can do this using “sed”. But hey are you sick?Maybe you can do this using “sed”. But hey are you sick?Maybe you can do this using “sed”. But hey are you sick?Maybe you can do this using “sed”. But hey are you sick?
Technical Awesomeness.Technical Awesomeness.Technical Awesomeness.Technical Awesomeness.
NOSQL FTWNOSQL FTW
One of the virtues that many *nix tools share is that they store theirOne of the virtues that many *nix tools share is that they store their
configurations in text files rather than binary formats or in aconfigurations in text files rather than binary formats or in a
database.database.
Chef stores your system configurations in textChef stores your system configurations in text
and in a database. It accomplishes this by using the document-and in a database. It accomplishes this by using the document-
oriented database, CouchDB.oriented database, CouchDB.
NOSQL FTWNOSQL FTW
One of the virtues that many *nix tools share is that they store theirOne of the virtues that many *nix tools share is that they store their
configurations in text files rather than binary formats or in aconfigurations in text files rather than binary formats or in a
database.database.
Chef stores your system configurations in textChef stores your system configurations in text
and in a database. It accomplishes this by using the document-and in a database. It accomplishes this by using the document-
oriented database, CouchDB.oriented database, CouchDB.
Knowing is Half the BattleKnowing is Half the Battle
CChef uses Ohai to collect data about your system. Your recipes canhef uses Ohai to collect data about your system. Your recipes can
access these attributes and make decisions based on them.access these attributes and make decisions based on them.
Ex: node['platform_version'] vs. cat | grep | awkEx: node['platform_version'] vs. cat | grep | awk
Knowing is Half the BattleKnowing is Half the Battle
CChef uses Ohai to collect data about your system. Your recipes canhef uses Ohai to collect data about your system. Your recipes can
access these attributes and make decisions based on them.access these attributes and make decisions based on them.
Ex: node['platform_version'] vs. cat | grep | awkEx: node['platform_version'] vs. cat | grep | awk
SearchSearch
Search is a feature in Chef Server that allows you to query theSearch is a feature in Chef Server that allows you to query the
configuration information of all other servers and of globally-definedconfiguration information of all other servers and of globally-defined
databags (global variable). This allows you to do things like configuredatabags (global variable). This allows you to do things like configure
clusters where a member of cluster needs to know not only about itsclusters where a member of cluster needs to know not only about its
own configuration but about the configurations of the otherown configuration but about the configurations of the other
members of the cluster.members of the cluster.
SearchSearch
Search is a feature in Chef Server that allows you to query theSearch is a feature in Chef Server that allows you to query the
configuration information of all other servers and of globally-definedconfiguration information of all other servers and of globally-defined
databags (global variable). This allows you to do things like configuredatabags (global variable). This allows you to do things like configure
clusters where a member of cluster needs to know not only about itsclusters where a member of cluster needs to know not only about its
own configuration but about the configurations of the otherown configuration but about the configurations of the other
members of the cluster.members of the cluster.
KnifeKnife
Knife is one of the truly great command line tools. It is your primaryKnife is one of the truly great command line tools. It is your primary
mechanism for interacting with the chef-server. Knife shares manymechanism for interacting with the chef-server. Knife shares many
usage patterns with git. If you love git, you'll love knife.usage patterns with git. If you love git, you'll love knife.
KnifeKnife
Knife is one of the truly great command line tools. It is your primaryKnife is one of the truly great command line tools. It is your primary
mechanism for interacting with the chef-server. Knife shares manymechanism for interacting with the chef-server. Knife shares many
usage patterns with git. If you love git, you'll love knife.usage patterns with git. If you love git, you'll love knife.
ShefShef
Shef works the way you work, in an iterative manner. Most of usShef works the way you work, in an iterative manner. Most of us
system administrators are self-taught and we learn best by doing.system administrators are self-taught and we learn best by doing.
Fire up shef and you can on the fly play with attributes and createFire up shef and you can on the fly play with attributes and create
recipes. Further, you can connect to your server and download therecipes. Further, you can connect to your server and download the
cookbooks.cookbooks.
ShefShef
Shef works the way you work, in an iterative manner. Most of usShef works the way you work, in an iterative manner. Most of us
system administrators are self-taught and we learn best by doing.system administrators are self-taught and we learn best by doing.
Fire up shef and you can on the fly play with attributes and createFire up shef and you can on the fly play with attributes and create
recipes. Further, you can connect to your server and download therecipes. Further, you can connect to your server and download the
cookbooks.cookbooks.
You can stopYou can stop
reinventing the wheel.reinventing the wheel.
Until Chef, we sysadmins did not have a truly modular way toUntil Chef, we sysadmins did not have a truly modular way to
abstract and share our system configurations.abstract and share our system configurations.
You can stopYou can stop
reinventing the wheel.reinventing the wheel.
Until Chef, we sysadmins did not have a truly modular way toUntil Chef, we sysadmins did not have a truly modular way to
abstract and share our system configurations.abstract and share our system configurations.
DemoDemo
Zero Ruby knowledge?Zero Ruby knowledge?Zero Ruby knowledge?Zero Ruby knowledge?
rove.iorove.io
PuPHPetPuPHPet
Questions?Questions?Questions?Questions?
1. http://www.scoop.it/1. http://www.scoop.it/
2. http://devopsanywhere.blogspot.com/2. http://devopsanywhere.blogspot.com/
3.3. http://www.vagrantup.com/http://www.vagrantup.com/
4.4. https://puphpet.com/https://puphpet.com/
5.5. http://rove.io/http://rove.io/
6.6. http://www.getchef.com/http://www.getchef.com/
7.7. http://puppetlabs.com/http://puppetlabs.com/
8.8. http://www.vagrantbox.es/http://www.vagrantbox.es/
9. http://virtualboxes.org/9. http://virtualboxes.org/
References:
1. Mitchell Hashimoto1. Mitchell Hashimoto
Founder of HashiCorp, Creator of Vagrant and PackerFounder of HashiCorp, Creator of Vagrant and Packer
2. Opscode2. Opscode
Creator of ChefCreator of Chef
3. Puppet Labs3. Puppet Labs
Creator of PuppetCreator of Puppet
Credits:
Thank You!!Salamat!Salamat!

Contenu connexe

Tendances

Cloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersCloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersBurr Sutter
 
Deploying 3 times a day without a downtime @ Rocket Tech Summit in Berlin
Deploying 3 times a day without a downtime @ Rocket Tech Summit in BerlinDeploying 3 times a day without a downtime @ Rocket Tech Summit in Berlin
Deploying 3 times a day without a downtime @ Rocket Tech Summit in BerlinAlessandro Nadalin
 
How Heroku uses Heroku to build Heroku
How Heroku uses Heroku to build HerokuHow Heroku uses Heroku to build Heroku
How Heroku uses Heroku to build HerokuCraig Kerstiens
 
Django dev-env-my-way
Django dev-env-my-wayDjango dev-env-my-way
Django dev-env-my-wayRobert Lujo
 
Bamboo - an introduction
Bamboo - an introductionBamboo - an introduction
Bamboo - an introductionSven Peters
 
How to integrate front end tool via gruntjs
How to integrate front end tool via gruntjsHow to integrate front end tool via gruntjs
How to integrate front end tool via gruntjsBo-Yi Wu
 
The story of language development
The story of language developmentThe story of language development
The story of language developmentHiroshi SHIBATA
 
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...Burr Sutter
 
Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Tomas Doran
 
Kraken js at paypal
Kraken js at paypalKraken js at paypal
Kraken js at paypalLenny Markus
 
Linux, Virtualisation, and Clouds
Linux, Virtualisation, and CloudsLinux, Virtualisation, and Clouds
Linux, Virtualisation, and CloudsRobert Sutor
 
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAkshaya Mahapatra
 
JFrog container registry - DevOps extravaganza
JFrog container registry - DevOps extravaganza JFrog container registry - DevOps extravaganza
JFrog container registry - DevOps extravaganza Batel Zohar Tova
 
Migrating to a Bazel-based CI System: 6 Learnings - Or Shachar
Migrating to a Bazel-based CI System: 6 Learnings - Or ShacharMigrating to a Bazel-based CI System: 6 Learnings - Or Shachar
Migrating to a Bazel-based CI System: 6 Learnings - Or ShacharWix Engineering
 
ZendCon 2015 - Laravel Forge: Hello World to Hello Production
ZendCon 2015 - Laravel Forge: Hello World to Hello ProductionZendCon 2015 - Laravel Forge: Hello World to Hello Production
ZendCon 2015 - Laravel Forge: Hello World to Hello ProductionJoe Ferguson
 
Migrating to a bazel based CI system: 6 learnings
Migrating to a bazel based CI system: 6 learnings Migrating to a bazel based CI system: 6 learnings
Migrating to a bazel based CI system: 6 learnings Or Shachar
 

Tendances (17)

Cloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersCloud State of the Union for Java Developers
Cloud State of the Union for Java Developers
 
Deploying 3 times a day without a downtime @ Rocket Tech Summit in Berlin
Deploying 3 times a day without a downtime @ Rocket Tech Summit in BerlinDeploying 3 times a day without a downtime @ Rocket Tech Summit in Berlin
Deploying 3 times a day without a downtime @ Rocket Tech Summit in Berlin
 
How Heroku uses Heroku to build Heroku
How Heroku uses Heroku to build HerokuHow Heroku uses Heroku to build Heroku
How Heroku uses Heroku to build Heroku
 
Django dev-env-my-way
Django dev-env-my-wayDjango dev-env-my-way
Django dev-env-my-way
 
Bamboo - an introduction
Bamboo - an introductionBamboo - an introduction
Bamboo - an introduction
 
How to integrate front end tool via gruntjs
How to integrate front end tool via gruntjsHow to integrate front end tool via gruntjs
How to integrate front end tool via gruntjs
 
The story of language development
The story of language developmentThe story of language development
The story of language development
 
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
 
Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)
 
Kraken js at paypal
Kraken js at paypalKraken js at paypal
Kraken js at paypal
 
Linux, Virtualisation, and Clouds
Linux, Virtualisation, and CloudsLinux, Virtualisation, and Clouds
Linux, Virtualisation, and Clouds
 
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps Approach
 
JFrog container registry - DevOps extravaganza
JFrog container registry - DevOps extravaganza JFrog container registry - DevOps extravaganza
JFrog container registry - DevOps extravaganza
 
Migrating to a Bazel-based CI System: 6 Learnings - Or Shachar
Migrating to a Bazel-based CI System: 6 Learnings - Or ShacharMigrating to a Bazel-based CI System: 6 Learnings - Or Shachar
Migrating to a Bazel-based CI System: 6 Learnings - Or Shachar
 
ZendCon 2015 - Laravel Forge: Hello World to Hello Production
ZendCon 2015 - Laravel Forge: Hello World to Hello ProductionZendCon 2015 - Laravel Forge: Hello World to Hello Production
ZendCon 2015 - Laravel Forge: Hello World to Hello Production
 
Web Leaps Forward
Web Leaps ForwardWeb Leaps Forward
Web Leaps Forward
 
Migrating to a bazel based CI system: 6 learnings
Migrating to a bazel based CI system: 6 learnings Migrating to a bazel based CI system: 6 learnings
Migrating to a bazel based CI system: 6 learnings
 

Similaire à Consistent Development Environment with Vagrant and Chef

Virtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profitVirtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profitAndreas Heim
 
Pipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodePipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodeKris Buytaert
 
Docker Enables DevOps
Docker Enables DevOpsDocker Enables DevOps
Docker Enables DevOpsBoyd Hemphill
 
Virtualization and Cloud Computing with Elastic Server On Demand
Virtualization and Cloud Computing with Elastic Server On DemandVirtualization and Cloud Computing with Elastic Server On Demand
Virtualization and Cloud Computing with Elastic Server On DemandYan Pritzker
 
Virtualized development environments phpne - may 2012
Virtualized development environments   phpne - may 2012Virtualized development environments   phpne - may 2012
Virtualized development environments phpne - may 2012ichilton
 
Drush Deployment Manager: Deployment Made Easy
Drush Deployment Manager: Deployment Made EasyDrush Deployment Manager: Deployment Made Easy
Drush Deployment Manager: Deployment Made EasyGerald Villorente
 
Continuous Delivery of (y)our infrastructure.
Continuous Delivery of (y)our infrastructure.Continuous Delivery of (y)our infrastructure.
Continuous Delivery of (y)our infrastructure.Kris Buytaert
 
Docker Enables DevOps - Boston
Docker Enables DevOps - BostonDocker Enables DevOps - Boston
Docker Enables DevOps - BostonBoyd Hemphill
 
Consistent Development Environment using Vagrant and Chef
Consistent Development Environment using Vagrant and ChefConsistent Development Environment using Vagrant and Chef
Consistent Development Environment using Vagrant and ChefGerald Villorente
 
Online gas booking project in java
Online gas booking project in javaOnline gas booking project in java
Online gas booking project in javas4al_com
 
WordCamp Atlanta - April 15 2018 - dev team workflow and processes with word...
WordCamp Atlanta -  April 15 2018 - dev team workflow and processes with word...WordCamp Atlanta -  April 15 2018 - dev team workflow and processes with word...
WordCamp Atlanta - April 15 2018 - dev team workflow and processes with word...Evan Mullins
 
create auto scale jboss cluster with openshift
create auto scale jboss cluster with openshiftcreate auto scale jboss cluster with openshift
create auto scale jboss cluster with openshiftYusuf Hadiwinata Sutandar
 
How the hell do I run my microservices in production, and will it scale?
How the hell do I run my microservices in production, and will it scale?How the hell do I run my microservices in production, and will it scale?
How the hell do I run my microservices in production, and will it scale?Katarzyna Hoffman
 
How the hell do I run my microservices in production, and will it scale?
How the hell do I run my microservices in production, and will it scale?How the hell do I run my microservices in production, and will it scale?
How the hell do I run my microservices in production, and will it scale?Cloud 66
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Edureka!
 
Paris Web - Javascript as a programming language
Paris Web - Javascript as a programming languageParis Web - Javascript as a programming language
Paris Web - Javascript as a programming languageMarco Cedaro
 
David Nuescheler: Igniting CQ 5.3: What's New and Roadmap
David Nuescheler: Igniting CQ 5.3: What's New and RoadmapDavid Nuescheler: Igniting CQ 5.3: What's New and Roadmap
David Nuescheler: Igniting CQ 5.3: What's New and RoadmapDay Software
 
Word press, the automated way
Word press, the automated wayWord press, the automated way
Word press, the automated wayMichaël Perrin
 

Similaire à Consistent Development Environment with Vagrant and Chef (20)

Virtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profitVirtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profit
 
Pipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodePipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as Code
 
Docker Enables DevOps
Docker Enables DevOpsDocker Enables DevOps
Docker Enables DevOps
 
Virtualization and Cloud Computing with Elastic Server On Demand
Virtualization and Cloud Computing with Elastic Server On DemandVirtualization and Cloud Computing with Elastic Server On Demand
Virtualization and Cloud Computing with Elastic Server On Demand
 
Virtualized development environments phpne - may 2012
Virtualized development environments   phpne - may 2012Virtualized development environments   phpne - may 2012
Virtualized development environments phpne - may 2012
 
Drush Deployment Manager: Deployment Made Easy
Drush Deployment Manager: Deployment Made EasyDrush Deployment Manager: Deployment Made Easy
Drush Deployment Manager: Deployment Made Easy
 
Continuous Delivery of (y)our infrastructure.
Continuous Delivery of (y)our infrastructure.Continuous Delivery of (y)our infrastructure.
Continuous Delivery of (y)our infrastructure.
 
Docker Enables DevOps - Boston
Docker Enables DevOps - BostonDocker Enables DevOps - Boston
Docker Enables DevOps - Boston
 
Consistent Development Environment using Vagrant and Chef
Consistent Development Environment using Vagrant and ChefConsistent Development Environment using Vagrant and Chef
Consistent Development Environment using Vagrant and Chef
 
Online gas booking project in java
Online gas booking project in javaOnline gas booking project in java
Online gas booking project in java
 
Building appliances
Building appliancesBuilding appliances
Building appliances
 
WordCamp Atlanta - April 15 2018 - dev team workflow and processes with word...
WordCamp Atlanta -  April 15 2018 - dev team workflow and processes with word...WordCamp Atlanta -  April 15 2018 - dev team workflow and processes with word...
WordCamp Atlanta - April 15 2018 - dev team workflow and processes with word...
 
create auto scale jboss cluster with openshift
create auto scale jboss cluster with openshiftcreate auto scale jboss cluster with openshift
create auto scale jboss cluster with openshift
 
How the hell do I run my microservices in production, and will it scale?
How the hell do I run my microservices in production, and will it scale?How the hell do I run my microservices in production, and will it scale?
How the hell do I run my microservices in production, and will it scale?
 
How the hell do I run my microservices in production, and will it scale?
How the hell do I run my microservices in production, and will it scale?How the hell do I run my microservices in production, and will it scale?
How the hell do I run my microservices in production, and will it scale?
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
 
Paris Web - Javascript as a programming language
Paris Web - Javascript as a programming languageParis Web - Javascript as a programming language
Paris Web - Javascript as a programming language
 
David Nuescheler: Igniting CQ 5.3: What's New and Roadmap
David Nuescheler: Igniting CQ 5.3: What's New and RoadmapDavid Nuescheler: Igniting CQ 5.3: What's New and Roadmap
David Nuescheler: Igniting CQ 5.3: What's New and Roadmap
 
Word press, the automated way
Word press, the automated wayWord press, the automated way
Word press, the automated way
 
Making Sense out of Amazon ECS
Making Sense out of Amazon ECSMaking Sense out of Amazon ECS
Making Sense out of Amazon ECS
 

Plus de Gerald Villorente

Drupal Development : Tools, Tips, and Tricks
Drupal Development : Tools, Tips, and TricksDrupal Development : Tools, Tips, and Tricks
Drupal Development : Tools, Tips, and TricksGerald Villorente
 
BITS 2015: The Beauty of Drupal
BITS 2015: The Beauty of DrupalBITS 2015: The Beauty of Drupal
BITS 2015: The Beauty of DrupalGerald Villorente
 
Introduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, TerminologiesIntroduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, TerminologiesGerald Villorente
 
DevOps: Cooking Drupal Deployment
DevOps: Cooking Drupal DeploymentDevOps: Cooking Drupal Deployment
DevOps: Cooking Drupal DeploymentGerald Villorente
 
Drupal Pilipinas Apprentice: LAMP Administration, CSS, and Vagrant
Drupal Pilipinas Apprentice: LAMP Administration, CSS, and VagrantDrupal Pilipinas Apprentice: LAMP Administration, CSS, and Vagrant
Drupal Pilipinas Apprentice: LAMP Administration, CSS, and VagrantGerald Villorente
 
Best Practices: Drupal Development
Best Practices: Drupal DevelopmentBest Practices: Drupal Development
Best Practices: Drupal DevelopmentGerald Villorente
 
Drupal Deployment and Essential Development Tools - 2nd Edition
Drupal Deployment and Essential Development Tools - 2nd EditionDrupal Deployment and Essential Development Tools - 2nd Edition
Drupal Deployment and Essential Development Tools - 2nd EditionGerald Villorente
 
Drupal Deployment and Essential Development Tools
Drupal Deployment and Essential Development ToolsDrupal Deployment and Essential Development Tools
Drupal Deployment and Essential Development ToolsGerald Villorente
 
Setting Up Cross-Browser Testing Environment (Debian-based System)
Setting Up Cross-Browser Testing Environment  (Debian-based System)Setting Up Cross-Browser Testing Environment  (Debian-based System)
Setting Up Cross-Browser Testing Environment (Debian-based System)Gerald Villorente
 
Drupal Performance and Scaling
Drupal Performance and ScalingDrupal Performance and Scaling
Drupal Performance and ScalingGerald Villorente
 

Plus de Gerald Villorente (20)

Of Docker and Drupal
Of Docker and DrupalOf Docker and Drupal
Of Docker and Drupal
 
Introduction to Kalabox
Introduction to KalaboxIntroduction to Kalabox
Introduction to Kalabox
 
Drupal Development : Tools, Tips, and Tricks
Drupal Development : Tools, Tips, and TricksDrupal Development : Tools, Tips, and Tricks
Drupal Development : Tools, Tips, and Tricks
 
Drupal 101 V-0.1
Drupal 101 V-0.1Drupal 101 V-0.1
Drupal 101 V-0.1
 
BITS 2015: The Beauty of Drupal
BITS 2015: The Beauty of DrupalBITS 2015: The Beauty of Drupal
BITS 2015: The Beauty of Drupal
 
Introduction to Drupal 7
Introduction to Drupal 7Introduction to Drupal 7
Introduction to Drupal 7
 
Introduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, TerminologiesIntroduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, Terminologies
 
Why Drupal is Rockstar?
Why Drupal is Rockstar?Why Drupal is Rockstar?
Why Drupal is Rockstar?
 
DevOps: Cooking Drupal Deployment
DevOps: Cooking Drupal DeploymentDevOps: Cooking Drupal Deployment
DevOps: Cooking Drupal Deployment
 
Drupal Pilipinas Apprentice: LAMP Administration, CSS, and Vagrant
Drupal Pilipinas Apprentice: LAMP Administration, CSS, and VagrantDrupal Pilipinas Apprentice: LAMP Administration, CSS, and Vagrant
Drupal Pilipinas Apprentice: LAMP Administration, CSS, and Vagrant
 
Drupal
DrupalDrupal
Drupal
 
Best Practices: Drupal Development
Best Practices: Drupal DevelopmentBest Practices: Drupal Development
Best Practices: Drupal Development
 
Drupal Deployment and Essential Development Tools - 2nd Edition
Drupal Deployment and Essential Development Tools - 2nd EditionDrupal Deployment and Essential Development Tools - 2nd Edition
Drupal Deployment and Essential Development Tools - 2nd Edition
 
Drupal Deployment and Essential Development Tools
Drupal Deployment and Essential Development ToolsDrupal Deployment and Essential Development Tools
Drupal Deployment and Essential Development Tools
 
Setting Up Cross-Browser Testing Environment (Debian-based System)
Setting Up Cross-Browser Testing Environment  (Debian-based System)Setting Up Cross-Browser Testing Environment  (Debian-based System)
Setting Up Cross-Browser Testing Environment (Debian-based System)
 
Git: Git'ing the Basic
Git: Git'ing the BasicGit: Git'ing the Basic
Git: Git'ing the Basic
 
Anatomy of Drupal
Anatomy of DrupalAnatomy of Drupal
Anatomy of Drupal
 
Drupal Security Hardening
Drupal Security HardeningDrupal Security Hardening
Drupal Security Hardening
 
Drupal Security Hardening
Drupal Security HardeningDrupal Security Hardening
Drupal Security Hardening
 
Drupal Performance and Scaling
Drupal Performance and ScalingDrupal Performance and Scaling
Drupal Performance and Scaling
 

Dernier

Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirtrahman018755
 
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...SUHANI PANDEY
 
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort ServiceBusty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort ServiceDelhi Call girls
 
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...tanu pandey
 
APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53APNIC
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtrahman018755
 
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC
 
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...kajalverma014
 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrHenryBriggs2
 
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men 🔝mehsana🔝 Escorts...
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men  🔝mehsana🔝   Escorts...➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men  🔝mehsana🔝   Escorts...
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men 🔝mehsana🔝 Escorts...nirzagarg
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...Neha Pandey
 
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...singhpriety023
 
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...Delhi Call girls
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdfMatthew Sinclair
 
💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋
💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋
💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋nirzagarg
 
Katraj ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For S...
Katraj ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For S...Katraj ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For S...
Katraj ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For S...tanu pandey
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查ydyuyu
 

Dernier (20)

Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirt
 
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
 
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
 
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort ServiceBusty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
 
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
 
APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
 
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
 
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men 🔝mehsana🔝 Escorts...
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men  🔝mehsana🔝   Escorts...➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men  🔝mehsana🔝   Escorts...
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men 🔝mehsana🔝 Escorts...
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
 
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
 
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
 
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf
 
💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋
💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋
💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋
 
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
 
Katraj ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For S...
Katraj ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For S...Katraj ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For S...
Katraj ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For S...
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
 

Consistent Development Environment with Vagrant and Chef

  • 1. {{ Dev with Ops in MindDev with Ops in Mind }} :: Building Consistent Environment with Vagrant and Chef Gerald Z. Villorente Senior Drupal Developer | DevOps Engineer | Proud Dad
  • 2. About MeAbout Me  Open-source advocateOpen-source advocate  Learned how to power on and operate a PC in 2005Learned how to power on and operate a PC in 2005  Became system administrator in 2007Became system administrator in 2007  Became web developer in 2009Became web developer in 2009  Drupalista since 2011Drupalista since 2011  Drupal Developer at CNN Travel | KiteSystems 2011-2013Drupal Developer at CNN Travel | KiteSystems 2011-2013  DevOps Engineer at BodogNation | Novenix Corp. 2013-2014DevOps Engineer at BodogNation | Novenix Corp. 2013-2014
  • 3. About MeAbout Me  Started to learn how to use computer in 2005Started to learn how to use computer in 2005  I became a computer technician in 2007I became a computer technician in 2007  I became a Web Developer in 2009I became a Web Developer in 2009  Drupalista since 2011Drupalista since 2011  Drupal Developer at CNN Travel | KiteSystems 2011-2013Drupal Developer at CNN Travel | KiteSystems 2011-2013  DevOps Engineer at BodogNation 2013-2014DevOps Engineer at BodogNation 2013-2014  Drupal Engineer and Mutant at X-Team 2014-presentDrupal Engineer and Mutant at X-Team 2014-present About MeAbout Me  Started to learn how to use computer in 2005Started to learn how to use computer in 2005  I became a computer technician in 2007I became a computer technician in 2007  I became a Web Developer in 2009I became a Web Developer in 2009  Drupalista since 2011Drupalista since 2011  Drupal Developer at CNN Travel | KiteSystems 2011-2013Drupal Developer at CNN Travel | KiteSystems 2011-2013  DevOps Engineer at BodogNation 2013-2014DevOps Engineer at BodogNation 2013-2014  Drupal Engineer and Mutant at X-Team 2014-presentDrupal Engineer and Mutant at X-Team 2014-present Drupal Engineer and Mutant atDrupal Engineer and Mutant at X-TeamX-Team 2014-present2014-present (A global development team of 100+ carefully chosen specialists. )(A global development team of 100+ carefully chosen specialists. )
  • 4. About YouAbout You  Dev EngineerDev Engineer  Ops EngineerOps Engineer  DevOps EngineerDevOps Engineer  Web ArchitectWeb Architect  Not a Graphic Designer (do you really care?)Not a Graphic Designer (do you really care?)
  • 5. Dev Setup (traditional)Dev Setup (traditional) Agenda:
  • 6. Bullet Proof SetupBullet Proof Setup Agenda:
  • 9. Dev with Ops in MindDev with Ops in Mind Agenda:
  • 12.
  • 13. Dev SetupDev SetupDev SetupDev Setup
  • 14. Inconsistent OS between Prod, Dev, Staging, and Local
  • 15. Inconsistent Web Server between Prod, Dev, Staging, and Local IIS Apache NginX Lighttpd
  • 16. Inconsistent version of libraries, server, and database. PHP 5.3 PHP 5.4 PHP 5.5 Apache 2.2 Apache 2.4 Drush 4.x Drush 5.x Varnish 3.x Varnish 4.x MySQL 5.1 MySQL 5.5
  • 17. Inconsistent settings/configurations. memory_limit = 256M max_allowed_packet = 16M set beresp.http.cache-control = "max-age = 300"; upload_max_filesize = 2M key_buffer = 16M max_file_uploads = 20 query_cache_limit = 1M
  • 18. Different libraries and extensions (Ex. GD vs. Imagemagick)Different libraries and extensions (Ex. GD vs. Imagemagick)Different libraries and extensions (Ex. GD vs. Imagemagick)Different libraries and extensions (Ex. GD vs. Imagemagick)
  • 19.
  • 20. Unfortunately, most ofUnfortunately, most of the time ...the time ... Unfortunately, most ofUnfortunately, most of the time ...the time ...
  • 21.
  • 22.
  • 23.
  • 24. Bullet Proof SetupBullet Proof SetupBullet Proof SetupBullet Proof Setup
  • 25. Prod = Stage = Dev = LocalProd = Stage = Dev = LocalProd = Stage = Dev = LocalProd = Stage = Dev = Local
  • 26. Virtualized EnvironmentsVirtualized EnvironmentsVirtualized EnvironmentsVirtualized Environments
  • 27.  Consistent operating systems and libraries and extentions.Consistent operating systems and libraries and extentions.  New comers can get going with the development right away. NoNew comers can get going with the development right away. No more painful setups.more painful setups.  Redistributable in case of hardware failure.Redistributable in case of hardware failure.  Consistent operating systems and libraries and extentions.Consistent operating systems and libraries and extentions.  New comers can get going with the development right away. NoNew comers can get going with the development right away. No more painful setups.more painful setups.  Redistributable in case of hardware failure.Redistributable in case of hardware failure. Reasons why we should:
  • 28.  Can never get the networking between host and guest OS.Can never get the networking between host and guest OS.  Scared of the command line.Scared of the command line.  Massive overhead keeping the VM up to date.Massive overhead keeping the VM up to date.  Can never get the networking between host and guest OS.Can never get the networking between host and guest OS.  Scared of the command line.Scared of the command line.  Massive overhead keeping the VM up to date.Massive overhead keeping the VM up to date. Reasons why we don't:
  • 30. A tool for building andA tool for building and distributing virtualizeddistributing virtualized environments.environments. A tool for building andA tool for building and distributing virtualizeddistributing virtualized environments.environments.
  • 31. Why Vagrant?Why Vagrant?Why Vagrant?Why Vagrant?
  • 33. Mirror ProductionMirror ProductionMirror ProductionMirror Production
  • 34. Test Ops scriptsTest Ops scripts with a free serverwith a free server Test Ops scriptsTest Ops scripts with a free serverwith a free server
  • 35. Designers and QADesigners and QA can setup their environmentcan setup their environment easilyeasily Designers and QADesigners and QA can setup their environmentcan setup their environment easilyeasily
  • 36. Faster OnboardingFaster OnboardingFaster OnboardingFaster Onboarding
  • 38. Getting StartedGetting Started  Install Virtualbox | VMwareInstall Virtualbox | VMware  Install VagrantInstall Vagrant  Import your base OS (Import your base OS ($ vagrant box add [BASE_NAME] [PATH.box]$ vagrant box add [BASE_NAME] [PATH.box]))  Generate Vagrantfile config (Generate Vagrantfile config ($ vagrant init [BASE_NAME]$ vagrant init [BASE_NAME]))  Boot your guest machine (Boot your guest machine ($ vagrant up$ vagrant up)) Getting StartedGetting Started  Install Virtualbox | VMwareInstall Virtualbox | VMware  Install VagrantInstall Vagrant  Import your base OS (Import your base OS ($ vagrant box add [BASE_NAME] [PATH.box]$ vagrant box add [BASE_NAME] [PATH.box]))  Generate Vagrantfile config (Generate Vagrantfile config ($ vagrant init [BASE_NAME]$ vagrant init [BASE_NAME]))  Boot your guest machine (Boot your guest machine ($ vagrant up$ vagrant up))
  • 39. DistributionDistribution $ vagrant package --base VM_ID --output BOX_NAME.box DistributionDistribution $ vagrant package --base VM_ID --output BOX_NAME.box
  • 40. Dev withDev with Ops in MindOps in Mind Dev withDev with Ops in MindOps in Mind
  • 41. The Goal: Develop CookbooksThe Goal: Develop Cookbooks and Modules to run in aand Modules to run in a VM and ProductionVM and Production The Goal: Develop CookbooksThe Goal: Develop Cookbooks and Modules to run in aand Modules to run in a VM and ProductionVM and Production
  • 42. Little Extra EffortLittle Extra Effort Big GainBig Gain Good PracticesGood Practices Little Extra EffortLittle Extra Effort Big GainBig Gain Good PracticesGood Practices Vagrant and DevOps:
  • 43. ChefChef A tool for automating the provisioning and management of serversA tool for automating the provisioning and management of servers ChefChef A tool for automating the provisioning and management of serversA tool for automating the provisioning and management of servers
  • 44. A Good ExampleA Good ExampleA Good ExampleA Good Example
  • 45. Why Chef?Why Chef?Why Chef?Why Chef?
  • 46. Less documentationLess documentationLess documentationLess documentation
  • 47. Bash doesn't scale. Seriously.Bash doesn't scale. Seriously. Bash is a wonderful thing, but like all UNIX tools, it is fundamentallyBash is a wonderful thing, but like all UNIX tools, it is fundamentally limited by design. Bash doesn't have a code reuse mechanism morelimited by design. Bash doesn't have a code reuse mechanism more powerful than functions.powerful than functions. Bash doesn't scale. Seriously.Bash doesn't scale. Seriously. Bash is a wonderful thing, but like all UNIX tools, it is fundamentallyBash is a wonderful thing, but like all UNIX tools, it is fundamentally limited by design. Bash doesn't have a code reuse mechanism morelimited by design. Bash doesn't have a code reuse mechanism more powerful than functions.powerful than functions.
  • 48. Maybe you can do this using “sed”. But hey are you sick?Maybe you can do this using “sed”. But hey are you sick?Maybe you can do this using “sed”. But hey are you sick?Maybe you can do this using “sed”. But hey are you sick?
  • 49. Technical Awesomeness.Technical Awesomeness.Technical Awesomeness.Technical Awesomeness.
  • 50. NOSQL FTWNOSQL FTW One of the virtues that many *nix tools share is that they store theirOne of the virtues that many *nix tools share is that they store their configurations in text files rather than binary formats or in aconfigurations in text files rather than binary formats or in a database.database. Chef stores your system configurations in textChef stores your system configurations in text and in a database. It accomplishes this by using the document-and in a database. It accomplishes this by using the document- oriented database, CouchDB.oriented database, CouchDB. NOSQL FTWNOSQL FTW One of the virtues that many *nix tools share is that they store theirOne of the virtues that many *nix tools share is that they store their configurations in text files rather than binary formats or in aconfigurations in text files rather than binary formats or in a database.database. Chef stores your system configurations in textChef stores your system configurations in text and in a database. It accomplishes this by using the document-and in a database. It accomplishes this by using the document- oriented database, CouchDB.oriented database, CouchDB.
  • 51. Knowing is Half the BattleKnowing is Half the Battle CChef uses Ohai to collect data about your system. Your recipes canhef uses Ohai to collect data about your system. Your recipes can access these attributes and make decisions based on them.access these attributes and make decisions based on them. Ex: node['platform_version'] vs. cat | grep | awkEx: node['platform_version'] vs. cat | grep | awk Knowing is Half the BattleKnowing is Half the Battle CChef uses Ohai to collect data about your system. Your recipes canhef uses Ohai to collect data about your system. Your recipes can access these attributes and make decisions based on them.access these attributes and make decisions based on them. Ex: node['platform_version'] vs. cat | grep | awkEx: node['platform_version'] vs. cat | grep | awk
  • 52. SearchSearch Search is a feature in Chef Server that allows you to query theSearch is a feature in Chef Server that allows you to query the configuration information of all other servers and of globally-definedconfiguration information of all other servers and of globally-defined databags (global variable). This allows you to do things like configuredatabags (global variable). This allows you to do things like configure clusters where a member of cluster needs to know not only about itsclusters where a member of cluster needs to know not only about its own configuration but about the configurations of the otherown configuration but about the configurations of the other members of the cluster.members of the cluster. SearchSearch Search is a feature in Chef Server that allows you to query theSearch is a feature in Chef Server that allows you to query the configuration information of all other servers and of globally-definedconfiguration information of all other servers and of globally-defined databags (global variable). This allows you to do things like configuredatabags (global variable). This allows you to do things like configure clusters where a member of cluster needs to know not only about itsclusters where a member of cluster needs to know not only about its own configuration but about the configurations of the otherown configuration but about the configurations of the other members of the cluster.members of the cluster.
  • 53. KnifeKnife Knife is one of the truly great command line tools. It is your primaryKnife is one of the truly great command line tools. It is your primary mechanism for interacting with the chef-server. Knife shares manymechanism for interacting with the chef-server. Knife shares many usage patterns with git. If you love git, you'll love knife.usage patterns with git. If you love git, you'll love knife. KnifeKnife Knife is one of the truly great command line tools. It is your primaryKnife is one of the truly great command line tools. It is your primary mechanism for interacting with the chef-server. Knife shares manymechanism for interacting with the chef-server. Knife shares many usage patterns with git. If you love git, you'll love knife.usage patterns with git. If you love git, you'll love knife.
  • 54. ShefShef Shef works the way you work, in an iterative manner. Most of usShef works the way you work, in an iterative manner. Most of us system administrators are self-taught and we learn best by doing.system administrators are self-taught and we learn best by doing. Fire up shef and you can on the fly play with attributes and createFire up shef and you can on the fly play with attributes and create recipes. Further, you can connect to your server and download therecipes. Further, you can connect to your server and download the cookbooks.cookbooks. ShefShef Shef works the way you work, in an iterative manner. Most of usShef works the way you work, in an iterative manner. Most of us system administrators are self-taught and we learn best by doing.system administrators are self-taught and we learn best by doing. Fire up shef and you can on the fly play with attributes and createFire up shef and you can on the fly play with attributes and create recipes. Further, you can connect to your server and download therecipes. Further, you can connect to your server and download the cookbooks.cookbooks.
  • 55. You can stopYou can stop reinventing the wheel.reinventing the wheel. Until Chef, we sysadmins did not have a truly modular way toUntil Chef, we sysadmins did not have a truly modular way to abstract and share our system configurations.abstract and share our system configurations. You can stopYou can stop reinventing the wheel.reinventing the wheel. Until Chef, we sysadmins did not have a truly modular way toUntil Chef, we sysadmins did not have a truly modular way to abstract and share our system configurations.abstract and share our system configurations.
  • 57. Zero Ruby knowledge?Zero Ruby knowledge?Zero Ruby knowledge?Zero Ruby knowledge?
  • 61. 1. http://www.scoop.it/1. http://www.scoop.it/ 2. http://devopsanywhere.blogspot.com/2. http://devopsanywhere.blogspot.com/ 3.3. http://www.vagrantup.com/http://www.vagrantup.com/ 4.4. https://puphpet.com/https://puphpet.com/ 5.5. http://rove.io/http://rove.io/ 6.6. http://www.getchef.com/http://www.getchef.com/ 7.7. http://puppetlabs.com/http://puppetlabs.com/ 8.8. http://www.vagrantbox.es/http://www.vagrantbox.es/ 9. http://virtualboxes.org/9. http://virtualboxes.org/ References:
  • 62. 1. Mitchell Hashimoto1. Mitchell Hashimoto Founder of HashiCorp, Creator of Vagrant and PackerFounder of HashiCorp, Creator of Vagrant and Packer 2. Opscode2. Opscode Creator of ChefCreator of Chef 3. Puppet Labs3. Puppet Labs Creator of PuppetCreator of Puppet Credits: