
Explore microservices with Spring Boot and Spring Cloud by contrasting monolithic architectures, implementing service discovery with Eureka, client-side load balancing, gateway routing, centralized security, and containerized deployments.
Learn to set up the latest Spring Boot tooling and plugins, access the course source code, and navigate configuration and service generation files for different variants.
Learn the basics of microservice architecture, including how spring boot and spring cloud enable decomposing a monolithic app into independent, well-defined services with REST and JSON.
Learn how to set up a Spring Boot hello world microservice using Eclipse and Spring Tools, create a basic controller, and run the app to see a hello world response.
Explore the benefits and challenges of microservices, including scalability, resilience, and cloud deployment, and learn how discovery with Eureka and a central gateway enable flexible, resilient services.
Explore microservices resilience with Spring Boot and Spring Cloud, using client-side load balancing, circuit breakers, caching and fallbacks, and secure token-based access via a centralized authorization server, plus distributed tracing.
Explore how microservices enable isolated, independently deployable services with centralized configuration, service discovery, and health checks to deliver scalable, resilient applications built with Spring Boot.
Learn centralized configuration and bootstrap techniques for microservices with Spring Cloud, using a configuration service, service discovery, and version control for deployment across hundreds of instances.
Explore converting a monolithic app to microservices by creating a two-service setup including a user service, configuring with Eclipse and Maven, and modeling user relations.
Explore building the user service model in a microservices architecture with Spring Boot and Spring Cloud, including security integration with Spring Security, defining user roles, and overriding service methods.
Add a user service controller in a microservice setup, wiring endpoints to a repository and ORM-backed database, then run and verify persistence with Spring Boot and Spring Cloud.
Add a userservice by creating a user through a controller and repository, configure request mappings, encode passwords securely, assign roles, and test endpoints with Postman.
Add Itemservice as a dedicated service and wire it with existing services to handle items, aligning with Spring Boot and Spring Cloud patterns for externalization and interoperability.
Explore adding the item service in a microservice setup, fetching all items from the database, handling item persistence, and coordinating with the user service to assemble item data.
Add a configuration repository to the configuration service to externalize configuration across microservices, enabling a central configuration server backed by Git for updates and consistency.
Learn to add cipher protection for passwords in a microservices setup by encrypting credentials with the JCE extension and restarting services via service-discovery scripts.
Explore Spring Boot and Spring Cloud, covering service registration, address lookup across instances, health monitoring, and client-side load balancing with caching.
Implement a Eureka service to create a centralized service registry for microservices, enabling registration, discovery, and resilient client access across multiple service instances in Spring Boot and Spring Cloud.
Add a Feign client to call another service without knowing its location by registering services, discovering them with Spring Cloud, and caching the service IP for efficient communication.
Explore resiliency patterns for microservices, introducing circuit breakers with Hystrix, fallbacks, and client-side protections to prevent cascading failures.
Learn how to integrate Hystrix circuit breakers into a Spring Boot microservices project, configure timeouts and fallbacks, and manage thread pools to improve resilience.
Learn to add user context by propagating a correlation id through rest calls with a request interceptor and a thread-local context, enabling consistent logs across microservices.
Learn to implement a custom Hystrix concurrency strategy that propagates the parent thread context, wrap Hystrix cores, and configure Spring Cloud to use it, with logging level setup for visibility.
Register a new Hystrix strategy and its components, wire the strategy into the Spring Boot and Spring Cloud setup, start the service, and verify endpoint access.
Explore service routing with a gateway and reverse proxy that sits between clients and microservices, applying filters, authentication, authorization, and centralized routing for secure, scalable requests.
Discover how to implement a gateway with Zuul in a Spring microservices setup, using Eureka for service discovery and custom routing to expose user and item services.
Add a Zuul filter to inject a correlation id header on all incoming requests through the gateway, enabling unique traceability across microservices in Spring Boot and Spring Cloud.
Learn how to add a post filter, route through a single entry or gateway, and propagate the correlation id and headers from request to response.
Learn how to secure microservices with OAuth 2.0 and token-based authentication, protecting resources with an authorization server, access tokens, and standard grant types.
Learn how to add an authorization server and secure microservices with Spring Boot and Spring Cloud, including authentication, token handling, and web security configurations.
Add OAuth2 config to wire up the authorization server, resource server, and client details, define scopes, and test access tokens against protected resources.
Learn to add a JWT configuration for Spring Boot microservices, using the open standard with header, payload, and signature to secure self-contained access tokens.
Enable a protected resource by configuring the service to validate a JWT access token issued by the authorization server for protected endpoints.
Explore how microservices with Spring Boot and Spring Cloud enable distributed tracing using a tracing service and paper trail, including correlation id propagation and trace id visibility.
Learn how to add Sleuth for distributed tracing in Spring Boot microservices, wire dependencies, enable trace and span IDs, and view cross-service requests in the console.
Enable distributed tracing with Zipkin in a Spring microservices setup, visualizing how each transaction flows across services. Learn to propagate tracing headers and configure sampling to identify bottlenecks.
Learn how to propagate access tokens across microservices using Spring Boot and Spring Cloud, configure security, and use tracing tools to diagnose token flow and performance.
Push microservice images to the AWS container service, set up the web service database, and deploy the image while configuring health checks, security, and basic monitoring with actuators.
Discover how to use Docker to containerize a Spring Boot microservice, build Docker images with Maven, and push Eurekaservice for deployment.
Introduce aws and set up ecs instance by configuring iam roles, security credentials, and a vpc with subnets and gateway, then launch a cluster to push and run service images.
Deploy Eurekaservice by generating container images, starting the instance, and validating the running Eureka endpoint, while configuring the environment and access controls for secure deployment.
Learn how to configure microservices by replacing localhost with proper IPs, ensuring services are recognized, and integrating a config and authorization service for secure, routed content.
Fix the authorization service in a microservices setup by resolving database connectivity, server instances, and web service availability to restore secure access.
Explore deploying more images in microservices, focusing on service registration, containerized instances, and logging, while addressing ip address naming issues and coordinating tests and updates.
This course requires you have some of the Knowledge of Java and Spring Development. I won't cover every detail of the stuff presented in the course.
Pre-requisite For This Course
You already know the basics of Java and have some experience using it.
You know some basic knowledge of Spring Framework.
You are interested in microservice-based application and how to adapt it to the cloud.
You are interested in developing the microservice-based app using Spring
What is Microservices?
Microservices is a variant of the SOA (Service-Oriented Architecture) architectural style that make an application with a structure as a collection of loosely-coupled services. In the context of microservices, each service should be fine-grained and isolated. This improves modularity and makes the application easier to understand, develop and test.
Why Microservices?
As the online society is growing tremendously, enterprises are facing competitive pressures. This impact the way developers have to about building applications, which includes Complexity, Faster Delivery, Performance and Scalability and High Availability. To meet these expectations, a movement is going on towards decomposing applications into small services and move away from a single monolithic artifact. In this case, we can build systems that are Flexible, Resilient and Scalable.
Why Microservices and Cloud?
"Cloud" is kind of overused. Every software vendor has a cloud and every platform is cloud-enabled, but they usually can be categorized into three models: IaaS, Paas and Saas. With microservices in the cloud, service instances should be brought up quickly and each instance should be indistinguishable from another.
What is Spring Cloud and Why is it relevant to Microservices?
Spring is now the de facto development framework for building Java-based application. Spring Boot embraces core features of Spring delivering a framework geared toward Java-based, REST-oriented microservices. On the other hand, the Spring Cloud framework makes it simple to operationalize and deploy microservices to a private or public cloud. Basically, Spring Cloud is an umbrella project that wraps several popular cloud-management microservice frameworks.
What is Covered in This Course?
This course consists of 9 chapters. Chapter 1 and 2 talk about the general theory and how to develop with Spring Boot. Chapter 3 to Chapter 8 work on each of the core patterns focusing on solving the challenges presented in microservice-based architecture. We will go through the basics of each chapter and then focus on developing the code. Chapter 9 introduces Docker and AWS. We will build images for each service, set up an instance in AWS and push some images to AWS.