Upon completion of this training course, students will have fundamental understanding of microservices and practical experience in implementing microservices using different technology stacks.
This 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
AUDIENCE
IT Architects, Software Designers, and Developers
PRE-REQUISITES
Foundational knowledge of programming and software design principles.
DURATION
2 days
Outline for Technical Introduction to Microservices Training
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
- Summary
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
- Summary
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
- Summary
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. 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
- Summary
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 Example
- The MEAN Stack
- Summary
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
- Summary
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 Annotation
- Implementing JAX-RS Services and Spring
- JAX-RS Annotations
- Java Clients Using RestTemplate
- RestTemplate Methods
- Summary
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 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 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
- Summary
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
- Summary
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
- Summary
Chapter 12. 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 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
- Summary
Chapter 14. Appendix A: 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 Summary
Chapter 15. Appendix B: 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. 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. Angular Communication with REST Services
Lab 7. Creating a Docker Account and Obtain an Access Token
Lab 8. Getting Started with Docker
Lab 9. Getting Started with Kubernetes
Lab 10. CI/CD with Jenkins, Docker, and OpenShift
Introduction to Microservices Architecture
This Microservices Training video will help you to understand the value proposition and technical aspects of Microservices.
Related Course: WA2755
Proven Results
For over 20 years, we have trained thousands of developers at some of the country’s largest tech companies – including many Fortune 500 companies. We’re proudly distinguished by these clients, partners and awards.






Here are some reviews from past students who completed our Microservices Training:
I found there was a good amount of effort put in to tying the theory to more practical examples.
The instructor is really knowledgeable and he knew very well how to address questions with practical examples. I felt that he is highly knowledgeable, enthusiastic and delivered way more content than the courses's objectives. Very impressed.
I have an idea on how to apply this learning into something that can make a real big impact at work in a positive sense. Thank you for the training, this rocked!
A great instructor, he was full of knowledge and very helpful
Labs were fun, the group was very active and everyone enjoyed learning microservices and wanted to understand more by asking questions. All questions were answered
It was a real eye opener for everyone on all the possible technologies, concepts and proven patterns that we could use to make our product better
Microservices-Load Balancing, Monitoring and Tracing
A service mesh is a network of Microservices that make up applications and the interactions between them. Load balancing, monitoring, and tracing are some of the important requirements for a service mesh. In this Microservices Training video we discuss how Kubernetes helps in adding load balancing and failure recovery. We will also discuss how to monitor Microservices by using Prometheus and implement tracing by using Jaegar.
Related Microservices Training courses:
Microservices Development Bootcamp with immersive project (WA2874)
Architecting Microservices with Kubernetes, Docker, and Continuous Integration (WA2675)
Frequently Asked Questions:
What is Microservices?
Microservices are a subset of a broader SOA context. Microservices architecture is a software development technique where applications are broken down into smaller, independent services, that are not dependent upon a specific coding language. It structures an application as independently deployable services that are accessible over common communication protocols.
What is microservices testing?
testing is the approaches that are taken to test Microservices independently. Because of the distributed nature of Microservices development, testing can be a big challenge. There are five layers of tests that are performed over Microservices – Unit Testing, Integration Testing, Component Testing, Contract Testing and End-to-End Testing.
How Microservices communicate?
Microservices use technology-agnostic protocols. There are two kinds of communication mechanisms that Microservices can use, asynchronous messaging and synchronous request/response.
How to build Microservices?
There are a number of application frameworks and platforms that facilitate
the creation and deployment of Microservices, e.g. Spring Boot, Dropwizard, and Node.js.
For more details, refer to our Developing Microservices Training course https://www.webagesolutions.com/courses/WA2684-developing-microservices
Are Microservices the Future?
Many companies are moving towards a Microservices way of creating software. Adopting Microservices allows organizations to achieve greater agility and realize lower costs. There are a number of motivating forces that drive the adoption of Microservices:
- An increased demand for faster development and deployment cycles
- The need for better testability of complex systems
- Resilience to system failures
- System scalability
What is the best way to learn Microservices?
Web Age Solution’s Microservices Training offers the best Microservices courses that you need to master the technology. With our live instructor-led courses, we strive hard to make sure your learning objectives are fulfilled.
Our courses are offered as instructor-led, onsite live Microservices training which can be carried out locally on customer premises or in Web Age corporate training centers. Remote live training is carried out by way of an interactive, remote desktop.
What are the career progression and opportunities in Microservices?
Microservices training offers good opportunity for anyone with developing background. Big players like Apple, IBM and Cisco use Microservices architecture along with various other startups who are looking to efficiently roll out products and update them regularly.
Can I take Live Virtual Microservices Training?
Yes! Our Microservices training is available as “onsite live virtual Microservices training” or “remote live virtual Microservices training”. Onsite live Microservices training can be carried out locally on customer premises or in Web Age corporate training centers. Remote live Virtual Microservices training is carried out by way of an interactive, remote desktop.
What is the future scope for Microservices?
Microservices as an architecture is being widely used in the tech industry. It uses minimal resources and reduces the cost of ownership. Due to this fact, Microservices will continue to dominate the tech industry and the job market is potentially set to grow further. Getting certified in Microservices can help you land your dream job.
Why Choose Web Age Solutions for Microservices Training?

Best price in the industry
You won’t find better value in the marketplace. If you do find a lower price, we will beat it.

Various delivery methods
Flexible delivery methods are available depending on your learning style.

Resources
Resources are included for a comprehensive learning experience.
We regularly offer Microservices Training classes in these and other cities. Atlanta, Austin, Baltimore, Calgary, Chicago, Cleveland, Dallas, Denver, Detroit, Houston, Jacksonville, Miami, Montreal, New York City, Orlando, Ottawa, Philadelphia, Phoenix, Pittsburgh, Seattle, Toronto, Vancouver, Washington DC.