- 了解當企業(yè)、政府和其他機構通過事件和數據流進行整合時,流會帶來哪些好處。
- 通過Wardley Mapping可視化和Promise Theory建模了解流集成的價值鏈。
- 了解當今事件驅動系統(tǒng)市場背后的基本概念。
- 了解當今的集成模式將如何影響未來的實時事件流。
- 探索為什么公司應該從今天開始構建軟件架構,以便在未來幾年從流中獲得收益。
現在的軟件開發(fā)正在擁抱事件和流數據,這不僅優(yōu)化了技術交互的方式,也優(yōu)化了業(yè)務相互集成的方式,以滿足客戶的需求,這種現象被稱為流,由模式和標準組成。這些模式和標準確定了各方之間通過互聯網進行的通信活動和相關數據。
本書探討了這種演變的關鍵影響:當事件和數據流幫助你發(fā)現新的活動來源以增強現有業(yè)務或推動新市場時,究竟會發(fā)生什么?哪些技術和架構模式可以幫助你的公司把握流程帶來的機會?JamesUrquhart是VMware全球CTO。他指導企業(yè)架構師、軟件開發(fā)人員和產品經理完成這一過程。
前言
這是一本關于軟件集成的前景及其對經濟過程演變的影響的書。本書旨在讓技術人員和決策者踏上通往未來愿景的旅程,看到我們以及機構之間合作方式的根本性轉變。因此,它也是一本關于機遇的書。
從表面上看,這似乎是一本關于科技的書。我們當然會調查當前或在不久的將來可用的、有助于組織之間活動交流方式的技術。然而,你應該從這本書中獲得的最重要的概念是新技術對機構合作與協(xié)作演變的影響。
系統(tǒng)狀態(tài)這種流暢且實時的通信像極了河流中的水流,又或是公路系統(tǒng)中的交通流,它是一種活動流?捎玫幕顒宇愋秃拖M褂盟鼈兊膶嶓w的訴求決定了這種流所遵循的路徑。數據越容易找到通向正確實體的正確路徑,系統(tǒng)就越容易適應和發(fā)現所需的行為。
因為數據是推動經濟活動的動力,所以集成是我們數字經濟發(fā)展的關鍵。如今,跨組織邊界的集成既昂貴又緩慢。我們極大地依賴人為活動、歷史數據和海量數據處理來確保我們的市場運轉和機構運營。那么,問題就變成了,如果我們能夠使得數據實時交互變得相對便宜,并且?guī)缀跛查g就能完成呢?
隨著我在本書中所描述的技術的發(fā)展,在互聯網上連接因果關系事物的成本很快就會大大降低。反之,這將導致組織執(zhí)行的集成數量急劇增長,并加速經濟實驗的過程。這些都是導致寒武紀大爆發(fā)的條件,某種意義上說,這是一個充滿活力的土壤,可以產生戲劇性的全新解決方案,改變世界的運行方式。我將論證為什么爆炸是不可避免的。就像HTTP 創(chuàng)建了萬維網并鏈接了世界的信息一樣,我所說的流將創(chuàng)建萬維流并鏈接世界的活動。從很多方面來說,這是一本具有挑戰(zhàn)性的書。其中最重要的是它的大部分內容都是推測性的。任何的萬維流技術被視為主流可能還需要十年時間。或許還需要三到五年的時間,才能出現強有力的競爭者為實驗提供了必要的編程接口和數據協(xié)議。那么為什么現在寫這本書呢?
答案在于從今天之前數十年的分布式系統(tǒng)發(fā)展中吸取的經驗教訓。作為一個全球技術社區(qū),我們更容易忽視擺在我們面前的可能性,專注于如何逐步改善我們今天所了解的世界,而不是為明天的混亂做準備。這有一個很好的理由:我們都沒有水晶球。
但是,我們確實有工具可以讓我們深入了解可能發(fā)生的總體趨勢。我們可以明智地分析技術格局和用戶需求,以找到可能發(fā)生演變或革命的地方。我將使用其中的兩個(沃德利地圖和允諾理論),來演示流程需要哪些組件,以及為什么這些組件會從現在的形式演變?yōu)橐环N鼓勵無處不在的事件驅動集成的形式。
云計算讓許多組織措手不及,從而導致競爭對手獲得優(yōu)勢或錯失完成任務的機會。我寫這本書的目的不僅是幫助你了解流的含義,還會告訴你為什么流在未來一定會有所成就。我將從一個不同尋常的介紹開始:在我們未來十年內,一篇假設性的科技期刊文章,這里所描述的故事將為你提供一些流的背景,以及它將如何推動未來十年的變革。
第1 章將向你介紹流的概念,從它的基本定義到該定義中的關鍵概念。第2章將說明為什么企業(yè)、政府、非營利組織和許多其他機構會在流出現時接受它。在第3 章中,我將使用沃德利地圖和允諾理論來說明為什么流幾乎肯定會發(fā)生,以及流系統(tǒng)的關鍵組件可能是什么。
第4 章調查了當今可用的消息傳遞和事件驅動架構,它們將指導或構成未來流系統(tǒng)的基礎。在此基礎上以及我們在第3 章中定義的沃德利地圖,第5 章將討論未來需要哪些關鍵創(chuàng)新來支持真正的流系統(tǒng)。第6 章總結了討論的內容,概述了你今天可以做哪些事情來為未來的流做準備,并如何幫助實現這個未來。
排版約定
本書使用了下述排版約定。
斜體(Italic)
表示新術語、URL、電子郵件地址、文件名和擴展名。
等寬字體(Constant Width)
表示程序片段,以及正文中出現的變量、函數名、數據庫、數據類型、環(huán)境變量、語句和關鍵字等。
OReilly 在線學習平臺(OReilly Online Learning)
近40 年來,OReilly Media 致力于提供技術和商業(yè)培訓、知識和卓越見解,來幫助眾多公司取得成功。
我們擁有獨一無二的專家和革新者組成的龐大網絡,他們通過圖書、文章、會議和我們的在線學習平臺分享他們的知識和經驗。OReilly 的在線學習平臺允許你按需訪問現場培訓課程、深入的學習路徑、交互式編程環(huán)境,以及OReilly 和200 多家其他出版商提供的大量文本和視頻資源。有關的更多信息,請訪問http://oreilly.com。
聯系我們
請把對本書的評價和問題發(fā)給出版社。
美國:
OReilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中國:
北京市西城區(qū)西直門南大街2號成銘大廈C座807室(100035)
奧萊利技術咨詢(北京)有限公司
我們?yōu)楸緯峁┝艘粋網頁,其中列出了勘誤表、示例和任何其他信息。你可以通過https://oreil.ly/flow-arch 訪問此頁面。
如果你對本書有一些評論或技術上的建議,請發(fā)送電子郵件到 errata@oreilly.com。
要了解OReilly 圖書、培訓課程、會議和新聞的更多信息,請訪問我們的網站,地址是:http://www.oreilly.com。
我們的Facebook:http://facebook.com/oreilly。
我們的Twitter:http://twitter.com/oreillymedia。
我們的Youtube:http://www.youtube.com/oreillymedia。
致謝
我要感謝很多人,感謝你將要閱讀本書時萌生出的見解和分析。我將從兩位偉大的思想家開始,他們是我在過去的15 年里有幸認識并經常交談的人。沃德利地圖的創(chuàng)建者Simon Wardley 創(chuàng)造了商業(yè)或技術戰(zhàn)略中最令人驚嘆的態(tài)勢感知工具之一。注1 允諾理論(Promise Theory)的創(chuàng)造者MarkBurgess 提供了一個研究意圖的代數,完美地支持了沃德利地圖,而它本身也是一個強大的分析工具。對于他們兩人,我不僅要感謝他們在本書中的貢獻,還要感謝他們對我進行戰(zhàn)略分析方面的教育。
這本書由一群具有遠見的技術專家和企業(yè)家組成的全明星集合進行了評論。Derek Collison 創(chuàng)建了NATS.io,并且是Synadia 的創(chuàng)始人,該公司致力于改變事件驅動集成的管理方式。Simon Crosby 創(chuàng)建了Xen 虛擬機管理程序,并繼續(xù)創(chuàng)建了Swim.ai,它提供了一個可能改變游戲規(guī)則的有狀態(tài)事件處理平臺。Paul Butterworth 創(chuàng)立了Forte Software,我就是在這家技術供應商開始學習分布式系統(tǒng)的,現在他是事件驅動開發(fā)平臺Vantiq 的聯合創(chuàng)始人。Adrian Cockcroft 先是在Netflix 擔任首席云架構師,后來又在AWS 擔任戰(zhàn)略副總裁。我對他們四人在過去一年中所作的不懈努力和提出的建議深表感謝。
微軟首席消息架構Clemens Vassars,值得一提的是,他介紹了如何選擇事件處理架構,并為我提供了向你描述該架構所需的語言。
Strategic News Servic 的首席執(zhí)行官Mark Anderson 分享了他對流和其互動之間關系的見解。多年來,我與Mark 的談話極大地影響了我對流的看法。
我還要感謝為本書的各個方面做出貢獻的其他一些技術專家,包括Jesse Bean、Mark Heckler、Stacey Higgenbotham、Sutha Kamal、Mark Kropf、Richard Seroter、Jason Shephard、Sina Sojoodi、Henrivanden Bulk 和James Watters。
感謝我在Pivotal/VMware 的現任和前任同事,特別是我在Field CxO 團隊的同事,感謝你們的支持和鼓勵。你們太棒了,在我需要的時候,你們讓我很容易就能專注于工作。我從你們每一個人身上學到了關于技術和管理的重要經驗。
對于我的導師,偉大的Tom Lounibos,我再次對你的鼓勵、建議和偶爾的批評表示最深切的感謝。
如果沒有OReilly 的編輯Amelia Blevins,這本書是不可能完成的。Amelia,你的耐心令人難以置信,你的建議一直是我最需要的。謝謝你!還要感謝Ryan Shaw 和Mike Loukides 鼓勵我寫作。特別感謝Tim OReilly 提供的美味的茶和烤餅,以及在正確的時間提出正確的問題。
最后,也是最重要的,獻給我的妻子Mia 和我的孩子Owen 和Emery。你一直陪伴著我,在我需要動力時鼓勵我,推動我。沒有一天我不感謝生活給予我的一切,感謝我們分享的愛和歡笑。我深深地愛著你們。Mia,你是我的最愛。
JamesUrquhart是VMware公司的全球首席技術官。他擁有超過25年的分布式系統(tǒng)開發(fā)和部署經驗。專注于復雜的自適應系統(tǒng)軟件、云本地應用程序、平臺和自動化。James被MITTechnologyReview和HuffPost評為云計算領域十大最具影響力的人物之一。
目錄
序 .1
前言 .5
第0 章 萬維流的十年影響 11
0.1 金融中的萬維流 12
0.2 零售業(yè)中的萬維流 13
0.3 運輸業(yè)的萬維流 13
0.4 醫(yī)療健康中的萬維流 . 14
0.5 數據服務中的萬維流 . 16
0.6 并不是一切都那么順利 16
0.7 萬維流的未來 19
第1 章 流概述 21
1.1 什么是流? . 23
1.2 流與集成 26
1.3 流和事件驅動架構 30
1.4 流的前身 32
1.5 代碼和流 34
1.6 后續(xù)章節(jié) 36
第2 章 流的業(yè)務案例 .38
2.1 采用流的驅動因素 39
2.1.1 提升客戶體驗 39
2.1.2 提高組織效率 41
2.1.3 創(chuàng)新和實驗 46
2.2 采用流的促成因素 48
2.2.1 降低流處理的成本 . 49
2.2.2 增加數據流設計的靈活性 . 52
2.2.3 創(chuàng)造巨大的流生態(tài)系統(tǒng) 57
2.3 企業(yè)需要從流中獲得什么 59
2.4 采用流的影響 61
2.4.1 拓展實時數據的使用 61
2.4.2 流網絡的重要性(和危險) . 62
2.4.3 流對工作和專業(yè)技能的影響 . 64
2.4.4 流、新業(yè)務和制度模式 66
2.4.5 流和規(guī)模. 68
2.5 下一步 70
第3 章 了解流的價值鏈 71
3.1 回顧:流的高級屬性 . 71
3.2 沃德利地圖和允諾理論 73
3.2.1 沃德利地圖 73
3.2.2 允諾理論. 75
3.3 構建一個流集成的價值鏈 78
3.3.1 建立地圖的范圍 . 78
3.3.2 建立我們的用戶和用戶需求 . 79
3.3.3 流集成組件 81
3.3.4 交互組件. 84
3.3.5 最后一塊. 88
3.4 繪制我們的價值鏈 90
3.4.1 確定技術演進的衡量標準 . 90
3.4.2 將我們的價值鏈變成地圖 . 95
3.5 我們的最終模型和后續(xù)步驟 101
第4 章 評估當前的流市場 . 102
4.1 服務總線和消息隊列 103
4.1.1 消息隊列 104
4.1.2 服務總線 105
4.1.3 映射服務總線和消息隊列 107
4.2 物聯網 108
4.2.1 MQTT 109
4.2.2 HTTP 和WebSocket 112
4.2.3 映射物聯網架構 113
4.3 事件處理 113
4.3.1 函數、低代碼和無代碼處理器 . 114
4.3.2 基于日志的流處理平臺 117
4.3.3 有狀態(tài)的流處理 119
4.3.4 映射事件處理平臺 120
4.4 當今的流架構和集成 120
4.5 下一步 123
第5 章 評估流的興起 124
5.1 將演變映射到流 125
5.2 游戲 . 128
5.2.1 市場:標準游戲 130
5.2.2 加速器:利用網絡效應 131
5.2.3 生態(tài)系統(tǒng):共創(chuàng) 132
5.2.4 其他 133
5.3 慣性 . 134
5.3.1 供應商慣性 . 135
5.3.2 企業(yè)慣性 137
5.3.3 有龍出沒 138
5.4 流的需求、挑戰(zhàn)和機遇 . 140
5.4.1 安全 141
5.4.2 敏捷性 146
5.4.3 及時性 150
5.4.4 可管理性 154
5.4.5 存儲性 160
5.4.6 知識產權管制 161
5.5 流模式的挑戰(zhàn)與機遇 163
5.5.1 收集器模式 . 163
5.5.2 分發(fā)器模式 . 164
5.5.3 信號模式 166
5.5.4 引導者模式 . 168
5.6 意料之外 169
第6 章 建設一個流的未來 . 171
6.1 識別你業(yè)務中的流 172
6.1.1 流的用例 173
6.1.2 流建模 185
6.2 流的事件優(yōu)先用例 . 189
6.2.1 消息VS 事件 . 190
6.2.2 離散事件VS 系列事件 . 194
6.2.3 單一操作VS 工作流 198
6.3 推動流向前 201
6.3.1 推動技術發(fā)展 201
6.3.2 推動流網絡 . 206
6.4 我們會使流得以實現 210
附錄 評估當前流的市場 211