
Learn the fundamentals of microservices and deploy them on Kubernetes, including building or migrating services, and monitoring performance. Get hands-on with Java Maven, Docker, and Kubernetes deployments, services, and pods.
Meet Manav, a seasoned developer and former enterprise architect who leads development at a leading North American consulting firm and mentors students worldwide.
Build a two-service project management platform with a project service for CRUD operations and a budget service for budget status, backed by Postgres and Kubernetes deployments.
Define MicroProfile and its benefits, outline its core specifications for configuration, health, and fault tolerance, and show how to build APIs with Jakarta EE 9 dependencies in a Quarkus runtime.
Explore the Quarkus runtime basics: how Java class files flow through the JVM, Caucus runtime, and LLVM to produce machine code for microservices.
Encapsulate a native Java microservice in a Docker container and deploy it to Kubernetes with caucus, featuring Maven driven development, OpenTelemetry, and live coding.
Set up your java development environment by installing a jdk, sdkman for caucus, docker, and mini cube for a local kubernetes cluster, then choose intelligent as your ide.
Install and verify Maven, use the Quarkus archetype to generate a microservice with a hello world endpoint at /projects, then run in dev mode for live coding.
Explore Quarkus toolkit features by using the dev UI to run and test a hello rest easy app, inspect endpoints, edit application properties, and switch between dev and production modes.
Build a native image of the Quarkus microservice by running mvn install with the native profile, then run the resulting native executable for dramatically faster startup thanks to LLVM.
Deploy a Quarkus microservice to minikube by building a docker image, generating Kubernetes yaml, and using the minikube dashboard to monitor the service url.
Build a project microservice with get endpoints that return all projects and a single project as json, using a project bean and RestEasy json support.
Shows how to write RestAssured tests for a Quarkus Java microservice, asserting get /projects returns 200 and a list of four projects, and validating a project by id.
Add post, put, and delete endpoints to a Quarkus microservice, handling project creation, status changes, and removal with json input and appropriate error handling.
Explore data persistence across three modes: in-memory H2 for testing, a system Docker environment with Postgres, and a mini cube Kubernetes setup.
Configure an in-memory H2 database with Quarkus and Hibernate, replacing the project list with a database-backed entity model managed by the entity manager and named queries.
Connect your Quarkus microservices to an external PostgreSQL database by launching a PostgreSQL Docker container, configuring the Quarkus datasource to PostgreSQL, and updating the JDBC URL and credentials.
Define and run tests against an edge to database while executing production commands against Postgres, using test profiles and properties to switch databases automatically.
Explore how to persist data across in-memory and external Postgres databases, prepare for mini cube deployment, and manage configuration for Kubernetes-like environments.
demonstrates configuring a default client name for new projects, adding a client name property, and wiring a class-level default as a config property, with database updates and precedence tests.
Explore how configuration ordinals determine precedence among micro profile config, application properties, caucus config map, environment variables, and system properties, with environment profiles and default values in Quarkus.
Implement a project service config mapping to group properties and inject it into the project resource. Unwrap config with smallrye to read the client name from the config map.
Deploy a Postgres database to Minikube and expose its service. Configure Kubernetes secrets and config maps to manage credentials and override app settings via Quarkus Kubernetes config.
Restructure the project under Micro Services Caucus, create and mock the budget service for interface-driven tests of allocation, utilization, and status, then deploy both APIs in a mini cube environment.
Restructure the code base by creating a parent project 'Microservices Caucus', move the project service under it, configure modules, and build with mvn clean install. Next, add the budget service.
Create a budget service that returns a project’s status (green, amber, red) by calculating allocation and utilization, integrated with the projects microservice in the caucus microservices project.
Connect the project service to the budget service by adding a budget status field, defaulting to green, and updating the project resource to return the enriched project data.
connect a budget service to a product service using a registered rest client and dependency injection, with a config key for the budget service url.
Instantiate a mock budget service with via mock and wiremock within a test resource lifecycle manager, start a mock server, override budget service endpoints, and validate project status in tests.
Deploy and connect budget and project microservices to Minikube by containerizing them, configuring their URLs, and validating deployment through the Kubernetes environment and dashboard.
Learn to work with health checks and metrics in Quarkus-based microservices on Kubernetes, covering liveness and readiness checks, endpoints, and custom health implementations.
Enable metrics by adding the metrics extension, expose the metrics endpoint, and use readable JSON with accept headers to monitor class loads, heap usage, cpu load, and dashboard-ready graphs.
Complete this course by building microservices with http methods, container images, and kubernetes specs, deploying on mini cube, and configuring services with a config map and environment variables.
Welcome to K8s Native Microservices on Quarkus course.
This course works on the latest versions of software as of July 2022
This course is intended for developers who are already familiar with Microservices and wish to implement them on Quarkus.
Equally, Quarkus developers willing to build micro-services can benefit by going through the lectures in this course. The course covers creating new microservices on Quarkus and deploying them to the Kubernetes environment as docker images or pods.
Working through a combination of theoretical concepts and practical code walkthroughs, a developer should follow along and build as we go through the lectures.
We will start our journey with basic concepts of JVM, why we need native deployable and the use of GraalVM. Then we build our first micro-service on Quarkus runtime, test it using RestAssured and deploy that on Minikube.
Our microservice will be able to handle all HTTP methods GET, PUT, POST and DELETE and later, we will connect it to an external database.
Then for our next section, we build another microservice and make it a dependency for the initial one. We mock this service in our primary service to test the behaviour, deploy both services in Minikube and see them in action.
Finally, we add health checks for liveness and readiness for each service and monitor our services' health and performance.
The course material will be your guide along the way providing relevant commands, steps of execution and references to learn more about the topic.
And if you face issues, feel free to reach out - I am here to help!