Deis 0.1.0 - Ready for Dev/Test
The Deis project is proud to announce our v0.1.0 release. This release includes some important new features and puts a number of backwards-incompatible changes behind us. As of today, Deis is now ready for your dev/test environments! In the next month or so, we hope to have Deis ready for use with production applications.
What is Deis?
Deis is a Django/Celery API server, Python CLI and set of Chef cookbooks that combine to provide a Heroku-inspired application platform for public and private clouds. Your PaaS. Your Rules.
- Formations now support multiple applications with wildcard DNS, making them truly multi-tenant
- Nodes can now be added to formations without automated provisioning, allowing manually constructed formations that can use bare-metal servers
- Layers can now function as both runtime (hosts containers) and proxy (routes to containers), which means you can test a Deis formation with 1 node
- Configuration management interface is now modularized with Chef and Mock backends; integrating other CM backends is now possible
- CLI acceptance tests now cover the majority of the Deis client workflow
- Account cancellation is now available using
Under The Hood
- Updated to Docker 0.6.3
- Replaced Ubuntu
cloud-initwith the more portable
- Refactored configuration management logic into separate
- Created separate
providerpackage with proper mock module
provider.controllermodule now handled by
celerytaskspackage in favor of
- Introduced new
Applicationobject that resides on a
- Updated a number of Python libraries including: django, boto, paramiko and requests (2.0)
- Application endpoints no longer 500 when the application has been deleted
- Fixed problem accessing flavors with underscores in their name
- Fixed bug with containers not starting after
- Fixed issue with
- Fixed client registration failure due to bad content-type
- Fixed login issue due to new Django
- Updated http://deis.io/ site with new command-line workflows
- Docstrings cleanup across all modules
- Updated Django Admin site with new object model
REST APIdocumentation with new endpoints
- Made Get Deis page shorter and simpler
knifeoutput written to celery logs regardless of success or failure (for debugging)
deis registernow asks for password confirmation
- Updated EC2 AMIs with new v0.1.0 images
Community Shout Outs
We would like to give a big shout out to Matthew Fisher, aka @bacongobbler, who has made large contributions to the Deis community since our last release. In addition to spearheading our DigitalOcean integration, he has also submitted a number of important pull requests and bug fixes for 0.1.0. Thank you Matthew!
We'd also like to thank the following users for taking the time to file issues via GitHub:
- @jschneiderhan - Removing user from container
- @lakeslc - Controller provisioning issue
- @mikeclarke - Add support for VPC in EC2 provider
- @guestisp - Issues with Hosted Chef Server
Now that we have some important refactoring and object model changes behind us, the Deis project will be focused on 3 main areas:
- Consolidating the core Deis workflow which includes fixing bugs, improving our Chef/Docker integration and tightening platform security
- Extending Deis to new providers like DigitalOcean and Rackspace, while also ensuring formations can be constructed manually from existing nodes (bare metal or otherwise)
- Adding a key features including Team Support (access controls), Health Checks and a Service Registry for attaching backing services
We've had many requests for a DigitalOcean provider. Thanks to the efforts of @bacongobbler, we are very close! We are now working with Moisey Uretsky and the DigitalOcean crew to get a Deis-optimized image publicly available via the DigitalOcean console and API. The image needs to be Ubuntu 12.04 LTS with a 3.8 kernel for Docker support. We hope to have DigitalOcean available within the next 2 weeks.
We are actively working on Rackspace Cloud Integration with the help of Jesse Noller and the team at Rackspace. The biggest hurdle is speeding up instance boot times, which are currently not practical. We are exploring ways to speed node boot times. We hope to have Rackspace available in the next 2 weeks.
Enhanced Docker Integration
Deis currently uses Docker as a LXC wrapper for running Heroku Buildpack slugs that are bind-mounted into Buildstep images. As soon as the Docker Private Registry code stabilizes, we will be adding a new
git push build process that creates and distributes images via
Dockerfile and a private registry hosted on the controller.
General Security Improvements
Both the controller and formation proxies require SSL configuration. Right now controller sessions are just HTTP with cookies and passwords sent in the clear! We've also glossed over some pretty important security features in an effort to get Deis into developers hands. For example, we need to implement iptables host-level firewalls, improve security group default rules, use Chef recipes to harden systems, etc. If you find any other security holes, please open a GitHub issue and tag it "Security".
As of now, only a single user can control a formation or push to an application. We need to add simple sharing features, which we can then expand upon using finer-grained access controls.
We do not currently monitor nodes or container health -- though we have infrastructure in place to do it.
We need to make it as easy for ops folks to publish a set of reusable backing services (databases, queues, storage, etc) and allow developers to attach those services to applications. This will be done in a loosely coupled way, following Twelve Factor best practices.
How can you help?
- Star our GitHub repository
- Help spread the word about @opendeis on Twitter
- Explore contributing to the Deis project by joining the #deis channel on Freenode
You can learn about other ways to get involved on our website.