Deis 0.6.0 - Simpler, Better

24 Mar 2014

The Deis project is excited to announce our v0.6.0 release. This version simplifies the project layout to be more developer-friendly, unites two related containers into deis/controller, and standardizes unit testing for Deis' own Docker images.

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

New Features

  • No more submodules: core components are now directly under the opdemand/deis repository
  • A new component, deis/controller, runs both the Django REST API server and Celery for long-running tasks
  • The deis/tester CI component builds each container and runs make test for unit testing
  • CHANGELOG.md added to opdemand/deis and opdemand/deis-cookbook

Under the Hood

  • Install pip 1.5.4 in containers to avoid a stale .deb issue
  • Pin local Ruby at ~ 2.0.0 for berks upload

Bug Fixes

  • Fixed dead "Versions" link when generating the docset locally
  • Fixed confd wait issue when starting deis/registry

Community Shout-Outs

Please join us in welcoming @carmstrong to the Deis project! Chris will initially be focused on cleaning up our Chef cookbook and helping streamline the Deis installation process.

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

  • @foxycoder - deis-cookbook PR to add NTP client to packages
  • @brightbits - deis-cookbook PR for proxy node default response, nginx restart issue, deis layer and proxy issues
  • @alexanderkiel - lots of testing, PostgreSQL shutdown and berks install issues
  • @rwl4 - testing, registration 500 error issue

Known Issues

Proxy for Platform Services

As part of moving Deis into Docker containers, we had to change the exposed ports for some core platform services. For example, the Django API server is now exposed on 8000/tcp rather than 80/tcp. We will soon distribute a new proxy service that exposes the platform components on standard ports.

Container Timeouts

We have seen some issues with timeouts due to the public Docker Index. This can manifest as timeout errors when bootstrapping nodes. Typically re-running the provisioning operations will resolve the issue. We are working with the Docker team on a more robust resolution.

What's Next?

Docker Run Deis

Making Deis easier to install is one of our primary goals, and one of the driving forces behind our decision to containerize all the Deis components. Running Deis should be as easy as docker run deis/deis. We have a working prototype today. However, this will require some careful project restructuring on GitHub.

Enterprise-Grade Scheduler

We are now prototyping new schedulers based on Apache Mesos and CoreOS. This should dramatically simplify the Deis controller and allow Deis clusters to scale to 10,000+ nodes.

Promote artifacts from Docker Registry

In order to facilitate a streamlined CI/CD process, we need an ability to promote existing Docker images as builds (bypassing the git push process). We are currently investigating the best workflow.

SSL & General Security Improvements

For more details, see issues tagged security on GitHub.

Future

Remove the Chef Dependency

Though Chef will continue to be the recommended way to deploy Deis, we are moving away from requiring a Chef Server and using Data Bags for cluster configuration. Once we implement the new scheduler, we can remove the Chef dependency and provide support for other configuration management solutions (Puppet, Ansible, Salt).

Service Gateway

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 initial implementation and follow progress on this GitHub issue.

Interactive deis run

Though we provide the ability to run admin commands inside containers, we don't currently support interactive shells into containers (i.e. deis run bash). Once this infrastructure is in place, this will also allow us to implement log tailing and other real-time features.

Support for deis push deploys

Users should be able to push builds to Deis even if they don't use git. We are investigating a deis push command that would not require a specific VCS.

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?