Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Baking up a virtual development environment

Avatar for Debo Debo
August 19, 2015

Baking up a virtual development environment

A quick introduction to the tools I used at Just Eat to make the life of new joiners easier, especially, for those who don't necessarily have the ops skills required.

Avatar for Debo

Debo

August 19, 2015
Tweet

More Decks by Debo

Other Decks in Technology

Transcript

  1. We need or use virtualisation • Software requirements • Reproducible

    environment • Portable environment • Testing environment • Maximise productivity • Maximise flexibility
  2. Virtualisation helps avoid • Skills requirement • Additional software requirements

    • Increased basic hardware requirements • Additional licensing • It works on my machine
  3. Overview Vagrant Vagrant is a tool for building and distributing

    virtualised development environment • Standalone self-contained ruby application (no gem dependency hell) • Provides simple interface for VirtualBox • Interacts with VirtualBox API • Extendable through a plug-in interface
  4. Features Vagrant • Automated creation of VMs • Automated provisioning

    of VMs • Scripted configuration of VM properties • Simple interface to manage virtual environment • Reduce setup to a single command • Scripted configuration of shared file system • Scripted configuration of network
  5. Automated provisioning Vagrant • Shell • CFEngine • Chef •

    Puppet • Ansible • Salt • Docker • Custom
  6. Scripted configuration of VM properties Vagrant • CPUs • RAM

    • Network interfaces • Ports • Shares
  7. Simple interface to manage virtual environment Vagrant • vagrant status

    • vagrant suspend • vagrant resume • vagrant halt • vagrant reload • vagrant ssh/rdp
  8. Reduce setup to a single command Vagrant • vagrant up

    • vagrant provision • vagrant destroy
  9. Goods Vagrant • Integrates well with well known platform •

    Isolates dependencies and configuration in a disposable and consistent environment • Multi-Machine • You don’t have to renounce to use your favourite tools
  10. Base boxes Vagrant • Simple VM images • Distribution and

    Architecture specific • Setup with a minimal set of packages • Includes a common SSH key for access or appropriate WinRM setup • Includes VirtualBox tools
  11. Overview Packer Packer is a tool for creating machine and

    container images for multiple platforms from a single source configuration. • Standalone self-contained ruby application (no gem dependency hell) • Automate the otherwise manual process of running setups
  12. Features Packer • Automated creation of the base images •

    Scripted configuration of base image properties • Reduce build to a single command • Automated provisioning of the base images • Builds on pretty much anything you can think about
  13. Choose a specific provisioning solution Provisioners • External dependency •

    Familiarity • Compatibility • Simplicity • Ease of learning • Extensibility • Personal preference • Cost
  14. File sharing • Multiple shared locations • Support for NFS

    (Dependent upon Host) • User your preferred editor • No need to synchronise files For who needs it