Course Code: microservicesadvcustom
Duration: 21 hours
Prerequisites:
  • Basic understanding of software and system engineering required.
  • Good understanding of system development and integration recommended.
  • Some exposure to problems encountered during building complex enterprise solutions recommended.
Overview:

This course offers experience-driven advice to help you design, implement, test, and deploy your microservices-based application.

This course covers popular application frameworks such Spring Boot and MicroProfile to deploy and manage microservices at scale with Linux containers.

This course explains invaluable set of design patterns for writing services and composing them into systems that scale and perform reliably under real-world conditions.

Course Outline:

Microservices Architecture Overview

Spring Boot for Microservices

Monolithic architecture decomposition strategies

Interprocess communication in a microservice architecture

  • Remote procedure invocation, Circuit breaker, Client-side discovery, Self-registration, Server-side discovery, Third party registration, Asynchronous messaging, Transactional outbox, Transaction log tailing, Polling publisher

Managing transactions with sagas

  • Maintain data consistency
  • Choreography and Orchestration

Designing business logic in a microservice architecture

  • Transaction script pattern and Domain model pattern
  • Domain-driven design (DDD) aggregate pattern
  • Domain event pattern

Developing business logic with event sourcing

  • Event store
  • Integrating sagas

Implementing queries in a microservice architecture

  • API composition pattern
  • Command query responsibility segregation (CQRS) pattern

External API patterns

  • API gateway
  • Reactive programming
  • GraphQL

Testing microservices

Building a reusable microservice framework

  • Health check API
  • Log aggregation
  • Distributed tracing
  • Exception tracking
  • Application metrics
  • Audit logging

Building a delivery pipeline for microservices

Deploying Microservices at Scale with Docker and Kubernetes

  • Language-specific packaging format
  • Deploying a service as a VM
  • Deploying a service as a container
  • Serverless deployment

Recommended practices for microservice teams