Mihai Iachimovschi - Real virtual environments without virtualenv
Virtualenv is a great tool for the development environment but it's
definitely not suitable for every use case. Also, Docker is great for
running the application in production, but not everyone that use it in
production tried to use it in the development environment. Why not use
the same tool from the beginning of the project and until it hits the
production in a uniform stack of tooling? This talk will show use
cases of using Docker in the process of development as well.
-----
The process of developing using Python is very straightforward and
easy. Still, each and every developer has his own style of developing
and building his entire dev environment. Most of us use virtualenvs
which are reliable and comfortable to use. But there are some issues.
For instance, the repeatability and immutability of the built
environment are not guaranteed.
Virtualenv does a lot of work that targets the direction of somehow
isolated and independent environments. They are *almost* *fully*
repeatable. In any team, we can hear the notorious expression "It
works for me!".
For some time now, I am using Docker instead of virtualenv for
building custom and really-virtual environments that are entirely
isolated. The containers are immutable and consistent, so this
workflow guarantees repeatability. Using such technique, not only
enables the user to have unique and immutable environments, it also
allows de developer to create full app architecture that can then be
tested and deployed as is. So the production version will be in
identical conditions as the one from the development environment.
These features are not provided by virtualenv at all.
The goal of this exercise is to try to use totally different tooling
for building the application from its first line of code until the
production. |