|
|
|
|
|
by awalGarg
3881 days ago
|
|
Sorry I am pretty much a noob (specially at containerization) compared to most of the peeps here, but I can't resist asking - what is the need for this? What exactly does the author mean by "services (like databases) without needing to setup and maintain these environments manually"? Don't we just install node/mongo once ever followed by only updates? My question is not just for this particular thing, but all "lets dev in a container" thing like python's virtual env, npm's "local hard copy of all the modules" etc.? Does it really happen that your node binary or $language interpreter/compiler gets infected/changed somehow? Or one of your crucial modules gets borked? And if it does, shouldn't we be looking at investigating why such a thing really happened in the first place instead of duplicating everything? As for maintenance, what kind of maintenance does node (or any $compiler or $interpreter) require? Don't they just sit waiting for invocation with some code to return the output/compiler binary? The only thing I have ever needed is stuff like nvm/rvm for using multiple versions of the same package/interpreter/compiler. Can anyone educate me? |
|
With DevLab, you not only get an environment that very closely matches (or can be made to closely match) production, you also get a clean, blank-slate installation any time you run tests or any other task against your app. If you're developing locally, you're prone to database cruft, evolving configurations, pre-existing tempfiles, and other complications that can be easily avoided with the use of good development tooling.
Now extend that idea to multiple applications: chances are, your team isn't developing just one thing. You probably have multiple development concerns, and if you have an architecture like an SOA, you may have a multitude of microservices. When you update the language they're based on, be it node, go, python, or anything else, you need the ability to test and update your applications individually. You need your entire team to be using the same versions for the same applications. And more than anything, you need your potentially large team to get all these updates without collective hours of manual work to orchestrate those configurations on their own local machines.
My colleague addressed the question of DevLab vs. Compose elsewhere in this topic, but even if you don't use DevLab, I do heavily encourage virtualizing your environment to avoid these pitfalls in the way that makes the most sense for your team.