Deis 0.1.0 - Ready for Dev/Test

2 Oct 2013

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.

0.1.0 Summary

New Features

  • 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 deis auth:cancel

Under The Hood

  • Updated to Docker 0.6.3
  • Replaced Ubuntu cloud-init with the more portable knife bootstrap
  • Refactored configuration management logic into separate cm package
  • Created separate provider package with proper mock module
  • Deprecated provider.controller module now handled by cm
  • Deprecated celerytasks package in favor of api.tasks module
  • Introduced new Application object that resides on a Formation
  • Updated a number of Python libraries including: django, boto, paramiko and requests (2.0)

Bug Fixes

  • 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 containers:scale operation
  • Fixed issue with containers:list returning a TypeError
  • Fixed client registration failure due to bad content-type
  • Fixed login issue due to new Django is_active behavior

Other Changes

  • Updated site with new command-line workflows
  • Docstrings cleanup across all modules
  • Updated Django Admin site with new object model
  • Updated REST API documentation with new endpoints
  • Made Get Deis page shorter and simpler
  • knife output written to celery logs regardless of success or failure (for debugging)
  • deis register now 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:

What's Next?

Now that we have some important refactoring and object model changes behind us, the Deis project will be focused on 3 main areas:

  1. Consolidating the core Deis workflow which includes fixing bugs, improving our Chef/Docker integration and tightening platform security
  2. Extending Deis to new providers like DigitalOcean and Rackspace, while also ensuring formations can be constructed manually from existing nodes (bare metal or otherwise)
  3. Adding a key features including Team Support (access controls), Health Checks and a Service Registry for attaching backing services

DigitalOcean Provider

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.

Rackspace Provider

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".


Team Support

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.

Health Checks

We do not currently monitor nodes or container health -- though we have infrastructure in place to do it.

Service Registry

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.

Posted in Deis v1 PaaS

triangle square circle

Did you enjoy this post?