There is a bewildering abundance of options regarding the installation of packages and configuring them on actual servers, not to mention all the ways to deploy client-side code.
First, let's examine the basics of the problem we are trying to solve.
We have a typical enterprise application, with a number of different high-level components. We don't need to make the scenario overly complex to start reasoning about the challenges that exist in this space.
In our scenario, we have the following:
- A web server
- An application server
- A database server
If we only have a single physical server and these few components to worry about that get released once a year or so, we can install the software manually and be done with the task. It will be the most cost-effective way of dealing with the situation, even though manual work is boring...