270 karma · joined July 3, 2013
Asides from Deis being production-ready and tacking on a few extra features like `deis pull` and Dockerfile deployment workflows, we take a different approach to our components. We use the best-of-breed components from other OSS projects and focus entirely on the application deployment workflow. Flynn is focused on building the platform from the ground up. They provide the network equipment and messaging primitives (layer 0, as they call it) as well as the platform itself (layer 1) completely from scratch. Deis uses common OSS tools such as nginx and ceph to provide our layer 0 and part of our layer 1 for us and focus entirely on using those components to serve our needs.
That being said, we support any provider which runs CoreOS. Deis is just an platform which utilizes Fleet, Etcd and Docker. The best place to start would be to take a look at the Quick Start documentation: http://docs.deis.io/en/latest/installing_deis/quick-start/
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`[1]... Yet.
2) Performance is still something we're working on. When you deploy an application using a Heroku buildpack[2], your app is compiled into a container which sits on top of Heroku's cedar stack, which is around 800MB[3]. 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)[4], deployment times should be very speedy.
Hope that answers your question!
[1]: https://github.com/deis/deis/issues/231
[2]: http://docs.deis.io/en/latest/using_deis/using-buildpacks/
[1]: https://github.com/progrium/dokku
[2]: https://flynn.io/
> I'm a huge fan of Dokku, and Deis seems to be a very similar project with the added bonus of handling scaling for you.
Deis is built to be a distributed system spanning an entire CoreOS cluster, so scaling occurs horizontally and is naturally fault-tolerant. We have fleet to thank for that :)
Just add "FROM deis/python-runtime" to the top of your project and declare a CMD or an ENTRYPOINT in your Dockerfile and suddenly you have a python project installed and ready to go.
[1]: http://deis.io/
[2]: https://github.com/opdemand/deis/issues/530
[3]: http://docs.deis.io/en/latest/developer/dockerfile/#deploy-u...
We host application instances in Docker containers, so each instance is essentially a container on a VM. We have a very basic scheduler implementation (read: round-robin) that deploys the containers evenly across nodes under the Runtime Layer[1]. As gabrtv mentions in another comment, we are looking to replace this scheduler with something more sophisticated like Apache Mesos[2].
As for creating backing services, we are looking to implement a service registry[3] where it would communicate with third-party services much like how Heroku Addons work. For the moment, most users set an environment variable for their application as per the docs: http://docs.deis.io/en/latest/developer/manage-application/#...
[1]: http://docs.deis.io/en/latest/components/layer/#runtime-laye...
Look out for more pull requests to the registry! :)