軟件架構(gòu)難點解惑(影印版)
出版時間:2023年03月
頁數(shù):440
“本書是所有構(gòu)建現(xiàn)代分布式系統(tǒng)的架構(gòu)師的必讀之作?!?br />
——Aleksandar Serafimoski
Thoughtworks首席顧問
在軟件架構(gòu)中沒有哪個決定是輕而易舉的。相反,有許多艱難的部分,要么是難題,要么是缺少最佳實踐,這迫使你在各種妥協(xié)中做出選擇。通過本書,你將學會如何批判性地思考分布式架構(gòu)的利弊。
軟件架構(gòu)老兵和實踐顧問Neal Ford、Mark Richards、Pramod Sadalage、Zhamak Dehghani討論了選擇適合架構(gòu)的策略。全書交織著一群虛構(gòu)的技術(shù)專業(yè)人員(Sysops Squad)的故事,他們研究了從如何確定服務粒度、管理工作流和編排、管理和解耦契約、管理分布式事務到如何優(yōu)化可擴展性、彈性和性能等操作特性的一切問題。
本書通過關(guān)注常見的問題,提供了一些技巧,幫助你在面對架構(gòu)問題時進行權(quán)衡。
● 分析權(quán)衡并有效記錄你的決策
● 作出更好的服務粒度決策
● 理解拆分單體應用的復雜性
● 管理和解耦服務之間的契約
● 在高度分布式架構(gòu)中處理數(shù)據(jù)
● 學習在分解應用時的工作流和事務管理模式
- Preface
- 1. What Happens When There Are No “Best Practices”?
- Why “The Hard Parts”?
- Giving Timeless Advice About Software Architecture
- The Importance of Data in Architecture
- Architectural Decision Records
- Architecture Fitness Functions
- Architecture Versus Design: Keeping Definitions Simple
- Introducing the Sysops Squad Saga
- Part I. Pulling Things Apart
- 2. Discerning Coupling in Software Architecture
- Architecture (Quantum | Quanta)
- Sysops Squad Saga: Understanding Quanta
- 3. Architectural Modularity
- Modularity Drivers
- Sysops Squad Saga: Creating a Business Case
- 4. Architectural Decomposition
- Is the Codebase Decomposable?
- Component-Based Decomposition
- Tactical Forking
- Sysops Squad Saga: Choosing a Decomposition Approach
- 5. Component-Based Decomposition Patterns
- Identify and Size Components Pattern
- Gather Common Domain Components Pattern
- Flatten Components Pattern
- Determine Component Dependencies Pattern
- Create Component Domains Pattern
- Create Domain Services Pattern
- Summary
- 6. Pulling Apart Operational Data
- Data Decomposition Drivers
- Decomposing Monolithic Data
- Selecting a Database Type
- Sysops Squad Saga: Polyglot Databases
- 7. Service Granularity
- Granularity Disintegrators
- Granularity Integrators
- Finding the Right Balance
- Sysops Squad Saga: Ticket Assignment Granularity
- Sysops Squad Saga: Customer Registration Granularity
- Part II. Putting Things Back Together
- 8. Reuse Patterns
- Code Replication
- Shared Library
- Shared Service
- Sidecars and Service Mesh
- Sysops Squad Saga: Common Infrastructure Logic
- Code Reuse: When Does It Add Value?
- Sysops Squad Saga: Shared Domain Functionality
- 9. Data Ownership and Distributed Transactions
- Assigning Data Ownership
- Single Ownership Scenario
- Common Ownership Scenario
- Joint Ownership Scenario
- Service Consolidation Technique
- Data Ownership Summary
- Distributed Transactions
- Eventual Consistency Patterns
- Sysops Squad Saga: Data Ownership for Ticket Processing
- 10. Distributed Data Access
- Interservice Communication Pattern
- Column Schema Replication Pattern
- Replicated Caching Pattern
- Data Domain Pattern
- Sysops Squad Saga: Data Access for Ticket Assignment
- 11. Managing Distributed Workflows
- Orchestration Communication Style
- Choreography Communication Style
- Trade-Offs Between Orchestration and Choreography
- Sysops Squad Saga: Managing Workflows
- 12. Transactional Sagas
- Transactional Saga Patterns
- State Management and Eventual Consistency
- Techniques for Managing Sagas
- Sysops Squad Saga: Atomic Transactions and Compensating Updates
- 13. Contracts
- Strict Versus Loose Contracts
- Stamp Coupling
- Sysops Squad Saga: Managing Ticketing Contracts
- 14. Managing Analytical Data
- Previous Approaches
- The Data Mesh
- Sysops Squad Saga: Data Mesh
- 15. Build Your Own Trade-Off Analysis
- Finding Entangled Dimensions
- Trade-Off Techniques
- Sysops Squad Saga: Epilogue
- A. Concept and Term References
- B. Architecture Decision Record References
- C. Trade-Off References
- Index
書名:軟件架構(gòu)難點解惑(影印版)
國內(nèi)出版社:東南大學出版社
出版時間:2023年03月
頁數(shù):440
書號:978-7-5766-0591-4
原版書書名:Software Architecture: The Hard Parts
原版書出版商:O'Reilly Media
Neal Ford
Neal Ford是Thoughtworks公司的總監(jiān)、軟件架構(gòu)師和meme wrangler。
Mark Richards
Mark Richards是一位經(jīng)驗豐富的軟件架構(gòu)師,他參與了微服務架構(gòu)、事件驅(qū)動架構(gòu)和其他分布式架構(gòu)的架構(gòu)、設計和實現(xiàn)。
Mark Richards is an accomplished author and conference speaker working as a handson SOA and enterprise architect in the financial services industry. In addition to numerous published articles, he is the author of Java Transaction Design Strategies (C4Media), contributing author of 97 Things Every Software Architect Should Know (O’Reilly), and contributing author of No Fluff, Just Stuff Anthology Volumes 1 and 2
(Pragmatic Bookshelf). He is a recognized authority on messaging, Service-Oriented Architecture, and transaction management. Mark is a regular speaker on the NFJS
Software Symposium series and speaks at conferences around the world.
Pramod Sadalage
Pramod Sadalage是Thoughtworks的數(shù)據(jù)及DevOps總監(jiān),他擅長應用程序開發(fā)、敏捷數(shù)據(jù)庫開發(fā)、演進式數(shù)據(jù)庫設計、算法設計和數(shù)據(jù)庫管理。
Zhamak Dehghani
Zhamak Dehghani是Thoughtworks的技術(shù)總監(jiān)。她專注于企業(yè)中的分布式系統(tǒng)和數(shù)據(jù)架構(gòu)領(lǐng)域,是多個技術(shù)咨詢委員會的成員,包括Thoughtworks的技術(shù)委員會。Zhamak倡導一切事物的去中心化,包括架構(gòu)、數(shù)據(jù)等。她是DataMesh的創(chuàng)始人。
The animal on the cover of Software Architecture: The Hard Parts is a black-rumped golden flameback woodpecker (Dinopium benghalense), a striking species of woodpecker found throughout the plains, foothills, forests, and urban areas of the Indian subcontinent.
This bird’s golden back is set atop a black shoulder and tail, the reason for its pyroinspired name. Adults have red crowns with black-and-white spotted heads and breasts, with a black stripe running from their eyes to the back of their heads. Like other common, small-billed woodpeckers, the black-rumped golden flameback has a straight pointed bill, a stiff tail to provide support against tree trunks, and four-toed feet—two toes pointing forward and two backward. As if its markings weren’t distinctive enough, the black-rumped golden flameback woodpecker is often detected by its call of “ki-ki-ki-ki-ki,” which steadily increases in pace.
This woodpecker feeds on insects, such as red ant and beetle larvae, underneath tree bark using its pointed bill and long tongue. They have been observed visiting termite mounds and even feeding on the nectar of flowers. The golden flameback also adapts well to urban habitats, subsisting on readily available fallen fruit and food scraps.