Evolution toward Microservices and Cloud-Native Applications

In the last decade, Spring Framework has evolved into the most popular framework to develop Java Enterprise applications. Spring Framework has made it easy to develop loosely coupled, testable applications. It has simplified the implementation of cross-cutting concerns.

The world today, however, is very different from a decade back. Over a period of time, applications grew into monoliths, which became difficult to manage. And because of this problems, new architectures started evolving. The buzzwords in the recent past have been RESTful services, microservices, and Cloud-Native applications.

In this chapter, we will start with reviewing the problems Spring Framework solved in the last decade. We will look at the problems with monolithic applications and get introduced to the world of smaller, independently deployable components.

We will explore why the world is moving toward microservices and Cloud-Native applications. We will end the chapter by looking at how Spring Framework and Spring projects are evolving to solve today's problems.

This chapter will cover the following topics:

  • Architecture of a typical Spring-based application
  • Problems solved by the Spring Framework in the last decade
  • What are our goals when we develop applications?
  • What are the challenges with monolithic applications?
  • What are microservices?
  • What are the advantages of microservices?
  • What are the challenges with microservices?
  • What are the good practices that help in deploying microservices to the Cloud?
  • What are the Spring projects that help us in developing microservices and Cloud-Native applications?