20 Ekim 2017 Cuma

A Pattern Language For MicroServices

Link : A pattern language for microservices


Core patterns

Which architecture should you choose for an application?

Decomposition

How to decompose an application into services?

Deployment patterns

How to deploy an application’s services?

Cross cutting concerns

How to handle cross cutting concerns?

Communication patterns

Style

Which communication mechanisms do services use to communicate with each other and their external clients?

External API

How do external clients communicate with the services?

Service discovery

How does the client of an RPI-based service discover the network location of a service instance?

Reliability

How to prevent a network or service failure from cascading to other services?
  • Circuit Breaker - invoke a remote service via a proxy that fails immediately when the failure rate of the remote call exceeds a threshold

Data management

How to maintain data consistency and implement queries?
  • Database per Service - each service has its own private database
  • Shared database - services share a database
  • Saganew - use sagas, which a sequences of local transactions, to maintain data consistency across services
  • API Compositionnew - implement queries by invoking the services that own the data and performing an in-memory join
  • CQRS - implement queries by maintaining one or more materialized views that can be efficiently queried
  • Event sourcing - persist aggregates as a sequence of events
  • Transaction log tailing - publish changes captured in the database’s transaction log as messages
  • Database triggers - use triggers to capture changes made to data
  • Application events - application inserts events into a database table that is used as a message queue

Security

How to communicate the identity of the requestor to the services that handle the request?
  • Access Token - a token that securely stores information about user that is exchanged between services

Testing

How to make testing easier?

Observability

How to understand the behavior of an application and troubleshoot problems?
  • Log aggregation - aggregate application logs
  • Application metrics - instrument a service’s code to gather statistics about operations
  • Audit logging - record user activity in a database
  • Distributed tracing - instrument services with code that assigns each external request an unique identifier that is passed between services. Record information (e.g. start time, end time) about the work (e.g. service requests) performed when handling the external request in a centralized service
  • Exception tracking - report all exceptions to a centralized exception tracking service that aggregates and tracks exceptions and notifies developers.
  • Health check API - service API (e.g. HTTP endpoint) that returns the health of the service and can be pinged, for example, by a monitoring service
  • Log deployments and changesnew

UI patterns

How to implement a UI screen or page that displays data from multiple services?
  • Server-side page fragment composition - build a webpage on the server by composing HTML fragments generated by multiple, business capability/subdomain-specific web applications
  • Client-side UI composition - Build a UI on the client by composing UI fragments rendered by multiple, business capability/subdomain-specific UI components

4 yorum:

  1. It is a very helpful post here along with a number of useful and informative links. I visited few and will check more later. The platforms you share are all new to me I will surely visit and come back to you.Here a good news for Xbox user try our PSN gift card generator to get free Xbox live codes for free.

    YanıtlaSil
  2. It is not my first time to visit this website, i am browsing this web page dailly and obtain pleasant facts from here all the time. Xbox Gift Card

    YanıtlaSil
  3. Awesome post i really enjoyed reading this article which explained everything in very easy manner. i will visit this blog once again to get such an important information which i keep on regularly looking for your blog. Xbox Lives Codes

    YanıtlaSil