Before we move on to the concepts of REST services, microservices, and Cloud-Native applications, let's take some time to understand the common goals we have when we develop applications. Understanding these goals will help us understand why applications are moving toward the microservices architecture.
First of all, we should remember that the software industry is still a relatively young industry. One thing that's been a constant in my decade and a half experience with developing, designing, and architecting software is that things change. The requirements of today are not the requirements of tomorrow. Technology today is not the technology we will use tomorrow. While we can try predicting what happens in the future, we are often wrong.
One of the things we did during the initial decades of software development was build software systems...