Master Microservices with Spring Boot and Spring Cloud
This course introduces Spring Boot, Spring Cloud, and the Netflix OSS suite as a way of deploying highly resilient and scalable RESTful services and web applications.
There are two parts to this course – RESTful web services and Microservices
In the first part of the course, you will learn the basics of RESTful web services developing resources for a social media application. You will learn to implement these resources with multiple features – versioning, exception handling, documentation (Swagger), basic authentication (Spring Security), filtering and HATEOAS. You will learn the best practices in designing RESTful web services.
In the second part of the course, you will learn the basics of Microservices. You will understand how to implement microservices using Spring Cloud.
Course Key Learnings:
-
Develop and design REST API and REST WEB SERVICES with Spring Boot
-
Develop MICROSERVICES with Spring Boot and Spring Cloud
-
Orchestrate microservices with KUBERNETES
-
Create containers for microservices with DOCKER
-
IMPLEMENT Exception Handling, Validation, HATEOAS, and filtering for RESTful Web Services.
-
Implement client-side load balancing (Ribbon), Dynamic scaling(Eureka Naming Server) and an API Gateway (Zuul)
-
You will set up Centralized Microservices Configuration with Spring Cloud Config Server
-
You will learn to implement Distributed tracing for microservices with Spring Cloud Sleuth and Zipkin
-
You will implement Fault Tolerance for microservices with Hystrix
-
You will understand how to version your RESTful Web Services
-
You will understand how to monitor RESTful Services with Spring Boot Actuator
-
You will understand how to document RESTful Web Services with Swagger
-
You will understand the best practices in designing RESTful web services
-
Using Spring Cloud Bus to exchange messages about Configuration updates
Course Content:
Module 1 : Introduction
-
- Microservices and RESTful APIs with Spring Boot and Spring Cloud
- Introduction to the Course and Course Guide
- A Surprise! New Course Update
Module2: Introduction to Web Services
-
- What is a Web Service?
- Important Questions Related to Web Services
- Web Services – Key Terminology
- Introduction to SOAP (Simple Object Access Protocol) Web Services
- Introduction to RESTful Web Services
- SOAP Versus RESTful Web Services
Module 3 : RESTful Web Services with Spring Boot
-
- Introduction – RESTful Web Services with Spring Boot
- Initializing a RESTful Services Project with Spring Boot
- Understanding the RESTful Services We will Create in this Course
- Creating a Hello World Service
- Enhancing the Hello World Service to Return a Bean
- Quick Review of Spring Boot Auto Configuration and Dispatcher Servlet
- Enhancing the Hello World Service with a Path Variable
- Creating User Bean and User Service
- Implementing GET Methods for User Resource
- Implementing POST Method to Create User Resource
- Enhancing POST Method to Return Correct HTTP Status Code and Location
- Implementing Exception Handling – 404 Resource Not Found
- Implementing Generic Exception Handling for All Resources
- Exercise: User Post Resource and Exception Handling
- Implementing DELETE Method to Delete a User Resource
- Implementing Validations for RESTful Services
- Implementing HATEOAS for RESTful Services
- Overview of Advanced RESTful Service Features
- Internationalization for RESTful Service
- Part 2 – Internationalization for RESTful Services
- Content Negotiation – Implementing Support for XML
- Configuring Auto Generation of Swagger Documentation
- Introduction to Swagger Documentation Format
- Enhancing Swagger Documentation with Custom Annotations
- Monitoring APIs with Spring Boot Actuator
- Implementing Static Filtering for RESTful Service
- Implementing Dynamic Filtering for RESTful Service
- Versioning RESTful Services – Basic Approach with URIs
- Versioning RESTful Services – Header and Content Negotiation Approach
- Implementing Basic Authentication with Spring Security
- Overview of Connecting RESTful Service to JPA
- Creating User Entity and Some Test Data
- Updating GET Methods on User Resource to Use JPA
- Updating POST and DELETE Methods on User Resource to Use JPA
- Creating Post Entity and Many to One Relationship with User Entity
- Implementing a GET Service to Retrieve All Posts of a User
- Implementing a POST Service to Create a Post for a User
- Richardson Maturity Model
- RESTful Web Services – Best Practices
Module 4: Quick Introduction to Microservices
-
- Introduction – Microservices with Spring Cloud
- Introduction to Microservices
- Challenges with Microservices
- Introduction to Spring Cloud
- Advantages of Microservices Architectures
- Microservice Components – Standardizing Ports and URL
Module5: Microservices with Spring Cloud – V1
-
- Uses Latest Version of Spring Boot
- Introduction to Limits Microservice and Spring Cloud Config Server
- Setting Up Limits Microservice
- Creating a Hard-Coded Limits Service
- Enhance Limits Service to Get Configuration from Application Properties
- Setting Up Spring Cloud Config Server
- Installing Git
- Creating Local Git Repository
- Connect Spring Cloud Config Server to Local Git Repository
- Configuration for Multiple Environments in Git Repository
- Connect Limits Service to Spring Cloud Config Server
- Configuring Profiles for Limits Service
- A Review of Spring Cloud Config Server
- Introduction to Currency Conversion and Currency Exchange Microservice
- Setting Up Currency Exchange Microservice
- Step 14 – Create a Simple Hard Coded Currency Exchange Service
- Setting Up Dynamic Port in the Response
- Configure JPA and Initialized Data
- Create a JPA Repository
- Setting Up Currency Conversion Microservice
- Creating a Service for Currency Conversion
- Invoking Currency Exchange Microservice from Currency Conversion Micro
- Using Feign REST Client for Service Invocation
- Setting Up Client-Side Load Balancing with Ribbon
- Running Client-Side Load Balancing with Ribbon
- Understand the Need for a Naming Server
- Setting Up Eureka Naming Server
- Connecting Currency Conversion Microservice to Eureka
- Connecting Currency Exchange Microservice to Eureka
- Distributing Calls Using Eureka and Ribbon
- A Review of Implementing Eureka, Ribbon, and Feign
- Introduction to API Gateways
- Setting Up Zuul API Gateway
- Implementing Zuul Logging Filter
- Executing a Request through Zuul API Gateway
- Setting Up Zuul API Gateway Between Microservice Invocations
- Introduction to Distributed Tracing
- Implementing Spring Cloud Sleuth
- Introduction to Distributed Tracing with Zipkin
- Installing Rabbit MQ
- Setting Up Distributed Tracing with Zipkin
- Connecting Microservices to Zipkin
- Using Zipkin UI Dashboard to Trace Requests
- Understanding the Need for Spring Cloud Bus
- Implementing Spring Cloud Bus
- Fault Tolerance with Hystrix
Module 6 : Microservices with Spring Cloud – V2
-
- What’s NEW in V2?
- Have You Already Completed V1?
- Setting Up Limits Microservice – V2
- Creating a Hard Coded Limits Service – V2
- Enhance Limits Service – Get Configuration from Application Props – V2
- Setting Up Spring Cloud Config Server – V2
- Installing Git and Creating Local Git Repository – V2
- Connect Spring Cloud Config Server to Local Git Repository – V2
- Connect Limits Service to Spring Cloud Config Server – V2
- Configuring Profiles for Limits Service – V2
- Introduction to Currency Conversion and Exchange Microservices – V2
- Setting Up Currency Exchange Microservice – V2
- Create a Simple Hard Coded Currency Exchange Service – V2
- Setting Up Dynamic Port in the Response – V2
- Configure JPA and Initialized Data – V2
- Create a JPA Repository – V2
- Setting Up Currency Conversion Microservice – V2
- Creating a Service for Currency Conversion – V2
- Invoking Currency Exchange from Currency Conversion Microservice – V2
- Using Feign REST Client for Service Invocation – V2
- Understand Naming Server and Setting Up Eureka Naming Server – V2
- Connect Currency Conversion and Currency Exchange Microservices – V2
- QuickStart by Importing Microservices
- Load Balancing with Eureka, Feign, and Spring Cloud LoadBalancer – V2
- Setting Up Spring Cloud API Gateway
- Enabling Discovery Locator with Eureka for Spring Cloud Gateway
- Exploring Routes with Spring Cloud Gateway
- Implementing spring Cloud Gateway Logging Filter
- Getting Started with Circuit Breaker – Resilience4j
- Playing with Resilience4j – Retry and Fallback Methods
- Playing with Circuit Breaker Features of Resilience4j
- Exploring Rate Limiting and BulkHead Features of Resilience4j – V2
- Debugging Guide for Microservices V2 + Docker + Docker Compose
Module 7 : Docker with Microservices Using Spring Boot and Spring Cloud – V2
-
- Match Made in Heaven – Docker and Microservices
- Installing Docker
- Your First Docker Usecase – Deploy a Spring Boot Application
- Docker Concepts – Registry, Repository, Tag, Image, and Containers
- Playing with Docker Images and Containers
- Understanding Docker Architecture – Docker Client, Docker Engine
- Why is Docker Popular?
- Playing with Docker Images
- Playing with Docker Containers
- Playing with Docker Commands – stats, system
- Introduction to Distributed Tracing
- Launching Zipkin Container Using Docker
- Connecting Currency Exchange Microservice with Zipkin
- Connecting Currency Conversion Microservice and API Gateway with Zipkin
- Getting Setup with Microservices for Creating Container Images
- Creating Container Image for Currency Exchange Microservice
- Getting Started with Docker Compose – Currency Exchange Microservice
- Running Eureka Naming Server with Docker Compose
- Running Currency Conversion Microservice with Docker Compose
- Running Spring Cloud API Gateway with Docker Compose
- Running Zipkin with Docker Compose
- Running Zipkin and RabbitMQ with Docker Compose
Module 8 : Kubernetes with Microservices using Docker, Spring Boot, and Spring Cloud – V2
-
- Docker, Kubernetes, and Microservices – Made for Each Other
- Getting Started with Docker, Kubernetes, and Google Kubernetes Engine
- Creating Google Cloud Account
- Creating Kubernetes Cluster with Google Kubernete Engine (GKE)
- Review Kubernetes Cluster and Learn Few Fun Facts about Kubernetes
- Deploy Your First Spring Boot Application to Kubernetes Cluster
- Quick Look at Kubernetes Concepts – Pods, Replica Sets, and Deployment
- Understanding Pods in Kubernetes
- Understanding Replica Sets in Kubernetes
- Understanding Deployment in Kubernetes
- Quick Review of Kubernetes Concepts – Pods, Replica Sets, and Deployments
- Understanding Services in Kubernetes
- Quick Review of GKE on Google Cloud Console
- Installing Cloud
- Installing Kubectl
- Understanding Kubernetes Architecture – Master Node and Nodes
- Set Up Currency Exchange and Conversion Microservices – Kubernetes
- Container Images for Exchange and Currency Conversion Microservices
- Deploy Microservices to Kubernetes and Understand Service Discovery
- Creating Declarative Configuration Kubernetes YAML for Microservices
- Clean Up Kubernetes YAML for Microservices
- Enable Logging and Tracing APIs in Google Cloud Platform
- Deploying Microservices Using Kubernetes YAML Configuration
- Playing with Kubernetes Declarative YAML Configuration
- Creating Environment Variables to Enable Microservice Communication
- Understanding Centralized Configuration in Kubernetes – Config Maps
- Exploring Centralized Logging and Monitoring in GKE
- Exploring Microservices Deployments with Kubernetes
- Configuring Liveness and Readiness Probes for Microservices with K8S
- Autoscaling Microservices with Kubernetes
- Delete Kubernetes Cluster and Thank You!
Module 9 : Appendix – Introduction to Spring Boot in 10 Steps
-
- Section Introduction 04 – Introduction to Spring Boot in 10 Steps
- Introduction to Spring Boot – Goals and Important Features
- Developing Spring Applications Before Spring Boot
- Using Spring Initializr to Create a Project
- Creating a Simple REST Controller
- What is Spring Boot Auto Configuration?
- Spring Boot Versus Spring Versus Spring MVC
- Spring Boot Starter Projects – Starter Web and Starter JPA
- Overview of Different Spring Boot Starter Projects
- Spring Boot Actuator
- Spring Boot Developer Tools
Module 10 : Appendix – Introduction to JPA in 10 Steps
-
- Introduction – Introduction to JPA in 10 Steps
- Object Relational Impedance Mismatch
- World Before JPA – JDBC, Spring JDBC, and myBatis
- Introduction to JPA
- Creating a JPA Project Using Spring Initializr
- Defining a JPA Entity – User
- Defining a Service to Manage the Entity – UserService and EntityManager
- Using a Command Line Runner to Save the User to Database
- Magic of Spring Boot and In Memory Database H2
- Introduction to Spring Data JPA
- More JPA Repository: findById and findAll
International student Fee: 500 USD
Job Interview Preparation (Soft Skills Questions & Answers)
- Tough Open-Ended Job Interview Questions
- What to Wear for Best Job Interview Attire
- Job Interview Question- What are You Passionate About?
- How to Prepare for a Job Promotion Interview
🎥 Your FREE eLEARNING Courses (Click Here)
Internships, Freelance and Full-Time Work opportunities
Flexible Class Options
- Week End Classes For Professionals SAT | SUN
- Corporate Group Trainings Available
- Online Classes – Live Virtual Class (L.V.C), Online Training
Related Courses
JavaScript Basic To Advance with Projects
Java Spring Boot Microservices training course
Java Developer Training (Java Course)