As web applications become more complex and the number of internet users rises, so does the need to optimize the use of hardware supporting these applications. Optimization can be achieved with microservices, as they offer several advantages compared to the monolithic approach, such as better utilization of resources, scalability and isolation of different parts of an application. Another important part is collecting metrics, since they can be used for analysis and debugging as well as the basis for automatic scaling of microservices.
In our diploma work we describe the advantages of collecting metrics and identify the most important ones. We also do a detailed analysis of the Dropwizard Metrics library, which is one of the most used tool-kits for monitoring Java applications. We implement an extension for collecting metrics in microservices developed with the KumuluzEE microservice framework and simplify the development and deployment of microservices that collect and expose metrics. We describe the container orchestration and management system Kubernetes, its components and the steps needed to create a multinode cluster. Finally, we deploy the microservice and use the collected metrics to optimize the scaling process.
|