Chapter 1. A Solution Approach

As a prerequisite, I believe you have a basic understanding of microservices and software architecture. If not, I would recommend you Google them and find one of the many resources that explains and describes them in detail. It will help you to understand the concepts and book thoroughly.

After reading this book, you could implement microservices for on premise or cloud production deployment and learn the complete life cycle from design, development, testing, and deployment with continuous integration and deployment. This book is specifically written for practical use and to ignite your mind as a solution architect. Your learning will help you to develop and ship products for any type on premise, including SaaS, PaaS, and so on. We'll primarily use the Java and Java-based framework tools such as Spring Boot and Jetty, and we will use Docker as container.

Note

From this point onwards, µServices will be used for microservices except in quotes.

In this chapter, you will learn the eternal existence of µServices, and how it has evolved. It highlights the large problems that premise and cloud-based products face and how µServices deals with it. It also explains the common problems encountered during the development of SaaS, enterprise, or large applications and their solutions.

In this chapter, we will learn the following topics:

  • µServices and a brief background
  • Monolithic architecture
  • Limitation of monolithic architecture
  • The benefits and flexibility microservices offers
  • µServices deployment on containers such as Docker

Evolution of µServices

Martin Fowler explains:

"The term "microservice" was discussed at a workshop of software architects near Venice in May, 2011 to describe what the participants saw as a common architectural style that many of them had been recently exploring. In May 2012, the same group decided on "µServices" as the most appropriate name."

Let's get some background on the way it has evolved over the years. Enterprise architecture evolved more from historic mainframe computing, through client-server architecture (2-tier to n-tier) to service-oriented architecture (SOA).

The transformation from SOA to µServices is not a standard defined by any industry organization, but a practical approach practiced by many organizations. SOA eventually evolved to become µServices.

Adrian Cockcroft, former Netflix Architect, describes it as:

"Fine grain SOA. So microservice is SOA with emphasis on small ephemeral components."

Similarly, the following quote from Mike Gancarz (a member that designed the X windows system), which defines one of the paramount percepts of UNIX philosophy, suits the µService paradigm as well:

"Small is beautiful."

µServices shares many common characteristics with SOA, such as focus on services and how one service decouples from another. SOA evolved around monolithic application integration by exposing API that was mostly Simple Object Access Protocol (SOAP) based. Therefore, middleware such as Enterprise Service Bus (ESB) is very important for SOA. µServices is less complex, and even though it may use the message bus it is only used for message transport and it does not contain any logic.

Tony Pujals defined µServices beautifully:

"In my mental model, I think of self-contained (as in containers) lightweight processes communicating over HTTP, created and deployed with relatively small effort and ceremony, providing narrowly-focused APIs to their consumers."

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset