My friends’ company is using the incremental method to update/deploy a new version of their app to the customer site. But what kind of surprises me is their update/deployment is on granularity of files, not the services.
For example, suppose the finally built app in version 1 consists of two files
web_app (version 1): - file A - file B1
They will deploy all the files to the customer site. When the version 2 is built and the file B is modified:
web_app (version 2): - file A - file B2
They will only send and deploy file
B2 to the customer site. If version 3 has file
B2 deleted and file
web_app (version 3): - file A - file C
They will also delete file
B2 on the customer site and deploy
C there. Because file
A has never changed during the three versions, it is not touched in the second and the third deployments.
I haven’t learned exactly why they are doing this way. I asked, but they haven’t responded yet. But their way of deployment is so different from what I have seen around in the industry. Maybe they have some special reasons so they must do it this way.
So I did some search and wanted to find articles/information to discuss the pros and cons of this deployment. However, when I tried to use keywords such as “incremental deployment” to search, most of the articles are about incremental deployment on granularity of services (see (1)(2)(3)(4)), not on files. I did find the article Incremental deployment vs full deployment, but I’m also wondering if there is any other literature that discusses this topic further in depth in the history of software engineering.
A second question is: Are there valid scenarios that such incremental deployment is indeed a good choice?