Master Microservices with Spring Boot and Spring Cloud

Master Microservices with Spring Boot and Spring Cloud

English | MP4 | AVC 1280×720 | AAC 48KHz 2ch | 19h 39m | 5.41 GB

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

Developing RESTful web services and REST API is fun. The combination of Java, Spring Boot, Spring Web MVC, Spring Web Services and JPA makes it even more fun. And its even more fun to create Microservices.

There are two parts to this course – RESTful web services and Microservices

Architectures are moving towards microservices. RESTful web services are the first step to developing great microservices. Java and Spring Boot, in combination with Spring Web MVC (also called Spring REST) makes it easy to develop RESTful web services.

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 this part of the course, you will be using Spring (Dependency Management), Spring MVC (or Spring REST), Spring Boot, Spring Security (Authentication and Authorization), Spring Boot Actuator (Monitoring), Swagger (Documentation), Maven (dependencies management), Eclipse (IDE), Postman (REST Services Client) and Tomcat Embedded Web Server. We will help you set up each one of these.

In the second part of the course, you will learn the basics of Microservices. You will understand how to implement microservices using Spring Cloud.

In this part of the course, you will learn to establish communication between microservices, enable load balancing, scaling up and down of microservices. You will also learn to centralize the configuration of microservices with Spring Cloud Config Server. You will implement Eureka Naming Server and Distributed tracing with Spring Cloud Sleuth and Zipkin. You will create fault tolerant microservices with Zipkin.

In the third part of the course, you will learn the basics of Docker. You will understand how to build containers for microservices built using Docker and Spring Cloud.

In the fourth part of the course, you will learn the basics of Kubernetes. You will understand how to 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
Table of Contents

Introduction
1 Microservices and RESTful APIs with Spring Boot and Spring Cloud – Preview
2 Congratulations
3 Introduction to the Course & Course Guide
4 A surprise! New Course Updates

Introduction To Web Services
5 What is a Web Service
6 Important How Questions related to Web Services
7 Web Services – Key Terminology
8 Introduction to SOAP Web Services
9 Introduction to RESTful Web Services
10 SOAP vs RESTful Web Services

Restful Web Services with Spring Boot
11 Section Introduction – RESTful Web Services with Spring Boot
12 Step 01 – Initializing a RESTful Services Project with Spring Boot
13 Fastest Approach to Solve All Your Exceptions
14 Step 02 – Understanding the RESTful Services we would create in this course
15 Step 03 – Creating a Hello World Service
16 Step 04 – Enhancing the Hello World Service to return a Bean
17 Step 05 – Quick Review of Spring Boot Auto Configuration and Dispatcher Servlet
18 Step 06 – Enhancing the Hello World Service with a Path Variable
19 Step 07 – Creating User Bean and User Service
20 Step 08 – Implementing GET Methods for User Resource
21 Step 09 – Implementing POST Method to create User Resource
22 CODE BACKUP FILE For Reference
23 Step 10 – Enhancing POST Method to return correct HTTP Status Code and Location
24 Step 11 – Implementing Exception Handling – 404 Resource Not Found
25 Step 12 – Implementing Generic Exception Handling for all Resources
26 Step 13 – Exercise User Post Resource and Exception Handling
27 Step 14 – Implementing DELETE Method to delete a User Resource
28 COURSE UPDATE Add dependency spring-boot-starter-validation
29 Step 15 – Implementing Validations for RESTful Services
30 COURSE UPDATE HATEOAS Updates
31 Step 16 – Implementing HATEOAS for RESTful Services
32 Step 17 – Overview of Advanced RESTful Service Features
33 Step 18 – Internationalization for RESTful Services
34 Step 18 Part 2 – Internationalization for RESTful Services
35 Step 19 – Content Negotiation – Implementing Support for XML
36 COURSE UPDATE Disable XML Format Support
37 COURSE UPDATE USE SWAGGER 3.0.0 for Spring Boot 2.2+
38 Step 20 – Configuring Auto Generation of Swagger Documentation
39 Step 21 – Introduction to Swagger Documentation Format
40 Step 22 – Enhancing Swagger Documentation with Custom Annotations
41 COURSE UPDATE Use spring-data-rest-hal-explorer
42 Step 23 – Monitoring APIs with Spring Boot Actuator
43 Step 24 – Implementing Static Filtering for RESTful Service
44 Step 25 – Implementing Dynamic Filtering for RESTful Service
45 Step 26 – Versioning RESTful Services – Basic Approach with URIs
46 Step 27 – Versioning RESTful Services – Header and Content Negotiation Approach
47 Step 28 – Implementing Basic Authentication with Spring Security
48 Step 29 – Overview of Connecting RESTful Service to JPA
49 COURSE UPDATE H2 Database URL
50 Step 30 – Creating User Entity and some test data
51 Step 31 – Updating GET methods on User Resource to use JPA
52 Step 32 – Updating POST and DELETE methods on User Resource to use JPA
53 Step 33 – Creating Post Entity and Many to One Relationship with User Entity
54 Step 34 – Implementing a GET service to retrieve all Posts of a User
55 Step 35 – Implementing a POST service to create a Post for a User
56 Step 36 – Richardson Maturity Model
57 Step 37 – RESTful Web Services – Best Practices

