Monolithic architecture is the base for many B2C and B2B eCommerce platforms. Grown over time, many of them have become monoliths that are impossible to update, adjust to new business goals or even effectively manage. That’s the case for 80% of companies that we know, including some worldwide retailers. How to tackle this problem? The answer lies in microservices.
Monolithic architecture in large companies
A monolithic architecture is the traditional, unified model for the design of a software program. In this context, monolithic refers to composed all in one piece. It is one of the oldest approaches and a great deal of the largest companies rely on it only for the reason that these systems have grown along with their global expansion and now it is extremely difficult to replace them.
There is a considerable number of problems with monolithic architecture in terms of deployment, scaling, understanding a huge code database, moving to modern frameworks, or implementing new features, etc. To maintain infrastructure based on monolithic architecture, companies are forced to sustain vast IT departments, often specialized in old frameworks like DB2, C, Pascal, .NET, Java or Cobol.
Let’s visualize it with a simple case: your system has been built upon a monolithic architecture years ago. New features have been developed over time and enlarged the code base considerably. Your team must hire new developers to maintain it but first, they need to learn the old framework and then they find it hard to understand the code base construction as there is no clear separation between various components. Now they are fixing some bugs but there is a great chance of breaking existing features causing instability of the entire system.
You may not be aware how many businesses are losing because of this.
Microservices. The great hope of old systems.
Microservice architecture represents a modern approach for constructing IT systems. Unlike monolithic architecture, microservices allow the construction of systems with a collection of loosely coupled services that are connected with lightweight protocols.
Monolithic Architecture and Microservice Architecture comparison (source)
What’s more, decomposing systems into smaller services makes it easier to understand, develop and test by autonomous teams. Do you remember the case described above? With microservices, bugs in the system would be fixed independently in the app, and only when it works when added to the whole system. Changes would be safe and wouldn’t impact the system’s security.
So why don’t we just switch to microservices?
Introducing microservices to existing systems
Existing systems are usually so large that changing them at once would disturb the security of the whole organization. It doesn’t mean though, that large system cannot be transformed with this modern approach and adapted to new business objectives.
“Almost all the successful microservice stories have started with a monolith that got too big and was broken up.” – Martin Fowler
Microservice architecture is flexible enough to be introduced in monolithic systems case by case. This can be part of a long and well-designed migration process, but it can also be used to fix the most urgent needs in the organization.
Migration process with Strangler pattern
Large eCommerce systems are a good example here. Many major brands own several eCommerce platforms that work separately for different markets. They have troubles with consistent product information systems, synchronized product introduction, global brand identity, etc. In such cases, microservices are quite handy, as adding a frontend service via API and connecting it to a few back ends respectively, allows us to build strong brand identity across global markets. The same can be done to connect an eCommerce platform with PIM, CMS, CRM or even loyalty programs. What’s more, it can be the easiest way to enter mobile-first commerce, as a frontend service can be designed for mobile devices.
Implementing microservices case by case might be a long process but it gives us time to analyze and properly design this complex ecosystem. Some companies, Twitter, Amazon, and Netflix among them, fell into the trap of building complicated structures (aka the Death star).
The Chief technology officer can use microservices as a supreme tool for rescuing old, monolithic systems. With a chosen integration technique, like an API Gateway, they can add microservices and test run proof of concepts. With the results, they will find arguments supporting microservices, and proving the business benefits for the whole organization.
With microservices, companies can quickly adapt, stay agile and continue to increase velocity in their core business. Additionally, microservices with well-written documentation for each microservice help to onboard new developers or even engage external teams in the process based on the API.
In the future, the same API can be used to implement cutting-edge open source solutions like AI or Voice Apps from external suppliers.
Published September 21, 2018