190 likes | 620 Views
Vagrant - secret sauce of devops. Agenda. The 12 Factor App by Heroku Is Vagrant the solution? Vagrant building blocks Using Vagrant. About me. In the past System/Network administrator at Lviv Politechnic University Embedded/.NET TechLead at Cypress Semiconductor
E N D
Agenda • The 12 Factor App by Heroku • Is Vagrant the solution? • Vagrant building blocks • Using Vagrant
About me • In the past • System/Network administrator at LvivPolitechnic University • Embedded/.NET TechLead at Cypress Semiconductor • .NET TechLead at Softserve • Now • Ruby TechLead at Softserve
The 12 Factor App by Heroku The twelve-factor app is a methodology for building software-as-a-service apps that: • Use declarative formats for setup automation • Have a clean contract with the underlying operating system • Are suitable for deployment on modern cloud platforms • Minimize divergence between development and production • And can scale up without significant changes to tooling
The 12 Factor App by Heroku The philosophy how to build apps: • Dev-Prod parity • Dependency management • Configs • Reproducible build process
Is Vagrant the solution? http://vagrantup.com/ • Virtualized development made easy. • Create and configure lightweight, reproducible, and portable development environments.
Why Vagrant? • It’s easy and highly configurable. • It is using existed time proven solutions: • VirtualBox • Chef/Puppet(you can use it as your playground) • It’s reproducible • It’s scalable • No divergence. Development = Production
Vagrant disadvantages: • It works better on Linux • It requires fast mashine (a lot of RAM, SSD) • 3-rd party boxes updated rarely
Vagrant building blocks • The base box$ vagrant box add lucid32 http://files.vagrantup.com/lucid32.box • The VagrantFile Vagrant::Config.run do |config| config.vm.box = "lucid32" end • Provisioning • Chef or Puppet or what you like(shell scripts?) • The Vagrant VM
Using existing boxes http://www.vagrantbox.es/ • Major linux distributions and others OS: • RHEL/CentOS • Debian/Ubuntu Server • OpenSUSE • Slackware/Gentoo/Archlinux • OpenBSD/FreeBSD • Scientific Linux
Existed projects • vagrant-lamp • vagrant-wordpress • vagrant-php-dev-box • rails-dev-box • vagrant-python
Conclusions • Vagrant encourage you to use good development practices • Vagrant is nice playground for Chef/Puppet • Vagrant is Fun
What was not covered • Building base boxes with Veewee • Multi-VM enviroinment
Learn mode: • Getting Started with Vagrant • https://github.com/mitchellh/vagrant • https://github.com/jedi4ever/veewee