An Introduction to Microservices Architecture

An Introduction to Microservices Architecture

By Rodolfo Acuna, June 28, 2018      Categories: Programming Language & Frameworks      Tags:

Architecture is an important aspect of software development for most solutions regardless of the programming language they are written in.  A well-architected software solution lends itself to being easy to maintain, debug and add extensions with new features.  Whereas a poorly architected software solution can be difficult to change or debug.

Microservice Architecture or MSA is growing in popularity as a paradigm for structure software. In this blog post, we look at:

  • What is Microservices Architecture?
  • What are the benefits of Microservices Architecture?
  • Who is using Microservices Architecture?
Want the extra insights? Download our free “Companies Implementing Microservices” fact sheet!

What is Microservices Architecture?

Way before object-oriented programming, software applications were developed in a monolithic fashion, developed from top to bottom, line after line.  Sometimes, these programs had no real structure or consideration for future maintainability which often made such applications difficult to maintain or change.

The advent of object-oriented programming, and subsequently service-oriented architecture (SOA) changed all of this.  Modern applications are no longer built as monolithic solutions. Instead, they are often built as collections of loosely coupled services.

Microservices Architecture is the next evolution of Service Oriented Architecture whereby each microservice can be developed, independently of the other, even in a different programming language if required, which can run on its own.  At the heart of it, each microservice satisfies a use case or business requirement.

Microservices Architecture is the next evolution of Service Oriented Architecture

A popular way to implement microservices is by leveraging protocols such as REST/HTTP and often JSON.  As an architectural design pattern, a lot of SaaS providers have started to adopt microservices as a key approach to the development of their solutions.

Modern applications are no longer built as monolithic solutions. Instead, they are often built as collections of loosely coupled services. Click To Tweet

Some of the main players in the tech world like Microsoft and IBM are already implementing this pattern. But before we explore who’s using microservices architecture, we’ll look at some of the benefits this approach to software development has.

What are the benefits of Microservices Architecture?

Microservices Architecture has been growing in popularity and this ultimately comes down to the benefits it can bring to software development process.  In an increasingly interconnected world and as software continues to increase in its complexity, having the option to componentize functional areas or user stories into discrete, independent microservices can bring many benefits.

Some of these benefits can include, but are not limited to:

  • As each service represents a single functional area or business use case, your codebase is easier to understand.  This can also have the knock-on effect of improving developer productivity.
  • With an easier to understand codebase, it is much easier for developers to identify faults in an application.
  • You can accelerate the delivery of your software solutions as each microservice is developed independently of the other.  Multiple programming languages can be used if you want, thereby increasing the size of the talent pool you have access to.  All of this helps improve the velocity of your team.
  • As everything is encapsulated into individual microservices, you only need to deploy the services that you’ve changed and not the entire application, this can make your deployment process more streamlined.
  • As microservices are, by their nature, componentized and self-contained, they naturally lend themselves to being integrated with other applications or services via industry standard interfaces such as HTTP or REST.  This makes your applications truly scalable.
  • As each microservice is organized around business cases and not individual projects, microservices can be reused and easily slotted into other projects or services, thereby further reducing development costs.

Who is using Microservices Architecture?

Now that we’ve explained what microservices architecture is and looked at some of the benefits of this architectural design pattern, it’s time to look at microservices in action in the real world.

Amazon

Rob Birgham, who is a senior AWS Product Manager shared a story where he explained how microservices architecture was used to let Amazon deliver software at scale.

Back when Amazon was newly launched, the website was developed as one big monolithic solution, a lot of web applications were built that way back then.  Over the next few years, however, as Amazon branched out to other retail areas other than books, the number of developers required to build, debug, integrate and maintain the website started to impact the team’s productivity.

It wasn’t out with the ordinary to allocate days, or sometimes whole weeks, to merge developer changes into the master branch of the product, again all affecting how quickly the team could ship product.

Want the extra insights? Download our free “Companies Implementing Microservices” fact sheet!

Realising that working like this wasn’t scalable or sustainable if the business wanted to grow, Amazon decided to decouple their monolithic codebase by adopting a microservices architecture.

After this process was complete, it then allowed Amazon to design a highly decoupled architecture whereby each service could function independently which consequently meant the business could be agiler in their software delivery.

companies who has implemented microservices architecture

eBay

eBay is another online giant that implemented the microservices architecture.  The online marketplace processes millions of transactions a day.  CTO Steven Fisher goes on to say that eBay consists of over 1,000 services with “front-end experiences that call back service APIs”.  There is a service for each job that must run within eBay and each development team is responsible for its own set of services.  By adopting microservices architecture, the team can:

  • decouple and remove unnecessary dependencies
  • make it easier to allocate new development work
  • make it easier to add new functionality

When new development has been completed on a service, eBay is then able to spin up a continuous integration environment in its cloud environment with the required infrastructure and can then transition the new development or microservice through the respective DEV, TEST, STAG and PRODUCTION release paths.

Microservices Architecture has been growing in popularity and this is ultimately down to the benefits it can bring to software development process. Click To Tweet

All of this is made possible due to the independent nature of each microservice.  This just wouldn’t be possible if eBay’s web application was still developed as one big monolithic software solution. With as many as 800 million items for sale on the site at any given time, eBay can’t afford to have much of the way of scheduled downtime.

You can read more about eBay’s infrastructure and microservices implementation here.

Want the extra insights? Download our free “Companies Implementing Microservices” fact sheet!

Summary

In this blog post, we’ve looked at Microservices Architecture.  We discussed what some of the benefits of this architectural pattern are and how they might be able to add value to your business.  We’ve also highlighted some points that might give you some ideas in terms how this pattern can help software professionals better structure their applications.  Finally, we finished up with looking at how Amazon and eBay have adopted microservices into the software the powers their solutions.

Here at Growth Acceleration Partners, we have extensive expertise in many verticals.  Our nearshore business model can keep costs down while maintaining the same level of quality and professionalism you’d experience from an onshore team.

Our Centers of Engineering Excellence in Latin America focus on combining business acumen with development expertise to help your business.  We can provide your organization with resources in the following areas:

  • Software development for cloud and mobile applications
  • Data analytics and data science
  • Information systems
  • Machine learning and artificial intelligence
  • Predictive modeling
  • QA and QA Automation

If you’d like to find out more, then visit our website here.  Or if you’d prefer, why not arrange a call with us?

The following two tabs change content below.

Rodolfo Acuna

Rodolfo Acuña is the CTO at GAP. With over 18 years of experience as a software developer, Rodolfo has skillfully engineered the software architecture for a highly technical and varied set of projects. His passion for teaching has helped him nurture and coach different groups and technical members across the company. Rodolfo’s mission at GAP is to identify and grow the best talent for their top capacity while delivering premium software to GAP’s clients.

Comments


Leave a Comment

Your email address will not be published Required fields are marked *

Subscribe to our Newsletter