[NEW] Master Microservices with SpringBoot,Docker,Kubernetes

[NEW] Master Microservices with SpringBoot,Docker,Kubernetes

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 282 lectures (40h 33m) | 13.29 GB

Learn & Develop Microservices with Java, Spring Boot, Spring Cloud, Docker, Kubernetes, Helm, Microservices Security

‘Master Microservices with SpringBoot,Docker,Kubernetes’ course will help in understanding about microservices architecture and how to build it using SpringBoot, Spring Cloud components, Docker and Kubernetes. By the end of this course, students will understand all the below topics,

  • What is microservices architecture and how it is different from monolithic and SOA architectures
  • How to build production ready microservices using Java, Spring, SpringBoot and Spring Cloud
  • How to document microservices using Open API Specification and Swagger
  • How to right size microservices and identify service boundaries
  • Role of Docker in microservices and how to build docker images, containers
  • Role of Docker compose and how to use it to run all the microservices inside a application
  • What are cloud native apps & 15 factor methodology behind them
  • Configuration management in microservices using Spring Cloud Config Server
  • Service Discovery and Registration pattern inside microservices and how to implement using Spring Eureka server
  • Handling Cross cutting concerns and routing inside microservices using Spring Cloud Gateway
  • Building resilient microservices using RESILIENCE4J framework
  • Implementing observability and monitoring using Prometheus, Loki, Promtail, Tempo and Grafana
  • Securing microservices using OAuth2, OpenID connect and Spring Security
  • How to build event driven microservices using RabbitMQ, Kafka, Spring Cloud Functions and Spring Cloud Stream
  • Role of Kubernetes in microservices as a container orchestration framework.
  • How to setup a Kubernetes cluster inside GCP using Google Kubernetes Engine and deploy microservices inside it
  • What is Helm & it’s role in microservices world
  • Most commonly used Docker, Kubernetes and Helm commands
Table of Contents

Introduction to Microservices Architecture
1 Introduction to the course & Agenda
2 Details of Source Code, PDF Content & other instructions for the course
3 Evolution of Microservices architecture
4 Comparisons between Monolithic, SOA & Microservices architecture
5 Definition of Microservices

Building microservices using Spring Boot
6 How to build microservices
7 Introduction to SpringBoot framework
8 Funny memes of SpringBoot framework
9 Introduction to REST APIs & best practices
10 IntelliJ IDEA Ultimate
11 Creating a Spring Boot project
12 Say Hello to your new AI Coding Companion
13 Creating Hello World REST API using @RestController
14 Configuring H2 DB & YAML properties
15 Writing Spring Data JPA entities & repositories to interact with DB tables
16 Introduction to DTO (Data Transfer Object) pattern
17 Creating DTOs inside accounts microservice
18 CREATE API inside accounts microservice – Part 1
19 CREATE API inside accounts microservice – Part 2
20 READ API inside accounts microservice
21 UPDATE API inside accounts microservice
22 DELETE API inside accounts microservice
23 Handle all types of runtime exceptions using global logic inside accounts
24 Perform input data validations inside accounts microservice
25 Update audit columns using Spring Data
26 Introduction to documentation of REST APIs using springdoc openapi
27 Enhancing documentation of REST APIs using @OpenAPIDefinition
28 Enhancing documentation of REST APIs using @Tag, @Operation, @ApiResponse
29 Enhancing documentation of REST APIs using @Schema & example data – Part 1
30 Enhancing documentation of REST APIs using @Schema & example data – Part 2
31 Important Annotations & Classes that supports building REST services
32 Assignment to build Loans & Cards microservices
33 Deep dive and demo of Loans microservice
34 Deep dive and demo of Cards microservice

How do we right size our microservices & identify boundaries
35 Approaches to identify boundaries & right size microservices
36 Sizing & identifying boundaries with a Bank App use case
37 Sizing & identifying boundaries with a ecommerce migration use case
38 Strangler Fig pattern

Handle deployment, portability & scalability of microservices using Docker
39 Introduction to challenges while building, deploying microservices
40 What are Containers & how they are different from VMs
41 Definition of Containers, Containerization, Docker
42 Introduction to Docker components & its architecture
43 Docker installation & docker hub introduction
44 Introduction to the three approaches for Docker image generation
45 Generate Docker Image of Accounts microservice with Dockerfile – Part 1
46 Generate Docker Image of Accounts microservice with Dockerfile – Part 2
47 Generate Docker Image of Accounts microservice with Dockerfile – Part 3
48 Running accounts microservice as a Docker container
49 Challenges with Dockerfile approach to generate a Docker image
50 Generate Docker Image of Loans microservice with Buildpacks
51 Generate Docker Image of Cards microservice with Google Jib
52 Compare Dockerfile, Buildpacks, Jib approaches
53 Pushing Docker images from your local to remote Docker hub repository
54 Introduction to Docker Compose
55 Running all microservice containers using Docker Compose command
56 Demo of docker compose commands
57 Deep dive on Docker commands
58 Introduction to Docker extensions and LogsExplorer
59 Funny memes of Docker

