4 ms·
There are a few main benefits of a monorepo: - much less admin, don’t need to maintain/update so many repos - easier to coordinate changes between systems at
by BillinghamJ 8y ago
There are a few main benefits of a monorepo:
- much less admin, don’t need to maintain/update so many repos
- easier to coordinate changes between systems at the same time
- everything is on a single version of each library - you don’t have some services on one version, some on another, etc
Benefits of having a single Docker image:
- much faster (overall) build times - doing everything in one go is way faster than doing each one individually
- much faster deployment - only have to download the image once per host, rather than many variations
- most services have a similar set of the same base dependencies, so reduces duplication
- overall the difference in image size between including one service and including all of them is probably only 5-10MB anyway
Those are just the things which immediately come to mind. There are probably many others.
- matt_kantor 8y agoAll of the items in your mono-container advantage list go away if you consider the alternative of having a bunch of separate images that share a common base image. Image layers are immutable and get deduplicated/cached individually when stored or sent over the network. For example if you pull 10 images with a common base to the same host, the first image might be slow to download but after that docker only fetches the deltas between it and the rest.
- BillinghamJ 8y agoI am well aware of that. That doesn’t change the significant decrease in admin time spent, or the improvement in usability for our engineers.