Switch to Docker - Notes and Breaking changes

24 views
Skip to first unread message

Subhas Dandapani

unread,
Jul 23, 2014, 2:48:00 PM7/23/14
to rapi...@googlegroups.com
Hi All,

We've switched to Docker, and dev.rapidftr.com is running on it.

What's New?

- RapidFTR is on the public Docker index. If you have docker, you can simply run `docker pull rapidftr/rapidftr:latest` to download RapidFTR. Docker automatically rebuilds the public image upon every commit.

- Everything packed into one container (CouchDB, Solr, Passenger, RapidFTR). The flattened tar.gz image is around 300 MB. RapidFTR can be started/stopped as a whole.

- To install Docker on the target server, pull the latest image and to start/stop the containers - we use Chef. This is a common pattern - Docker is good at provisioning and packaging, while it doesn't do anything for Configuration Management or Orchestration, and usually people couple it with Chef or etcd or something else for the config mgmt (i.e. deploy v1.2 to demo, master to dev, etc etc).

- Improved Security! We generate random couchdb username/passwords upon container boot, so nobody really knows what the couchdb password is.

- Shared /data volume which is persisted across reboots and redeploys, so the CouchDB data always stays the same, and gets migrated/upgraded upon every boot.

- We're building on top of the excellent passenger-docker base image which does a lot (including managing multiple processes, etc).

What's Changed?

- Vagrant instructions updated. For development, we're still using Vagrant and the old cookbooks (which we'll be slowly updating), but we also added librarian-chef for managing the cookbooks. Please check the wiki, you need to run `vagrant plugin install vagrant-librarian-chef`, otherwise vagrant will refuse to work.

What's Pending?

- We're still looking at whether we want the separate infrastructure repository, or merge it into the main codebase as its getting smaller.

- When Snap-CI runs, Docker registry wouldn't have finished building the latest image yet, so Snap-CI may deploy older versions. We're in talks with the Snap-CI team for improving their webhooks, or finding other options.

- Optimizing the passenger-docker container and removing unnecessary services like ssh, cron, etc.

- Updating Wiki pages and Deployment Guide.​

John D. Hume

unread,
Jul 23, 2014, 4:30:32 PM7/23/14
to rapi...@googlegroups.com
On Wed, Jul 23, 2014 at 1:47 PM, Subhas Dandapani <r...@thoughtworks.com> wrote:
- Everything packed into one container (CouchDB, Solr, Passenger, RapidFTR). The flattened tar.gz image is around 300 MB. RapidFTR can be started/stopped as a whole.

This sounds like a much more straightforward setup experience for new deployments. Great stuff!

Subhas Dandapani

unread,
Jul 23, 2014, 5:07:13 PM7/23/14
to rapi...@googlegroups.com
Yep, like a big fat EXE ;)

A bit more on Chef:

Here's a link to the single Production Deployment Chef recipe that installs docker, pulls rapidftr image and kills & restarts a new container upon every deployment. So instead of using Chef with multiple cookbooks to provision a machine and potentially struggle to change its state over time, we instead use Chef just for downloading and running the docker image upon every deployment.

​There are also upcoming stories for a Chef server​ setup to automatically upgrade and manage all running production deployments of RapidFTR.​ Right now we're upgrading each production deployment of RapidFTR manually, so bringing them under Chef Server would make upgrades much easier.

--
You received this message because you are subscribed to the Google Groups "rapidftr" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rapidftr+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
- Subhas
Reply all
Reply to author
Forward
0 new messages