Deep Dive on Cloud Native Apps & 15-Factor methodology
60 Introduction to Cloud-native applications
61 Important characteristics of cloud-native applications
62 Differences between cloud-native Apps & Traditional enterprise Apps
63 Introduction to 12-factor & 15-factor methodologies
64 Deepdive on 15-factor methodology – Part 1
65 Deepdive on 15-factor methodology – Part 2
66 Deepdive on 15-factor methodology – Part 3

Configurations Management in Microservices
67 Introduction to Configurations Management challenges inside microservices
68 How Configurations work in Spring Boot
69 Reading configurations using @Value annotation
70 Reading configurations using Environment interface
71 Reading configurations using @ConfigurationProperties
72 Introduction to Spring Boot profiles
73 Demo of Spring Boot profiles inside accounts microservice
74 Externalizing configurations using command-line, JVM & environment options
75 Activating the profile using command-line, JVM & environment options
76 Assignment to make SpringBoot profile changes inside loans & cards microservices
77 Demo of Spring Boot profile changes inside loans & cards microservices
78 Drawbacks of externalized configurations using SpringBoot alone
79 Introduction to Spring Cloud Config
80 Building Config Server using Spring Cloud Config
81 Reading configurations from the class path location of Config Server
82 Updating Accounts Microservice to read properties from Config Server
83 Updating Loans & Cards Microservice to read properties from Config Server
84 Reading configurations from a file system location
85 Reading configurations from a GitHub repository
86 Encryption & Decryption of properties inside Config server
87 Refresh configurations at runtime using refresh actuator path
88 Refresh configurations at runtime using Spring Cloud Bus
89 Refresh config at runtime using Spring Cloud Bus & Spring Cloud Config monitor
90 Updating Docker Compose file to adapt Config Server changes – Part 1
91 Introduction to Liveness and Readiness probes
92 Updating Docker Compose file to adapt Config Server changes – Part 2
93 Optimizing Docker Compose file
94 Generating Docker images and pushing them into Docker Hub
95 Testing Config Server changes end to end using Docker compose & default profile
96 Preparing Docker Compose files for QA & prod profiles

Using MySQL Database inside microservices
97 Create MySQL DB containers for microservices
98 Update microservices code to replace H2 DB with MySQL DB
99 Update docker compose file to create & use MySQL DB
100 Running microservices & MySQL DB containers using docker compose file
101 Demo of Docker network concept

Service Discovery & Service Registration in microservices
102 Brief introduction about microservices traffic
103 Introduction to the Service Discovery & Registration inside microservices
104 Why not traditional load balancers for Microservices
105 Service Discovery & Registration inside microservices
106 How Client side Service Discovery & Load-balancing works
107 Spring Cloud support for Service Discovery & Registration
108 Setup Service Discovery agent using Eureka server
109 Make code changes in Accounts microservice to connect Eureka Server
110 Make code changes in Loans & Cards microservice to connect Eureka Server
111 De-registration from Eureka server when microservices shutdown
112 Demo of heartbeats mechanism to Eureka server from clients
113 Feign Client code changes to invoke other microservices – Part 1
114 Feign Client code changes to invoke other microservices – Part 2
115 Eureka Self-Preservation mode to avoid network trap issues
116 Generating Docker images with Service Discovery changes & push them into Dock
117 Updating Docker Compose file to adapt Service Discovery changes
118 Starting all the microservices using docker compose file
119 Demo of Client Side Service Discovery & Load balancing
120 IMPORTANT NOTE ON GRAALVM

Gateway, Routing & Cross cutting concerns in Microservices
121 Challenges while dealing external communication in microservices
122 Why we need a Edge Server or API Gateway inside microservices
123 Introduction to Spring Cloud Gateway
124 Deep dive on Spring Cloud Gateway internal architecture
125 Building Edge Server using Spring Cloud Gateway
126 Demo of Edge Server with default routing configs
127 Make changes inside Gateway server to accept service names with lower case
128 Implementing Custom Routing using Spring Cloud Gateway
129 Demo of addResponseHeader filter
130 Implementing Cross cutting concerns Tracing & Logging using Gateway – Part 1
131 Implementing Cross cutting concerns Tracing & Logging using Gateway – Part 2
132 Design patterns around API Gateway
133 Generating and pushing Docker images with Spring Cloud Gateway changes
134 Updating Docker Compose file to adapt Spring Cloud Gateway changes

