[学习笔记] - Software-architecture

Distributed Logging

  • request context id
  • context id hierarchy
  • context id extraction
  • context id consistency
  • custom logging api wrapper

Reducing Staging Iterations

  • Devops = Devils
  • Parallel development helps to deliver any projects before the deadlines.

Classifying Architecture Patterns

  • component based
    • Layered Architecture
    • Microkernel Architecture
    • Event-Driven Architecture
    • Pipeline Architecture
    • Modular Monolith
    • Space-Based Architecture
  • service based
    • Service-Based Architecture
    • Microservices Architecture

Analyzing Architecture

Structural Decay

  • architecture decisions
  • design principles

  • scalability
  • availability
  • reliability

Components

  • subsystem
  • layer
  • service
  • event processor

Macro Techniques

  • static coupling
  • temporl coupling
    • ordering
  • component size
  • afferent coupling
  • efferent coupling

Microservices

  • code dependencies between services
    • shared libraries
  • too much inter-service communication
  • too many orchestration requests
  • too many aggregation requests
  • database coupling

Code Metrics

  • cyclomatic complexity
    • provider a numeric value represent the complexity of a function or method
  • number of classes per package
  • number of lines of source code(baced on a context)
  • average complexity
  • depth of inheritance tree
  • weighted methods/class
  • efferent coupling count
  • afferent coupling count

CQRS and Microservices

Command Query Responsibility Segregraion

  • query
  • command

Refactoring

Business Justification

  • business metrics
    • reduced overall cost
    • better time-to-market
    • better user satisfaction

Migration vs. Adaptation

The Challenges of Architecture Teams

witch’s brew anti-pattern

Architecture Tradeoffs

  • create an architecture presentation
  • validate architecture and esrablish trade-offs
  • identify and mitigate risk
  • get stakeholder buy-in

The Fallacies of Distributed Computing

  • The network is reliable
  • Latency is zero
  • Bandwidth is infinite
  • The network is secure
  • Topology doesn’t change
  • There is one administrator
  • Transport cost is zero
  • The network is homogeneous

Integration Styles

File Transfer

  • FTP/SFTP
  • HDFS
  • SCP
  • SMP
  • CIFS

Shared Database

  • SQL
  • ODBC
  • JDBC
  • OLE-DB
  • RDA

Remote Procedure Call

  • REST
  • SOAP
  • RMI
  • CORBA
  • WebSockets
  • CGI

Messaging

  • JMS
  • MSMQ
  • AMQP
  • SNS
  • SQS
  • STOMP
  • SMPP
  • MQTT

Orchestration

  • with central conductor
  • like api gateway?

Choreography

  • no central conductor guiding or directing

Lean Modeling Concepts

  • business workflow model
  • enterprise systems model
  • enterprise information model
  • technology infrastructure model
  • business automation model

Architectural Abstraction

messaging adapter REST message bus
local transparency ?
name transparency
implementation transparency
access decoupling x x
constract decoupling x x

Agile Architecture Review Boards

  • determine standards
  • approve solutions
  • approve variances
  • provider guidance
  • provide recommendations

  • shorter, more frequent meetings
  • discussion, decision
  • make sure right people present
  • not long time

Circuit Breaker Pattern

Reference