Microservices With Spring Boot And Spring Cloud

Go from Restful Web Services ( REST API ) to Microservices - Java , Spring Boot , Spring Cloud , Docker and Kubernetes

Last updated 2022-01-10 | 4.5

- Develop and design RESTful web services with Spring Boot
- Develop MICROSERVICES with Spring Boot and Spring Cloud
- Orchestrate microservices with KUBERNETES

What you'll learn

Develop and design RESTful 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 setup 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
Simplify communication with other Microservices using Feign REST Client

* Requirements

* You have an attitude to learn while having fun :)
* You have experience with Java and Spring and ZERO Experience with Microservices
* You have ZERO Experience with Docker
* You have ZERO Experience with Kubernetes

Description

  • Develop and design RESTful 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 setup 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
  • Simplify communication with other Microservices using Feign REST Client

Course content

11 sections • 242 lectures

Microservices and RESTful APIs with Spring Boot and Spring Cloud - Preview Preview 03:36

Congratulations Preview 00:33

Introduction to the Course & Course Guide Preview 02:33

A surprise! New Course Updates Preview 00:51

What is a Web Service? Preview 06:08

Important How Questions related to Web Services Preview 06:41

Web Services - Key Terminology Preview 04:13

Introduction to SOAP Web Services Preview 04:40

Introduction to RESTful Web Services Preview 07:33

SOAP vs RESTful Web Services Preview 02:20

Section Introduction - RESTful Web Services with Spring Boot Preview 01:50

Step 01 - Initializing a RESTful Services Project with Spring Boot Preview 07:25

Fastest Approach to Solve All Your Exceptions Preview 00:28

Step 02 - Understanding the RESTful Services we would create in this course Preview 06:20

Step 03 - Creating a Hello World Service Preview 04:51

Step 04 - Enhancing the Hello World Service to return a Bean Preview 05:30

Step 05 - Quick Review of Spring Boot Auto Configuration and Dispatcher Servlet Preview 08:05

Step 06 - Enhancing the Hello World Service with a Path Variable Preview 03:18

Step 07 - Creating User Bean and User Service Preview 07:33

Step 08 - Implementing GET Methods for User Resource Preview 05:50

Step 09 - Implementing POST Method to create User Resource Preview 11:25

CODE BACKUP FILE : For Reference Preview 00:05

Step 10 - Enhancing POST Method to return correct HTTP Status Code and Location Preview 06:47

Step 11 - Implementing Exception Handling - 404 Resource Not Found Preview 06:56

Step 12 - Implementing Generic Exception Handling for all Resources Preview 11:53

Step 13 - Exercise : User Post Resource and Exception Handling Preview 01:16

Step 14 - Implementing DELETE Method to delete a User Resource Preview 04:32

Step 15 00 - Adding dependency for validation Preview 01:31

Step 15 - Implementing Validations for RESTful Services Preview 10:17

Step 16 - Implementing HATEOAS for RESTful Services Preview 09:53

Step 17 - Overview of Advanced RESTful Service Features Preview 00:53

Step 18 - Internationalization for RESTful Services Preview 10:11

Step 19 - Content Negotiation - Implementing Support for XML Preview 05:12

Step 20 - Configuring Auto Generation of Swagger Documentation Preview 08:11

Step 21 - Introduction to Swagger Documentation Format Preview 05:13

Step 22 - Monitoring APIs with Spring Boot Actuator Preview 04:01

Step 23 - Visualizing APIs with HAL Explorer Preview 03:50

Step 24 - Implementing Static Filtering for RESTful Service Preview 06:45

Step 25 - Implementing Dynamic Filtering for RESTful Service Preview 08:22

Step 26 - Versioning RESTful Services - Basic Approach with URIs Preview 05:18

Step 27 - Versioning RESTful Services - Header and Content Negotiation Approach Preview 09:24

Step 28 - Implementing Basic Authentication with Spring Security Preview 04:33

