Format: Live Virtual Training
Duration: 1-Day Class
Instructor: Mark Richards
Microservices is one of the latest software architecture styles that promises to deliver benefits such as ease of testing, fast and easy deployments, fine-grained scalability, architectural modularity, and overall agility. It is undeniably one of the latest trends in the software industry, and everyone seems to be jumping on the bandwagon to quickly embrace and adapt this new architecture style. Unfortunately, as many companies are painfully experiencing, microservices is a fairly complex architecture style that is not suited for all applications and environments.
In this intensive 1-day hands-on virtual training class I take you on a detailed journey through the microservices architecture style. By the end of this course, you will gain a full understanding of microservices from and architecture and design standpoint, gain a full understanding of the implications and challenges of microservices (and how to overcome those challenges), and finally validate whether microservices is the right choice for your company.
For more information about the pricing and availability of this course for private (corporate) training, please contact me at info@developertoarchitect.com. For public training offerings for this course, please see my public schedule at my upcoming events page.
Course Agenda
Unit 1. Architectural Modularity
1.1 Why Modularity?
1.2 Technical Drivers
1.3 Business Drivers
Unit 2. Microservices Core Concepts
2.1 Topology Overview
2.2 Microservice Definition
2.3 Bounded Context
Unit 3. Service Design
3.1 Micro-Hexagonal Design Techniques
3.2 Protocol-Agnostic Processing
3.3 Protocol Adapters
3.4 Service Adapters
3.5 Design Example
Unit 4. Service Granularity
4.1 Granularity Drivers
4.2 Granularity Factors
4.3 Hands-On Exercises: Identifying Services
Unit 5. Service Types
5.1 Functional Services
5.2 Infrastructure Services
5.3 Orchestration Services
5.4 Aggregator Services
5.5 Adapter Services
5.6 Data Services
5.7 Identifying Service Types Through Code
5.8 Leveraging Service Types for Governance
Unit 6. Identifying Microservices
7.1 Functional Approach
7.2 Data-Driven Approach
7.3 API-Driven Approach
7.4 Service Identification Roadmap
Unit 7. Dealing With Code Reuse
7.1 Replication
7.2 Shared Libraries
7.3 Shared Services
7.4 Service Consolidation
7.5 Guidelines for Each Technique
Unit 8. Decomposing Data
8.1 Data Decomposition Issues
8.2 Data Domains
8.3 Managing Broad Bounded Contexts
8.4 Data Decomposition Drivers
Unit 9. Data Access and Ownership
9.1 Data Ownership
9.2 Inter-service Communication
9.3 Data Replication
9.4 Replicated Caching
9.5 Data Domains
9.6 Guidelines for Choosing a Technique
9.7 Hands-On Exercises: Data Ownership and Access
Unit 10. Managing Workflows
10.1 Orchestration
10.2 Choreography
10.3 Workflows and Sagas
10.4 Defining States and State Transitions
10.5 Hands-On Exercises: Communication and Workflow
Unit 11. Hybrid Architectures
11.1 Service-Based Architecture
11.2 Leveraging Hybrids
11.3 Hybrid Architecture Example
Unit 12. Summary
12.1 Parting Words of Advice