Azure Workshop with Quarkus, Spring Boot and Micronaut
Written by Nikos Vaggalis   
Thursday, 27 April 2023

This free self-paced workshop shows how to develop sample microservices in Quarkus, Spring Boot and Micronaut as well as how to package them in Docker containers, deploy them and monitor their performance.

As if going through the modern workflow of packaging and deploying microservices wasn't important enough, add to that coding them in modern Java runtimes/frameworks.

For each the workshop implements a few simple CPU and memory consuming algorithms and packages them into microservices, accessible through a REST endpoint which executes them. The backend uses a repository to store the results of the algorithms execution in a relational database.

But that's not all; after the coding part is completed, it goes to shows how to deploy them on Azure Container Apps by packaging them in Docker images and afterwards applying some load on them in order to monitor them, scale them, checking their logs, etc.

The procedures of:

  • Setting Up the Azure Container Apps Environment
  • Deploying the Applications
  • Load Testing, Scaling and Monitoring the Applications

are runtime agnostic. What changes is the development of the microservice in each of Quarkus, Spring Boot and Micronaut. That exercise acts as a comparison and a good starting point
in learning how to make a microservice in each of them so that you decide what suits you best.

welcome-deploy

However, it doesn't extend to benchmarking every runtime but since all the collected metrics are being stored in the backend PostgreSQL database in the distinct tables Statistics_Quarkus, Statistics_Micronaut and Statistics_SpringBoot, deriving conclusions is left as an exercise for the reader.

Having a good understanding of those metrics is eye opening because :

  • When you know CPU usage you are better prepared to answer the following questions:
  1. Is the amount of CPU resources maxed out?
  2. Have I over provisioned the amount of CPU resources?
  3. What does the baseline of usage looks like?
  4. Is there room to grow without scaling out or up?
  5. How much of the available CPU resources is it really using?
  6. What type of load is it?
  • When you know memory usage you are better prepared to answer the following questions:
  1. Is the amount of memory used close to the maximum available memory?
  2. Have I over provisioned the amount of memory resources?
  3. What does the baseline of usage look like?
  4. Is there room to grow without scaling out or up?
  5. How much of the available memory resources is it really using?

The grand finale goes Native, where we compile the microservices with GraalVM and then load test them to check the performance gains, if any.

All in all, while Azure-centric, the principles of developing, packaging and deploying apps on a Cloud platform are common, as such the educational value is transferable. The real deal however was learning to code under the three modern microservices frameworks of Java.

javaoraclelogo

More Information

Azure Java Runtimes Workshop

Related Articles

An Attempt To Make Java Easier To Learn

The Perfect Course On Java Basics

 

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


JetBrains Releases Aqua Test Automation IDE
16/05/2024

JetBrains has announced the public release of Aqua, its IDE designed for test automation. The full release follows a preview in 2022.



Dev Tunnels - An Alternative to Ngrok For .NET Users
06/05/2024

Dev Tunnels is a new Visual Studio option that exposes your localhost to the internet the easiest way possible. But first of all, why would you allow access from the public net to your local mach [ ... ]


More News

raspberry pi books

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Thursday, 27 April 2023 )