Skip to Content
View all events

Microservices in 3 Days

Published by O'Reilly Media, Inc.

Intermediate content levelIntermediate

Get a firm grasp on microservices architectures and discover how to adapt the software systems you already have

Microservices—they’re everywhere! Microservices help organizations achieve autonomy at scale and mix technologies. They can put software in the hands of users faster than other styles of architecture and can unlock opportunities to scale applications or handle security concerns in different ways. But reaping these benefits requires a good understanding of microservices, or they could end up adding complexity and fragility where it could have been avoided.

Join expert Sam Newman to get a firm grasp on microservices architectures, learn whether they’re right for you, and discover how to go about adapting the software systems you already have—incrementally—by building up a toolbox of appropriate refactoring patterns.

Week 1: Microservice Fundamentals

In Week 1, you’ll explore microservices architectures and the advantages to using them, and most importantly, all the problems they can create. Along the way, you’ll compare microservices to alternative system decomposition techniques to find out what makes microservices different.

Week 2: Microservices Application Decomposition

In Week 2, you’ll take a deep dive into patterns related to breaking apart the code tier of existing monolithic systems and explore progressive delivery techniques that will help you phase the deployment of such an application.

*Note: Week 2 will include an additional hour for Q&A that will be held at the end of class.

Week 3: Microservices Data Decomposition

In the final week, you’ll experience one of the trickiest parts of building microservices: how to structure your data to achieve the best performance in the architecture. From distributed transactions to referential integrity, reporting requirements, and caching concerns, you’ll gain a host of practical tips, plus solutions for tasks like reporting, where large volumes of data often need to be brought back together.

NOTE: With today’s registration, you’ll be signed up for all three sessions. Although you can attend any of the sessions individually, we recommend participating in all three weeks.

What you’ll learn and how you can apply it

By the end of this live, hands-on three-part series, you’ll understand:

Week 1: Microservice Fundamentals

  • Exactly what microservices are and the power they bring
  • How to get the most out of microservices architectures and avoid common pitfalls
  • When using microservices is sensible (and when it's not)

Week 2: Microservices Application Decomposition

  • How architectural refactoring patterns allow you to roll out a change in architecture in incremental steps
  • The importance of progessive delivery techniques in derisking the rollout of architectural change
  • How and where to use patterns like UI composition, decorating collaborator, branch by abstraction, and the strangler fig

Week 3: Microservices Data Decomposition

  • Which tools to use when making incremental changes to databases
  • How to think about data ownership in a microservice world
  • Techniques for dealing with referential integrity and caching

And you’ll be able to:

Week 1: Microservice Fundamentals

  • Distinguish between microservices and other forms of system decomposition and decide when to choose one over the others
  • Explain why microservices architectures may be useful (or not)
  • Determine if you should use microservices for your own project

Week 2: Microservices Application Decomposition

  • Use a variety of migration patterns in different contexts to make adopting microservices easier
  • See architecture less as a static, nonchanging entity and more as something you must continuously change to make sure it’s fit for its purpose
  • Learn how to get the most out of the system you already have

Week 3: Microservices Data Decomposition

  • Use a variety of migration patterns in different contexts to make adopting microservices easier
  • See data less as a static, nonchanging entity and more as something that must be continuously changed to make sure it’s fit for its purpose

This live event is for you because...

  • You're considering adopting a microservices architecture.
  • You want a firm foundation in one of the most-talked-about technology trends of recent years (while avoiding getting swept up in the hype).
  • You want to become more of a technical leader and need to better understand how to determine the right solutions for your problems.
  • You're currently struggling with a large monolithic system.
  • You have a big COTS product you want to replace with your own solution.
  • You have a large database and are looking to refactor it safely.
  • You want to incrementally migrate to a microservices architecture.
  • You need to make sense of all the different options out there for microservices architectures.

Prerequisites

  • Familiarity with basic programming concepts (in any language)

Recommended preparation:

Recommended follow-up:

Schedule

The time frames are only estimates and may vary according to how the class is progressing.

Week 1: Microservices Fundamentals

What microservices are (60 minutes)

  • Presentation and hands-on exercises: Misconceptions about microservices; What does size mean anyway?; the relationship of microservices to SOA; a brief history of microservices
  • Break

The problem with coupling (60 minutes)

  • Presentation and hands-on exercises: Alternative system decomposition patterns; the interplay of organizational structures and architecture; cohesion of business versus technical concepts
  • Break

Domain-driven design (50 minutes)

  • Presentation and hands-on exercises: What is domain-driven design?; How does it help you create microservices?; a brief overview of event storming

Wrap-up and Q&A (10 minutes)

Week 2: Microservices Application Decomposition

Part 1 (60 minutes)

  • Presentation and hands-on exercises: Just enough microservices; types of monoliths; What is refactoring?
  • Break

Part 2 (60 minutes)

  • Presentation and hands-on exercises: Strangler fig pattern—HTTP and other protocols; Should you do protocol rewriting?; COTS products; branch by abstraction pattern—feature toggles
  • Break

Part 3 (50 minutes)

  • Presentation and hands-on exercises: Progressive delivery—parallel run and canary release; UI composition—widgets and pages; micro-frontends; integrating new functionality—decorating collaborator; change data capture

Wrap-up and Q&A (10 minutes)

Week 3: Microservices Data Decomposition

Part 1 (60 minutes)

  • Presentation and hands-on exercises: Data in a microservices world (why you need separate databases)
  • Break

Part 2 (60 minutes)

  • Presentation and hands-on exercises: Relational databases versus NoSQL; tools for managing changes in databases; changing data ownership; working with reference data; database views
  • Break

Part 3 (50 minutes)

  • Presentation and hands-on exercises: Breaking foreign key relationships; referential integrity; the implications of caching; batch/ETL-based systems; reporting; streaming; managing two sources of truth (the tracer write pattern)

Wrap-up and Q&A (10 minutes)

Your Instructor

Sam Newman

Sam Newman is a technologist focusing on the areas of cloud, microservices, and continuous delivery—three topics which seem to overlap frequently. He provides consulting, training, and advisory services to startups and large multinational enterprises alike, drawing on his more than 20 years in IT as a developer, sysadmin, and architect. Sam is the author of the best-selling Building Microservices and Monolith to Microservices, both from O’Reilly, and is also an experienced conference speaker.

Skill covered

Microservices