Quick Introduction to Microservices
58 Section Introduction – Microservices with Spring Cloud
59 Step 00 – 01 – Introduction to Microservices
60 Step 00 – 02 – Challenges with Microservices
61 Step 00 – 03 – Introduction to Spring Cloud
62 Step 00 – 04 – Advantages of Microservices Architectures
63 Step 00 – 05 – Microservice Components – Standardizing Ports and URL

Microservices with Spring Cloud – V1
64 Next Section uses Latest Version of Spring Boot
65 Step 01 – Part 1 – Intro to Limits Microservice and Spring Cloud Config Server
66 IMPORTANT SPRING BOOT AND SPRING CLOUD VERSIONS
67 Step 01 – Part 2 – Setting up Limits Microservice
68 Step 02 – Creating a hard coded limits service
69 Step 03 -Enhance limits service to get configuration from application properties
70 Step 04 – Setting up Spring Cloud Config Server
71 Step 05 – Installing Git
72 Step 06 – Creating Local Git Repository
73 Step 07 – Connect Spring Cloud Config Server to Local Git Repository
74 Step 08 – Configuration for Multiple Environments in Git Repository
75 COURSE UPDATE Limits service with =2.4.0 of SPRING BOOT
76 Step 09 – Connect Limits Service to Spring Cloud Config Server
77 Debugging problems with Spring Cloud Config Server
78 Step 10 – Configuring Profiles for Limits Service
79 Step 11 – A review of Spring Cloud Config Server
80 Step 12 – Introduction to Currency Conversion and Currency Exchange Microservice
81 IMPORTANT SPRING BOOT AND SPRING CLOUD VERSIONS
82 Step 13 – Setting up Currency Exchange Microservice
83 Step 14 – Create a simple hard coded currency exchange service
84 Step 15 – Setting up Dynamic Port in the the Response
85 Step 16 – Configure JPA and Initialized Data
86 Step 17 – Create a JPA Repository
87 Step 18 – Setting up Currency Conversion Microservice
88 Step 19 – Creating a service for currency conversion
89 Step 20 – Invoking Currency Exchange Microservice from Currency Conversion Micro
90 Step 21 – Using Feign REST Client for Service Invocation
91 Step 22 – Setting up client side load balancing with Ribbon
92 COURSE UPDATE Ribbon DOES NOT work with Spring Boot 2.4
93 Step 23 – Running client side load balancing with Ribbon
94 Debugging problems with Feign and Ribbon
95 Step 24 – Understand the need for a Naming Server
96 Step 25 – Setting up Eureka Naming Server
97 Step 26 – Connecting Currency Conversion Microservice to Eureka
98 Step 27 – Connecting Currency Exchange Microservice to Eureka
99 COURSE UPDATE Exclude dependency on jackson-dataformat-xml
100 Step 28 – Distributing calls using Eureka and Ribbon
101 Debugging Problems with Naming Server ( Eureka ) and Ribbon
102 Step 29 – A review of implementing Eureka, Ribbon and Feign
103 Step 30 – Introduction to API Gateways
104 Step 31 – Setting up Zuul API Gateway
105 Step 32 – Implementing Zuul Logging Filter
106 Step 33 – Executing a request through Zuul API Gateway
107 Step 34 – Setting up Zuul API Gateway between microservice invocations
108 Debugging Problems with Zuul API Gateway
109 Step 35 – Introduction to Distributed Tracing
110 Step 36 – Implementing Spring Cloud Sleuth
111 Step 37 – Introduction to Distributed Tracing with Zipkin
112 Step 38 – Installing Rabbit MQ
113 Updates to Step 39 – Running Zipkin on Windows
114 Step 39 – Setting up Distributed Tracing with Zipkin
115 Step 40 – Connecting microservices to Zipkin
116 Updates to Step 40 Use spring-cloud-starter-zipkin and spring-rabbit
117 Step 41 – Using Zipkin UI Dashboard to trace requests
118 Debugging Problems with Zipkin
119 Step 42 – Understanding the need for Spring Cloud Bus
120 Step 43 – Implementing Spring Cloud Bus
121 Step 44 – Fault Tolerance with Hystrix

