Course Code: springcloudanddockerli
Duration: 21 hours
Course Outline:

培訓天數 

3天,21小時(每日含午休1小時)

Day 1

Chapter 1. Microservices

Overview of Microservices

SOA

ESB

Traditional Monolithic

Disadvantages of Monoliths

Moving from a Legacy Monolith

When Moving from a Legacy Monolith

The Driving Forces Behind Microservices

How Can Microservices Help You?

The Microservices Architecture

Microservices Inter-connectivity

The Data Exchange Interoperability Consideration

Managing Microservices

Implementing Microservices

Summary

Chapter 2. Spring REST Services

Many Flavors of Services

Understanding REST

RESTful Services

REST Resource Examples

REST vs SOAP

REST Services With Spring MVC

Spring MVC @RequestMapping with REST

Working With the Request Body and Response Body

@RestController Annotation

Java Clients Using RestTemplate

RestTemplate Methods

Summary

Exercise 1. Create a RESTful API with Spring Boot

Chapter 3. Spring Cloud Config

The Spring Cloud Configuration Server

Why Configuration Management is Important

Configuration Management Challenges in Microservices

Separation of Configuration from Code

Configuration Service

How the Configuration Service Works

Cloud Config Server Properties File

Git Integration

Properties

Configuration Client

Sample Client Config File

Sample Client Application

Dynamic Property Updates – Server

Dynamic Property Update – Client

Dynamic Property Update – Execute

Summary

Exercise 2. Config Service

Chapter 4. Spring Security

Securing Web Applications with Spring Security 3.0

Spring Security 3.0

Authentication and Authorization

Programmatic v Declarative Security

Getting Spring Security from Maven

Spring Security Configuration

Spring Security Configuration Example

Authentication Manager

Using Database User Authentication

LDAP Authentication

Summary

Exercise 3. Enable Basic Security

Day 2

Chapter 5. Service Discovery with Netflix Eureka

Service Discovery in Microservices

Load Balancing in Microservices

Netflix Eureka

Eureka Architecture

Communications in Eureka

Time Lag

Eureka Deployment

Peer Communication Failure between Servers

Eureka Server Configuration

Eureka Client/Service

Eureka Client Properties

Spring Cloud DiscoveryClient Interface

ServiceInstance JSON

ServiceInstance Interface

Summary

Exercise 4. Use Netflix Eureka for Service Discovery

Chapter 6. Load-Balancing with Netflix Ribbon

Load Balancing in Microservices

Netflix Ribbon

Server-side load balance

Client-side Load Balance

Architecture

Load Balance Rules

RoundRobinRule

AvailabilityFilteringRule

WeightedResponseTimeRule

RandomRule

ZoneAvoidanceRule

IPing Interface (Failover)

Using Ribbon

YAML Configuration

Configuration Class

Client Class

Client Class Implementation

Integration with Eureka (Service Discovery)

Summary

Exercise 5. Use Netflix Ribbon for Client-Side Load Balancing

Chapter 7. Netflix Hystrix

Retry, Timeout and Fallback Patterns

Netflix Hystrix

Design Principles

Cascading Failures

Bulkhead Pattern

Circuit Breaker Pattern

Thread Pooling

Request Caching

Request Collapsing

Fail-Fast

Fallback

Using Hystrix

Circuit Breaker Configuration

Fallback Configuration

Collapser Configuration

Rest Controller and Handler

How the Collapser Works

Hystrix Monitor

Enable Monitoring

Turbine

The Monitor

Monitor details

Summary

Exercise 6. Use Netflix Hystrix for the Circuit Breaker Pattern

Chapter 8. Spring Cloud Gateway

Blocking vs Non-Blocking Gateway

Spring Cloud Gateway Architecture

Handler Mapping

Web Handler Filters

Global Filter

Post Filters

Summary

Day 3

Chapter 9.  Spring Boot Actuator

Enabling Production-ready Features

Endpoints

Monitoring and Management over HTTP

Monitoring and Management over JMX

Loggers

Metrics

Auditing

HTTP Tracing

Process Monitoring

Exercise 7. Writing Custom HealthIndicators

Chapter 10. Distributed Log Tracing using Sleuth and Zipkin

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

Use spring-cloud-starter-zipkin and spring-rabbit

Using Zipkin UI Dashboard to trace requests

Summary

Exercise 8. Distributed tracing with Zipkin

Chapter 11. Testing and Deploying with Docker

Introduction

Container Technology Overview

Installing Docker

Managing Containers

Managing Images

Creating Images with DOCKERFILE

Docker Volumes

Docker Compose/SWARM

Docker Networking

Docker Logging

Summary and Conclusion

Exercise 9. Running Spring Cloud Microservices in Docker

Chapter 12. Activiti with Spring

Overview

Initial Setup

Creating a ProcessEngine

Process Definition and Related Terms

Services

Working With Activiti Services

Deploying a Process

Starting a ProcessInstance

Completing Tasks

Suspending and Activating a Process

Conclusion