SlideShare a Scribd company logo
Vagrant + Puppet: 
deployment made easy. 
May 2014
WWhhoo?? 
Geronimo Orozco 
Cloud Engineer & Free Software developer 
@patux 
http://patux.net 
http://github.com/patux
Development Process
DDeevveellooppeerr ccoommmmoonn nniigghhttmmaarreess...... 
Have you ever worked with...
DDeevveellooppeerr ccoommmmoonn nniigghhttmmaarreess...... 
Multiple projects 
+ 
Dependencies on various kinds of software in various 
degrees of stability 
= 
YYoouurr ddeevveellooppmmeenntt mmaacchhiinnee iiss bbeeccoommiinngg ffuullll ooff ccrraapp
DDeevveellooppeerr ccoommmmoonn nniigghhttmmaarreess...... 
Multiple projects 
+ 
Dependencies on the same software but with different 
versions 
= 
YYoouurr ddeevveellooppmmeenntt mmaacchhiinnee iiss bbeeccoommiinngg ffuullll ooff ccrraapp 
((aaggaaiinn))
DDeevveellooppeerr ccoommmmoonn nniigghhttmmaarreess...... 
Existing developer with (partial and no up to date) info on 
how to reproduce a development environment 
+ 
New developer on the team (with a shiny new machine) 
= 
IIssssuueess ttoo rreepprroodduuccee tthhee ssaammee ddeevveellooppmmeenntt 
eennvviirroonnmmeenntt
DDeevveellooppeerr ccoommmmoonn nniigghhttmmaarreess...... 
Development environment 
≠ 
Production/CI environment 
= 
WWoorrkkss oonn mmyy mmaacchhiinnee!!!!!! ssyynnddrroommee
AA ddeevveellooppmmeenntt ssttoorryy...... 
IT Engineering 
Task 
Requires 
Component X 
Requires 
Component Y
AA ddeevveellooppmmeenntt ssttoorryy...... wwiitthh ssttoorryy 
ppooiinnttss 
3 88 3 
IT Engineering 
Task 
Requires 
Component X 
Requires 
Component Y 
2
AA tteeaamm ooff 66 mmeemmbbeerrss...... 
IT Engineering 
2 
3 3 
2 
3 3 
2 
3 3 
2 
3 3 
2 
3 3 
2 
3 3 4488
$ git clone git://path/to/myapp.git 
$ cd myapp 
$ magic command 
$ ssh myenvironment 
. . . hack . . .
$ git clone git://path/to/myapp.git 
$ cd myapp 
$ vagrant up 
$ ssh myenvironment 
. . . hack . . .
VVaaggrraanntt 
● Mitchel Hashimoto & John Bender 
● http://vagrantup.com 
● Based on Virtualbox, Ruby 
● Runs on MacOS, Linux, Windows 
● Supports multiple provisioners (puppet/chef/shell/powershell/Salt/Ansible/Docker) 
* Vagrant lowers development environment setup time, maximizes dev/prod parity, 
and makes the "works on my machine" excuse a relic of the past. 
Developers no longer need to worry about setting up complicated infrastructure 
components. Projects with conflicting dependencies can each get their own sandbox 
-- keeping a developer's workstation free of the hacks needed for multiple versions 
of software to coexist. 
*http://vagrantup.com
WWhhyy wwoouulldd uussee iitt?? 
● Reduces setup time (3 steps & you’re ready) 
● Simplicity (you don’t have to mess with vbox/vmware api) 
● Self-Service (You don’t have to ask for resources) 
● Consistency (Your teammate gets the same exact environment) 
● Repeatability (You can build/destroy/rebuild/shutdown as you please) 
● Contained (You don’t have to pollute your laptop and break things, get the 
development environment isolated but at the same time connected )
CCaappaabbiilliittiieess 
● Filesharing (A folder from your machine into the virtual machine) 
● Port forwarding (A port from the vm pointing to a local port) 
● Non-Intrusive (You can use your editor/ide from your machine writing into the 
shared folder) 
● Multi VM Stack 
– Not only one vm per config file 
– You can build many environments as you want only limited by your workstation/laptop 
resources
VVaaggrraanntt 
VVaaggrraannttffiillee 
– Port fortwarding 
– Synced folders 
– VM configuration 
– Network configuration 
– SSH access 
– Multiple providers 
– Multiple provisioners 
– Non intrusive
IT automation software
DDeemmoo ttiimmee!! 
$ git clone https://github.com/patux/rails-dev-box 
$ cd rails-dev-box 
$ vagrant up 
$ vagrant ssh
DDeemmoo ttiimmee!! 
$ cd /vagrant 
$ git clone https://github.com/railstutorial/sample_app.git 
$ rvm install ruby-1.8 
$ rvm use 1.8 
$ cd sample_app 
$ bundle install 
$ rake db:setup 
$ rails server
PPuuppppeett 
● DSL to describe 
your environment 
configuration 
● http://puppetlabs.com 
● http://docs.puppetlabs.com
Vagrant and puppet: Deployment made easy
Vagrant and puppet: Deployment made easy
DDeevvOOppss && VVaaggrraanntt ccoommmmuunniittyy 
• Chef & Puppet Friendly (Puppet standalone/server, Chef solo/server) 
– We can create/reuse puppet modules or chef recipes 
● Integrate to the cloud environment with minor tweaks 
• Recipes across internet (Just google it: vagrant+project) 
• http://vagrantbox.es 
– You don’t have to start from scratch 
• Package (You can create a new basebox based on another according to your needs) 
• Veewee (A tool to automate the creation of a basebox for your particular needs) 
• Don’t reinvent the wheel 
IT Engineering
PPrrooffiitt!! 
● Decrease the time it takes for a developer to get up and 
running on a new project 
● Isolate development environments from each other 
● Increase your chance of successful deployment by mirroring 
the production environment 
● Reuse your Puppet or Chef recipes in production and 
development environments 
● Keep your development machine small and fast
GGooiinngg ffuurrtthheerr 
● Create your own base boxes 
– http://vagrantup.com/docs/base_boxes.html 
● Share your base boxes 
– http://vagrantbox.es 
● Multi-VM configuration 
– http://vagrantup.com/docs/multivm.html 
● Use it on your CI server 
– Ex: http://travis-ci.org 
– https://wiki.jenkins-ci.org/display/JENKINS/Vagrant+Plugin 
● Extend with plugins 
– http://vagrantup.com/docs/plugins.html
QQuueessttiioonnss ?? 
Pizza time!!! 
Thank you Alesi Fuentes
Ad