Microservices with Spring Cloud – V2
122 What’s NEW in V2
123 Have you already completed V1
124 Course Downloads
125 Step 01 – Setting up Limits Microservice – V2
126 Step 02 – Creating a hard coded limits service – V2
127 Step 03 – Enhance limits service – Get configuration from application props – V2
128 Step 04 – Setting up Spring Cloud Config Server – V2
129 Step 05 – Installing Git and Creating Local Git Repository – V2
130 Debugging problems with Spring Cloud Config Server – V2
131 Step 06 – Connect Spring Cloud Config Server to Local Git Repository – V2
132 Step 07 – Connect Limits Service to Spring Cloud Config Server – V2
133 CODE BACKUP FILES and STEP BY STEP CHANGES For Reference
134 Step 08 – Configuring Profiles for Limits Service – V2
135 Step 09 – Introduction to Currency Conversion & Exchange Microservices – V2
136 Step 10 – Setting up Currency Exchange Microservice – V2
137 URL and Response Structure for Currency Exchange Service
138 Step 11 – Create a simple hard coded currency exchange service – V2
139 Step 12 – Setting up Dynamic Port in the the Response – V2
140 Step 13 – Configure JPA and Initialized Data – V2
141 CODE BACKUP FILES and STEP BY STEP CHANGES For Reference
142 Step 14 – Create a JPA Repository – V2
143 Step 15 – Setting up Currency Conversion Microservice – V2
144 URL and Response Structure for Currency Conversion Service
145 Step 16 – Creating a service for currency conversion – V2
146 Step 17 – Invoking Currency Exchange from Currency Conversion Microservice – V2
147 Step 18 – Using Feign REST Client for Service Invocation – V2
148 Step 19 – Understand Naming Server and Setting up Eureka Naming Server – V2
149 Debugging Problems with Eureka – V2
150 Step 20 – Connect Currency Conversion & Currency Exchange Microservices – V2
151 Step 21 – QuickStart by Importing Microservices
152 Step 22 – Load Balancing with Eureka, Feign & Spring Cloud LoadBalancer – V2
153 Step 22 – Setting up Spring Cloud API Gateway
154 URLs for next Lecture
155 Step 23 – Enabling Discovery Locator with Eureka for Spring Cloud Gateway
156 Debugging Problems with Spring Cloud Gateway – V2
157 Step 24 – Exploring Routes with Spring Cloud Gateway
158 Step 25 – Implementing Spring Cloud Gateway Logging Filter
159 Step 26 – Getting started with Circuit Breaker – Resilience4j
160 Step 27 – Playing with Resilience4j – Retry and Fallback Methods
161 Step 28 – Playing with Circuit Breaker Features of Resilience4j
162 Update to Step 29 – Change in Configuration
163 Step 29 – Exploring Rate Limiting and BulkHead Features of Resilience4j – V2

Docker with Microservices using Spring Boot and Spring Cloud – V2
164 Step 00 – Match made in Heaven – Docker and Microservices
165 Step 01 – Installing Docker – Docker
166 RECOMMENDATION Use PowerShell in Windows!
167 Step 02 – Your First Docker Usecase – Deploy a Spring Boot Application
168 Step 03 – Docker Concepts – Registry, Repository, Tag, Image and Containers
169 Step 04 – Playing with Docker Images and Containers
170 Step 05 – Understanding Docker Architecture – Docker Client, Docker Engine
171 Step 06 – Why is Docker Popular
172 Step 07 – Playing with Docker Images
173 Step 08 – Playing with Docker Containers
174 Step 09 – Playing with Docker Commands – stats, system
175 Step 10 – Introduction to Distributed Tracing
176 Step 11 – Launching Zipkin Container using Docker
177 Step 12 – Connecting Currency Exchange Microservice with Zipkin
178 Step 13 – Connecting Currency Conversion Microservice & API Gateway with Zipkin
179 Link for the Next Lecture
180 Step 14 – Getting Setup with Microservices for Creating Container Images
181 Step 15 – Creating Container Image for Currency Exchange Microservice
182 Step 16 – Getting Started with Docker Compose – Currency Exchange Microservice
183 Step 17 – Running Eureka Naming Server with Docker Compose
184 Step 18 – Running Currency Conversion Microservice with Docker Compose
185 Step 19 – Running Spring Cloud API Gateway with Docker Compose
186 Step 20 – Running Zipkin with Docker Compose
187 Step 21 – Running Zipkin and RabbitMQ with Docker Compose

