SlideShare a Scribd company logo
1 of 18
Download to read offline
Improved dev workflows
using Vagrant
and Docker
Makis Asimidis @aasimid
What is vagrant?
• Vagrant is a tool for building complete development
environments. With an easy-to-use workflow and focus
on automation, Vagrant lowers development
environment setup time, increases development/
production parity, and makes the "works on my
machine" excuse a relic of the past.
https://www.vagrantup.com/about.html
Dev environments
• On the production system
Dev environments
• Shared development server - Local/Remote/Cloud
• Costly to buy
• Maintenance, Administration
• Developers sharing the same hardware/resources
• Tied down to specific software packages, versions
• Remote/Cloud = Network latencies
Dev environments
• Native local machine setup (e.g. WAMP)
• OS, platform, architecture, dependencies
• Package dependency mayhem
• Cannot quickly experiment by switching to
different versions or packages
Does not work in production?
Does not work in production?
• We can run the exact same operating system and setup as the production
boxes, on top of any other machine, be it Mac, Windows or Linux.

!
• We can install the same software / packages / versions.
!
• Everything is run in a contained sandbox and resources can be managed.
!
• We can create distributable images to share.
!
• If we run the VM’s locally, we can develop offline.
Local virtual environments
• Disadvantages
• Search for appropriate images or install OS on the
VM manually
• No easy fallback in case of problems
• Not easily and most importantly programmatically
reproducible
• Can be hard to learn, setup and configure
Local virtual environments
Vagrant virtual development
environment
• A simple quick way to
• Bring up virtual machines with minimum requirements
• Programmatically recreate configuration
• Store vm configuration in vcs (Infrastructure as code)
• Share virtual machine settings
• Easy rollbacks
• Integration with configuration management tools (Puppet,
Chef, Salt, Ansible etc.)
Questions
• Won't it be slow?
• Headless Linux VMs are much less resource hungry than a fully blown Win/MacOS
virtual image
• I want to use my preferred IDE
• You can. Vagrant automatically shares a folder with the host OS
• How do I transfer my code to the box?
• See above
• Where do I find, or how do I build an image
• All popular OS and apps offered as ready-made bundles
• Is this for coding only?
• NO! We can use it to test, experiment with new packages/versions and even in
packaging & delivering software
• Required software (for your specific operating system):
• VirtualBox -- https://virtualbox.org/
• Vagrant -- https://vagrantup.com/
• GitBash -- https://git-scm.com/download/ (for
Windows users)
Vagrant virtual development
environment
$ mkdir vagrant-demo
$ cd vagrant-demo/
$ vagrant init ubuntu/trusty64
$ vagrant up --provider=virtualbox
$ vagrant ssh
!
You should see a default Ubuntu login message.
You are now logged into your Vagrant VM. Enter the following:
!
Last login: Thu Jun 25 14:34:01 2015!
vagrant@linux-p94a:~> uname -a!
Linux linux-p94a 3.12.43-52.6-default #1 SMP Wed May 20
12:44:39 UTC 2015 (fc0ce!
ac) x86_64 x86_64 x86_64 GNU/Linux!
vagrant@linux-p94a:~>
Vagrant basic usage
VS
+
Demo
Resources
• http://www.slideshare.net/ichilton/virtualized-development-
environments-phpne-may-2012
• http://www.slideshare.net/ortussolutions/vagrant-48606177
• http://www.slideshare.net/lorinh/vagrant-ansible-and-
openstack-on-your-laptop
• https://eu.yourcircuit.com/#/conversation/49efedc6-
b2db-4cc0-ac09-499c98fcca2d
• https://it-ebooks.info/book/5792/

More Related Content

What's hot

Beyond Apache: Faster Web Servers
Beyond Apache: Faster Web ServersBeyond Apache: Faster Web Servers
Beyond Apache: Faster Web Servers
webhostingguy
 
Deploying your application on open stack using bosh presentation
Deploying your application on open stack using bosh presentationDeploying your application on open stack using bosh presentation
Deploying your application on open stack using bosh presentation
capouch
 

What's hot (20)

The development environment
The development environmentThe development environment
The development environment
 
Vagrant&ansible
Vagrant&ansibleVagrant&ansible
Vagrant&ansible
 
Don't worry with bower
Don't worry with bowerDon't worry with bower
Don't worry with bower
 
Docker presentation for sharing
Docker presentation   for sharingDocker presentation   for sharing
Docker presentation for sharing
 
Instant ColdFusion with Vagrant
Instant ColdFusion with VagrantInstant ColdFusion with Vagrant
Instant ColdFusion with Vagrant
 
Get acquainted with the new ASP.Net 5
Get acquainted with the new ASP.Net 5Get acquainted with the new ASP.Net 5
Get acquainted with the new ASP.Net 5
 
Instruction to build Apache CloudStack docs with Sphinx
Instruction to build Apache CloudStack docs with SphinxInstruction to build Apache CloudStack docs with Sphinx
Instruction to build Apache CloudStack docs with Sphinx
 