Making Microservices Resilient
135 Introduction to the need of Resiliency inside microservices
136 Typical use case or scenario for the need of Resiliency
137 Deepdive on Circuit Breaker pattern
138 Three states of Circuit Breaker pattern
139 Implementing Circuit Breaker pattern in Gateway – Part 1
140 Implementing Circuit Breaker pattern in Gateway – Part 2
141 Implementing Circuit Breaker pattern with Feign Client – Part 1
142 Implementing Circuit Breaker pattern with Feign Client – Part 2
143 Http timeout configurations
144 Introduction to Retry pattern
145 Implementing Retry pattern in Gateway
146 Implementing Retry pattern in accounts – Part 1
147 Implementing Retry pattern in accounts – Part 2
148 Introduction to Rate Limitter pattern
149 Introduction to Redis RateLimiter in Gateway Server
150 Implementing Redis RateLimiter in Gateway Server
151 Implementing RateLimiter pattern in accounts
152 Introduction to Bulkhead pattern
153 Aspect order of Resiliency patterns
154 Demo of Resiliency patterns using Docker containers & Docker compose

Observability and monitoring of microservices
155 Introduction to Observability And Monitoring Of Microservices
156 Observability vs. Monitoring
157 Introduction to centralized logging or Log Aggregation in microservices
158 Introduction to managing logs with Grafana, Loki & Promtail
159 IMPORTANT NOTE ON PROMTAIL
160 Sample demo of logging using Grafana, Loki & promtail – Theory
161 Implementing logging using Grafana, Loki & promtail – Part 1
162 Implementing logging using Grafana, Loki & promtail – Part 2
163 Implementing logging using Grafana, Loki & promtail – Part 3
164 Managing metrics & monitoring with Actuator, Micrometer, Prometheus & Grafana
165 Setup of micrometer inside microservices
166 Setup of prometheus inside microservices
167 Demo of Prometheus
168 Demo of Prometheus & Grafana integration
169 Demo of Grafana inbuilt & custom Dashboards
170 Create Alerts & Send notifications using Grafana – Approach 1
171 Create Alerts & Send notifications using Grafana – Approach 2
172 Introduction to Distributed Tracing in microservices
173 Introduction to OpenTelemetry
174 Implement OpenTelemetry changes inside microservices
175 Implementing Tracing using Grafana, Tempo & OpenTelemetry – Part 1
176 Implementing Tracing using Grafana, Tempo & OpenTelemetry – Part 2
177 Implementing Tracing using Grafana, Tempo & OpenTelemetry – Part 3
178 Navigating to Tempo from Loki logs
179 Conclusion of Observability and Monitoring

Microservices Security
180 Introduction to Microservices Security
181 Problems that OAuth2 solves
182 Introduction to OAuth2
183 OAuth2 jargons or terminologies or roles
184 What is OpenID Connect & why it is important
185 Introduction to IAM products & why KeyCloak
186 Deep dive of Client Credentials grant type flow
187 Securing Gateway server using Client Credentials grant type flow – Theory
188 Setup Auth server using KeyCloak
189 Register client details inside KeyCloak for Client credentials grant flow
190 Getting Access token from Auth Server in Client credentials grant flow
191 Securing Gateway server as a Resource server – Part 1
192 Securing Gateway server as a Resource server – Part 2
193 Implement Authorization inside Gateway server using Roles – Part 1
194 Implement Authorization inside Gateway server using Roles – Part 2
195 Deep dive of Authorization Code grant type flow
196 Securing Gateway server using Authorization Code grant type flow – Theory
197 Register client & end user inside KeyCloak for Authorization code grant flow
198 Demo of Authorization code grant type flow
199 Demo of Microservices Security using Docker containers & Docker compose – Part 1
200 Demo of Microservices Security using Docker containers & Docker compose – Part 2

Event Driven microservices using RabbitMQ,Spring Cloud Functions & Stream
201 Introduction to Event-driven microservices
202 Introduction to Event-driven models
203 What we are going to build using a pub sub model
204 Introduction to RabbitMQ
205 Why to use Spring Cloud Function
206 Develop message microservice using Spring Cloud Functions – Part 1
207 Develop message microservice using Spring Cloud Functions – Part 2
208 Develop message microservice using Spring Cloud Functions – Part 3
209 Why to use Spring Cloud Stream
210 Update message & accounts microservices to stream & process the events – Part 1
211 Demo of Async communication or event streaming using Rabbit MQ – Part 1
212 Update message & accounts microservices to stream & process the events – Part 2
213 Demo of Async communication or event streaming using Rabbit MQ – Part 2
214 Demo of Async comm or event streaming using Docker containers & Docker compose

