Developing Clojure in the Cloudmartintrojer.github.io/assets/images/devcloud/... · The Cloud is...

13
Martin Trojer http://martintrojer.github.io martintrojer Developing in the Cloud Clojure

Transcript of Developing Clojure in the Cloudmartintrojer.github.io/assets/images/devcloud/... · The Cloud is...

Page 1: Developing Clojure in the Cloudmartintrojer.github.io/assets/images/devcloud/... · The Cloud is great but… • Moving target, different Linux distros • Different JVM, DB (etc)

Martin Trojer

http://martintrojer.github.io

martintrojer

Developing in the Cloud

Clojure

Page 2: Developing Clojure in the Cloudmartintrojer.github.io/assets/images/devcloud/... · The Cloud is great but… • Moving target, different Linux distros • Different JVM, DB (etc)

The Cloud is great but…• Moving target, different Linux distros

• Different JVM, DB (etc) versions

Development Env Deployment Env

Page 3: Developing Clojure in the Cloudmartintrojer.github.io/assets/images/devcloud/... · The Cloud is great but… • Moving target, different Linux distros • Different JVM, DB (etc)
Page 4: Developing Clojure in the Cloudmartintrojer.github.io/assets/images/devcloud/... · The Cloud is great but… • Moving target, different Linux distros • Different JVM, DB (etc)

Do all development in VMs!

Development EnvDeployment Env

Page 5: Developing Clojure in the Cloudmartintrojer.github.io/assets/images/devcloud/... · The Cloud is great but… • Moving target, different Linux distros • Different JVM, DB (etc)

Provision, ssh & hack away

Page 6: Developing Clojure in the Cloudmartintrojer.github.io/assets/images/devcloud/... · The Cloud is great but… • Moving target, different Linux distros • Different JVM, DB (etc)

Pros• Production environment parity

No more WOMM

• Automate setting up devboxes No more outdated ‘our dev env’ wikis / napkins

• Local/remote transparency

• Great for pairingtmux shared screens (*)

• Host env can be anything(**)

• Freedom to experiment

• Embrace the devops, path to production provisioning

• Host env hygene

Page 7: Developing Clojure in the Cloudmartintrojer.github.io/assets/images/devcloud/... · The Cloud is great but… • Moving target, different Linux distros • Different JVM, DB (etc)

tmux attachtmux attach

Page 8: Developing Clojure in the Cloudmartintrojer.github.io/assets/images/devcloud/... · The Cloud is great but… • Moving target, different Linux distros • Different JVM, DB (etc)

Pros• Production environment parity

No more WOMM

• Automate setting up devboxes No more outdated ‘our dev env’ wikis / napkins

• Local/remote transparency

• Great for pairingtmux shared screens (*)

• Host env can be anything(**)

• Freedom to experiment

• Embrace the devops, path to production provisioning

• Host env hygene

Page 9: Developing Clojure in the Cloudmartintrojer.github.io/assets/images/devcloud/... · The Cloud is great but… • Moving target, different Linux distros • Different JVM, DB (etc)

Cons

• It’s all terminal

• Not good for IDEsEmacs/Vim users are (typically) fine

• Need a decent network connection

• Moar RAM in your laptop

Page 10: Developing Clojure in the Cloudmartintrojer.github.io/assets/images/devcloud/... · The Cloud is great but… • Moving target, different Linux distros • Different JVM, DB (etc)

github.com/martintrojer/devbox

• Vagrant

• Virtualbox / AWS

• puppet

• emacs, lein, multi-user (incl. pairing)

• postgres

Page 11: Developing Clojure in the Cloudmartintrojer.github.io/assets/images/devcloud/... · The Cloud is great but… • Moving target, different Linux distros • Different JVM, DB (etc)

Hybrid setups

Page 12: Developing Clojure in the Cloudmartintrojer.github.io/assets/images/devcloud/... · The Cloud is great but… • Moving target, different Linux distros • Different JVM, DB (etc)

Docker / Rocket

Page 13: Developing Clojure in the Cloudmartintrojer.github.io/assets/images/devcloud/... · The Cloud is great but… • Moving target, different Linux distros • Different JVM, DB (etc)

with boot2docker

• boot2docker start

• docker run -d postgres

• docker run -d dockerfile/elasticsearch