Think You Need Microservices? Think Again

Image for post
Image for post

Microservices have been everywhere for the past few years. YouTube is using them. Facebook is using them.

But should you use them?

Spoiler alert: Microservices probably isn’t the best solution for your cloud architecture. In this article, we’ll explain why.

Let’s start with the basics.

What Are Microservices?

For years, a monolithic architecture has been a dependable way to compose systems. These systems have multiple components all under the same service. They leverage internal libraries and don’t require much network activity.

The other, newer, sexier option is microservices. Rather than a single service, microservices have many components, each with its own specific process. Each component has distinct lines of responsibility and is separated from one another.

Here’s an example:

When you log into your email, a few things must happen.

  1. You visit a webpage
  2. You submit your login and password
  3. Your device connects to a database
  4. A server grants your access
  5. A new webpage loads with your email interface

In a microservice architecture, each of these steps would be contained within their own process. In order to complete the full task (logging you into your email), each of these components much communication over the wire. This breaks up your environment into tiny pieces of information and requires multiple connections to function.

Why Are Microservices So Popular?

It’s because the big boys are doing it.

We often hear things like,

“Microservices is scalable! I want to scale.”

“Microservices is reliable! I need reliability.”

“YouTube is using microservices and they are soooo cool!”

Tech giants like Facebook and YouTube are using this architecture because they’re operating at a scale larger than 99% of companies that exist.

They need a system that can process 6,000 user requests per second. They have two billion users.

But Here’s The Problem

The fact is that most software architectures won’t ever be difficult or complex enough to require microservices.

Most companies (read: your company) can handle a simple architecture. Rather than breaking out systems, you can copy systems.

Here’s What You Should Do

However, like all things, it depends on your unique use case.

While you’re the subject matter expert of your domain, don’t underestimate the power and simplicity of a well-maintained monolith. Once you start using microservices, you put yourself into a design paradigm that you can’t easily get out of.

If your application requires certain functionality that isn’t easily internalized, such as NLP or a machine learning process, you would be a good candidate for separate service, while still maintaining the sanctity of a monolith application.

Overall, well designed monolithic architectures are simpler and easier to maintain. And when it comes to architecture, the simpler the better.

Originally published at https://devetry.com on October 20, 2020.

Written by

CTO at Devetry (www.devetry.com). I write about technology, software development, and entrepreneurship. I also play guitar and love whiskey.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store