Deis 0.6.0 - Simpler, Better
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.
- 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 testfor 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
- Fixed dead "Versions" link when generating the docset locally
- Fixed confd wait issue when starting deis/registry
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
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.
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.
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.
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.
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).
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.
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.
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.