A combination of theoretical concepts and practical labs, this Microservices Development Bootcamp covers DevOps fundamentals, Git Flow, twelve-factor applications, microservice development, and much more. The course is designed as a practical solution so students can apply their knowledge at work right away.

Sign up for this Microservices Development Bootcamp today.

Objectives

  • Introduction to DevOps practices and GitFlow
  • Breaking up Monoliths into Microservices
  • Build using Gradle
  • Creating RESTful services with Spring Boot
  • Using databases and JPA in Spring Boot
  • Security patterns and best practices in Spring Boot
  • Deploying resilient and scalable services
  • Traffic routing patterns
  • Metrics and tracing of Microservices

Audience

Developers, solution architects and technical team leads.

Prerequisites

  • Knowledge of Java – Equivalent to https://www.webagesolutions.com/courses/WA2494-introduction-to-java-8-using-eclipse  
  • Git - Equivalent to https://www.webagesolutions.com/courses/WA2410-git-training-introduction-to-version-control-with-git

Duration

Five days

Download Sample Labs Lab Setup Guide

Outline for Microservices Development Bootcamp with immersive project (using Spring Boot and Docker) Training

Chapter 1. DevOps Fundamentals

  • Why DevOps
  • What is DevOps?
  • Collaborative, Matrixed and Cross-Functional Teams
  • Key Components of Successful DevOps Teams
  • DevOps-ification
  • DevOps Vocabulary
  • DevOps Goals
  • Not DevOps - Crush Buzzwords
  • Driving Business Outcomes with DevOps
  • Technology-Enabled Business
  • DevOps Key Enabler for Digital Transformation
  • Core Values and Mission
  • Core Values - Culture
  • Core Values - Automation
  • Core Values - Measurement
  • Core Values - Sharing
  • Communication
  • Collaboration
  • Value Stream Mapping
  • Behavioral Patterns for Success
  • DevOps Org Structures
  • DevOps Team - Separate
  • DevOps Merged Organization
  • DevOps Overlapped Organization
  • Organizational Structure Leadership
  • What Does Continuous Delivery Mean?
  • Deployment Pipelines
  • Your Organization is Doing CD if …
  • Pipelining for CD
  • Continuous Integration
  • CI Pipeline
  • CD & CI Methodologies
  • Key Tool Categories for CI/CD
  • Summary

Chapter 2. Introduction to Git Flow

  • Why Use an SCM Workflow?
  • Why Use an SCM Workflow? (Cond.)
  • What is Git Flow
  • The Main Branch
  • Benefits
  • How Git Flow works?
  • How Git Flow works? (Contd.)
  • What is Git Flow? (Contd.)
  • How Git Flow works? (Contd.)
  • Git Flow Extension
  • Initializing Git Flow
  • Features
  • Release
  • Hotfixes
  • Git Flow and Continuous Integration
  • Git Flow – Summary
  • Git Flow – Pros and Cons
  • Git Flow – When it Works Best?
  • Git Flow – When it Doesn’t Work?
  • Git Flow Alternatives
  • Trunk-based Development
  • Trunk-based Development (Contd.)
  • Trunk-based Development – When it Works?
  • Trunk-based Development – When it Doesn’t Work?
  • GitHub Flow
  • GitHub Flow – Pros and Cons
  • GitLab Flow
  • GitLab Flow – Environment Branches
  • GitLab Flow – Release Branches
  • GitLab Flow – Release Branches (Contd.)
  • GitLab Flow – Pros and Cons
  • Summary

Chapter 3. Breaking Up Monoliths – Pros and Cons

  • Traditional Monolithic Applications and Their Place
  • Disadvantages of Monoliths
  • Developer's Woes
  • Architecture Modernization
  • Architecture Modernization Challenges
  • Microservices Architecture is Not a Silver Bullet!
  • What May Help?
  • In-Class Discussion
  • Summary

Chapter 4. Twelve-factor Applications

  • Twelve-factor Applications
  • Twelve Factors, Microservices, and App Modernization
  • The Twelve Factors
  • Categorizing the 12 Factors
  • 12-Factor Microservice Codebase
  • 12-Factor Microservice Dependencies
  • 12-Factor Microservice Config
  • 12-Factor Microservice Backing Services
  • 12-Factor Microservice Build, Release, Run
  • 12-Factor Microservice Processes
  • 12-Factor Microservice Port Binding
  • 12-Factor Microservice Concurrency
  • 12-Factor Microservice Disposability
  • 12-Factor Microservice Dev/Prod Parity
  • 12-Factor Microservice Logs
  • 12-Factor Microservice Admin Processes
  • Kubernetes and the Twelve Factors - 1 Codebase
  • Kubernetes and the Twelve Factors - 2 Dependencies
  • Kubernetes and the Twelve Factors - 3 Config
  • Kubernetes and the Twelve Factors - 4 Backing Services
  • Kubernetes and the Twelve Factors - 5 Build, Release, Run
  • Kubernetes and the Twelve Factors - 6 Processes
  • Kubernetes and the Twelve Factors - 7 Port Binding
  • Kubernetes and the Twelve Factors - 8 Concurrency
  • Kubernetes and the Twelve Factors - 9 Disposability
  • Kubernetes and the Twelve Factors - 10 Dev/Prod Parity
  • Kubernetes and the Twelve Factors - 11 Logs
  • Kubernetes and the Twelve Factors - 12 Admin Processes
  • Summary

