search menu icon-carat-right cmu-wordmark

Design Guidelines and Patterns for Microservices

In modern service-based solutions, services are developed and deployed as microservices. It is not an easy job to create a sound design for systems in this space, which often need to be elastic to thousands of machines, automatically deployable, resilient to simian armies, and accessible via a comprehensive API. There are countless technology and design choices to consider, including industry standards, frameworks, design patterns, integration approaches, middleware products, and tools. And it is a moving landscape-new ideas and products for services and microservices show up every week in your favorite newsletter or blog digest email. Given all this, how can you make informed design decisions?

This two-day course will give you the essential knowledge to see the microservices landscape with clarity. We will cover seven guidelines for service-oriented designs. More important, we'll look at the strategies available today to realize each design guideline. These strategies include design patterns, architecture tactics, and infrastructure elements and are complemented by good practices and governance precepts. As an example, the module covering the service autonomy design guideline includes event-driven architecture, use of Domain-Driven Design to remodel services to avoid distributed transactions, the Database per Microservice pattern, the Service Data Replication pattern, Command Query Responsibility Segregation, and Event Sourcing.

For this class, we developed a simple, clear, and consistent design notation for the more than 60 design diagrams used to convey and exemplify the design guidelines and strategies. But you don't just get to listen and read. Participants will share their experience throughout the course. The course also includes a hands-on design lab, in which attendees evaluate existing designs based on the design guidelines, and create new designs using different patterns and other design strategies.

Audience

This course is valuable for

  • software and application architects
  • developers who use service and microservice technologies in their solutions

Objectives

After attending this course, learners will understand

  • what is a microservice and what is the microservice architecture style (beyond the hype)
  • design guidelines for successful service-based solutions
  • strategies, including several design patterns, that can be used to realize the service-orientation guidelines

Completion of this course fulfills a training requirement for the SEI's Microservice Architect certificate program.

Topics

The course covers the following topics:

  • the Microservice architecture style and service-orientation
  • strategies and patterns for realizing the seven design guidelines applied to microservices
    • standardized service contract
    • service loose coupling
    • service reusability
    • service autonomy
    • service statelessness
    • service discoverability
    • service deployability

Materials

Participants will receive copies of the course presentation slides, the class exercises, and a "cheat sheet" with the most important concepts. Participants will also receive a printed Certificate of Completion at the end of the class.

Prerequisites

Participants should have a sound understanding of distributed systems and REST or have attended the Designing Modern Service-Based Systems course.

Dates Offered

Register Now

Course Fees [USD]

  • U.S. Industry: $1,500.00
  • U.S. Govt/Academic: $1,200.00
  • International: $2,250.00

Schedule

This 2-day course meets at the following times:

Days 1-2, 8:30 a.m. - 5:00 p.m.

This course may be offered by special arrangement at customer sites. For details, please email course-info@sei.cmu.edu or telephone at +1 412-268-7622.




Course Questions?

Email: course-info@sei.cmu.edu
Phone: 412-268-7388
FAX: 412-268-7401

Related Courses

  • Software Architecture: Principles and Practices - eLearning

    ONLINE

    Although the term software architecture is used frequently in today's software industry, its meaning is not universally understood. What is software architecture? How do you use software architectures in practice? What does a software architect do for an organization? What value does software architecture provide? This course introduces the...

    Learn More
  • Designing Modern Service-Based Systems

    1 - Day Course

    From a buzzword in the early 2000s, service-oriented architecture (SOA) has evolved into an established paradigm for developing distributed software systems. But SOA today has a different face. Microservices, API gateways, REST constraints, and event-driven messaging are just some of the design concepts that developers of modern service-based...

    Learn More

Training courses provided by the SEI are not academic courses for academic credit toward a degree. Any certificates provided are evidence of the completion of the courses and are not official academic credentials. For more information about SEI training courses, see Registration Terms and Conditions and Confidentiality of Course Records.