Container orchestrators becoming mainstream is something I'm very excited about. Tools like DC/OS, Nomad, Kubernetes, Docker Swarm Mode, Triton, Rancher make it so much easier to have fast development cycles. Last week I went from idea, to concept, to deployed in production in a single day. And it is automatically kept available, restarted if it fails, traffic is routed correctly, other services can discover it, the underlying infrastructure can be changed without anyone ever noticing it.
This also brings me to Traefik, one of the coolest projects I have come across in the last months.
Traefik + DC/OS + CI/CD is what allows developers to create value for the business in hours and not in days or weeks.
I've been researching container orchestration recently and I personally don't see the incentive to jump into containers from an infrastructure perspective. I think using packer/vagrant/ansible is pretty easy and meets my needs. The orchestration overhead for containers seems like overhead I don't need just yet. So the big question I've been asking myself is at what point will a AWS AMI be less versatile than a docker container, assuming it originated w/ Packer and I can build images to other clouds with packer.
From a developer perspective I am very excited about containers and believe local dev w/ docker is warranted.
We mainly use Docker because it finally allows us to eradicate all the "Worked in dev" issues we had in the past. From an application perspective, Dev, Accept and Prod are identical.
Also, we deploy to production at least 4 times a day, the time from commit to deployable to production is about 30 minutes. And because it is a container it will start with a clean, documented setup (Dockerfile) every time. There is no possibility of manual additions, fixes or handholding.
I'm pretty excited for where it's taking things closer to the PaaS end of the spectrum. Been diving down that rabbit hole a bit in search of "easiest way for 2-3 devs to run a reliable infrastructure." Recently moved from EC2 to Heroku, which I'm pretty happy with, but not sure if will be more a stopgap or long-term. I like the direction OpenShift seems to be headed in.
We use DC/OS for all our stateless services, when we started looking at container orchestrators the bootstrap for DC/OS was very easy (automatic via cloudformation) and it was quite complicated for kubernetes.
We mainly use DC/OS to run more services on less instances.
Please take a look at the Cloud Native Computing Foundation (I'm the executive director) at cncf.io. We have a lot of free resources for learning more about the space.
The new development is that the software to run your own Heroku is becoming open source and easy to operate.
From an "I just want to get my app deployed" perspective it may still be best to just use Heroku. But from a "new developments in the field" perspective, the fact that I can rent a few machines and have my own Heroku microcosm for small declining effort is pretty cool.
This also brings me to Traefik, one of the coolest projects I have come across in the last months.
Traefik + DC/OS + CI/CD is what allows developers to create value for the business in hours and not in days or weeks.