I'm a big believer in "Readme driven development" . It's critical you go through the exercise of 1) explaining what the software will do and 2) how it will be used with concrete examples. The value of this documentation will always outweigh the time spent writing it.
Deis maintainer here. We understand Deis can be a bit heavy for those who don't want a multi-node HA setup. For the 'humble web developer' we strongly recommend Dokku. In fact, we're now sponsoring that project: http://deis.io/deis-sponsors-dokku/
Your point is taken: some of the underlying technologies we use are still under active development. That said, we've worked with enough production Deis deployments to know that etcd and fleet (for example) run much better than some might think.
As early adopters of these technologies, we have strong relationships (and often formal L3 support) with the teams involved. We are often the first to report issues as well as the first to test fixes. You can view this announcement as a vote of confidence in those projects and our ability to roll out fixes as bugs surface.
Deis and Kubernetes are solving different problems. Deis is a PaaS that provides a developer self-service capability a la Heroku. Kubernetes is a declarative container manager that provides lower-level orchestration features. Both are complimentary. For example, Red Hat is using Kubernetes to deliver their OpenShift v3 PaaS. We've explored a similar integration with Kubernetes but are currently more focused on integrating with Mesos a next step.
Great work! I played around with deis a few months ago and it was the first PaaS I was able to get up and running and actually, you know, deploy an app to!
1. What about storage? I know you use ceph for the Docker registry, etc. Is that exposed so that apps can somehow use it?
2. When I tried it, performance was kind of lacking (for things like pushing apps and making config changes). Was this just a limitation of my setup (I used 3x2GB DigitalOcean nodes) or something you guys are working out?
Hi, I'm also a maintainer :) to answer your questions:
1) we expose ceph in the router, so your apps could use it. This will have to be managed by you however as we don't have a user story for plugging apps into backing services asides from `deis config:set`... Yet.
2) Performance is still something we're working on. When you deploy an application using a Heroku buildpack, your app is compiled into a container which sits on top of Heroku's cedar stack, which is around 800MB. It's a beefy stack so fleet will take some time deploying that image. This should only occur the first time it's scheduled onto a new host as future images will just use the cache for that image, significantly speeding up deployment times. If you deploy an app using a Dockerfile and it's been optimized correctly (we have an app sitting under 5MB for test purposes), deployment times should be very speedy.
This is one of the general problems about PaaS. One of the tenets of 12 factor is that "12 factor processes are stateless and share nothing. Any data that needs to persist must be stored in a stateful backing service, typically a database" which is why we want to avoid persisting state in the container.
Content Management Systems like Drupal or Wordpress typically store file uploads or configuration files directly onto the filesystem. With Deis or any other PaaS, this filesystem is ephemeral unless there is a shared filesystem mounted inside the container, typically via SSHFS or some other remote filesystem.
We want to tackle this problem with a service gateway for apps to attach backing services like a shared filesystem, but for the moment there's always S3 :)
I'll skip abstract questions and jump right to our concrete situation. We have a bunch of services (Go app, RethinkDB, redis, haraka MTA, server for an Angular app) running in Docker containers on Hetzner servers. Is Deis compatible with our use case?
Since the router only does http right now (or so it seems) it probably isn't a good fit for you, or at least not for all services. I'd be really keen on trying Deis with RethinkDB if it got TCP support.