Beware of the tangled web that we weave - Microservice Maintenance

Scott Potter • 6 May 2013

From Monoliths to Microservices to Mayhem?

Introduction

This is a short post to help us think about the possible road ahead as the term microservices seems to be heard everywhere and even being touted as a Silver Bullet, an antidote to the pains of working on and owning a monolithic application.


We will carefully side-step the issue of the term 'Monolith' being misused, often incorrectly used to describe large codebases that are deployed as a single application.  Whilst describing the main characteristic, a monolith actually describes more about the lack of internal layers and the absence of external integrations.


And we will also, carefully and deliberately place our leading foot over here.....again side-stepping another issue, the other issue of the term 'Microservices' also being used to describe a wide range of ideas from simple distributed systems to the very prescriptive architecture of protocols and data ownership.  Some times pedantry and an attention to this detail is helpful, but not right now.

Modularity & Complexity

Modularity has long been the primary tool for managing highly complex situations and systems, not limited to the software world.  The concept of modularity in Software architecture is that of separating out parts of the system into separately named, addressable modules often called components.


In doing so, it makes the source code more 'intellectually manageable'.  It is therefore easy to conclude that, if we subdivide software indefinitely, the effort required to develop it will become negligibly small. Unfortunately, other factors come into play, resulting in this conclusion to be invalid.  In the graph above, the effort (cost) to develop an individual software module does decrease as the total number of modules increases. Given the same set of requirements, more modules means smaller individual size. However, as the number of modules grows, the effort (cost) associated with integrating the modules also grows.  This is true regardless of the specifics in which modules exist and the method of their integration.  As such, we can assume that as the number of distributed systems, modules, microservices increases beyond a certain number, so too does the risk of a decreasing ability to effectively maintain the overall system and its codebase.


Conclusion

Without even considering whether the distributed nature of microservices and the new set of considerations that they bring, be it data ownership, or latency, managing cross-cutting aspects such as authentication and what may still need to be centralised, we can see that whilst we enjoy the benefits that they bring today, we must keep one eye on the future. That is not to say that the answer is to revert back to, or to stick with your existing monolithic architecture, it is simply to state that modularity is a vast continuum and not simply a debate between Monolith or Microservice.  Beware of the tangled web that we may be weaving.

by Claire Green & Scott Potter 6 December 2024
Are You Really Doing a Business Impact Analysis?
by Claire Green and Scott Potter 12 November 2024
Resilience is critical, but when does being prepared cross the line into overkill? Some businesses invest so much in risk avoidance that they lose agility - the ability to pivot, adapt, and seize new opportunities. Overly complex plans, redundant redundancies, and rigid structures can actually hurt your organisation in the long run. How can you strike the right balance between resilience and flexibility? In our latest article, we explore the fine line between being prepared and being overly cautious - and how to keep your business agile in an unpredictable world.
by Scott Potter 1 May 2023
Future-Proof your business now to maximise AI in the workplace soon.
by Scott Potter 5 December 2022
Is the new generation of Artificial Intelligence intelligent?
Data Lake house
by Scott Potter 5 December 2022
It may be part of your company's technology estate and data infrastructure, or if it's not, it almost certainly will be. But what is it?  This is part of our ' Tech for the Exec' series.
by Scott Potter 29 May 2022
I want to overcome the negative impacts of unhealthy perfectionism
by Claire Green 25 April 2022
What is meant by systems and systems thinking? We’re not talking about computer systems or management control systems. What we are looking at is interconnectedness and viewing an organisation as a dynamic process.
Scrabble letters spelling the phrase 'Broken Crayons Still Colour'
by Scott Potter 18 February 2022
Do I want to overcome my perfectionism?
You didn't come this far to 'only' come this far.
by Scott Potter 1 February 2022
So, you want to improve your abilities and your performance. What or who do you turn to first? A colleague? A mentor? Online or classroom training courses? Or a coach? Executives and board members often turn to a coach first. But this isn’t true for all of us. Sometimes it’s simply down to cost - the cost of a personal coach is far greater than a training course or some form of internal mentoring scheme. Whilst this is true to a large extent, so too is the return on investment. And costs aren’t always prohibitive when compared to some courses. So, the problem with coaching is that it’s often overlooked and misunderstood.
by Scott Potter 10 May 2021
Dispelling myths about servant-leadership
More posts