The Case for Microservices

Enterprise software architecture always evolves with new architectural styles. These are paradigm shifts in the technology, coupled with the desire to find better ways to build software application in a fast but reliable way.

  • PDF / 754,877 Bytes
  • 18 Pages / 504 x 720 pts Page_size
  • 5 Downloads / 203 Views

DOWNLOAD

REPORT


The Case for Microservices Enterprise software architecture always evolves with new architectural styles owing to the paradigm shifts in the technology landscape and the desire to find better ways to build applications in a fast but reliable way. The microservices architecture has been widely adopted as an architectural style that allows you to build software applications with speed and safety. The microservices architecture fosters building a software system as a collection of independent autonomous services (developed, deployed, and scaled independently) that are loosely coupled. These services form a single software application by integrating all such services and other systems. In this chapter, we explore what microservices are, the characteristics of microservices with real-world examples, and the pros and cons of microservices in the context of enterprise software architecture. To better understand what microservices are, we need to look at some of the architectural styles used prior to microservices, and how the enterprise architecture has evolved to embrace the microservices architecture.

From a Monolith to a Microservices Architecture Exploring the evolution of enterprise architecture from monolithic applications to microservices is a great way to understand the key motivations and characteristics of microservices. Let’s begin our discussion with monolithic applications.

© Kasun Indrasiri and Prabath Siriwardena 2018 K. Indrasiri and P. Siriwardena, Microservices for the Enterprise, https://doi.org/10.1007/978-1-4842-3858-5_1

1

Chapter 1

The Case for Microservices

Monolithic Applications Enterprise software applications are designed to facilitate numerous business requirements. In the monolithic architecture style, all the business functionalities are piled into a single monolithic application and built as a single unit. Consider a real-world example to understand monolithic applications further. Figure 1-1 shows an online retail application, which is built using the monolithic architecture style.

Figure 1-1.  Online retail application developed with a monolithic architecture The entire retail application is a collection of several components, such as order management, payments, product management, and so on. Each of these components offers a wide range of business functionalities. Adding or modifying a functionality to a component was extremely expensive owing to its monolithic nature. Also, to facilitate the overall business requirements, these components had to communicate with each other. The communications between these components were often built on top of proprietary protocols and standards, and they were based on the point-to-point communication style. Hence, modifying or replacing a given component was also quite complicated. For example, if the retail enterprise wanted to switch to a new order management system while keeping the rest, doing so would require quite a lot of changes to the other existing components too.

2

Chapter 1

The Case for Microservices

We can generalize the comm