Implementation of the Continuous Integration based on Atlassian Bamboo
 Implementation of the Continuous Integration based on Atlassian Bamboo Implementation of the Continuous Integration based on Atlassian Bamboo
Implementation of the Continuous Integration based on Atlassian Bamboo
 
JRuby deployments
JRuby deploymentsJRuby deployments
JRuby deployments
 
Let's server your Data
Let's server your DataLet's server your Data
Let's server your Data
 
Beyond Apache: Faster Web Servers
Beyond Apache: Faster Web ServersBeyond Apache: Faster Web Servers
Beyond Apache: Faster Web Servers
 
NC Wisconsin SuperVMUG 2019 Tools and Tips
NC Wisconsin SuperVMUG 2019 Tools and TipsNC Wisconsin SuperVMUG 2019 Tools and Tips
NC Wisconsin SuperVMUG 2019 Tools and Tips
 
Deploying your application on open stack using bosh presentation
Deploying your application on open stack using bosh presentationDeploying your application on open stack using bosh presentation
Deploying your application on open stack using bosh presentation
 
Building an iOS Build Server
Building an iOS Build ServerBuilding an iOS Build Server
Building an iOS Build Server
 
OpenNebula Administrator View
OpenNebula Administrator ViewOpenNebula Administrator View
OpenNebula Administrator View
 
Building a Continuous Delivery Pipeline With Visual Studio
Building a Continuous Delivery Pipeline With Visual StudioBuilding a Continuous Delivery Pipeline With Visual Studio
Building a Continuous Delivery Pipeline With Visual Studio
 
Putting the 'ctions' in Azure Fun-ctions
Putting the 'ctions' in Azure Fun-ctionsPutting the 'ctions' in Azure Fun-ctions
Putting the 'ctions' in Azure Fun-ctions
 
Vagrant Plugin development
Vagrant Plugin developmentVagrant Plugin development
Vagrant Plugin development
 
Dot Net Core
Dot Net CoreDot Net Core
Dot Net Core
 
Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for Developers
 

Similar to Improved development workflows using vagrant

Powering Development and Testing Environments with Vagrant
Powering Development and Testing Environments with VagrantPowering Development and Testing Environments with Vagrant
Powering Development and Testing Environments with Vagrant
Coen Jacobs
 
Vagrant Binding JayDay 2013
Vagrant Binding JayDay 2013Vagrant Binding JayDay 2013
Vagrant Binding JayDay 2013
Hendrik Ebbers
 
Avoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and VagrantAvoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and Vagrant
andygale
 
DevOps: Using Vagrant to Enhance Your Day to Day Development
DevOps: Using Vagrant to Enhance Your Day to Day DevelopmentDevOps: Using Vagrant to Enhance Your Day to Day Development
DevOps: Using Vagrant to Enhance Your Day to Day Development
Rob Reynolds
 

Similar to Improved development workflows using vagrant (20)

Powering Development and Testing Environments with Vagrant
Powering Development and Testing Environments with VagrantPowering Development and Testing Environments with Vagrant
Powering Development and Testing Environments with Vagrant
 
Making Developers Productive with Vagrant, VirtualBox, and Docker
Making Developers Productive with Vagrant, VirtualBox, and DockerMaking Developers Productive with Vagrant, VirtualBox, and Docker
Making Developers Productive with Vagrant, VirtualBox, and Docker
 
WordPress Development Environments
WordPress Development EnvironmentsWordPress Development Environments
WordPress Development Environments
 
Vagrant For DevOps
Vagrant For DevOpsVagrant For DevOps
Vagrant For DevOps
 
Docker - A curtain raiser to the Container world
Docker - A curtain raiser to the Container worldDocker - A curtain raiser to the Container world
Docker - A curtain raiser to the Container world
 
Vagrant for Effective DevOps Culture
Vagrant for Effective DevOps CultureVagrant for Effective DevOps Culture
Vagrant for Effective DevOps Culture
 
Automated Infrastructure and Application Management
Automated Infrastructure and Application ManagementAutomated Infrastructure and Application Management
Automated Infrastructure and Application Management
 
Varying wordpressdevelopmentenvironment wp-campus2016
Varying wordpressdevelopmentenvironment wp-campus2016Varying wordpressdevelopmentenvironment wp-campus2016
Varying wordpressdevelopmentenvironment wp-campus2016
 
Working in harmony
Working in harmonyWorking in harmony
Working in harmony
 
Containing the world with Docker
Containing the world with DockerContaining the world with Docker
Containing the world with Docker
 
Varying WordPress Development Environment WordCamp Columbus 2016
Varying WordPress Development Environment WordCamp Columbus 2016Varying WordPress Development Environment WordCamp Columbus 2016
Varying WordPress Development Environment WordCamp Columbus 2016
 
Opscode Webinar: Managing Your VMware Infrastructure with Chef
Opscode Webinar: Managing Your VMware Infrastructure with ChefOpscode Webinar: Managing Your VMware Infrastructure with Chef
Opscode Webinar: Managing Your VMware Infrastructure with Chef
 
