20
Virtualisation I don’t know much about it, but I know enough to think it’s the future of web development.

Virtualisation - Vagrant and Docker

Embed Size (px)

Citation preview

Page 1: Virtualisation - Vagrant and Docker

VirtualisationI don’t know much about it,

but I know enough to think it’sthe future of web development.

Page 2: Virtualisation - Vagrant and Docker

The Problem

… Even if you do find documentation, it’s inaccurate, out of date, and incomplete. You copy some files here and there. You install a programming language or two. You run a random shell script. You fiddle with environment variables. [...] of course, some of the requirements from one project conflict with the requirements of another project. Before you know it, you’re spending hours reading about RVM and RBEnv so you can run multiple versions of Ruby, you’re fighting with strange errors with C header files…

” Yevgeniy (Jim) Brikman - Atomic Squirrel

Page 3: Virtualisation - Vagrant and Docker

Wouldn’t it be better to take a snapshot of the machine?

Page 4: Virtualisation - Vagrant and Docker

A couple of solutions are:

Page 5: Virtualisation - Vagrant and Docker

In 30 seconds...

Virtual machines are like emulators:

● Mirror your Live environment

● Isolated from host machine

● Shareable

● Cross-platform

Page 6: Virtualisation - Vagrant and Docker

Vagrant Docker

What’s the difference?

Page 7: Virtualisation - Vagrant and Docker

How does it all work?

Page 8: Virtualisation - Vagrant and Docker

How Vagrant works

● Compressed file system archive (Box file)

● Text-based configuration file (Vagrantfile)

● Vagrant CLI

● Pre-built Box file library

Page 9: Virtualisation - Vagrant and Docker

How Docker works

● Partial file system archives (Images)

● Text-based configuration file (Dockerfile)

● Docker CLI, Docker Compose CLI

● Container Repository

Page 10: Virtualisation - Vagrant and Docker

Caveat Emptor

Page 11: Virtualisation - Vagrant and Docker

Caveat Emptor

Page 12: Virtualisation - Vagrant and Docker

Similarities

● Virtual machines running in VMware

● Can easily mean working with huge binary files

● Multiple machines with networking

● Local and remote environments

● Existing repositories of starter images

Page 13: Virtualisation - Vagrant and Docker

Differences

● Docker uses incremental images in builds

● Multi-machine setup in Docker is easier

● Docker advises it is ‘Not Production ready’

Page 14: Virtualisation - Vagrant and Docker

Which is better?

xkcd.com

Page 15: Virtualisation - Vagrant and Docker

Vagrant example .

Page 16: Virtualisation - Vagrant and Docker

Docker example .

Page 17: Virtualisation - Vagrant and Docker

Where can Virtual Machines take us?

Page 18: Virtualisation - Vagrant and Docker

What VMs could mean

● Death to ‘It works on my machine’

● Say ‘No!’ to intangible dependencies

● Banish the OS incompatibilities

● Minimise setup and onboarding times

Page 19: Virtualisation - Vagrant and Docker

The Moon Shot

● The same Virtual Machine images in use on Local, Dev, Live and everything in-between

● Scalable Solution

Page 20: Virtualisation - Vagrant and Docker

Questions?