Step 29 - Overview of Connecting RESTful Service to JPA Preview 01:26

COURSE UPDATE : H2 Database URL & Data.sql Preview 00:14

COURSE UPDATE: Two Important Things to Remember Preview 00:22

Step 30 - Creating User Entity and some test data Preview 06:17

Step 31 - Updating GET methods on User Resource to use JPA Preview 06:32

Step 32 - Updating POST and DELETE methods on User Resource to use JPA Preview 04:17

Step 33 - Creating Post Entity and Many to One Relationship with User Entity Preview 06:05

Step 34 - Implementing a GET service to retrieve all Posts of a User Preview 04:14

Step 35 - Implementing a POST service to create a Post for a User Preview 06:09

Step 36 - Richardson Maturity Model Preview 03:22

Step 37 - RESTful Web Services - Best Practices Preview 03:29

Section Introduction - Microservices with Spring Cloud Preview 01:25

Step 00 - 01 - Introduction to Microservices Preview 04:24

Step 00 - 02 - Challenges with Microservices Preview 05:51

Step 00 - 03 - Introduction to Spring Cloud Preview 07:48

Step 00 - 04 - Advantages of Microservices Architectures Preview 02:46

Step 00 - 05 - Microservice Components - Standardizing Ports and URL Preview 02:37

Next Section uses Latest Version of Spring Boot Preview 01:29

Step 01 - Part 1 - Intro to Limits Microservice and Spring Cloud Config Server Preview 04:51

Step 01 - Part 2 - Setting up Limits Microservice Preview 05:34

Step 02 - Creating a hard coded limits service Preview 04:59

Step 03 -Enhance limits service to get configuration from application properties Preview 05:14

Step 04 - Setting up Spring Cloud Config Server Preview 03:55

Step 05 - Installing Git Preview 01:45

Step 06 - Creating Local Git Repository Preview 04:32

Step 07 - Connect Spring Cloud Config Server to Local Git Repository Preview 05:11

Step 08 - Configuration for Multiple Environments in Git Repository Preview 06:18

COURSE UPDATE : Limits service with >=2.4.0 of SPRING BOOT Preview 00:07

Step 09 - Connect Limits Service to Spring Cloud Config Server Preview 04:58

Debugging problems with Spring Cloud Config Server Preview 00:12

Step 10 - Configuring Profiles for Limits Service Preview 05:44

Step 11 - A review of Spring Cloud Config Server Preview 04:16

Step 12 - Introduction to Currency Conversion and Currency Exchange Microservice Preview 03:14

IMPORTANT : SPRING BOOT AND SPRING CLOUD VERSIONS Preview 00:07

Step 13 - Setting up Currency Exchange Microservice Preview 03:35

Step 14 - Create a simple hard coded currency exchange service Preview 06:29

Step 15 - Setting up Dynamic Port in the the Response Preview 07:10

Step 16 - Configure JPA and Initialized Data Preview 07:56

Step 17 - Create a JPA Repository Preview 05:16

Step 18 - Setting up Currency Conversion Microservice Preview 02:16

Step 19 - Creating a service for currency conversion Preview 06:58

Step 20 - Invoking Currency Exchange Microservice from Currency Conversion Micro Preview 08:15

Step 21 - Using Feign REST Client for Service Invocation Preview 11:30

Step 22 - Setting up client side load balancing with Ribbon Preview 05:11

COURSE UPDATE : Ribbon DOES NOT work with Spring Boot 2.4 Preview 00:17

Step 23 - Running client side load balancing with Ribbon Preview 04:39

Debugging problems with Feign and Ribbon Preview 00:08

Step 24 - Understand the need for a Naming Server Preview 03:21

Step 25 - Setting up Eureka Naming Server Preview 05:25

Step 26 - Connecting Currency Conversion Microservice to Eureka Preview 03:06

Step 27 - Connecting Currency Exchange Microservice to Eureka Preview 03:02

