Deis 0.3.0 - App Sharing and Docker 0.7.1

12 Dec 2013

The Deis project is thrilled to announce our v0.3.0 release. We've added support for team workflows with App sharing, beefed up our documentation for operations folks, developers, and contributors, and tightened up the Deis controller with updated components including the Flynn project's slugbuilder and slugrunner.

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.3.0 Summary

New Features

  • deis sharing allows multiple users to push to an application
  • First user to register is the admin, who can grant admin permission to others
  • Formation, Node, and Layer access is restricted to admin users
  • Default formation -- if only one formation exists on the controller, you can omit --formation=foo when creating an App.
  • Operations Guide explains how to set up a Deis controller, from configuring Chef to deploying a Formation.
  • Developer Guide explains how to work with a Deis controller, from registering to deploying and managing an App.
  • Topologies provides examples for setting up single, dual, or multi-node Formations.
  • Local Development helps contributors get up and running with Deis on Vagrant.

Under the Hood

  • Updated to Docker 0.7.1
  • More reliable container management inspired by the chef-docker project
  • Replaced buildstep with the more modular flynn/slugbuilder and flynn/slugrunner
  • Automatically remove leftover Docker containers on build and runtime hosts
  • Updated to Django 1.6, celery 3.1.6, gevent 1.0
  • Removed unused socialaccount and djcelery apps
  • Downgraded to stable Berkshelf 2.0.10
  • Rehabilitated full integration tests in client/tests
  • Added unit tests for sharing and web views

Bug Fixes

  • Fixed 500 error when destroying a node or formation that no longer exists
  • Fixed environment variable availability in deis run commands
  • Fixed queries for Layer which could raise MultipleObjectsReturned
  • Fixed upstart scripts not being re-read on service restart
  • Fixed celery task chaining for better concurrency

Community Shout-Outs

We want to thank the following Deis community members for creating GitHub issues, providing support to others, and working on various Deis branches:

  • @bacongobbler - Vagrant testing & bug hunting, DigitalOcean documentation, and tireless support on IRC and GitHub comments.
  • @tombh - Vagrant testing & GitHub support, improvements to DigitalOcean provisioning script, advice on devmode flag.
  • @bflad - Review of deis-cookbook and fix for restart deis-server issue.
  • @jeff-french - Default formation request (implemented).
  • @jof - Help with nodes not already running AUFS.
  • @kumavis - Typo fixing.
  • @alanjds - DigitalOcean testing, gevent bug report (fixed).
  • @punnie - Rackspace testing, buildstep / node converge error report (closed).
  • @warpr - Caught a 404 for our old installation doc (fixed).

What's Next?

  1. Containerization of Deis Components. Now that Docker 0.7 has been released, we're ready to start containerizing all of the Deis components. This will result in a more modular system that's easier to deploy and manage.

  2. Interactive deis run Though we provide the ability to run admin commands inside containers, we don't currently support interactive shells into containers. We will soon.

  3. Release Rollback and Auditing We need to provide developers the ability to rollback to a previous release. While we have the infrastructure in place to do this, we don't yet tag releases with meaningful log events that describe what was changed.

Future

Enhanced Docker Integration

Deis currently uses Docker as a LXC wrapper for running Heroku Buildpack slugs that are bind-mounted into containers. We will sonn add a new git push build process that creates and distributes images via Dockerfile and a private Docker registry. Follow progress on this GitHub issue.

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. You can review the specification and follow progress on this GitHub issue.

General Security Improvements

The controllers 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.

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?