There is a dirty little secret lurking in this otherwise charming world of modern cloud based software: PaaS based solutions are not immune from poor software architecture. In this series we discuss the growing presence of inappropriate monolith architecture creeping into PaaS solutions and outline strategies to help you avoid in your own projects.
As an industry we love to look forward. For example, right now it is often all AI today, quantum tomorrow, and to hell with the past. Yet, we’d be remiss not to learn from the hard earned mistakes of our predecessors.
Over the recent years DMS Group consultants have had the opportunity to work on many projects leveraging Azure Functions. Like their other peers in the PaaS space, e.g. AWS Lamda, they serve as a powerful tool, enabling developers code level control of a cloud apps execution. Along with the bonus of a quick deploy, sans infrastructure, it is easy to see the attraction. However buyer beware: There is a dirty little secret lurking in this otherwise charming world of modern cloud based software: PaaS based solutions are not immune from poor software architecture. On the contrary the moment you unleash your inner developer there is a good chance you maybe walking into the same traps our industry has witnessed over a generation plus.
The word monolith acquired its bad connotation as the software industry began to look back at the product of its endeavors during the hey days of mainframe. To be fair hardware was more limited then and modularity wasn’t always practical, but this led to developers putting more and more into a single code base. The outcome became large sprawling code bases that became hard to manage and even harder to maintain.
Few of these problems will ever emerge with a few lines of code. Even a few hundred… but once a code base gets up there into the 10s of thousands of lines, if it has not been architected with extreme care, you will hit them. PaaS based code is not immune from this.
As time progresses and cloud first has become more mainstream, we notice ourselves being requested to come fix/help more client with their PaaS codebases. Some of these have sadly morphed into monoliths. A familiar theme with these is that the intent was always good and the excuses heart warming but results almost always the same. Notably:
If you recognize any of the above traits with your own PaaS solution, it may be that you’ve inadvertently created a PaaS monolith. Ironically if we review the above points you’d be correct in recognizing that many of these bad aspects were ones our industry once gleefully accused older mainframe architectures of.
In his book ‘7 Things Every Software Architect Should Know‘, Richard Monson-Haefal is quoted as stating that “Over 80% of an application’s life-cycle is spent in maintenance” hence, “you should pay a lot of attention to the problems of support and maintenance when you’re designing.” Sadly this does require some investment and effort, preferably up front. Regardless of whether you are setting out on new code or have already inherited a monolith. Bringing out lucky charms and praying at the altar of your recently discovered monolith is not going to help.

So how can you avoid this? That will be the focus of our next blog post in this series. If you cannot wait and need input and guidance on this now, reach out to us, its part of what we do. Otherwise, keep well and stay tuned for Part II.
Be the first to comment