Migrating to Microservices

Format: Live Virtual Training
Duration: 8 hours

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, many companies are struggling trying to break apart their existing monolithic or service-oriented architectures and move them to a microservices architecture, and are finding it more effort than they bargained for.

In this intensive full-day, hands-on live virtual class I take you on a detailed journey on how to effectively break apart a monolithic application into microservices. Our journey starts with decomposing the monolith using various migration patterns. We then take a detailed look at identifying and creating services, and then onto breaking apart large, monolithic relational databases. Our journey finally ends with stitching services back together through various communication and workflow patterns. During our journey you will be doing hands-on design exercises to identify services, identify and assign data domains to services, and finally determining communication and workflow between services using real-world case studies.

By the end of this class you will gain a keen understanding of the patterns and techniques to effectively analyze tradeoffs, options, and pathways for effectively migrating applications to microservices.

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.

Public Training Dates
See the Public Course Schedule page for scheduled dates for this class


Class Agenda

Introduction

  • Architectural Modularity
  • Microservices Key Concepts

Part 1: Decomposing The Monolith

  • Identifying Logical Components
  • Flattening and Refactoring Components
  • Identifying Component Dependencies
  • Identifying and Creating Component Groups (Domains)
  • Creating a Remote User Interface
  • Migrating Domains to Domain Services
  • Understanding Domain Services
  • Domain Services vs. Microservices

Part 2: Breaking Apart Domain Services

  • Identifying Microservices
  • Service Design
  • Service Taxonomy
  • Service Domains
  • Service Granularity Drivers and Factors
  • Hands-on Exercises: Identifying Services

Part 3: Breaking Apart Data

  • Data and the Bounded Context
  • How Many Databases Should You Have?
  • Data Sharing and Data Access Issues
  • Handing Common Data
  • Hands-on Exercises: Identifying Data Ownership and Access

PART 4: Stitching Services Back Together

  • Communicating Using Messaging
  • Orchestration vs. Choreography
  • Workflow Patterns
  • Hands-on Exercises: Identifying Communication and Workflows

Class Summary

  • Key Takeaway Points
  • Resources and Next Steps


©2020 DeveloperToArchitect