COURSE UPDATE : Exclude dependency on jackson-dataformat-xml Preview 00:14

Step 28 - Distributing calls using Eureka and Ribbon Preview 06:35

Debugging Problems with Naming Server ( Eureka ) and Ribbon Preview 00:08

Step 29 - A review of implementing Eureka, Ribbon and Feign Preview 03:58

Step 30 - Introduction to API Gateways Preview 02:50

Step 31 - Setting up Zuul API Gateway Preview 04:36

Step 32 - Implementing Zuul Logging Filter Preview 06:01

Step 33 - Executing a request through Zuul API Gateway Preview 05:27

Step 34 - Setting up Zuul API Gateway between microservice invocations Preview 07:16

Debugging Problems with Zuul API Gateway Preview 00:08

Step 35 - Introduction to Distributed Tracing Preview 03:26

Step 36 - Implementing Spring Cloud Sleuth Preview 08:34

Step 37 - Introduction to Distributed Tracing with Zipkin Preview 04:34

Step 38 - Installing Rabbit MQ Preview 04:31

Updates to Step 39 - Running Zipkin on Windows Preview 00:24

Step 39 - Setting up Distributed Tracing with Zipkin Preview 07:06

Step 40 - Connecting microservices to Zipkin Preview 03:35

Updates to Step 40 : Use spring-cloud-starter-zipkin and spring-rabbit Preview 00:16

Step 41 - Using Zipkin UI Dashboard to trace requests Preview 06:33

Debugging Problems with Zipkin Preview 00:08

Step 42 - Understanding the need for Spring Cloud Bus Preview 09:16

Step 43 - Implementing Spring Cloud Bus Preview 05:01

Step 44 - Fault Tolerance with Hystrix Preview 07:10

What's NEW in V2? Preview 01:17

Have you already completed V1? Preview 01:06

Course Downloads Preview 00:03

Step 01 - Setting up Limits Microservice - V2 Preview 05:59

CODE BACKUP FILES and STEP BY STEP CHANGES : For Reference Preview 00:11

Step 02 - Creating a hard coded limits service - V2 Preview 05:28

Step 03 - Enhance limits service - Get configuration from application props - V2 Preview 04:24

Step 04 - Setting up Spring Cloud Config Server - V2 Preview 04:45

Step 05 - Installing Git and Creating Local Git Repository - V2 Preview 04:11

Debugging problems with Spring Cloud Config Server - V2 Preview 00:08

Step 06 - Connect Spring Cloud Config Server to Local Git Repository - V2 Preview 03:57

Step 07 - Connect Limits Service to Spring Cloud Config Server - V2 Preview 04:07

Step 08 - Configuring Profiles for Limits Service - V2 Preview 05:47

Debugging Guide for Microservices V2 + Docker + Docker Compose Preview 02:53

Step 09 - Introduction to Currency Conversion & Exchange Microservices - V2 Preview 02:26

Step 10 - Setting up Currency Exchange Microservice - V2 Preview 04:09

URL and Response Structure for Currency Exchange Service Preview 00:04

Step 11 - Create a simple hard coded currency exchange service - V2 Preview 07:41

Step 12 - Setting up Dynamic Port in the the Response - V2 Preview 05:39

Step 13 - Configure JPA and Initialized Data - V2 Preview 10:56

CODE BACKUP FILES and STEP BY STEP CHANGES : For Reference Preview 00:11

Step 14 - Create a JPA Repository - V2 Preview 05:47

Step 15 - Setting up Currency Conversion Microservice - V2 Preview 02:25

URL and Response Structure for Currency Conversion Service Preview 00:06

Step 16 - Creating a service for currency conversion - V2 Preview 07:19

Step 17 - Invoking Currency Exchange from Currency Conversion Microservice - V2 Preview 07:10

Step 18 - Using Feign REST Client for Service Invocation - V2 Preview 07:59