Chapter 5. Microservice Development

  • What are Microservices?
  • Microservices vs Classic SOA
  • Principles of Microservices Architecture Design
  • Domain-Driven Design
  • Domain-Driven Design - Benefits
  • Microservices and Domain-Driven Design
  • Designing for failure
  • Microservices Architecture – Pros
  • Microservices Architecture – Cons
  • Docker and Microservices
  • Microservice Deployment with Docker – Workflow
  • Writing Dockerfile
  • Kubernetes
  • What is OpenShift
  • OpenShift Architecture
  • Microservices and Various Applications
  • Web Applications
  • Web Applications – Reference Architecture
  • Web Applications – When to use?
  • Single Page Applications
  • Single Page Applications – Benefits
  • Traditional Enterprise Application Architecture
  • Sample Microservices Architecture
  • Serverless & Event-driven Microservice – AWS Lambda
  • Summary

Chapter 6. gRPC

  • What is gRPC?
  • Protocol Buffers
  • REST vs. gRPC
  • Protobuf vs. JSON
  • HTTP/2 vs. HTTP 1.1
  • HTTP/2 vs. HTTP 1.1 (Contd.)
  • Messages vs. Resources and Verbs
  • Streaming vs. Request-Response
  • Strong Typing vs. Serialization
  • Web Browser Support
  • REST vs. gRPC – In a Nutshell

Chapter 7. Introduction to Spring Boot

  • What is Spring Boot?
  • Spring Framework
  • How is Spring Boot Related to Spring Framework?
  • Spring Boot 2
  • Spring Boot Main Features
  • Spring Boot on the PaaS
  • Understanding Java Annotations
  • Spring MVC and REST Annotations
  • Example of Spring MVC-based RESTful Web Service
  • Spring Booting Your RESTful Web Service
  • Spring Boot Skeletal Application Example
  • Starters
  • Maven - The 'pom.xml' File
  • Spring Boot Maven Plugin
  • Gradle - The 'build.gradle' File
  • Spring Boot Gradle Plugin
  • HOWTO: Create a Spring Boot Application
  • Spring Initializr
  • Summary

Chapter 8. Overview of Spring Boot Database Integration

  • DAO Support in Spring
  • Spring Data Access Modules
  • Spring JDBC Module
  • Spring ORM Module
  • DataAccessException
  • @Repository Annotation
  • Using DataSources
  • DAO Templates
  • DAO Templates and Callbacks
  • ORM Tool Support in Spring
  • Summary

Chapter 9. Using Spring with JPA

  • Spring JPA
  • Benefits of Using Spring with ORM
  • Spring @Repository
  • Using JPA with Spring
  • Configure Spring Boot JPA EntityManagerFactory
  • Application JPA Code
  • Spring Boot Considerations
  • Spring Data JPA Repositories
  • Database Schema Migration
  • Database Schema Migration for CI/CD using Liquibase
  • How Liquibase Works?
  • Changelogs in Liquibase
  • Preconditions in Changelogs
  • Sample Empty Changelog
  • Sample Precondition in Changelog
  • Sample Changeset in Changelog
  • Running Liquibase
  • Liquibase Commands
  • Summary

Chapter 10. Spring REST Services

  • REpresentational State Transfer
  • Principles of RESTful Services
  • Understanding REST
  • REST Example – Create
  • REST Example – Retrieve
  • REST Example – Update
  • REST Example – Delete
  • REST Example – Client Generated ID
  • REST Example – JSON
  • @RestController Annotation
  • HTTP Request Method Mapping
  • Path Variables and Query Parameters
  • RequestBody and ResponseBody
  • JAX-RS vs Spring
  • Java Clients Using RestTemplate
  • RestTemplate Methods
  • RestTemplate Example
  • Testing with Postman
  • Summary

Chapter 11. Scripting in Postman

  • Postman Scripts
  • Organization
  • Execution Order
  • Pre-Request Scripts
  • Post-Request Scripts
  • Console Output
  • Tests
  • Sample Assertions
  • Multiple Test Example
  • Test Results
  • Variables
  • Variable Scope
  • Defining Global Variables
  • Defining GlobalVariables
  •  
  • Using Environment Variables
  • Dynamic Variables
  • Summary

