Ever been in this situation?
You have put lot of efforts in developing an application by employing best practices and design. Quite happy with what you’ve done, no big issues have been reported. The system is almost decoupled and every business domain resides in its own dll(s) and you have been releasing your product in 2 weeks iteration. Great, Great…
However,
As the system grows, it makes the life a bit harder. You’ll notice any changes to the system involve building and deploying a new version of the application. The best approach would be a good deployment strategy which is usually taken care by tools. By manual updates, still doable!
To make matters worse,
If your managers have some scalability in their minds or your apps are being deployed on the cloud or any other reasons that tie change cycles together, this is the beginning of your clients’ frustration. A change to small part requires the whole system’s rebuilt. It would make you pure evil after some updates. Evil, Evil…
‘Microservice architecture’ comes to your rescue. In short, building a suite of small services (usually communicating over http), each running its own processes. They’re independently deployable…
Micro-services (By Martin Fowler)