Gartner Research

How to Design Microservices for Agile Architecture

Published: 30 January 2017

ID: G00319890

Analyst(s): Gary Olliffe

Summary

Successful microservice architecture requires designing services that can be independently deployed and scaled. Technical professionals who design microservices must use appropriate interface, implementation, data persistence and dependency management patterns to support agile delivery.

Table Of Contents

Problem Statement

The Gartner Approach

The Guidance Framework

  • Prework
  • Step 1: Define Your Dependency Management Strategies
    • Step 1.1: Use Distributed Configuration to Decouple Services From the Environment
    • Step 1.2: Use Service Discovery to Decouple Services From Each Other
  • Step 2: Iterating to Extract and Implement Services
    • Step 2.1: Iterate From the Very Start
    • Step 2.2: Use Decomposition Strategies
    • Step 2.3: Decouple Using Anti-Corruption Layers
  • Step 3: Design Loosely-Coupled Services
    • Step 3.1: Design Your Interfaces for Loosely Coupled Consumption
    • Step 3.2: Keep Service Composition Loosely Coupled
    • Step 3.3: Decouple Data Ownership, Persistence, Access and Reporting
  • Step 4: Prepare to Support Service Life Cycles
    • Step 4.1: Implement a Consistent Versioning Strategy
    • Step 4.2: Implement a Service Dependency Tracking Mechanism
  • Follow-Up

Risks and Pitfalls

  • Pitfall: Incompatible or Inadequate Processes, Culture, Skills and Platform
  • Pitfall: Becoming Too Fine-Grained Too Soon
  • Pitfall: Becoming Locked-In to the New Monolith
  • Risk: Maturing Technology Does It Better
  • Related Guidance

Gartner Recommended Reading

©2020 Gartner, Inc. and/or its affiliates. All rights reserved. Gartner is a registered trademark of Gartner, Inc. and its affiliates. This publication may not be reproduced or distributed in any form without Gartner’s prior written permission. It consists of the opinions of Gartner’s research organization, which should not be construed as statements of fact. While the information contained in this publication has been obtained from sources believed to be reliable, Gartner disclaims all warranties as to the accuracy, completeness or adequacy of such information. Although Gartner research may address legal and financial issues, Gartner does not provide legal or investment advice and its research should not be construed or used as such. Your access and use of this publication are governed by Gartner’s Usage Policy. Gartner prides itself on its reputation for independence and objectivity. Its research is produced independently by its research organization without input or influence from any third party. For further information, see Guiding Principles on Independence and Objectivity.

Already have a Gartner Account?

Become a client

Learn how to access this content as a Gartner client.