Event Driven microservices using Kafka, Spring Cloud Functions & Stream
215 Apache Kafka Vs RabbitMQ
216 Introduction to Apache Kafka
217 Producer and Consumer side stories
218 Installation of Apache Kafka
219 Implement & Demo of Async communication or event streaming using Kafka
220 Demo of Async comm or event streaming using Docker containers & Docker Compose

Container Orchestration using Kubernetes
221 Introduction to the challenges related to container orchestration
222 Introduction to Kubernetes
223 Deep dive on Kubernetes internal architecture
224 Setup a local Kubernetes cluster using Docker Desktop
225 Deploying the Kubernetes Dashboard UI
226 Deep dive on Kubernetes YAML configurations to deploy a microservice
227 Deploying ConfigServer into Kubernetes Cluster
228 Create environment variables inside Kubernetes Cluster using ConfigMap
229 Preparing Kubernetes manifest files for remaining microservices
230 Deploying remaining microservices into Kubernetes Cluster
231 Automatic Self healing inside Kubernetes cluster
232 Automatic Rollout & Rollback inside Kubernetes cluster
233 Introduction to Kubernetes Service types
234 Demo of Kubernetes Service types
235 Problems with manually created Kubernetes manifest files

Deep dive on Helm
236 Introduction to Helm & the problems that it solves
237 Installing Helm
238 Installing a sample Helm Chart
239 Understanding Helm Chart structure
240 Creating our own Helm chart & template files
241 Creating Helm chart for Accounts microservice
242 Creating Helm charts for other microservices
243 Creating Helm charts for Dev, QA and Prod environment
244 Demo of helm template command
245 Install KeyCloak in Kubernetes Cluster using Helm Chart
246 Install Kafka in Kubernetes Cluster using Helm Chart
247 Install Prometheus in Kubernetes Cluster using Helm Chart
248 Install Grafana Loki & Tempo in Kubernetes Cluster using Helm Chart
249 Install Grafana in Kubernetes Cluster using Helm Chart
250 Install eazybank microservices in Kubernetes Cluster using Helm Chart
251 Demo of helm upgrade command
252 Demo of helm history and rollback commands
253 Demo of helm uninstall command
254 Quick revision of important helm commands

Server-side service discovery and load balancing using Kubernetes
255 Introduction to Server-side service discovery and load balancing
256 How to setup discovery server in K8s cluster using spring cloud kubernetes
257 Install spring cloud kubernetes discovery server in K8s cluster
258 Making Kubernetes Discovery Client changes in microservices – Part 1
259 Making Kubernetes Discovery Client changes in microservices – Part 2
260 Updating Helm charts for Kubernetes Discovery Server changes
261 Demo of Server-side service discovery and load balancing

Deploying microservices into cloud Kubernetes cluster
262 Kubernetes support by Cloud providers
263 Set up Google Cloud account & install Google Cloud SDK
264 Create a Kubernetes cluster in Google Cloud
265 Installing all our microservices and supporting components in Google Cloud K8s
266 Demo of eazybank microservices using Google Cloud Kubernetes Cluster
267 Validate Grafana components in Google Cloud Kubernetes Cluster
268 Deleting the Google Cloud Kubernetes Cluster

Introduction to Kubernetes Ingress, Service Mesh (Istio) & mTLS
269 Quick introduction to Kubernetes Ingress
270 Deep dive on Kubernetes Ingress & Ingress Controller
271 Benefits of Kubernetes Ingress & the kind of traffic it handles
272 Introduction to Service Mesh & it’s capabilities
273 Introduction to Service mesh components
274 Introduction to mTLS & deep dive on how TLS works
275 How does mTLS works

Tips for the microservices developers
276 Optimizing Microservices Development with Spring Boot BOM – Part 1
277 Optimizing Microservices Development with Spring Boot BOM – Part 2
278 Optimizing Microservices Development with Spring Boot BOM – Part 3
279 Optimizing Microservices Development with Spring Boot BOM – Part 4
280 Shared Libraries in Microservices – Part 1
281 Shared Libraries in Microservices – Part 2

Thank You & Congratulations
282 Congratulations & Thank You

Homepage