A brief introduction on Vagrant and Docker, and how to use them to create portable and distributable development environments. Know why and how to use them for better development and faster deployment, including demonstration and code samples from this presentation.
4. What Vagrant is
❏Development environment setup tool
❏Focused on automation
❏Lowers development environment setup time
❏Development - Production parity
❏No more “Works on my machine” excuses
4
5. Why Vagrant
❏Easy to configure
❏Reproducible and portable
❏Single consistent workflow
❏Industry-standard tools integration
5
6. Benefits of Vagrant
❏Isolate dependencies and their configuration
❏A single disposable, consistent environment
❏Creates a single Vagrantfile for a project and share with other
developer/designers
❏Others just need to run vagrant up and everything is installed and
configured for work.
6
7. Installation
❏ Download and Install
VirtualBox
https://www.virtualbox.org/wiki/Downloads
❏ Download and Install Vagrant
http://www.vagrantup.com/downloads
7
8. Let us create a VM
❏ Ubuntu Server 14.04 (trusty64)
❏ Git
❏ LAMP Stack
❏ Composer
❏ Node
❏ Redis
❏ Memcached
❏ Beanstalkd
❏ Supervisor
❏ PHPMyAdmin
❏ The Web Application:
➭ A laravel installation
➭ A mysql database for the
application
➭ Queue configuration
8
9. Initializing Vagrant
9
❏mkdir vagrant-test
❏cd vagrant-test
❏laravel new testvagrant
A fresh laravel will be installed in testvagrant directory.
❏vagrant init
A new Vagrantfile will be placed in the vagrant-test directory.
❏vagrant up
13. An open platform for
distributed applications for
developers and sysadmins
Build, Ship, Run
13
14. What Docker is
❏High level
❏ A lightweight VM
❏ Own process space
❏ Own network interface
❏ Can run stuff as root
14
❏Low level
❏ Container = isolated processes
❏ Share kernel with host
❏ <<application container>>
15. Why Docker
❏Run everywhere
❏ Regardless of kernel version
❏ Regardless of host distro
❏ Physical or virtual, cloud or not
❏ Container and host architecture
must match...
15
❏Run anything
❏ If it can run on the host, it can run
in the container
❏ If it can run on a Linux kernel, it
can run
Samiul
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.
Samiul
Vagrant provides easy to configure, reproducible, and portable work environments built on top of industry-standard technology and controlled by a single consistent workflow to help maximize the productivity and flexibility of you and your team.
To achieve its magic, Vagrant stands on the shoulders of giants. Machines are provisioned on top of VirtualBox, VMware, AWS, or any other provider. Then, industry-standard provisioning tools such as shell scripts, Chef, or Puppet, can be used to automatically install and configure software on the machine.
Samiul
isolate dependencies and their configuration within a single disposable, consistent environment, without sacrificing any of the tools you're used to working with (editors, browsers, debuggers, etc.)
creates a single Vagrantfile, you just need to vagrant up and everything is installed and configured for you to work.
Samiul
Feroj - Docker containers wrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in.
Feroj
Go to the universal docker installation page, which is super easy for even non tech people :P
Run ‘hello-world’ container, from docker hub