Search our courses
Training

This Introduction to Microservices training course will help you understand the value proposition and technical aspects of microservices, a new and rather fuzzy concept used to describe rapidly provisionable, independently deployable services with narrow and distinct functionality.

For IT professionals, developers, software engineers, and DevOps practitioners – our microservices training provides the technical practices and tooling fundamentals necessary to begin realizing the benefits of microservices as a foundation for IT architecture, software engineering, and service/release delivery.

Upon completion of this Microservices training course, students will have fundamental understanding of microservices and practical experience in implementing microservices using different technology stacks.

This Microservices training course is supplemented by hands-on labs that help attendees reinforce their theoretical knowledge of the learned material.

TOPICS

  • Microservices
  • Docker
  • RESTful Web Services
  • Node.js
  • Spring Boot
  • Kubernetes
  • OpenShift

Technical Introduction to Microservices

Course Code

GTWTIM

Duration

2 Days

Course Fee

POA

Accreditation

N/A

Target Audience

  • IT Architects, Software Designers, and Developers

Attendee Requirements

  • Foundational knowledge of programming and software design principles.

Expand all

Course Description

This Introduction to Microservices training course will help you understand the value proposition and technical aspects of microservices, a new and rather fuzzy concept used to describe rapidly provisionable, independently deployable services with narrow and distinct functionality.

For IT professionals, developers, software engineers, and DevOps practitioners – our microservices training provides the technical practices and tooling fundamentals necessary to begin realizing the benefits of microservices as a foundation for IT architecture, software engineering, and service/release delivery.

Upon completion of this Microservices training course, students will have fundamental understanding of microservices and practical experience in implementing microservices using different technology stacks.

This Microservices training course is supplemented by hands-on labs that help attendees reinforce their theoretical knowledge of the learned material.

TOPICS

  • Microservices
  • Docker
  • RESTful Web Services
  • Node.js
  • Spring Boot
  • Kubernetes
  • OpenShift
Course Outline

Chapter 1. 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

Chapter 2. 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

Chapter 3. 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

Chapter 4. REST Services

  •     Many Flavors of Services
  •     Understanding REST
  •     Principles of RESTful Services
  •     REST Example – Create
  •     REST Example – Retrieve
  •     REST Example – Update
  •     REST Example – Delete
  •     REST Example – Client Generated ID
  •     SOAP Equivalent Examples
  •     REST Example – JSON
  •     Famous RESTful Services
  •     Additional Resources
  •     What is gRPC?
  •     Protocol Buffers
  •     REST vs. gRPC
  •     Protobuf vs. JSONHTTP/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 5. Microservices with Node.js

  •     What is Node.js?
  •     Node’s Value Proposition
  •     Example of a Node.js App: a Simple Web Server
  •     Node.js Project Types
  •     Managing Large Applications
  •     Core Modules
  •     Why Node.js uses JavaScript?
  •     The Traditional Concurrency Support Model
  •     Disadvantages of the Traditional Approach
  •     Event-Driven, Non-Blocking I/O
  •     The Success Callback Function
  •     Using Node Package Manager (NPM)
  •     NPM Registry (Repository)
  •     NPM Enterprise
  •     Package Life-Cycle Management
  •     Local and Global Package Installation Options
  •     Listing and Using Module Versions
  •     The Express Package
  •     Installing and Using Express
  •     Defining Routing Rules in Express
  •     Route Path
  •     The Response Object
  •     A Simple Web Service with Express ExampleThe MEAN Stack

Chapter 6. Introduction to Spring Boot for Non-Java Developers

  •     What is Spring Boot?
  •     Spring Boot Main Features
  •     Spring Boot vs DropWizard
  •     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

Chapter 7. 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 AnnotationImplementing JAX-RS Services and Spring
  •     JAX-RS Annotations
  •     Java Clients Using RestTemplate
  •     RestTemplate Methods

Chapter 8. Spring Security

  •     Securing Web Applications with Spring Security 3.0
  •     Spring Security 3.0
  •     Authentication and Authorization
  •     Programmatic v Declarative Security
  •     Getting Spring Security Gradle or Maven
  •     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
  •     Dealing with the State
  •     How Can I Maintain State?
  •     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 – SPA Client
  •     JSON Web Tokens
  •     JSON Web Token Architecture
  •     How JWT Works
  •     JWT Header
  •     JWT PayloadJWT Example Payload
  •     JWT Example Signature
  •     How JWT Tokens are Used
  •     Adding JWT to HTTP Header
  •     How The Server Makes Use of JWT TokensWhat are “Scopes”?
  •     JWT with Spring Boot – Dependencies
  •     JWT with Spring Boot – Main Class