Kubernetes with Microservices using Docker, Spring Boot and Spring Cloud – V2
188 Step 00 – Docker, Kubernetes and Microservices – Made for each other
189 Step 01 – Getting Started with Docker, Kubernetes and Google Kubernetes Engine
190 Step 02 – Creating Google Cloud Account
191 Step 03 – Creating Kubernetes Cluster with Google Kubernete Engine (GKE)
192 Step 04 – Review Kubernetes Cluster and Learn Few Fun Facts about Kubernetes
193 Step 05 – Deploy Your First Spring Boot Application to Kubernetes Cluster
194 Commands executed in this section
195 Step 06 – Quick Look at Kubernetes Concepts – Pods, Replica Sets and Deployment
196 Step 07 – Understanding Pods in Kubernetes
197 Step 08 – Understanding ReplicaSets in Kubernetes
198 Step 09 – Understanding Deployment in Kubernetes
199 Step 10 – Quick Review of Kubernetes Concepts – Pods, Replica Sets & Deployments
200 Step 11 – Understanding Services in Kubernetes
201 Step 12 – Quick Review of GKE on Google Cloud Console
202 Step 13 – Understanding Kubernetes Architecture – Master Node and Nodes
203 Link for the Next Lecture
204 Installing Gcloud
205 Installing Kubectl
206 Step 14 – Setup Currency Exchange & Conversion Microservices – Kubernetes
207 Step 15 – Container images for Exchange & Currency Conversion Microservices
208 Step 16 – Deploy Microservices to Kubernetes & Understand Service Discovery
209 Step 17 – Creating Declarative Configuration Kubernetes YAML for Microservices
210 Step 18 – Clean up Kubernetes YAML for Microservices
211 Step 19 – Enable Logging and Tracing APIs in Google Cloud Platform
212 Step 20 – Deploying Microservices using Kubernetes YAML Configuration
213 Step 21 – Playing with Kubernetes Declarative YAML Configuration
214 Step 22 – Creating Environment Variables to enable Microservice Communication
215 Step 23 – Understanding Centralized Configuration in Kubernetes – Config Maps
216 Step 24 – Exploring Centralized Logging and Monitoring in GKE
217 Step 25 – Exploring Microservices Deployments with Kubernetes
218 Step 26 – Configuring Liveness and Readiness Probes for Microservices with K8S
219 Step 27 – Autoscaling Microservices with Kubernetes
220 Step 28 – Delete Kubernetes Cluster and Thank You!

Thanks
221 Bonus Lecture
222 Thank You

Appendix – Introduction to Spring Boot in 10 Steps
223 Section Introduction 04 – Introduction to Spring Boot in 10 Steps
224 Step 1 Introduction to Spring Boot – Goals and Important Features
225 Step 2 Developing Spring Applications before Spring Boot
226 Step 3 Using Spring Initializr to create a project
227 Step 4 Creating a Simple REST Controller
228 Step 5 What is Spring Boot Auto Configuration
229 Step 6 Spring Boot vs Spring vs Spring MVC
230 Step 7 Spring Boot Starter Projects – Starter Web and Starter JPA
231 Step 8 Overview of different Spring Boot Starter Projects
232 Step 9 Spring Boot Actuator
233 Step 10 Spring Boot Developer Tools

Appendix – Introduction to JPA in 10 Steps
234 Section Introduction – Introduction to JPA in 10 Steps
235 Step 1 Object Relational Impedence Mismatch
236 Step 2 World before JPA – JDBC, Spring JDBC and myBatis
237 Step 3 Introduction to JPA
238 Step 4 Creating a JPA Project using Spring Initializr
239 COURSE UPDATE H2 Database URL
240 Step 5 Defining a JPA Entity – User
241 Step 6 Defining a Service to manage the Entity – UserService and EntityManager
242 Step 7 Using a Command Line Runner to save the User to database.
243 Step 8 Magic of Spring Boot and In Memory Database H2
244 Step 9 Introduction to Spring Data JPA
245 Step 10 More JPA Repository findById and findAll

Homepage