E
E
ettaluni2021-04-25 14:03:55
PHP
ettaluni, 2021-04-25 14:03:55

What to use for PHP development? Vagrant, Ansible or Docker?

Good day! I just can't figure out what to use for projects. I have my own host, separate, 16 threads 16GB of memory. It has Virtual Box as a virtualization tool.
The problem is that the more I study Docker, Vagrant, Configuration Systems, I come to the conclusion that they are one and the same.
Well docker can't autoinstall.
So here's what to actually use? For development on MVC\Symfony, Lavarel? For development on CMS, Bitrix, Wordpress, etc.
For Node js development? Tell.

Answer the question

In order to leave comments, you need to log in

2 answer(s)
I
index0h, 2021-04-25
@index0h

It depends on what, where and how you will diploma.
For good, the closer the environment for development to production, the better.
Personally, I have worked with the following bundles:
- Vagrant + bash provisioning
This method has the lowest entry threshold, but it is very demanding on the quality of the code AND the installation and upgrade process.
- Vagrant + ansible provisioning
This method essentially includes bash provisioning, but in the ansible structure. When working in a team, be prepared for the fact that provisioning will not work well for everyone and this will be a source of your headache. If the basic bash pull up for employees does not yet raise questions, then with ansible this process will be more difficult.
-Docker
Pure docker requires far from small competence. In a team, I would strongly not recommend using it without additional strapping. In essence, you will have to make your own docker-compose.
- Docker + docker-compose
I think the best solution for the dev environment when working both in a team and without.

R
Romses Panagiotis, 2021-04-25
@romesses

Configuration management systems are used for initial setup and maintenance of the current state.
Docker is used more often to ensure that the environment is the same as in production. Those. locally developed, tested in Docker. If the tests are passed, you can roll out to production. You can deploy manually, of course. But it is better when CI / CD systems are used (Jenkins, Gitlab CI / CD, Github Actions, etc.)
In the case of Docker, such systems on the build machine build the application into a Docker container and upload it to the Docker registry, and then the container is downloaded on the target machine and starts.
In Jenkins, you can use the same Ansible to deploy the project.
Wouldn't it make more sense to use Linux as the host machine? Any VirtualBox is not suitable for these purposes.
Well, if you really need Windows - install it as a guest OS.
Here is a comparison of various virtualization systems:
https://wiki.openvz.org/Comparison

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question