Will those packages always be up to date even on the LTS Ubuntus?
Will you be able to support Postgres 12 and Nginx 3 on those machines?
I find it useful to deploy the application on the same OS it was dev'd on, but in a decoupled manner. The thing I despise the most is needless upgrades of infrastructure pieces of working apps (redis,python runtime,etc). Each should get there own static version.
A couple jobs back, I would package my own JVM along with the application (in an rpm) as ops was being really slow to upgrade machines. The only thing I depend on for a box is libc.
And how did you, or how do they now, handle security updates for this bundled JVM?
Sure - Ops being slow to upgrade is annoying, Ops patching a security hole and you leaving it open could be devastating.
There is a really good reason Debian forbids embedded copies of other packages, and why I despise "solutions" like Chef's OmniBus. These things are live grenades moments away from taking the whole ship down.
We would rebuild the rpm with a new JVM and redeploy the app after testing the fix.
Ha! How many copies of Lua are living in applications that Debian doesn't have control over? There are probably package maintainers excising those as we speak.
I don't want to get into a packaging philosophy war, not enough fun over text, needs to be face to face.
I had to bundle in my JVM because ops wouldn't allow more than ONE on a machine. I wanted
/opt/jvm/1.6.22
/opt/jvm/1.7.10
And I could symlink my apps to the one I needed. New apps could get new JVMs, old apps would continue to run just fine. But they wouldn't do this because it _broke_ Red Hat file system guidelines, for whatever definition of broke.
Reuse can absolutely cause over coupling. I prefer to have tractable dependency graphs.
Will you be able to support Postgres 12 and Nginx 3 on those machines?
I find it useful to deploy the application on the same OS it was dev'd on, but in a decoupled manner. The thing I despise the most is needless upgrades of infrastructure pieces of working apps (redis,python runtime,etc). Each should get there own static version.
A couple jobs back, I would package my own JVM along with the application (in an rpm) as ops was being really slow to upgrade machines. The only thing I depend on for a box is libc.