Chapter 12. Spring Security

  • Securing Web Applications with Spring Boot 2
  • Spring Security
  • Authentication and Authorization
  • Programmatic vs Declarative Security
  • Adding Spring Security to a Project
  • Spring Security Configuration
  • Spring Security Configuration Example
  • Authentication Manager
  • Using Database User Authentication
  • LDAP Authentication
  • What is Security Assertion Markup Language (SAML)?
  • What is a SAML Provider?
  • Spring SAML2.0 Web SSO Authentication
  • Setting Up an SSO Provider
  • Adding SAML Dependencies to a Project
  • SAML vs. OAuth2
  • OAuth2 Overview
  • OAuth – Facebook Sample Flow
  • OAuth Versions
  • OAuth2 Components
  • OAuth2 – End Points
  • OAuth2 – Tokens
  • OAuth – Grants
  • Authenticating Against an OAuth2 API
  • OAuth2 using Spring Boot – Dependencies
  • OAuth2 using Spring Boot – application.yml
  • OAuth2 using Spring Boot – Main Class
  • OAuth2 using Spring Boot – Single Page Application Client
  • JSON Web Tokens
  • JSON Web Token Architecture
  • How JWT Works
  • JWT Header
  • JWT Payload
  • JWT Example Payload
  • JWT Example Signature
  • How JWT Tokens are Used
  • Adding JWT to HTTP Header
  • How The Server Makes Use of JWT Tokens
  • What are “Scopes”?
  • JWT with Spring Boot – Dependencies
  • JWT with Spring Boot – Main Class
  • Summary

Chapter 13. Docker Introduction

  • What is Docker
  • Where Can I Run Docker?
  • Installing Docker Container Engine
  • Docker Machine
  • Docker and Containerization on Linux
  • Linux Kernel Features: cgroups and namespaces
  • The Docker-Linux Kernel Interfaces
  • Docker Containers vs Traditional Virtualization
  • Docker Integration
  • Docker Services
  • Docker Application Container Public Repository
  • Competing Systems
  • Docker Command Line
  • Starting, Inspecting, and Stopping Docker Containers
  • Docker Volume
  • Dockerfile
  • Docker Compose
  • Using Docker Compose
  • Dissecting docker-compose.yml
  • Specifying services
  • Dependencies between containers
  • Injecting Environment Variables
  • runC Overview
  • runC Features
  • Using runC
  • Running a Container using runC
  • Summary

Chapter 14. Introduction to Kubernetes

  • What is Kubernetes
  • What is a Container
  • Container – Uses
  • Container – Pros
  • Container – Cons
  • Composition of a Container
  • Control Groups
  • Namespaces
  • Union Filesystems
  • Popular Containerization Software
  • Microservices
  • Microservices and Containers / Clusters
  • Microservices and Orchestration
  • Microservices and Infrastructure-as-Code
  • Kubernetes Container Networking
  • Kubernetes Networking Options
  • Kubernetes Networking – Balanced Design
  • Summary

Chapter 15. Traffic Routing Patterns

  • Edge Proxy Server
  • Request Handling
  • Filters
  • Filter Architecture
  • API Gateway for Routing Requests
  • API Gateway for Routing Requests (Contd.)
  • API Gateway – Example
  • Rate Limiting
  • Rate Limiting – Business Cases
  • Configuring Rate Limiting in NGINX
  • Circuit Breaker
  • Design Principles
  • Design Principles (continued)
  • Cascading Failures
  • Bulkhead Pattern
  • Circuit Breaker Pattern
  • Thread Pooling
  • Request Caching
  • Request Collapsing
  • Fail-Fast
  • Fallback
  • Circuit Breaker Solutions
  • Load Balancing in Microservices
  • Server-side load balance
  • Client-side Load Balance
  • Architecture
  • Service Mesh
  • Service Mesh (Contd.)
  • Service Mesh Solutions
  • Content Delivery Network (CDN)
  • How does a CDN Work?
  • Benefits of using a CDN
  • CDN Solutions
  • Summary

Lab Exercises

Lab 1. Using the GitFlow Workflow
Lab 2. Monolith vs Microservices Design
Lab 3. A Simple RESTful API in Spring Boot
Lab 4. Use the Spring JDBCTemplate under Spring Boot
Lab 5. Use the Spring Data JPA under Spring Boot
Lab 6. Create a RESTful API with Spring Boot
Lab 7. Enable Basic Security
Lab 8. Creating a Docker Account and Obtain an Access Token
Lab 9. Getting Started with Docker
Lab 10. Load Balancing using Kubernetes
Lab 11. Getting Started with Istio

01/15/2024 - 01/19/2024
10:00 AM - 06:00 PM
Eastern Standard Time
Online Virtual Class
USD $3,140.00
Enroll
02/19/2024 - 02/23/2024
10:00 AM - 06:00 PM
Eastern Standard Time
Online Virtual Class
USD $3,140.00
Enroll
03/25/2024 - 03/29/2024
10:00 AM - 06:00 PM
Eastern Standard Time
Online Virtual Class
USD $3,140.00
Enroll