More Related Content

What's hot (20)

Ljc conf open jdk betterrev bof
Ljc conf open jdk betterrev bofLjc conf open jdk betterrev bof
Ljc conf open jdk betterrev bof
Mani Sarkar
 
How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?
Vivek Parihar
 
Better delivery with DevOps Driven Development
Better delivery with DevOps Driven DevelopmentBetter delivery with DevOps Driven Development
Better delivery with DevOps Driven Development
Jirayut Nimsaeng
 
The swiss knife of a word press developer
The swiss knife of a word press developerThe swiss knife of a word press developer
The swiss knife of a word press developer
Ivelina Dimova
 
Geb+spock: let your functional tests live long and prosper
Geb+spock: let your functional tests live long and prosperGeb+spock: let your functional tests live long and prosper
Geb+spock: let your functional tests live long and prosper
Esther Lozano
 
What grunt?
What grunt?What grunt?
What grunt?
Lucio Martinez
 
Grunt js and WordPress
Grunt js and WordPressGrunt js and WordPress
Grunt js and WordPress
WP Australia
 
Grunt understanding
Grunt understandingGrunt understanding
Grunt understanding
Khalid Khan
 
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveOSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
NETWAYS
 
Magento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HRMagento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HR
Denis Ristic
 
Vagrant & CFEngine - LOPSA East 2013
Vagrant & CFEngine - LOPSA East 2013Vagrant & CFEngine - LOPSA East 2013
Vagrant & CFEngine - LOPSA East 2013
Nick Anderson
 
Headless browser: puppeteer and git client : GitKraken
Headless browser: puppeteer and git client : GitKrakenHeadless browser: puppeteer and git client : GitKraken
Headless browser: puppeteer and git client : GitKraken
SheikhMoonwaraAnjumM
 
Grunt - The JavaScript Task Runner
Grunt - The JavaScript Task RunnerGrunt - The JavaScript Task Runner
Grunt - The JavaScript Task Runner
Mohammed Arif
 
Angularjs Workshop Pre-Requisites
Angularjs Workshop Pre-Requisites Angularjs Workshop Pre-Requisites
Angularjs Workshop Pre-Requisites
Houssem Yahiaoui
 
