Automated Development Environments

A Working Example

Created by Laurence J MacGuire a.k.a Liu Jian Ming aka 刘建明

ThoughtWorks Xi'An, 2015/04/18

Creative Commons License

The “5 W’s”

  • Who?
  • What?
  • Where?
  • When?
  • Why?
  • and How …

Who?

Developers can and should use them.

Opsy people can prepare and share them.

What?

Automated, Repeatable, Consistent

Development Environments

Where?

Your PC. Your Mac. Your Linux box.

Maybe even your C.I. environment.

When?

Since 2012, or even earlier.

Why?

  • “It works on my machine”
  • New devs can spend 3 days configuring their environments
  • Polluted container
    • 6 Versions of Java
      • 1.6, 1.7, 1.8 * openJDK and Oracle
    • RVM and 18 versions of Ruby, 23 Gemsets
    • 3 Pythons
    • etc …

Mess

Why? Continued

  • Independant Environments
  • New devs up and running quickly (repeatably)
  • Everyone runs the same thing, and ideally, same as production

Mess

How? (1/2)

Virtualisation/Isolation

  • VirtualBox/VMWware
  • KVM
  • Docker
  • chroot jail even (!)

How? (2/2)

Automation

  • Vagrant
  • Salt/Puppet/Ansible/etc

I don’t really care which. I can help you best with Docker, though

Unavailable content

This was a workshop. Most content was spoken, and helping attendees.