And Docker. There are a number of ways of packaging complete self-contained images with all of their dependencies included. In the olden days, managing dependencies on a stack of services was basically a full time job, especially when you had multiple services that all needed different versions of the same dependency.
Of course, the downside is that it potentially leads to bloat when you have multiple containers running. If you have three different images that are packaged with the same dependency version, you’re effectively running that dependency three times. Compared to simply running it once, and having all three services access it.
It’s really just a trade-off between convenience and efficiency, and most modern hardware is probably capable of handling a little bit of container bloat. Containers effectively take the modern AAA game dev approach of “we don’t need to make it ultra efficient or worry too much about compressing file sizes, because modern hardware will be able to handle it even if it’s inefficient. If users can’t boot it, we can just tell them to use better hardware.”
And Docker. There are a number of ways of packaging complete self-contained images with all of their dependencies included. In the olden days, managing dependencies on a stack of services was basically a full time job, especially when you had multiple services that all needed different versions of the same dependency.
Of course, the downside is that it potentially leads to bloat when you have multiple containers running. If you have three different images that are packaged with the same dependency version, you’re effectively running that dependency three times. Compared to simply running it once, and having all three services access it.
It’s really just a trade-off between convenience and efficiency, and most modern hardware is probably capable of handling a little bit of container bloat. Containers effectively take the modern AAA game dev approach of “we don’t need to make it ultra efficient or worry too much about compressing file sizes, because modern hardware will be able to handle it even if it’s inefficient. If users can’t boot it, we can just tell them to use better hardware.”