Skip to content

Microservices

Why Microservices?

  • Exclusive Sovereignty / Realm
  • Structural Modularity
  • Constructional Reusability
  • Unpredictable Scalability
  • Short Time to Market
  • Structural Modularity
  • ideal Technology

Maxims

  • Domain Driven
  • Service Autonomy
  • Culture of Automation

Principles

  • Continuous Everything (CI,CD)
  • Service Statelessness
  • Independently Deployable
  • Operation and Functional Resilience
  • Highly Observable
  • Orchestrating platform (z.B. Kubernetes)

Characteristics of a Microservice Architecture

Microservice is a new independent architectural term rather than a variant of SOA. It is quite different from SOA.

  • Organized around Business Capabilities
    re-emphasizes the importance of Conway's Law: a team with a certain structure, scale, and capabilities will produce products with corresponding structure, scale, and capabilities.

  • Decentralized Governance
    a development team should have the right to choose the most suitable technology different from common if it is really necessary.

  • Componentization via Services
    emphasize building components through "services" rather than "libraries" because libraries are statically linked to the program at compile time and provide functions through local calls, while services are out-of-process components that provide functions through remote calls.

  • Products not Projects
    don't think software development is just to complete a functionality, accomplish a scoped task, but think software is product with sustainable improvement, delivering business values consistently throughout its lifecycle.

  • Decentralized Data Management
    Each service manages its own data, reducing dependencies and enabling scalability.

  • Smart Endpoints and Dumb Pipes
    Communication between services should be lightweight, with complexity handled at the application layer, keeping the infrastructure simple.

  • Design for Failure
    For production environments, facilities such as "circuit breakers" are not optional, but essential.

  • Evolutionary Design
    Services will be upgraded, and also be deprecated and removed.

  • Infrastructure Automation
    Automation is integral to managing the complex and dynamic infrastructure required for microservices.

Common Architecture

Microservices Architecture