Skip to content

This repository contains a Java microservice built with the Quarkus framework, optimized for deployment in Kubernetes environments. The application leverages Quarkus' lightweight, fast-booting, and cloud-native architecture to deliver high performance in containerized deployments.

License

Notifications You must be signed in to change notification settings

a1brz/quarkus-app

Repository files navigation

Java application based on Quarkus framework

  • GitHub Actions as a CI/CD
  • GitHub Packages as a Docker images storage
  • Kubernetes as a container management tool
  • AWS EKS as a managed Kubernetes service
  • GraalVM and HotSpot implementation available
  • Reactive RESTful Web Service
  • Java 11

Useful commands:

Run app locally:

./mvnw package
java -jar target/quarkus-app/quarkus-run.jar

Run app locally with hot-reload:

./mvnw compile quarkus:dev

Run app in Docker container with OpenJDK HotSpot:

./mvnw package
docker build -f src/main/docker/Dockerfile.jvm -t a1brz/quarkus-app .
docker run -i --rm -p 8080:8080 a1brz/quarkus-app

Run app in Docker container with GraalVM:

./mvnw package -Pnative -Dquarkus.native.container-build=true
docker build -f src/main/docker/Dockerfile.native -t a1brz/quarkus-app .
docker run -i --rm -p 8080:8080 a1brz/quarkus-app

Push Docker image into GitHub Packages:

./mvnw package -Pnative -Dquarkus.native.container-build=true
docker build -f src/main/docker/Dockerfile.native -t a1brz/quarkus-app .
docker login docker.pkg.github.com -u enter-github-username -p enter-personal-access-token
docker tag IMAGE_ID docker.pkg.github.com/a1brz/quarkus-app/quarkus-app:latest
docker push docker.pkg.github.com/a1brz/quarkus-app/quarkus-app:latest      

Deploy with Kubernetes:

kubectl apply -f kubernetes.yml

For AWS EKS please update kubectl configuration first using AWS CLI:

aws eks update-kubeconfig --name test-cluster
kubectl apply -f kubernetes.yml
Scaling in Kubernetes:
kubectl scale --replicas=10 deployment quarkus-app
Kubernetes pods monitoring:
kubectl get pod -w

About

This repository contains a Java microservice built with the Quarkus framework, optimized for deployment in Kubernetes environments. The application leverages Quarkus' lightweight, fast-booting, and cloud-native architecture to deliver high performance in containerized deployments.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages