| This seems to be the "new standard" when it comes to startup infrastructure beyond Heroku. However, what frustrates me the most about it, is that every startup is left to figure out everything from scratch and it seems impossible. There are many tools you need to familiarize yourself with, too many to be comfortable with. Companies that already figured it out write blog post like this, which provide insights but it's super high level, as a startup engineer this gives you absolutely no value other than "yes, they are using it too". I wonder if there's a solution for this generic enough to open source that will be a good start for startups. You check out the project, read some docs and in 2-3 hours you have a cluster running. Kind of a "batteries included" devops solution. |
https://pivotal.io/platform
http://deis.io/
both are open source technologies based on Docker that are gathering momentum and you can hire consultants to help you deploy either one.
I personally don't use Docker. The startup I'm building has chosen to standardize on the JVM for all application code so we leverage the JAR file as a kind of container. The Java ecosystem already solved the problem of zero-downtime deployments a long time ago so for us deploying can be as simple as shipping new jars file across the network.
Instead of using Docker to drive development we simply spin up development database/redis/etc instances in the cloud which automatically join a development VPN network. All of the non-VPN interfaces are automatically firewalled off. One nice advantage of this setup is that developers who have slow laptops are still able to work. I'm a big fan of this approach.
Check out Wildfly's "High Availablity" features if you're interested in one way that the Java Ecosystem can make headaches like zero-downtime deployment, HTTP health checks, monitoring, caching, and even load balancing disappear.. It'll deploy non-java code too as long as it's on the JVM. If you're a Scala only shop there are some great Scala-only alternatives available to boot.