8147  Reviews star_rate star_rate star_rate star_rate star_half

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

A combination of theoretical concepts and practical labs, this Microservices Development Bootcamp covers DevOps fundamentals, Git Flow, twelve-factor applications, microservice development, and much...

Read More
$3,140 USD
Course Code WA2874
Duration 5 days
Available Formats Classroom, Virtual

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.

Skills Gained

  • 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

Who Can Benefit

Developers, solution architects and technical team leads.

Prerequisites

  • Knowledge of Java – Equivalent to WA2494
  • Git - Equivalent to WA2410

Course Details

Outline of 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
  • Enterprise DevOps Playbook
  • Enterprise DevOps Playbook (Contd.)
  • Summary

Chapter 2. Introduction to Git Flow

  • Why Use an SCM Workflow?
  • Why Use an SCM Workflow? (Cond.)
  • What is Git Flow
  • 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 Annotations
  • Example of Spring MVC-based RESTful Web Service
  • Spring Booting Your RESTful Web Service
  • Spring Boot Skeletal Application Example
  • Converting a Spring Boot Application to a WAR File
  • Externalized Configuration
  • Starters
  • Maven - The 'pom.xml' File
  • Spring Boot Maven Plugin
  • Gradle - The 'build.gradle' File
  • Spring Boot Maven 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
  • 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

  • Many Flavors of Services
  • Understanding REST
  • RESTful Services
  • REST Resource Examples
  • @RestController Annotation
  • Implementing JAX-RS Services and Spring
  • JAX-RS Annotations
  • Java Clients Using RestTemplate
  • RestTemplate Methods
  • 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. Getting Started with Docker
  • Lab 9. Load Balancing using Kubernetes
  • Lab 10. Getting Started with Istio
|
View Full Schedule