Chapter 9. AWS Lambda

  •     What is AWS Lambda?
  •     Supported Languages
  •     Getting Your Code Up And Running in Lambda
  •     Examples of the Base Lambda Function
  •     Use Cases
  •     How It Works
  •     Example: Processing S3 Source Events with Lambda
  •     The Programming Model
  •     Configuring Lambda Functions
  •     Configure Triggers Page
  •     Lambda Function Blueprints
  •     How Do I Troubleshoot and Monitor My Lambda Functions?
  •     Developing Lambda in Java

Chapter 10. Consuming REST Services from a Client

  •     Accessing REST Services using jQuery – GET Example
  •     Accessing REST Services using jQuery – GET Example (Contd.)
  •     Accessing REST Services using jQuery – POST Example
  •     Accessing REST Services in React – Component
  •     Accessing REST Services in React – componentDidMount
  •     Accessing REST Services in React – render
  •     Accessing REST Services in React – POST Method
  •     The Angular HTTP Client
  •     Using The HTTP Client – Overview
  •     Importing HttpClientModule
  •     Simple Example
  •     Service Using HttpClient
  •     ES6 Import Statements
  •     Making a GET Request
  •     What does an Observable Object do?
  •     Using the Service in a Component
  •     The PeopleService Client Component
  •     Error Handling
  •     Making a POST Request
  •     Making a PUT Request
  •     Making a DELETE Request

Chapter 11. 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

Chapter 12. Introduction to Kubernetes

  •     What is Kubernetes
  •     What is a Container
  •     Container – Uses
  •     Container – ProsContainer – 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

Chapter 13. CI/CD with OpenShift, Jenkins, and Blue Ocean

  •     What is OpenShift
  •     OpenShift Online
  •     OpenShift Origin
  •     OpenShift Architecture
  •     OpenShift Origin Installation
  •     OpenShift CLI
  •     OpenShift CLI (Contd.)
  •     Jenkins Continuous Integration
  •     Jenkins Features
  •     Running Jenkins
  •     Downloading and Installing Jenkins
  •     Running Jenkins as a Stand-Alone Application
  •     Running Jenkins on an Application Server
  •     Installing Jenkins as a Windows Service
  •     Different types of Jenkins job
  •     Configuring Source Code Management(SCM)
  •     Working with Subversion
  •     Working with Subversion (cont’d)
  •     Working with Git
  •     Build Triggers
  •     Schedule Build Jobs
  •     Polling the SCM
  •     Maven Build Steps
  •     Jenkins / OpenShift Pipeline
  •     Jenkins / OpenShift Pipeline Output
  •     Installing Jenkins Plugins
  •     The Blue Ocean Plugin
  •     Blue Ocean Plugin Features
  •     New modern user experience
  •     Advanced Pipeline visualizations with built-in failure diagnosis
  •     Branch and Pull Request awareness
  •     Personalized View
  •     OpenShift Pipeline Output
  •     Creating OpenShift Blue Ocean Pipeline

Chapter 14. Leading Practices for Microservice Logging

  •     Logging Challenges
  •     Leading Practices
  •     Correlate Requests with a Unique ID
  •     Include a Unique ID in the Response
  •     Send Logs to a Central Location
  •     Structure Your Log Data
  •     Add Context to Every Record
  •     Examples of Content
  •     Write Logs to Local Storage
  •     Collecting Logs with Fluentd
  •     Leading Practices for Microservice Logging Summary
  •     Metrics Using Prometheus
  •     Overview
  •     Prometheus
  •     Prometheus Architecture
  •     Service Discovery
  •     File-based Service Discovery
  •     Istio and Prometheus
  •     Exposing Metrics in Services
  •     Querying in Prometheus
  •     Grafana
  •     Business Metrics
  •     Metrics Using Prometheus Summary
  •     Tracing Using Jaeger
  •     OpenTracing
  •     Jaeger
  •     Jaeger Architecture Diagram
  •     Jaeger Client Libraries
  •     Jaeger Sampling
  •     Jaeger Agent
  •     Jaeger Collector
  •     Query and Ingester Services
  •     Jaeger UI Example
  •     Jaeger and Prometheus
  •     Jaeger and Istio
  •     Tracing Using Jaeger

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

