“A microservices-based architecture is like the LEGO Star Wars’ Millennium Falcon; Lego bricks that you could put together and play with immediately.” At least, that’s what Skava’s Platform Architect, David Levine, says.
The term “microservice” has been a hot topic for the past few years now. Microservices are not a new trend, but rather, a breakthrough in solving monolithic limitations as well as overall business and IT challenges.
Microservices – a granular architectural approach
Microservices are standalone business capabilities, independently deployable, and each with its own dedicated database, well-defined APIs, and an admin console that runs in its own process. An architectural approach to software development, a microservices-based architecture enables businesses to build, test, and deploy faster by using smaller chunks of independent services that communicate over well-defined APIs.
“The goal of microservices architecture, as opposed to monolithic architecture, is to break up things into ‘logical’ forms as they fit together well,” said Levine. “The key is to be independently evolved, in terms of added features, and independently deployed, in terms of running them. It’s a little bit more like Lego blocks and getting that wonderful Millennium Falcon that you can play with immediately and put it all together, and all the pieces work!”
Compared to monolithic systems, a microservices architecture provides many key benefits for ecommerce businesses to scale up, be more agile, and deploy faster.
- Autonomy and ownership: Every team has the ability to build and deploy a microservice without relying on other teams, creating more autonomy and enhancing agility in code production. Correspondingly, each team owns a microservice, such as recommendation, promotion, loyalty, or cart and checkout and only makes changes to that microservice when needed.
- Independently and highly scalable: Teams can scale parts of the platform independently, to scale easily and quickly as the business grows.
- Decoupled: Microservices are decoupled, which means you can make changes to a microservice independently without altering the entire software, and most importantly, breaking the platform.
- Technology freedom: Its flexibility gives you the freedom to choose any technology that is best suited for a particular functionality.
- Flexibility: As microservices are standalone business capabilities, companies can choose to deploy any subset of them rather than the entire platform. Microservices-based platforms are therefore more robust and cost effective.
Monoliths – an archaic system that should only live in the past
A monolithic code base was common in many ecommerce systems. Monolithic systems are “tightly coupled” and built for the most common and basic use cases, designed around desktops, laptops, and mobile websites. Within a tightly coupled software, every part of the code is dependent on and makes considerable assumptions about every other part of the code.
On the surface, a monolithic framework might appear as if it has everything you need to run your systems. However, in the long run, you’re more likely to run into situations where the framework or architecture does not fit your unique business requirements, and is thus unable to make changes in an easy, stress-free manner.
In order to do so, “…companies must abandon their enterprise architecture of the past and adopt a new one that enables perpetual evolution in their digital business processes,” according to McKinsey & Company’s “Rethinking the technology foundation for digital transformations” report.
Ecommerce businesses are encouraged to move away from monolithic systems. On a monolithic-based architecture, if your IT team makes a change to the code, the entire system may break, making it extraordinarily difficult to recover from. This may explain the heavy regression testing that is required with even the smallest change. In a monolithic solution, a programming error in any component can demolish the entire copy of the system and crash. For example, if there is a performance or code issue in the cart and checkout component, it can potentially take down 2,000 transactions, says Levine. In a microservices-based architecture, it would only take down a couple of small transactions and recover effortlessly, without affecting the entire system.
In addition, your IT team will need to find a workaround to meet your brand’s unique business needs, causing higher costs in maintenance and inefficiency. Most importantly, your business and IT teams may be hindered to take advantage of emerging and innovative technologies, frameworks, programming languages, and more.
Amazon – from one giant monolith to individual microservices
Enterprise businesses that are leveraging a microservices-based platform are benefiting from its robust, yet scalable technology. Enterprise brands, such as Netflix, Amazon, eBay, and Uber have predominantly developed and used microservices-based architectures and are seeing positive results.
In 2001, Amazon’s website was a large architectural monolith with multiple tiers and many components within those tiers tightly coupled together. Over time, as the development team’s size and code base became larger, projects matured, and the architecture became more complex, the software development life cycle began to slow down.
“We went through the code and pulled out functional units that served a single purpose and wrapped those with a web service interface,” said Amazon’s AWS senior manager of product management, Rob Brigham. “We then established a rule, that from now on, they can only talk to each other through their web service APIs.”
Amazon made architectural level and organizational changes, which provided each of their teams full ownership of one, or a few microservices. Now, Amazon’s development teams are more empowered to quickly make changes, or add new features for their microservices. According to Brigham’s presentation during an AWS conference, the AWS team performs 50,000,000 code releases per year within a microservices-based architecture, proving that microservices are scalable more than ever.
As a business, or IT executive, you want to ensure smooth deployment models and increased productivity to meet unique customer needs. Microservices-based architecture dramatically improves development and deployment processes compared to monoliths. Not to mention, keeping up with digital commerce trends and emerging technologies. While a microservices-based architecture might have a lot of pieces with many special modifications, your systems will be up and running as fast as the Millennium Falcon at light speed.