A Brief Introduction to Microservices and Containers

Microservices are the latest flavor of application architecture and development. Each of these small services (thus microservices) runs a unique process and is modular and independently deployable. They can then be combined through a relatively lightweight code set to perform whatever larger business function developers intend.

Microservices can been seen in contrast to traditional, monolithic architectures. For decades, applications were built as a single unit. The problem with this strategy is that the logic and code become interdependent. Any modifications can necessitate a myriad of other adjustments across what might be millions of lines of code, plus subsequent version control, testing, and roll-out.

With today’s “fail fast and fix it” business mindset, monolithic architecture often isn’t nimble enough to keep pace with market demands. Microservices can help and are becoming increasingly popular with IT pros responsible for creating enterprise and cloud-based applications.

A word that often comes up in relation to microservices is “containers.” Although related, containers and microservices are not the same thing. A microservice may run in a container, but it could also run as a virtual machine (VM). By the same token, a container needn’t be used for a microservice.

That being said, the two pair well together, as containers are a good way to develop and deploy microservices. Additionally, the tools and platforms designed to run containers are often well adapted to manage microservices-based applications.

We’ll take a quick look at both technologies in turn over the next few posts.

What are Microservices Again?

Martin Fowler is generally credited for defining microservices in a way that caught on in the industry. To quote his influential 2014 take on the topic:

In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.

Each microservice runs a distinct process, and it will probably manage its own database. It’s an inherently decentralized approach.

When would someone use them? Well, you might just want see Martin Fowler’s answer. Redhat also offers a hypothetical example of an umbrella company that goes something like this:

  • The company wants salespeople to enter orders for umbrellas, so they create a microservice that does just that.
  • They want to integrate a rainfall feature. They create a microservice that taps weather information so salespeople can encourage bigger orders in rainier places.
  • They want an SMS alert feature when a sale is made.

Each of the requests is a relatively simple function, which would require few lines of code. They can then be tied together by a lightweight application that calls on the service when needed.

It’s important to realize that not every subroutine or component of a larger application is a microservice. For example Facebook has different groups of developers responsible for mobile, ads, chat, photos, and other elements that comprise what we would call “Facebook,” but that doesn’t make them microservices.

Microservices are being used more and more widely. Many of the big players, including Amazon, which experiences hundreds of millions of calls to given microservices from the mobile app, website, and elsewhere, made the transition to enable the flexibility their business models require.

Don’t You Mean SOA?

Ah, service-oriented architecture. SOA is an older term with many definitions. Microservices-oriented architecture probably fits many of them; it depends on who you ask. Many IT pros find it more helpful, however, to talk of microservices as a distinct strategy. As SmartBear explains:

The typical SOA model, for example, usually has more dependent ESBs, with microservices using faster messaging mechanisms. SOA also focuses on imperative programming, whereas microservices architecture focuses on a responsive-actor programming style. Moreover, SOA models tend to have an outsized relational database, while microservices frequently use NoSQL or micro-SQL databases (which can be connected to conventional databases). But the real difference has to do with the architecture methods used to arrive at an integrated set of services in the first place.

Like in so many other parts of IT, it can be the differences that matter most. Next up, we’ll talk about how microservices can make a difference in enterprise application development.


Add Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

How Kendall Jenner Achieved a Net Worth of over $40 Million
Lessons Learned Starting an Unplanned Business
10 Things You Didn’t Know about Johnson and Johnson CEO Alex Gorsky
How George Lucas Achieved a Net Worth of $5.3 Billion
Tax Form 8949 Instructions for Reporting Capital Gains and Losses
Convenience Costs: But Not With Self-Directed Retirement Plans
10 Benefits of Having a Lane Bryant Credit Card
10 Benefits of Having a Maurices Credit Card
What Is Graphene Armor And How Is It A Game Changer?
The Bionic Lens Could Lead to Better Than 20/20 Vision
How Bladeless Wind Turbines May Power the Future
What is the Virgo Supercluster and Why Does it Matter?
The Five Best 5-Star Hotels in Bangalore
The Five Best Mexican Restaurants in Tucson, AZ
Five Unique Places to Stand-up Paddle Board Around the World
10 Things to Do in Kansas City for First Time Visitors
The 10 Best Muscle Cars of the 1980s
The History and Evolution of the Porsche 356
The History and Story Behind the Bentley Logo
Why You Should Consider Gotham Dream Cars for a Supercar Rental
The Five Best Tommy Hilfiger Watches on the Market Today
The Five Best Vostok Watches on the Market Today
The Five Best Raymond Weil Watches on the Market Today
The Five Best Rockwell Watches on the Market Today