Vagrant Binding JayDay 2013
Vagrant Binding JayDay 2013Vagrant Binding JayDay 2013
Vagrant Binding JayDay 2013
 
Vagrant and Chef on FOSSASIA 2014
Vagrant and Chef on FOSSASIA 2014Vagrant and Chef on FOSSASIA 2014
Vagrant and Chef on FOSSASIA 2014
 
Habitat Overview
Habitat OverviewHabitat Overview
Habitat Overview
 
Avoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and VagrantAvoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and Vagrant
 
Instant ColdFusion with Vagrant
Instant ColdFusion with VagrantInstant ColdFusion with Vagrant
Instant ColdFusion with Vagrant
 
Varying WordPress Development Environment WordCamp Cincinnati 2016
Varying WordPress Development Environment WordCamp Cincinnati 2016Varying WordPress Development Environment WordCamp Cincinnati 2016
Varying WordPress Development Environment WordCamp Cincinnati 2016
 
DevOps: Using Vagrant to Enhance Your Day to Day Development
DevOps: Using Vagrant to Enhance Your Day to Day DevelopmentDevOps: Using Vagrant to Enhance Your Day to Day Development
DevOps: Using Vagrant to Enhance Your Day to Day Development
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 

Recently uploaded

Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 

Recently uploaded (20)

WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
 
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - Kanchana
 
WSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration Tooling
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
 
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
 

Improved development workflows using vagrant

  • 1. Improved dev workflows using Vagrant and Docker Makis Asimidis @aasimid
  • 2. What is vagrant? • Vagrant is a tool for building complete development environments. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases development/ production parity, and makes the "works on my machine" excuse a relic of the past. https://www.vagrantup.com/about.html
  • 3. Dev environments • On the production system
  • 4. Dev environments • Shared development server - Local/Remote/Cloud • Costly to buy • Maintenance, Administration • Developers sharing the same hardware/resources • Tied down to specific software packages, versions • Remote/Cloud = Network latencies
  • 5. Dev environments • Native local machine setup (e.g. WAMP) • OS, platform, architecture, dependencies • Package dependency mayhem • Cannot quickly experiment by switching to different versions or packages
  • 6. Does not work in production?
  • 7. Does not work in production?
  • 8.
  • 9. • We can run the exact same operating system and setup as the production boxes, on top of any other machine, be it Mac, Windows or Linux. ! • We can install the same software / packages / versions. ! • Everything is run in a contained sandbox and resources can be managed. ! • We can create distributable images to share. ! • If we run the VM’s locally, we can develop offline. Local virtual environments
  • 10. • Disadvantages • Search for appropriate images or install OS on the VM manually • No easy fallback in case of problems • Not easily and most importantly programmatically reproducible • Can be hard to learn, setup and configure Local virtual environments
  • 11. Vagrant virtual development environment • A simple quick way to • Bring up virtual machines with minimum requirements • Programmatically recreate configuration • Store vm configuration in vcs (Infrastructure as code) • Share virtual machine settings • Easy rollbacks • Integration with configuration management tools (Puppet, Chef, Salt, Ansible etc.)
  • 12. Questions • Won't it be slow? • Headless Linux VMs are much less resource hungry than a fully blown Win/MacOS virtual image • I want to use my preferred IDE • You can. Vagrant automatically shares a folder with the host OS • How do I transfer my code to the box? • See above • Where do I find, or how do I build an image • All popular OS and apps offered as ready-made bundles • Is this for coding only? • NO! We can use it to test, experiment with new packages/versions and even in packaging & delivering software
  • 13. • Required software (for your specific operating system): • VirtualBox -- https://virtualbox.org/ • Vagrant -- https://vagrantup.com/ • GitBash -- https://git-scm.com/download/ (for Windows users) Vagrant virtual development environment
  • 14. $ mkdir vagrant-demo $ cd vagrant-demo/ $ vagrant init ubuntu/trusty64 $ vagrant up --provider=virtualbox $ vagrant ssh ! You should see a default Ubuntu login message. You are now logged into your Vagrant VM. Enter the following: ! Last login: Thu Jun 25 14:34:01 2015! vagrant@linux-p94a:~> uname -a! Linux linux-p94a 3.12.43-52.6-default #1 SMP Wed May 20 12:44:39 UTC 2015 (fc0ce! ac) x86_64 x86_64 x86_64 GNU/Linux! vagrant@linux-p94a:~> Vagrant basic usage
  • 15. VS
  • 16. +
  • 17. Demo
  • 18. Resources • http://www.slideshare.net/ichilton/virtualized-development- environments-phpne-may-2012 • http://www.slideshare.net/ortussolutions/vagrant-48606177 • http://www.slideshare.net/lorinh/vagrant-ansible-and- openstack-on-your-laptop • https://eu.yourcircuit.com/#/conversation/49efedc6- b2db-4cc0-ac09-499c98fcca2d • https://it-ebooks.info/book/5792/