Microservices 101: Understanding and Leveraging Microservices
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.