API U Series

Microservices 101: Understanding and Leveraging Microservices

Legend has it that Netflix’s entire website was floored by an absent semicolon; in this case, the legend is true. What is also true is that that semicolon is among the reasons why the media company leapt to the cloud and ultimately to a microservices-oriented application network.

In this ProgrammableWeb series, you’ll get an in-depth look at implementing microservices, which, quite arguably, is the process of designing and deploying software components that strike just the right balance between size and comprehensiveness in function while exposing themselves as services and APIs that combine to deliver an application’s end game. What’s the right balance? Well, that’s where you might get a different story depending on who you ask. But, in just about every case, the point of microservices is to help developers avoid the creation of monolithic software applications. There’s a lot to learn all at once, so in this article series we do our best to bring you up to speed.

Giant Internet retailers and service providers such as Amazon, Netflix, and eBay have been quick-marching down the microservices software architecture development path. You might be forgiven for joining in the silent cubicle prairie-dog as they trot on by. Perhaps you wonder, “Why are they going there?” “Do they know what’s at the end of the path?” “Can they get back if they have to?” “Is there pizza?”

Yes, you might be forgiven for taking stock of such a journey rather than blindly following. At the time we authored this series, Etsy and Facebook had yet to jump on the microservices train (and least not in a public way), to name a couple of dissenting organizations.

Why the fuss?
This software architecture has three very important impacts on how you work.

First, microservices encourage you to compose applications from pieces, many of which run independently and exist loosely within your overall software framework. By doing so, you are creating a highly flexible architecture with built-in accommodations for ease of evolution, modification, reevaluation of emphasis of importance, and other estimations of priority. Future-proofing may always be a fervent hope, but at least here, with microservices in your DNA, you have a specific opportunity to respond to new technologies, trends, competition, and devices as they bloom. When your software framework is broken into discrete components, not only are those components more easily re-used by other business processes, it’s much easier to substitute better technology in their place.

Second, developing applications in this way also rips aside the curtain behind which software developers operate. L Frank Baum’s Oz wasn’t too fond of transparency, but a good programmer merely shrugs. There is a sense of accountability and opportunity to microservices development that some monolithic application development deemphasizes.

Finally, production demands clear team ownership and relationships, clarified responsibilities, and a delineation of tasks.

Want to learn about microservices and how they can help your company? Be sure to check out the series’ components below.

What’s to Come
Our coverage of microservices architecture and the best techniques for building and working with it will continue. Expect us to provide more articles with a strong focus on APIs to cultivate efficiency, scalability, and security.

Traditional software development saw the creation of large, monolithic applications that encompassed all possible business activities that application may need. The newer microservice-based application architecture allows for applications that can scale by developing small, distinct components.
Microservice architecture is a topic of conversation seemingly heard everywhere in today's technology landscape. While the exact definition can be hard to pinpoint, there are lessons to be learned from the trend. This article looks at lessons around scale, velocity and risk reduction.
In part 1, we talked about microservice architectures and how they can be used to build scalable applications. In part 2, we look at what distinguishes a typical Web API that you might add to your enterprise from a microservice (with an API) and when the two approaches make sense.
This article covers some of the key differences between a monolithic and microservices architecture. Some of the key differences between a monolithic and microservices architecture involve the codebase, database, development teams, programming languages and frameworks, and testing.
A 2014 post discussing the seven deadly sins of microservices development highlighted some of the common pitfalls of a microservices architecture. Here, we look at that post in relation to a 2016 redux of the article covering the same topic from another developer’s perspective.
The microservices architecture continues to grow in popularity as it enables the scalability and flexibility necessary to serve the modern marketplace. Saba Anees discusses some key considerations for migrating your existing monolithic architecture to a more streamlined microservices one.
For a profession that stresses the importance of naming things well, we've done ourselves a disservice with microservices. The poor naming has led to misconceptions and misapplication of microservices by those hopping on the bandwagon, many times without deep understanding of its concepts.
As part of a continuing effort to publicize its move to microservices, Netflix open-sourced its code, allowing companies to use its libraries to build cloud-based microservices architectures. Here we highlight several Netflix open source software projects for building microservices architectures.
In 2015, Accusoft's SaaS Applications team needed to integrate the recently acquired edocr application with our existing Prizm Share community for publishing and sharing documents. The team chose to move to a microservices architecture and this article shows why and explains some of the...
Uber recently abandoned its monolithic codebase in favour of a modular, flexible and scalable microservices architecture. As this ecosystem of Uber microservices has grown, Emily Reinhold explains some of the design and architectural decisions Uber engineers made, and what they mean to the company.
Once a distributed application is built and deployed, it is crucial to monitor and visualize it to make sure the software is reliable, available, and performs as expected. This article looks at several new API solutions that help providers address these issues for microservice architectures.
Message brokers are a valuable tool for handling asynchronous communications directly between servers. This tutorial on the Nordic APIs Blog discusses the use of message brokers to create choreographed microservices that may offer benefits over those based on the HTTP protocol.
With all the talk and content praising the microservices design approach, you might think the monolithic architecture is outdated and inefficient, but don’t limit your options when it comes to your application and, indeed, your company. In certain circumstances, a monolithic design is ideal.