EIEIOTECHNOVATION
← Training programmes

EIEIO / CLOUD NATIVE & DEVOPS

Introduction to Microservices

Course outline

5 days

Duration

5 days

Course Overview

As organizations shift from monolithic applications to smaller, self-contained microservices, distributed systems have become more fine-grained. But developing these new systems brings its own host of problems. This course takes a holistic view of topics that you need to consider when building, managing, and scaling microservices architectures.

  • Get new information on user interfaces, container orchestration, and serverless
  • Align system design with your organization's goals
  • Explore options for integrating a service with your system
  • Understand how to independently deploy microservices
  • Examine the complexities of testing and monitoring distributed services
  • Manage security with expanded content around user-to-service and service-to-service models

Course Duration

5 days (based on 8 hours a day schedule)

Chapter 1 – Setting the Scene

  • From Basics to Advanced Topics
  • Skeleton with Spring Boot, the Professional Way
  • Test-Driven Development
  • Microservices
  • Event-Driven System
  • Nonfunctional Requirements

Chapter 2 – Basic Concepts

  • Spring
  • Spring Boot
  • Lombok and Java
  • Testing Basics
  • Test-Driven Development
  • Behavior-Driven Development
  • Junit
  • Mockito
  • AssertJ
  • Testing in Spring Boot
  • Logging

Chapter 3 – A Basic Spring Boot Application

  • Setting up the Development Environment
  • The Skeleton Web App
  • Spring Boot Autoconfiguration
  • Three-Tier, Three-Layer Architecture
  • Modeling Our Domain
  • Domain Definition and Domain-Driven Design
  • Domain Classes
  • Business Logic
  • What We Need
  • Random Challenges
  • Attempt Verification
  • Presentation Layer
  • REST
  • REST APIs with Spring Boot
  • Designing Our APIs
  • Our First Controller
  • How Automatic Serialization Works
  • Testing Controllers with Spring Boot

Chapter 4 – A Minimal Front End with React

  • A Quick Intro to React and Node
  • Setting Up the Development Environment
  • The React Skeleton
  • A JavaScript Client
  • The Challenge Component
  • The Main Structure of a Component
  • Rendering
  • Integration with the App
  • Running Our Front End for the First Time
  • Debugging
  • Adding CORS Configuration to the Spring Boot App
  • Deploying the React App

Chapter 5 – The Data Layer

  • The Data Model
  • Choosing a Database
  • SQL vs NoQSL
  • H2, Hibernate and JPA
  • Spring Boot Data JPA
  • Dependencies and Autoconfiguration
  • Spring Boot Data JPA Technology Stack
  • Data Source Autoconfiguration
  • Entities
  • Repositories
  • Storing Users and Attempts
  • Displaying Last Attempts
  • Service Layer
  • Controller Layer
  • User Interface

Chapter 6 – Starting with Microservices

  • The Small Monolith Approach
  • Why a Small Monolith?
  • The Problem with Microservices from Day Zero
  • Small Monoliths Are for Small Teams
  • Embracing Refactoring
  • Planning the Small Monolith for a Future Split
  • New Requirements and Gamification
  • Gamification: Points, Badges and Leaderboards
  • Moving to Microservices
  • Independent Workflows
  • Horizontal Scalability
  • Fine-Grained Nonfunctional Requirements
  • Advantages and Disadvantages
  • Architecture Overview
  • Designing and Implementing the New Service
  • Interfaces
  • The Spring Boot Skeleton for Gamification
  • Domain
  • Service
  • Data
  • Controller
  • Configuration
  • Changes in Multiplication Microservice
  • UI
  • The Challenges Ahead
  • Tight Coupling
  • Synchronous Interfaces vs Eventual Consistency
  • Transactions
  • API Exposure

Chapter 7 – Common Patterns in Microservice Archiectures

  • Gateway
  • Spring Cloud Gateway
  • The Gateway Microservice
  • Changes in Other Projects
  • Running the Gateway Microservice
  • Health
  • Spring Boot Actuator
  • Including Actuator in Our Microservices
  • Service Discovery and Load Balancing
  • Consul
  • Spring Cloud Consul
  • Spring Cloud Load Balancer
  • Service Discovery and Load Balancing in the Gateway
  • Playing with Service Discovery and Load Balancing
  • Configuration per Environment
  • Configuration in Consul
  • Spring Cloud Consul Config
  • Implementing Centralized Configuration
  • Centralized Configuration in Practice
  • Centralized Logs
  • Log Aggregation Pattern
  • A Simple Solution for Log Centralization
  • Consuming Logs and Printing Them
  • Distributed Tracking
  • Spring Cloud Sleuth
  • Implementing Distributed Tracing
  • Containerization
  • Docker
  • Spring Boot and Buildpacks
  • Running Our System in Docker
  • Dockerizing Microservices
  • Dockerizing the UI
  • Dockerizing the Configuration Importer
  • Docker Compose
  • Scaling Up the System with Docker
  • Sharing Docker Images
  • Platforms and Cloud-Native Microservices
  • Container Platforms
  • Application Platforms
  • Cloud Providers
  • Making a Decision
  • Cloud-Native Microservices
  • Conclusions

Programme scope, delivery arrangements and suitability are confirmed during enquiry.