It is easy contributing to open source - JCON 2020
It is easy contributing to open source - JCON 2020It is easy contributing to open source - JCON 2020
It is easy contributing to open source - JCON 2020
César Hernández
 
Docker for developers
Docker for developersDocker for developers
Docker for developers
sparkfabrik
 
Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh
Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay SinghSlash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh
Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh
slashn
 
Introduction to Google Web Toolkit - part 1
Introduction to Google Web Toolkit - part 1Introduction to Google Web Toolkit - part 1
Introduction to Google Web Toolkit - part 1
Muhammad Ghazali
 
Git sourcecontrolpreso
Git sourcecontrolpresoGit sourcecontrolpreso
Git sourcecontrolpreso
ColdFusionConference
 
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
César Hernández
 
Ljc conf open jdk betterrev bof
Ljc conf open jdk betterrev bofLjc conf open jdk betterrev bof
Ljc conf open jdk betterrev bof
Mani Sarkar
 
How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?
Vivek Parihar
 
Better delivery with DevOps Driven Development
Better delivery with DevOps Driven DevelopmentBetter delivery with DevOps Driven Development
Better delivery with DevOps Driven Development
Jirayut Nimsaeng
 
The swiss knife of a word press developer
The swiss knife of a word press developerThe swiss knife of a word press developer
The swiss knife of a word press developer
Ivelina Dimova
 
Geb+spock: let your functional tests live long and prosper
Geb+spock: let your functional tests live long and prosperGeb+spock: let your functional tests live long and prosper
Geb+spock: let your functional tests live long and prosper
Esther Lozano
 
Grunt js and WordPress
Grunt js and WordPressGrunt js and WordPress
Grunt js and WordPress
WP Australia
 
Grunt understanding
Grunt understandingGrunt understanding
Grunt understanding
Khalid Khan
 
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveOSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
NETWAYS
 
Magento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HRMagento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HR
Denis Ristic
 
Vagrant & CFEngine - LOPSA East 2013
Vagrant & CFEngine - LOPSA East 2013Vagrant & CFEngine - LOPSA East 2013
Vagrant & CFEngine - LOPSA East 2013
Nick Anderson
 
Headless browser: puppeteer and git client : GitKraken
Headless browser: puppeteer and git client : GitKrakenHeadless browser: puppeteer and git client : GitKraken
Headless browser: puppeteer and git client : GitKraken
SheikhMoonwaraAnjumM
 
Grunt - The JavaScript Task Runner
Grunt - The JavaScript Task RunnerGrunt - The JavaScript Task Runner
Grunt - The JavaScript Task Runner
Mohammed Arif
 
Angularjs Workshop Pre-Requisites
Angularjs Workshop Pre-Requisites Angularjs Workshop Pre-Requisites
Angularjs Workshop Pre-Requisites
Houssem Yahiaoui
 
It is easy contributing to open source - JCON 2020
It is easy contributing to open source - JCON 2020It is easy contributing to open source - JCON 2020
It is easy contributing to open source - JCON 2020
César Hernández
 
Docker for developers
Docker for developersDocker for developers
Docker for developers
sparkfabrik
 
Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh
Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay SinghSlash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh
Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh
slashn
 
Introduction to Google Web Toolkit - part 1
Introduction to Google Web Toolkit - part 1Introduction to Google Web Toolkit - part 1
Introduction to Google Web Toolkit - part 1
Muhammad Ghazali
 
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
César Hernández
 

Similar to Vagrant and puppet: Deployment made easy (20)

Docker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesDocker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los Angeles
Jérôme Petazzoni
 
Using Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsUsing Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and Jenkins
Micael Gallego
 
Techtalks: taking docker to production
Techtalks: taking docker to productionTechtalks: taking docker to production
Techtalks: taking docker to production
muayyad alsadi
 
JOSA TechTalk: Taking Docker to Production
JOSA TechTalk: Taking Docker to ProductionJOSA TechTalk: Taking Docker to Production
JOSA TechTalk: Taking Docker to Production
Jordan Open Source Association
 
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3 Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Codemotion
 
Keep calm and vagrant up
Keep calm and vagrant upKeep calm and vagrant up
Keep calm and vagrant up
Daniel Carvalhinho
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
Carlo Bonamico
 
Testing fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosTesting fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornos
Micael Gallego
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 application
Roman Rodomansky
 
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special EditionIntroduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Jérôme Petazzoni
 