Step 19 - Understand Naming Server and Setting up Eureka Naming Server - V2 Preview 07:37

Debugging Problems with Eureka - V2 Preview 00:14

Step 20 - Connect Currency Conversion & Currency Exchange Microservices - V2 Preview 04:54

Step 21 - QuickStart by Importing Microservices Preview 05:18

Step 22 - Load Balancing with Eureka, Feign & Spring Cloud LoadBalancer - V2 Preview 04:34

Step 22 - Setting up Spring Cloud API Gateway Preview 04:45

URLs for next Lecture Preview 00:08

Step 23 - Enabling Discovery Locator with Eureka for Spring Cloud Gateway Preview 07:14

Debugging Problems with Spring Cloud Gateway - V2 Preview 00:14

Step 24 - Exploring Routes with Spring Cloud Gateway Preview 13:39

Step 25 - Implementing Spring Cloud Gateway Logging Filter Preview 05:55

Step 26 - Getting started with Circuit Breaker - Resilience4j Preview 07:26

Step 27 - Playing with Resilience4j - Retry and Fallback Methods Preview 12:06

Step 28 - Playing with Circuit Breaker Features of Resilience4j Preview 08:47

Update to Step 29 - Change in Configuration Preview 00:02

Step 29 - Exploring Rate Limiting and BulkHead Features of Resilience4j - V2 Preview 05:38

Step 00 - Match made in Heaven - Docker and Microservices Preview 02:44

Step 01 - Installing Docker - Docker Preview 03:46

RECOMMENDATION : Use PowerShell in Windows! Preview 00:16

Step 02 - Your First Docker Usecase - Deploy a Spring Boot Application Preview 02:58

Step 03 - Docker Concepts - Registry, Repository, Tag, Image and Containers Preview 06:18

Step 04 - Playing with Docker Images and Containers Preview 06:28

Step 05 - Understanding Docker Architecture - Docker Client, Docker Engine Preview 04:11

Step 06 - Why is Docker Popular Preview 03:02

Step 07 - Playing with Docker Images Preview 08:26

Step 08 - Playing with Docker Containers Preview 10:28

Step 09 - Playing with Docker Commands - stats, system Preview 07:58

Step 10 - Introduction to Distributed Tracing Preview 01:47

Step 11 - Launching Zipkin Container using Docker Preview 03:05

Step 12 - Connecting Currency Exchange Microservice with Zipkin Preview 08:57

Step 13 - Connecting Currency Conversion Microservice & API Gateway with Zipkin Preview 05:55

Link for the Next Lecture Preview 00:03

Step 14 - Getting Setup with Microservices for Creating Container Images Preview 04:48

Step 15 - Creating Container Image for Currency Exchange Microservice Preview 09:36

Step 16 - Getting Started with Docker Compose - Currency Exchange Microservice Preview 06:28

Step 17 - Running Eureka Naming Server with Docker Compose Preview 07:10

Step 18 - Running Currency Conversion Microservice with Docker Compose Preview 04:15

Step 19 - Running Spring Cloud API Gateway with Docker Compose Preview 03:49

Debugging Problems with Docker Compose Preview 00:17

Step 20 - Running Zipkin with Docker Compose Preview 04:51

Step 21 - Running Zipkin and RabbitMQ with Docker Compose Preview 07:28

Step 00 - Docker, Kubernetes and Microservices - Made for each other Preview 03:19

Step 01 - Getting Started with Docker, Kubernetes and Google Kubernetes Engine Preview 10:57

Step 02 - Creating Google Cloud Account Preview 03:54

Step 03 - Creating Kubernetes Cluster with Google Kubernete Engine (GKE) Preview 07:20

Step 04 - Review Kubernetes Cluster and Learn Few Fun Facts about Kubernetes Preview 04:11

Step 05 - Deploy Your First Spring Boot Application to Kubernetes Cluster Preview 11:39

Commands executed in this section Preview 01:39

