If you polled 100 of your closest IT friends on today’s buzziest tech topics, we’d bet that microservices would crack the top 10. And if your survey sample was comprised largely of software folks, then we’d bet microservices would land in the top five. Along with containers, the microservices approach to architecting, building, and operating applications runs hot in software circles. If only they could explain what the term “microservices” means.
Microservices makes many people – from developers to vendors to analysts to the press – get a bit tongue-tied when asked to define. That’s especially true when asked for an explanation decipherable by a wide audience.
[ What is multi-cloud and what can it do for you? See our related article, Multi-cloud vs. hybrid cloud: What's the difference? ]
To be sure, microservices is a complex, technical topic. But your audience – be they C-suite executives, business partners, or other stakeholders – isn’t always technical, and rarely wants “complex.” (The phrase “executive summary” was created for a reason.)
So we asked a group of experts: How do you explain microservices in plain English? And for an added challenge: How do you do so succinctly?
First, a quick bit of background on how we got here and why microservices are all the rage.
“Previously, we developers built applications in a way that is now known as the monolith: The project starts off small, then we just add something here, bolt on a new feature there. Then fast-forward a year or two and you suddenly have this monster of a project where you change one thing and the whole system can break. Everything is interconnected,” says BigPicture.io founder and CEO Michael Frye. “It's also much harder to scale this type of system. It's just one monster project, so you end up having to scale by throwing more servers at it, which ends up being very expensive.”
Indeed, Frye captures some of the key software architecture, development, and operational problems that microservices aim to solve, especially when it comes to large enterprise applications. Microservices architecture is also commonly touted, in concert with containers and orchestration, as a natural fit for applications that will run in the cloud and/or Software-as-a-Service apps.
[ How does GraphQL work in combination with APIs? Read also: What is GraphQL? ]
Microservices in the simplest of terms
So, Michael: Explain microservices. (Remember: Succinct and in plain English.)
“The idea with microservices is to focus on building individual services that do one thing and one thing well,” Frye says.
That’s a pretty darn good start. Let’s hear from our other experts about how they briefly explain microservices, in terms that you don’t need to be a software developer or cloud architect to understand. (And if you want a good, longer-form microservices primer, check out this microservices guide on OpenSource.com.)
- Nic Grange, CTO at Retriever Communications: “Microservices are an approach to designing software systems that are made up of small independent services that each have a specific purpose.”
- Ali Hussain, CTO at Flux7: “Microservices are an approach to addressing a large or complex business problem using a set of smaller, simpler services that work together; a microservice runs its own unique process that contributes to an overarching business goal.”
- Dr. Ratinder Ahuja, Founder and CEO of ShieldX Networks: “Microservices are an approach to application development in which a large application is built as a suite of modular services. Each module supports a specific business goal and uses a simple, well-defined interface to communicate with other sets of services.”
- Dustin Horning, Solutions Engineer at Zesty.io: “Microservices are to software what factories are to manufacturing. Instead of having one person [or] machine build a whole car, each area is specialized in its task: This one hammers rivets, this one paints.” AND “Microservices is breaking down one large objective into its parts, and having those parts be accomplished independently.” (OK, that was two explanations, but we’ll let it slide.)
- Justin Bingham, CTO at Janeiro Digital: “Microservices are components of an application or broader ecosystem architected to operate independently – each responsible for a specific business or technical domain.”
- Kong Yang, Head Geek at SolarWinds: “Microservices are a method of developing software applications which are made up of independently deployable, modular services. Each microservice runs a unique process and communicates through a well-defined, lightweight mechanism, such as a container, to serve a business goal.”
4 points to make on microservices
You’ll see some themes here worth using when talking microservices, especially when translating what is ultimately a complex topic for a non-IT audience. Let’s recap four key ideas:
- It’s a flexible and efficient approach to building and operating software.
- Microservices architecture splits large applications into (much) smaller pieces that exist independently of each other.
- Each microservice, or piece of an application, does one thing and does it well.
- Microservices take a significant amount of work – i.e. what goes into building, deploying, and updating an enterprise application – and break that work into more manageable, efficient batches.
[ Kubernetes and microservices often go together: Get our Kubernetes glossary cheat sheet for IT and business leaders. ]