Provisioning with Puppet
Provisioning with PuppetProvisioning with Puppet
Provisioning with Puppet
Joe Ray
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
Liang Bo
 
Vagrant are you still develop in a non-virtual environment-
Vagrant  are you still develop in a non-virtual environment-Vagrant  are you still develop in a non-virtual environment-
Vagrant are you still develop in a non-virtual environment-
Anatoly Bubenkov
 
Warden @ Meet magento Romania 2021
Warden @ Meet magento Romania 2021Warden @ Meet magento Romania 2021
Warden @ Meet magento Romania 2021
alinalexandru
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
Kris Buytaert
 
Docker at Monoco.jp (LinkedIn)
Docker at Monoco.jp (LinkedIn)Docker at Monoco.jp (LinkedIn)
Docker at Monoco.jp (LinkedIn)
Akhmad Fathonih
 
A Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy SystemA Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy System
adrian_nye
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Michael Lihs
 
Node.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ BenetechNode.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ Benetech
Christopher Bumgardner
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesDocker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los Angeles
Jérôme Petazzoni
 
Using Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsUsing Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and Jenkins
Micael Gallego
 
Techtalks: taking docker to production
Techtalks: taking docker to productionTechtalks: taking docker to production
Techtalks: taking docker to production
muayyad alsadi
 
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3 Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Codemotion
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
Carlo Bonamico
 
Testing fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosTesting fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornos
Micael Gallego
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 application
Roman Rodomansky
 
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special EditionIntroduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Jérôme Petazzoni
 
Provisioning with Puppet
Provisioning with PuppetProvisioning with Puppet
Provisioning with Puppet
Joe Ray
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
Liang Bo
 
Vagrant are you still develop in a non-virtual environment-
Vagrant  are you still develop in a non-virtual environment-Vagrant  are you still develop in a non-virtual environment-
Vagrant are you still develop in a non-virtual environment-
Anatoly Bubenkov
 
Warden @ Meet magento Romania 2021
Warden @ Meet magento Romania 2021Warden @ Meet magento Romania 2021
Warden @ Meet magento Romania 2021
alinalexandru
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
Kris Buytaert
 
Docker at Monoco.jp (LinkedIn)
Docker at Monoco.jp (LinkedIn)Docker at Monoco.jp (LinkedIn)
Docker at Monoco.jp (LinkedIn)
Akhmad Fathonih
 
A Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy SystemA Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy System
adrian_nye
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Michael Lihs
 
Node.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ BenetechNode.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ Benetech
Christopher Bumgardner
 
Ad

Recently uploaded (20)

Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and CollaborateMeet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Maxim Salnikov
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& ConsiderationsDesigning AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Dinusha Kumarasiri
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and CollaborateMeet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Maxim Salnikov
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& ConsiderationsDesigning AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Dinusha Kumarasiri
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
Ad

