I mainly work on custom web applications that have just one production deployment.
While we are moving to continuous delivery, I was wondering if that approach reduces the need to make settings configurable.
For example, I was writing code that sends confirmation e-mails from a web server through Exchange.
Quite some configuration needs to be done:
- Version of Exchange
- An account to login to Exchange
- A sender e-mail address
- The URL of an Outlook web access service
The version of Exchange will probably change only once in a couple of years. The account to login and the sender email address will possibly never change during the live time of the product. The URL may change at some point due to whatever external reason.
Traditionally, I would make all of these configurable through a setting file, like web.config. The consideration would be that if changing any of these would unexpectedly be required, this could be done without a release of the product, which may not be feasible at the time it is required or introduce risks.
However, if your continuous delivery pipeline works as it should, couldn't you rely on the possibility to release whenever such a change is required?
What are your opinions? Have you observed a trend in this?