If your answer to most of these questions is “yes,” then you probably have a Monolith.

img-1

What’s a Monolith?

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:

  • New features take too long to bring to market.
  • Most new releases break features that weren’t broken before.
  • Burn-in time for new developers is much longer as there is so much to learn.
  • Fixing defects on monoliths is often more difficult.

What can I do about it?

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:

  • Not implementing automated contract testing.
  • Not designing microservices so that they are truly independent.
  • Not investing in DevOps.
  • Not monitoring adequately.
  • Not adhering to best practices.

What about running on the Cloud?

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.

How do I get there from here?

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.