Vagrant and puppet: Deployment made easy

  • 1. Vagrant + Puppet: deployment made easy. May 2014
  • 2. WWhhoo?? Geronimo Orozco Cloud Engineer & Free Software developer @patux http://patux.net http://github.com/patux
  • 5. DDeevveellooppeerr ccoommmmoonn nniigghhttmmaarreess...... Multiple projects + Dependencies on various kinds of software in various degrees of stability = YYoouurr ddeevveellooppmmeenntt mmaacchhiinnee iiss bbeeccoommiinngg ffuullll ooff ccrraapp
  • 6. DDeevveellooppeerr ccoommmmoonn nniigghhttmmaarreess...... Multiple projects + Dependencies on the same software but with different versions = YYoouurr ddeevveellooppmmeenntt mmaacchhiinnee iiss bbeeccoommiinngg ffuullll ooff ccrraapp ((aaggaaiinn))
  • 7. DDeevveellooppeerr ccoommmmoonn nniigghhttmmaarreess...... Existing developer with (partial and no up to date) info on how to reproduce a development environment + New developer on the team (with a shiny new machine) = IIssssuueess ttoo rreepprroodduuccee tthhee ssaammee ddeevveellooppmmeenntt eennvviirroonnmmeenntt
  • 8. DDeevveellooppeerr ccoommmmoonn nniigghhttmmaarreess...... Development environment ≠ Production/CI environment = WWoorrkkss oonn mmyy mmaacchhiinnee!!!!!! ssyynnddrroommee
  • 9. AA ddeevveellooppmmeenntt ssttoorryy...... IT Engineering Task Requires Component X Requires Component Y
  • 10. AA ddeevveellooppmmeenntt ssttoorryy...... wwiitthh ssttoorryy ppooiinnttss 3 88 3 IT Engineering Task Requires Component X Requires Component Y 2
  • 11. AA tteeaamm ooff 66 mmeemmbbeerrss...... IT Engineering 2 3 3 2 3 3 2 3 3 2 3 3 2 3 3 2 3 3 4488
  • 12. $ git clone git://path/to/myapp.git $ cd myapp $ magic command $ ssh myenvironment . . . hack . . .
  • 13. $ git clone git://path/to/myapp.git $ cd myapp $ vagrant up $ ssh myenvironment . . . hack . . .
  • 14. VVaaggrraanntt ● Mitchel Hashimoto & John Bender ● http://vagrantup.com ● Based on Virtualbox, Ruby ● Runs on MacOS, Linux, Windows ● Supports multiple provisioners (puppet/chef/shell/powershell/Salt/Ansible/Docker) * Vagrant lowers development environment setup time, maximizes dev/prod parity, and makes the "works on my machine" excuse a relic of the past. Developers no longer need to worry about setting up complicated infrastructure components. Projects with conflicting dependencies can each get their own sandbox -- keeping a developer's workstation free of the hacks needed for multiple versions of software to coexist. *http://vagrantup.com
  • 15. WWhhyy wwoouulldd uussee iitt?? ● Reduces setup time (3 steps & you’re ready) ● Simplicity (you don’t have to mess with vbox/vmware api) ● Self-Service (You don’t have to ask for resources) ● Consistency (Your teammate gets the same exact environment) ● Repeatability (You can build/destroy/rebuild/shutdown as you please) ● Contained (You don’t have to pollute your laptop and break things, get the development environment isolated but at the same time connected )
  • 16. CCaappaabbiilliittiieess ● Filesharing (A folder from your machine into the virtual machine) ● Port forwarding (A port from the vm pointing to a local port) ● Non-Intrusive (You can use your editor/ide from your machine writing into the shared folder) ● Multi VM Stack – Not only one vm per config file – You can build many environments as you want only limited by your workstation/laptop resources
  • 17. VVaaggrraanntt VVaaggrraannttffiillee – Port fortwarding – Synced folders – VM configuration – Network configuration – SSH access – Multiple providers – Multiple provisioners – Non intrusive
  • 19. DDeemmoo ttiimmee!! $ git clone https://github.com/patux/rails-dev-box $ cd rails-dev-box $ vagrant up $ vagrant ssh
  • 20. DDeemmoo ttiimmee!! $ cd /vagrant $ git clone https://github.com/railstutorial/sample_app.git $ rvm install ruby-1.8 $ rvm use 1.8 $ cd sample_app $ bundle install $ rake db:setup $ rails server
  • 21. PPuuppppeett ● DSL to describe your environment configuration ● http://puppetlabs.com ● http://docs.puppetlabs.com
  • 24. DDeevvOOppss && VVaaggrraanntt ccoommmmuunniittyy • Chef & Puppet Friendly (Puppet standalone/server, Chef solo/server) – We can create/reuse puppet modules or chef recipes ● Integrate to the cloud environment with minor tweaks • Recipes across internet (Just google it: vagrant+project) • http://vagrantbox.es – You don’t have to start from scratch • Package (You can create a new basebox based on another according to your needs) • Veewee (A tool to automate the creation of a basebox for your particular needs) • Don’t reinvent the wheel IT Engineering
  • 25. PPrrooffiitt!! ● Decrease the time it takes for a developer to get up and running on a new project ● Isolate development environments from each other ● Increase your chance of successful deployment by mirroring the production environment ● Reuse your Puppet or Chef recipes in production and development environments ● Keep your development machine small and fast
  • 26. GGooiinngg ffuurrtthheerr ● Create your own base boxes – http://vagrantup.com/docs/base_boxes.html ● Share your base boxes – http://vagrantbox.es ● Multi-VM configuration – http://vagrantup.com/docs/multivm.html ● Use it on your CI server – Ex: http://travis-ci.org – https://wiki.jenkins-ci.org/display/JENKINS/Vagrant+Plugin ● Extend with plugins – http://vagrantup.com/docs/plugins.html
  • 27. QQuueessttiioonnss ?? Pizza time!!! Thank you Alesi Fuentes