Step 06 - Quick Look at Kubernetes Concepts - Pods, Replica Sets and Deployment Preview 04:58

Step 07 - Understanding Pods in Kubernetes Preview 06:34

Step 08 - Understanding ReplicaSets in Kubernetes Preview 08:40

Step 09 - Understanding Deployment in Kubernetes Preview 13:51

Step 10 - Quick Review of Kubernetes Concepts - Pods, Replica Sets & Deployments Preview 03:22

Step 11 - Understanding Services in Kubernetes Preview 07:56

Step 12 - Quick Review of GKE on Google Cloud Console Preview 03:15

Step 13 - Understanding Kubernetes Architecture - Master Node and Nodes Preview 08:13

Installing Gcloud Preview 05:15

Installing Kubectl Preview 02:44

Link for the Next Lecture Preview 00:03

Step 14 - Setup Currency Exchange & Conversion Microservices - Kubernetes Preview 08:59

Step 15 - Container images for Exchange & Currency Conversion Microservices Preview 05:39

Step 16 - Deploy Microservices to Kubernetes & Understand Service Discovery Preview 09:48

Step 17 - Creating Declarative Configuration Kubernetes YAML for Microservices Preview 07:48

Step 18 - Clean up Kubernetes YAML for Microservices Preview 06:51

Step 19 - Enable Logging and Tracing APIs in Google Cloud Platform Preview 01:41

Step 20 - Deploying Microservices using Kubernetes YAML Configuration Preview 04:17

Step 21 - Playing with Kubernetes Declarative YAML Configuration Preview 03:46

Step 22 - Creating Environment Variables to enable Microservice Communication Preview 10:03

Step 23 - Understanding Centralized Configuration in Kubernetes - Config Maps Preview 06:31

Step 24 - Exploring Centralized Logging and Monitoring in GKE Preview 05:41

Step 25 - Exploring Microservices Deployments with Kubernetes Preview 07:49

Step 26 - Configuring Liveness and Readiness Probes for Microservices with K8S Preview 08:47

Step 27 - Autoscaling Microservices with Kubernetes Preview 06:30

Step 28 - Delete Kubernetes Cluster and Thank You! Preview 01:02

0005 - Section Introduction 04 - Introduction to Spring Boot in 10 Steps Preview 01:13

Step 1 : Introduction to Spring Boot - Goals and Important Features Preview 06:11

Step 2 : Developing Spring Applications before Spring Boot Preview 03:46

Step 3 : Using Spring Initializr to create a project Preview 04:49

Step 4 : Creating a Simple REST Controller Preview 05:03

Step 5 : What is Spring Boot Auto Configuration? Preview 09:07

Step 6 : Spring Boot vs Spring vs Spring MVC Preview 05:55

Step 7 : Spring Boot Starter Projects - Starter Web and Starter JPA Preview 07:39

Step 8 : Overview of different Spring Boot Starter Projects Preview 04:01

Step 9 : Spring Boot Actuator Preview 08:48

Step 10 : Spring Boot Developer Tools Preview 04:12

Section Introduction - Introduction to JPA in 10 Steps Preview 00:59

Step 1 : Object Relational Impedence Mismatch Preview 04:43

Step 2 : World before JPA - JDBC, Spring JDBC and myBatis Preview 07:00

Step 3 : Introduction to JPA Preview 05:12

Step 4 : Creating a JPA Project using Spring Initializr Preview 06:02

COURSE UPDATE : H2 Database URL Preview 00:15

Step 5 : Defining a JPA Entity - User Preview 04:41

Step 6 : Defining a Service to manage the Entity - UserService and EntityManager Preview 04:53

Step 7 : Using a Command Line Runner to save the User to database. Preview 04:38

Step 8 : Magic of Spring Boot and In Memory Database H2 Preview 08:37

Step 9 : Introduction to Spring Data JPA Preview 05:15

Step 10 : More JPA Repository : findById and findAll Preview 02:54