Typically, there are limits to how large and complex a code base can be before it starts to become unmaintainable. Applications that approach that point are called monoliths.
Monoliths typically have these types of problems:
Break up the large monolithic application into smaller, more manageable sections. These smaller sections, called microservices, are supported independently. Most new features affect only one or two microservices.
Microservices, if implemented properly, will eliminate or greatly reduce the problems listed above. The words “if implemented properly” need to be emphasized. Being successful with this approach means observing the fine print. For instance, how you break up the monolith matters. That is, figuring out which microservices will provide which pieces of functionality is easier said than done.
There are many ways to screw up a microservices implementation in a way that will prevent you from seeing the benefits. Here are a few:
As part of the refactoring effort, we can help you run on the cloud. Any code we write is cloud "capable". Whether or not you choose to run on the cloud, it should be an option. We would be happy to discuss the particulars. Any software we write can run in the cloud.
That’s where we come in. Our consultants have been breaking monoliths into more manageable applications for a couple of decades. We were breaking monoliths long before the term “microservices” became a buzz word. We’ve developed a number of consulting services to assist you through the process of breaking your monolith. Our offerings range from training, to one-on-one Advisory services, to complete outsourcing of the project. Each of these can be customized to your specific needs. Please see our Services page for more detail.