Monolithic vs Microservice: Can Davids Really Take Down Goliath?

Robert Stone presented a comparison between two different styles of architecture: the monolith and microservices. This presentation was focused on convincing a company of the benefits of changing architectures.

Monolith

He began by describing what he means by the monolithic style. In a monolith, all of the components of the system work closely together. These components are written in the same language, using the same frameworks. They are pretty tightly coupled. The monolith must handle the entire operation of whatever task we are trying to perform. It must also act independently of other applications in the company.

Monoliths are not all bad. Robert described a number of advantages:

On the other hand, monoliths have some definite disadvantages.

Microservices

Then, Robert went on to describe a Microservice architecture.

He did not shy away from listing some of the disadvantages of microservices.

On the flip side, he described a number of advantages as well.

Migration Strategy

Obviously, changing from one approach to another cannot be accomplished instantaneously. There must be a migration strategy.

Robert recommended a feature-driven approach. Convert one piece at a time. The order of conversion should bde driven by business priorities.

To mitigate the risks of a change-over, you should not just flip the switch, turning off the old solution and turn on the new one. A safer approach is to run the new functionality in parallel with the existing functionality. That allows you to compare the two on production data and resolve any inconsistencies. You can then retire the old functionality when the business is satisfied. Done correctly, this allows for a ramp up period. Aim for some early (and fast) wins. You can deliver value while ramping up.

Final Considerations

When comparing the two archiitectural approaches there are a number of dimensions to consider.

Audience Discussion

After the talk, the audience had some commentary. They suggested that containers are not a requirement for the microservices approach. Removing that requirement might make converting somewhat easier. It was also suggested that the advantages of microservices that we presented are possible, but not guaranteed. It still requires work. These advantages are not automatic.

The overall consensus seemed to be that the presentation was really good, but could use a little tweaking.

We had 9 people attending this month. As always, we'd like to thank HostGator, LLC for providing the meeting space and food for the group.