As you may have noticed, DevAssistant has historically focussed on setting up the developer’s development on bare metal, or the actual operating system, if you will. Even now, this is a very popular way to develop your applications across languages. However, with the ascent of Linux Containers and Docker, it makes more and more sense to support development in a container, which is later deployed to production without further changes. This is the reason why we took up the challenge and built a proof-of-concept Django Assistant script (or simply Assistant), which is an example of a new functionality that will add significantly to the way DevAssistant works.
With this new Assistant, you can create portable environment that contains everything that is necessary to develop a Django application in a Docker container (Right now, the scope of the portability is RPM-based distributions, but that is not where we intend to stop, of course.), with dependencies installed mainly from upstream repositories. This means that with the help of tools like Docker and Fig, the entire environment will be generated as a Docker image, which you, as the developer, will then use for developing the actual application, and which you can easily share with other team members or contributors. Furthermore, this main “creation” Assistant is supplemented with “modifying” Assistants that allow you to easily add, remove or modify dependencies in the Docker container, and instantly rebuild it as well, which comes handy when you maintain the project later.
There is much to be done right now, however. As I mentioned, at the moment, we have a Django Assistant only, which generates two containers (Apache/mod_wsgi/Django and a PostgreSQL container, both based on CentOS 7), but in the future, we intend to add more languages and frameworks as well, including Ruby on Rails, PHP, Perl, Java, and more. The same goes with the actions you can do with the project. We want to add functionality like sharing via a SCM (e. g. GitHub, as we are already tightly integrated with it), building on the Fedora Infrastructure, or pushing directly to OpenShift. Stay tuned.
The Assistants can be found at https://github.com/devassistant/devassistant-assistants-djangopoc .