Understanding Microservices is a technical overview services training course geared for managers and project stakeholders who need to understand the impact of microservices, what is different about a microservice orientation and the overall process of adoption and implementation. This course focuses on what separates an ad hoc set of services from a managed, vibrant, reusable catalog of microservices. It provides an overview of the entire spectrum from the promise of shattering monolithic computing to the grit of exchanging data. The course presents a clear portrait of how a microservice orientation can fundamentally change the dynamics of how software is developed and "lives" within an enterprise.
Organizations are struggling with how to translate the microservice/DevOps/Continuous Deployment vision into practical terms and concepts. Understanding Microservices: A Technical Overview is designed for enterprise managers and stakeholders who wish to understand what microservices and a microservice-orientation are and how implementing microservices will impact their projects.
While our training is “technology centric”, it is vendor independent, meaning that the content is not clouded by sales and marketing messages. Although a specific product can be discussed, the comprehensive lessons are geared towards teaching the practical application of microservices, rather than focusing on the finer points of the tools in use. Of course, microservices is not a technology but a set of practices and concepts that hold the promise of more closely aligning business with IT applications.
Microservices continues the evolution of systems and applications being decomposed into smaller components that work together to accomplish larger business tasks and services. Microservices are single purpose, autonomous, and independently deployable.
This course provides a solid understanding of what microservices bring to the table and how to facilitate the implementation, deployment, and management of microservices. Students are taken on an in-depth tour of the basic microservices concepts as well as how they relate to SOA and other architectural styles. They will examine the challenges associated with microservices as well as how to identify and design them. The course then moves into designing and building REST-based services and working those services using various components. The course addresses additional challenges such as scaling, monitoring, securing, and containerizing microservices.
Working in a dynamic, interactive discussion and demo environment, led by our experienced services professional, students will be able to:
- Explain the issues associated large, monolithic applications and how microservices present an opportunity to address many of those issues.
- Understand the relationships between microservices and SOA, SOAP services, and other recent initiatives.
- Implement RESTful microservices that take advantage of containers and the declarative nature of assembling simple components into executable entities.
- Work with implemented microservices to package, deploy, and manage them.
- Understand and work with the Cloud to scale microservices
- Containerize microservices using Docker
- Recognize and use best practices relative to designing and working with microservices
- If time permits, there is also coverage of OAuth and OpenID
This an overview level services training course, designed for people who need to understand and manage existing or upcoming microservice projects. Experience with managing and working with enterprise applications will be helpful. We will explore the terminology, the specification, the processes and technologies specific to microservices. Attendees should have a minimum of 2 years working knowledge in the IT industry. A basic understanding of software development and web-based applications is necessary. Actual development working knowledge is helpful but not necessary.
Please see the Related Courses tab for specific Pre-Requisite courses, Related Courses that offer similar skills or topics, and next-step Learning Path recommendations.
Please note that this list of topics is based on our standard course offering, evolved from typical industry uses and trends. We’ll work with you to tune this course and level of coverage to target the skills you need most. Topics, agenda and labs are subject to change, and may adjust during live delivery based on audience needs and skill-level.
Session: Microservices Overview
Lesson: Monolithic Versus Micro
- Trend to reduce the monolithic nature of applications
- Explain the principles and characteristics of microservices
- Recognize both good and poor candidates for microservices
Lesson: Supporting and Managing Microservices
- Scaling Microservices
- Microservices Components
- Load Management
- Cloud Services
Lesson: Designing Microservices
- Microservice Boundaries
- Size of Deployable Unit
- Communication Patterns
- Microservice endpoints
- Data Stores and Transaction Boundaries
- Challenges with Microservices
Session: The Microservices Ecosystem
Lesson: Working with Microservices
- Typical Microservices Stack
- Monitoring Microservices
- Containerizing with Docker
- Deploying into Docker
- Orchestration of Microservices
Lesson: Microservice Best Practices
- Motivation and Mindset
- Minimum Viable Product
- Challenges of Data and Data Islands
- Spring Data and Microservices
- PrePersist, PreUpdate, and Repository Interface
- A DevOps-Style Microservice Life Cycle
- Continuous Delivery Pipeline
- Tracking APIs and API Consumers
Lesson: Microservice Patterns
- Aggregator Pattern
- Branch Pattern
- Proxy Pattern
- Chained Pattern
- Shared Resources (Data) as a Pattern
- Asynchronous Messaging Pattern
- Circuit Breaker/Bulkhead Isolation Pattern
- Continuous Integration/Delivery Pattern
Lesson: Microservice Anti-Patterns and Challenges
- Shared Resources as an Anti-Pattern
- Microservice Costs
- When to Apply and NOT Apply
- Data island’s
- Dependency management
- Cohesion Creep
- Avoiding Versioning
- Continuous Integration/Delivery Anti-Pattern
Lesson: Overview of OAuth and OpenID
- OAuth 2.0 Terminology and Concepts
- Usage Models
- OAuth 2.0 Tokens
- OpenID Connect Overview
- OpenID Providers
- Spring OAuth2 Project
Each student will receive course notes that align with the presentation, as well as any related reference materials and links (as applicable).