A
A
Artyom Innokentiev2016-04-06 11:56:30
Django
Artyom Innokentiev, 2016-04-06 11:56:30

How do you quickly deploy the environment?

The task is this:
The project has a huge number of dependencies, both Python dependencies and Linux packages. When we deployed the entire environment last time, we spent several hours.
I understand that the environment is raised on the working machine 1 time, but when the task of connecting new developers (be it at least backends or frontends) arises, helping them with raising the environment every time is a pain.
What do you use to quickly deploy the environment?

Answer the question

In order to leave comments, you need to log in

10 answer(s)
O
OnYourLips, 2016-04-06
@OnYourLips

2-3 minutes should be enough with normal tools.
Try vagrant and ansible.
Some advise docker, but its use affects the workflow (during development, you need to consider that it is).
In addition, you are optimistic about a few hours without process automation. Try to guess how long it will take to set up the system for a front-end developer who is not familiar with python.
And with automation a few minutes.

A
Alexey Cheremisin, 2016-04-06
@leahch

I use virtualenv + ansible (or fabric in simple cases). For a developer, it is enough to raise a couple of virtual machines with databases in docker or kvm.

A
Alexey Vakhitov, 2016-04-14
@smidth

Docker is the best solution in my opinion. There will be no problems either with the connection of new developers, or with the work of existing ones.

E
Eugene, 2016-04-06
@e-antonov

1. dependency manager + ansible
2. your ready-made vagrant base images (this is if you need to distribute something locally, for example, in a group of developers). no vagrant in production.
3. docker with a set of your images.

D
Danil Biryukov-Romanov, 2016-04-06
@urtow

Vagrant + bash scripts, since my system is simple.
For more complex ones - ansible or salt.
As a result, the dev environment unfolds in minutes.

S
Sanes, 2016-04-06
@Sanes

Ansible

D
denizen, 2016-04-08
@denizen

Build the project into a deb package. The system package manager itself will pull out all the dependencies during installation.

A
Andrew, 2016-04-14
@couchemar

I use nix

N
Nikolay Korotkiy, 2016-04-14
@sikmir

Fabric

S
Sergey Eremin, 2016-04-14
@Sergei_Erjemin

virtualenv and keep a copy of it in the cloud... If I need to deploy the environment on a new machine, I port the environment folder from the cloud and specify the path to the python in this folder for the project. If you do not porting, but synchronization, then you can maintain a single environment on several machines at once.
The method assumes the same OS on all machines. Not necessarily the OS of the same version, but if on one machine Ubuntu, and on the other Windows, then the method will not work. But if Windows 8.1 64 bit and Windows 7 x68 - then easily.
Another secret is to use 32-bit versions of python inside the environment. It is also more useful for making libraries more accessible.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question