Let's review the key concepts of the cloud applications that we have discussed so far. We made our application lightweight by making it run on a servlet engine and start in less than 15 seconds. Our application is self-contained, as the fat JAR has all libraries to run our service. We just need a JVM to run this JAR file. It has externalized configuration (to some extent) by injecting environment from the command line and properties from application.yml and bootstrap.yml. We take a deeper look at the next stages of externalization in Chapter 7, Cloud-Native Application Runtime. The Spring actuator helped capturing all metrics and made their URL available for consumption, thus enabling instrumentation. The location abstraction was implemented by Eureka.
In the next chapters, we will enhance this service by adding to it a data tier and resiliency...