What are microservices?Siw Grinaker on
You have websites, you have mobile apps, and you have microservices. Where do the latter fit into it all?
Imagine that you are building Legos. You have several pieces, or building blocks, which you can use to build whatever you like—be it buildings, vehicles, furniture, tech, or whatever else crosses your mind. Now imagine a world where Lego consisted of just one, prefabricated piece—with no customisation, flexibility, or imagination for the end user.
In the world of digital experiences the latter was actually (more or less) the reality. Historically, what we saw in digital systems like CRMs, CMSs, ERPs, and all the other abbreviations were a large lump of solutions welded together in one, large integrated system. This type of system is often called a "monolithic architecture."
Microservices function like the individual Lego blocks: They are isolated services, allowing you to split up, modularise, upgrade, and develop them independently of each other—enabling faster and safer development. Still confused? Let's see a formal definition.
Definition of microservices
The concept of "microservices" refers to a method within software system architecture where an application is structured as a collection of separate services. These services are highly maintainable and testable, loosely coupled, independently deployable, and organised around business capabilities.
An application may refer to computer software like word processors, spreadsheets, accounting applications, web browsers, media players, flight simulators, or console games— or web applications like computer programs that run in a web browser, which includes webmail, online retail sales, online auctions, social media, image editors and other advanced websites.
These applications involve many complex processes, operations, and interactions, and a microservices architecture makes the various parts of an application, and the application as a whole easier to understand, develop, test, and maintain.
Examples of microservices
Although we have listed several general examples of applications using microservices above, software company SmartBear has provided us with some specific examples:
Amazon: Amazon has moved far beyond being just an online bookstore. Now they offer, among other things, cloud services and a microservices framework through Amazon Web Services. Their microservices solution offers processing power, storage and databases, networking, messaging, logging and monitoring, and DevOps.
Netflix: The former DVD-rental-vendor-turned-video-streaming-service is among the forefront of the world's leading digital companies. You can understand why when you learn that the architecture every day receives one billion requests from more than 800 different types of devices, while hundreds of microservices work together to stream digital entertainment to millions of customers.
eBay: The world's largest market and auctioning site has also changed from a monolithic architecture to an architecture comprised of microservices. eBay's core application is made up of several autonomous applications, where each executes the business logic for different functions—like application types, commerce services, platform services, and infrastructure.
See also: 7 benefits you get from a hybrid CMS »
"What's in it for me?"
Microservices are not a magical unicorn, automatically solving all your technical woes in a heartbeat. But a microservices architecture will make it easier to perform changes to your solution, as you no longer have to change the entire structure. This will make it easier to keep track on current technological developments in the fast-evolving world of IT.
There is also less chance for a single point of failure, as the solution has more legs to stand on, so to speak, and a failure of one separate microservice is easily traced and highlighted. Microservices finally enable your developers to work with modern front-end frameworks, like Angular and React.
So, the key takeaway is: don't build Legos with one prefabricated, enormously complex piece—be smart and try to build your desired solution with several building blocks instead. It gears you up for the future and can make your solution more resilient and flexible.
PS: If you want to get into the nitty gritty, technical details of microservices architecture, or at least send your developers in the right direction, check out Microservices.io.