Lab Exercises

Lab 1. Monolith vs Microservices Design
Lab 2. Getting Started With Node.js
Lab 3. Getting Started with Spring Boot
Lab 4. Enable Basic Security
Lab 5. Using AWS Lambda
Lab 6. Getting Started with Docker
Lab 7. Getting Started with Docker Compose
Lab 8. Getting Started with Kubernetes
Lab 9. CI/CD with Jenkins, Docker, and OpenShift

Learning Path
Ways to Attend
  • Attend a public course, if there is one available. Please check our schedule, or register your interest in joining a course in your area.
  • Private onsite Team training also available, please contact us to discuss. We can customise this course to suit your business requirements.

Private Team Training is available for this course

We deliver this course either on or off-site in various regions around the world, and can customise your delivery to suit your exact business needs. Talk to us about how we can fine-tune a course to suit your team's current skillset and ultimate learning objectives.

Private Team Training | Contact us

Technical ICT learning & mentoring services

Private Team Training

Our instructors are specialist consultants with vast real world experience and expertise allowing them to design and deliver client-focused courses for your organisation.

Learn more about our Private Team Training

What Our Clients Say

"Absolutely fantastic training. Thoroughly enjoyed it thanks to our highly enthusiastic tutor.  It wouldn't be an understatement to say that it was the best professional training that I have ever received."

 

Customised Linux with Networking

Live Online -  February 2022

 

"The course content was very good. When needed, the Instructor was extending the content of the course with hints and tips to help us understand different topics that were covered in the course."

 

Kubernetes Administration Certification - GTLFK

Live Online June 2021

 

 

 

“The course was held at the highest possible standards, the instructor was excellent, well prepared, well informed, and clearly an SME. Top marks.”

 

Professional Cloud Service Manager - GTC13

Live Online December 2021

 

“Very engaging and practical course so hope to be able to put the learning into practice.”

 

Being Agile in Business - GTBAB

Live Online September 2021

 

“Great instructor, who encouraged active participation. The breakout groups and exercises kept the group engaged and the content relevant to our own products”.

 

Site Reliability Engineering Foundation - GTDSRE

Live Online January 2022

 

 

 

"Intelligence is the ability to avoid doing work, yet
getting the work done"

Linus Torvalds, creator of Linux and GIT

Technical ICT learning & mentoring services

About GuruTeam

GuruTeam is a high-level ICT Learning, Mentoring and Consultancy services company. We specialise in delivering instructor-led on and off-site training in Blockchain, Linux, Cloud, Big Data, DevOps, Kubernetes, Agile, Software & Web Development technologies. View our Testimonials

Download our eBrochure
Our Accreditation Partners
  •  
  •  
  •  

 

Upcoming Courses

Kubernetes Administration

28th - 31st May 2024

11th - 24th June 2024

18th - 21st June 2024

 Live Online

 

This Kubernetes Administration Certification training course is suitable for anyone who wants to learn the skills necessary to build and administer a Kubernetes cluster

Learn More

RUST

28th - 31st May 2024

11th - 14th June 2024

18th - 21st June 2024

 Live Online

This course will help you understand what Rust applications look like, how to write Rust applications properly, and how to get the most out of the language and its libraries.

Learn More

Introduction to Python 3 

7th - 9th May 2024

4th - 6th June 2024

 

Live Online

This Introduction to Python 3 training course is designed for anyone who needs to learn how to write programs in Python or support/modify existing programs.

 

Learn More

 GO LANG TRAINING

28th - 31st May 2024

11th - 14th June 2024

18th - 21st June 2024

 

Live Online        

 

This Go language programming training course will help you understand how Go works, and immediately be more productive. If you are building a team using Go, this will be a great opportunity to get your team on the same page and speaking the same language. Innovative lab exercises and code samples are provided to reinforce skills and quickly master the topics.

Learn More

Newsletter

Stay up to date, receive updates on scheduled dates, new courses, offers, and events.

Subscribe to our Newsletter