Microservices With Spring Cloud

A deep-dive into the Microservice architectural style, and how to implement it with Spring technologies.

Last updated 2022-01-10 | 4.3

- Articulate the Microservices architectural style; its advantages and disadvantages
- Build simple Spring Boot applications utilizing web interfaces
- REST interfaces
- Spring Data
- and HATEOAS
- Build Microservice applications utilizing the different Spring Cloud sub-projects
- including Config Server & Bus
- Eureka
- Ribbon
- Feign
- and Hystrix

What you'll learn

Articulate the Microservices architectural style; its advantages and disadvantages
Build simple Spring Boot applications utilizing web interfaces
REST interfaces
Spring Data
and HATEOAS
Build Microservice applications utilizing the different Spring Cloud sub-projects
including Config Server & Bus
Eureka
Ribbon
Feign
and Hystrix

* Requirements

* Knowledge of Java programming
* Knowledge of latest versions of Spring Framework. Familiarity with concepts such as ApplicationContext
* Profiles
* RestTemplate
* @Value
* @Autowired
* @Component
* Java Configuration
* etc.
* Knowledge of Spring Boot helpful
* but will be covered in the course.
* Basic familiarity with Maven. How to specify dependencies
* and how to do a "mvn clean package"
* A Git account
* such as GitHub
* will be needed. We will cover this in the course if you don't have one already. Course materials will be downloaded from Git
* and you will need to place files in your own Git repository.

Description

Microservices with Spring Cloud is an online workshop designed to help you learn the Microservices architectural style, and how to implement it using Spring technologies

This course provides a good, solid introduction to the topic of the Microservices architectural style, and combines this with practical experience gained by working through the exercises featuring Spring Cloud.

Along the way, this course will provides a brief introduction to Spring Boot and Spring Data (enough to get you familiar with these technologies if you have not been immersed in them already).

The course provides exercises that provide you with hands-on experience working with the various components of Spring Cloud.

The goal of this course is to serve as a practical guide through the Spring Cloud projects, so you can see how they are used to implement microservice based architecture.

By the time you finish this course, you will have gained the ability to articulate what the Microservices architectural style is all about, including its advantages and disadvantages.

You will gain familiarity with Spring Boot, and you'll see how to use it to build web interfaces, REST interfaces, and how to use Spring Data and Spring Data REST.

You will gain the ability to build microservice-based applications utilizing Spring Cloud technologies. You will learn about

  • Centralized, versioned configuration management using Spring Cloud Config
  • Dynamic configuration updates with Spring Cloud Bus
  • Service discovery with Spring Cloud Eureka
  • Client Side Load Balancing with Ribbon
  • Declarative REST Clients with Feign
  • Software Circuit Breakers with Hystrix.

Who this course is for:

  • Intended for experienced Java software developers comfortable with the latest releases of the Spring framework
  • NOT intended for beginners. However, depending on your technical experience in other technologies, and your learning style, you may find this course a fascinating deep-dive into Microservices, Spring Cloud, and Cloud-Native applications.

Course content

5 sections • 30 lectures

What are Microservices? Part 1 Preview 16:33

Provides a description of the meaning of the Microservices architectural style, and begins to demonstrate it by showcasing the characteristics of a monolithic application.

What are Microservices? Part 2 Preview 19:44

Provides an explanation of the microservices architectural style by contrasting point-by-point with the previously described characteristics of the monolith. Outlines the relative advantages and disadvantages of each style, and provides guidance for applying the microservices style.

Spring Boot, Part 1 Preview 16:34

Explains the fundamental nature and purpose of Spring Boot, beginning with the very basics.

Spring Boot, Part 2 Preview 19:32

Guided explanation of Spring Boot web applications, WAR deployment, and Thymeleaf templating

Spring Boot, Part 3 Preview 15:06

Guided explanation of Spring Boot web applications utilizing JSPs, RESTful services, JSON, and XML

Spring Boot, Part 4 Preview 12:34

Adding Spring Data JPA to a Spring Boot application.

Spring Boot, Part 5 Preview 09:08

Adding Spring Data REST to a Spring Boot application.

Lab 1 - Create a Spring Boot Application Preview 00:02

Spring Cloud Overview Preview 10:09

A brief explanation of the Spring family of projects, where Spring Cloud fits in, and why Netflix technology is featured so much.

Spring Cloud Configuration - Centralized, Versioned Configuration - Part 1 Preview 14:48

A justification and explanation of Spring Cloud Config, and a step-by-step guide to creating your own Spring Cloud Server.

Spring Cloud Configuration - Centralized, Versioned Configuration, Part 2 Preview 17:18

Continued discussion of Spring Cloud Config focusing on the client side, repository organization, YML vs property files, and an explanation of the Spring Cloud application's startup process.

Lab 3 - Spring Cloud Configuration Preview 00:04

Spring Cloud Eureka - Service Discovery Preview 18:46

An explanation of passive service discovery, how to create a Eureka server, and how to register a Eureka client.

Lab 4 - Spring Cloud Eureka Preview 00:02

Spring Cloud Ribbon - Client-Side Load Balancing Preview 12:18

An exploration of server-side and client-side load balancing, and a practical guide to using Ribbon on a client.

Lab 5 - Spring Cloud Ribbon Preview 00:02

Spring Cloud Feign - Declarative REST Client Preview 11:53

A focused exploration of Feign, and how to use it to implement REST clients via a declarative style.

Lab 6 - Feign Preview 00:03

Spring Cloud Hystrix - Circuit Breaker Preview 20:22

This module examines the idea of circuit breakers in software, and describes how to use Hystrix with Ribbon and Feign.

Lab 7 - Hystrix Preview 00:03

Spring Cloud Bus - Dynamic Configuration Changes Preview 14:28

This module re-visits Spring Cloud Config, and demonstrates how to make changes dynamic using Spring Cloud Bus. It also explores how @RefreshScope and @ConfigurationProperties can be used to make an application resilient to live refresh.

Lab 8 - Spring Cloud Bus Preview 00:02

API Gateway - Part 1 - Purpose, and Spring Cloud Zuul Preview 12:07

API Gateway - Part 2 - Caching Options Preview 10:33

API Gateway - Part 3 - Resource Expansion Preview 11:03

API Gateway - Part 4 - Protocol Conversion Preview 05:34

Lab 9 - Zuul and ETags Preview 00:03

Summary, Resources, and Feedback Preview 05:02

Summary of what we've learned in this course, guide to further resources.