Build system and externalized configuration: We have to choose either a Maven or a Gradle-based system to compile, package, version, and resolve external dependencies. This will also deal with further external configurations, such as credentials, and the network locations of external services, including databases or message brokers.
Implement logging: Logging is also required for all services of a new application development. You have to configure a logging framework, such as Java, Log4j, Logj42, java.util.logging, Commons Logging, Logback, or slf4j.
Monitoring and health checks: You have to implement a monitoring system for all services in a new application development. Spring Boot applications are very easy to monitor using the Spring Boot Actuator and JMX. You have to provide a URL for the health check of the application.
Metrics: The Spring Boot Actuator also provides the metrics of an application. Metrics provide an insight into what the application is doing and how it is performing.
Distributed tracing: A microservice architecture is based on distributed services across a number of machines, so it needs to be able to trace a complete call end to end across multiple services. Spring Cloud provides a solution for distributed tracing using Spring Cloud Sleuth and Zipkin. It assigns each external request to a unique identifier, which is passed across the services to trace a complete task.