
Explore microservices architecture and learn to build and operationalize microservices-based applications with Spring Boot and Spring Cloud. The course demonstrates patterns used in microservice architecture and emphasizes practical, hands-on learning.
Master microservices with spring cloud and spring boot through eight modules, covering configuration management, service discovery, routing, resiliency patterns, and distributed tracing.
Explore the basics of microservice architecture, its characteristics and advantages, why spring cloud is preferred, and how it contrasts with the monolithic design.
Explore microservices characteristics, including componentized services, independent deployment, decentralized governance and data management, REST and MQ-based communication, and automated infrastructure.
Explore how microservices architecture overcomes monolithic drawbacks by decoupling services for localized outages, enabling flexible development and targeted scalability.
Explore how Spring Cloud centralizes configuration, enables service discovery, gateway routing, circuit breaking, tracing, and messaging to build scalable microservices with Netflix OSS and Spring Boot.
Evaluate maintenance, infrastructure, and usability to decide when not to use microservices; if complexity with many fine-grained services or infrastructure costs exceed budget, choose monolithic design.
Decompose the flight booking business into independent microservices with clearly defined bounded contexts, designing service interfaces for flight management, pricing, notifications, and invoices.
Set up and initialize a Flight Schedule Service rest API using spring boot, configure essential dependencies, and illustrate how to run and test the service in development.
Enhance the flight schedule service by configuring endpoints and access control, converting the web site to a domain object, and using environment-specific property files and profiles for deployment.
Set up a currency conversion service within a microservices architecture using Spring Cloud to demonstrate service integration and deployment patterns.
Set up a flight fare service as a Spring Cloud microservice, inject currency handling, use placeholders, and wire rest calls to convert and return rates.
Explore the test flight fare service within microservices with spring cloud, illustrating how fare services function in a spring cloud based environment.
Explore what Spring Boot configures behind the scenes to enable microservices with Spring Cloud, from automatic configuration and dependencies to environment-specific settings and bootstrapping.
Revisit how to set up a Spring Cloud microservices project, define endpoints with request mapping, and enable inter-service calls, then preview upcoming configuration techniques.
Explore centralization of configuration to decouple properties from code, inject configurations at runtime from a central location, and manage them via APIs and version control for reliable deployments.
Set up the Spring Cloud configuration server for a Spring Boot project, manage dependencies across subprojects, and configure services using environment-specific properties and naming convention.
Manage configuration for microservices using the local file system within Spring Cloud. Learn to organize and apply settings across services for consistent behavior.
Learn how to manage configuration with git across spring cloud microservices in this course today.
Learn how to set up and configure a configuration client for microservices using Spring Cloud, including environment profiling, property management, and linking configuration to backend repositories.
Explore testing the configuration client in microservices with Spring Cloud, including central repository, properties, placeholders, profiles, and deploying service configurations across environments.
Explore how to refresh microservice properties dynamically using a central repository and configuration files. Validate changes with deployment logs and trigger runtime updates across all service instances.
Secure sensitive configuration properties by moving from plaintext files to a centralized configuration server and encrypting values with symmetric or asymmetric methods, then decrypting them at runtime for use.
We covered how configuration is decoupled from source code and centralized via a configuration server, enabling dynamic refresh and securing property values. The next steps focus on discovery.
Learn how service discovery enables dynamic location of services in distributed microservice architectures, avoiding hard-coded addresses, and compare DNS and load balancer approaches for high availability in cloud environments.
Set up service discovery with Spring and Netflix Eureka to enable dynamic service registration and discovery across microservices.
Register your microservice with a Eureka server to enable service discovery in a Spring Cloud microservices architecture.
Set up a cluster of Eureka service discovery servers to provide resilient, auto-failover discovery for microservices, configure profiles and properties, and verify cross-instance responsiveness.
Explore how a service lookup uses the Eureka client to query a Eureka server, retrieve application objects, and enable dynamic discovery and load balancing across instances.
Enable client-side load balancing by using Ribbon-backed Spring RestTemplate to invoke services. Compare template-driven and manual approaches, configure service location, and achieve balanced requests across microservices.
Explore how openfeign's feign client enables invoking remote services by defining a Java interface and a generated proxy, reducing boilerplate in Spring Cloud microservices.
Review service discovery in microservices with Spring Cloud, showing Netflix-style dynamic installation and removal of services without downtime, and introduce routing strategies to prevent single points of failure.
Explore how a service gateway centralizes cross-cutting concerns such as logging, security, and monitoring across microservices, enabling consistent abstraction, registry-based routing, and streamlined interactions between service providers and consumers.
Learn to set up a Spring Cloud gateway with Netflix Zuul, add and configure dependencies, enable service discovery, and run a Zuul proxy to look up and route to microservices.
Explore routes configuration in spring cloud by using a reverse proxy to map incoming requests to downstream services, and learn how discovery engines like Eureka automatically update routes.
Learn to map custom routes to Eureka-registered services, handling automated versus custom routing and ensuring consistent service naming in microservices.
Learn how to configure manual routes in the Zuul service gateway for microservices, map custom routes to backend services, and manage profiles to expose these routes.
Explore how Zuul filters implement cross-cutting concerns like logging and security in gateway and microservice architectures, with pre, routing, and post phases.
Implement an authentication filter as a zuul pre-filter in a spring cloud microservices setup, intercepting requests, extracting the target service from headers, and denying or forwarding requests based on validation.
Implement a Zuul post-filter to inspect and audit the downstream service response before sending it back, enabling response auditing and optional modifications, with browser testing.
Implement a Zuul route-filter to split traffic between a new and old service version, routing 10% to the new version and 90% to the old, with log monitoring.
explore routing and cross-cutting concerns, learn a simple spring-based approach to implement them, analyze service discovery and configuration server, and see how routers support rapid business changes.
Explore resiliency in microservices by implementing circuit breakers and bulkheads, using Netflix Hystrix for fallback and service segregation to prevent failures from cascading and maintain user experience.
Implement a circuit breaker in the flight fare service using Spring Cloud, study how timeouts and sleep delays influence responses and exceptions, and prepare for future enhancements to the circuit-breaker.
Implement a circuit breaker in the flight schedule service to control timeouts and isolation, replacing combined properties with central configuration for predictable resilience.
Implement a fallback strategy in the flight schedule service to handle slow responses, provide user-friendly messages, and ensure graceful degradation during outages.
Explore bulkhead strategy to isolate downstream services, prevent cascading failures, and preserve availability by partitioning resource pools and handling non-conforming requests.
Tune Hystrix circuit breaker behavior with customization tweaks, configuring metrics and thresholds to control open and closed states, monitor request volumes, and implement fallback strategies for resilient microservices.
Wrap up and next steps outline strategies for building a microservices-based system, addressing slow performance, fallbacks, and isolating business logic with specialized tools to boost performance.
Explore challenges of highly distributed microservices, implement cross-service request tracking with a generated tracking ID, propagate it across services, and visualize traces via a cloud tracing system and hystrix dashboard.
Implement Spring Cloud Sleuth to generate traces across microservices and propagate trace IDs through downstream calls, enabling end-to-end visibility in a Spring Cloud based architecture.
Analyze how Sleuth traces propagate across microservices in Spring Cloud by injecting trace IDs and correlating logs across services. Learn to diagnose issues using a unified log view.
Set up the Zipkin server to enable distributed tracing across microservices in Spring Cloud, view traces with the UI dashboard, and simplify log analysis across services.
Integrate microservices with a Zipkin server to monitor data flow between services and visualize interactions on a dashboard.
Explore how traces appear in Zipkin UI across microservices, diagnose failures, inspect individual requests, and understand the flow of interactions via the dashboard.
Set up the Hystrix dashboard and Turbine cluster to monitor a dispatch board and aggregate service data into a single timestream for live, centralized monitoring.
Learn how turbine stream monitoring provides a live dashboard for microservices health, showing request flow with color-coded status (green healthy, blue short-circuited) and fallback and timeout behavior.
Conclude the Spring Cloud microservices course by highlighting key takeaways and practical insights for building resilient services.
This course is designed for the Java/Spring developer who want to gain hands-on experience of how to build Microservice based applications. This course is aligned with Spring Boot and Spring Cloud project.
After this course, you will become an asset to any organization, helping leverage best practices around Microservice based Cloud solutions.
You will gain skills which will give you confidence to be a part of team working on new solution development or the migration of existing monolithic applications to cloud based solution with Microservice architecture style.
The Practical Guide: Step-By-Step
Section 1: Getting Started
Lecture#1: Course Introduction
Lecture#2: Course Structure
Lecture#3: Why this course is relevant to you?
Section 2: Microservices- The Basics
Lecture#4: What is Microservice?
Lecture#5: Characteristics of Microservice Architecture?
Lecture#6: Benefits of Microservice Architecture?
Lecture#7: Why we choose spring cloud in building Microservices?
Lecture#8: When not to use Microservices?
Section 3: Use Case: Rest Services Implementation
Lecture#9: Decomposing the Flight Booking Business into a set of Microservices
Lecture#10: Setting UP Flight Schedule Service
Lecture#11: Enhance the Flight Schedule Service
Lecture#12: Setting Up Currency Conversion Service
Lecture#13: Setting Up Flight Fare Service
Lecture#14: Test Flight Fare Service
Lecture#15: What Spring boot did behind the scene?
Lecture#16: Wrap Up & Next Steps
Section 4:Control Configuration with Spring Cloud
Lecture#17: Why we need centralization of configuration?
Lecture#18: Setup the Spring Cloud Configuration Server
Lecture#19: Manage configuration with Local file system
Lecture#20: Manage configuration with GIT
Lecture#21: Setup Configuration Client in our Microservices
Lecture#22: Testing Configuration client
Lecture#23: How to refresh the properties of the Microservice dynamically?
Lecture#24: How to secure sensitive configuration properties?
Lecture#25: Wrap Up & Next Steps
Section 5: Eureka Service Discovery
Lecture#26: What is service discovery and why do we need it?
Lecture#27: Setup Service Discovery using spring and Netflix Eureka
Lecture#28: Register our service with Eureka Server
Lecture#29: Setting up Cluster of Eureka Service Discover Servers
Lecture#30: Service Lookup from Eureka Server using Eureka Client
Lecture#31: Invoke Services using Ribbon BackedSpring Rest Template
Lecture#32: Invoke Services using OpenFeign’s Feign Client
Lecture#33: Wrap Up & Next Steps
Section 6: Routing with Spring Cloud and Netflix Zuul
Lecture#34: Introduction to Service Gateways
Lecture#35: Setup Service Gateway using Spring Cloud and Netflix Zuul API
Lecture#36: Routes Configuration in Spring Cloud and Netflix Zuul
Lecture#37: Custom Routes and its mapping with registered service in Eureka
Lecture#38: Manual Routes configuration in Zuul Service gateway
Lecture#39: What is Filters in Zuul?
Lecture#40: Implement Authentication Filter (Zuul Pre-Filter)
Lecture#41: Implement Response Audit Filter (Zuul Post-Filter)
Lecture#42: Implement Intelligent Route Filter (Zuul Rout-Filter)
Lecture#43: Wrap Up & Next Steps
Section 7: Client Resiliency with Spring Cloud and Netflix projects
Lecture#44: Resiliency in the Microservice based Application - What and Why?
Lecture#45: Implement Circuit Breaker in Flight Fare Service using annotation
Lecture#46: Implement Circuit Breaker in Flight Schedule Service using configuration
Lecture#47: Implement Fallback Strategy in Flight Schedule Service
Lecture#48: Implement Bulkhead Strategy
Lecture#49: How to fine tune Hystrix by some customization tweaks?
Lecture#50: Wrap Up & Next Steps
Section 8: Distributed Tracing
Lecture#51: Introduction
Lecture#52: Implement Spring Cloud Sleuth to generate traces
Lecture#53: Analyse the Sleuth Traces
Lecture#54: Setting UP Zipkin Server
Lecture#55: Integration of services with Zipkin Server
Lecture#56: Understand the Traces in Zipkin UI
Lecture#57: Setup Hystrix Dashboard and Turbine Cluster
Lecture#58: Monitoring using Turbine Stream
Lecture#59: Wrap Up