本書從計算技術的發展及其對商業模式的影響談起,回顧了作為第三代計算技術平臺的云計算技術給現代社會和商業帶來的變革,闡述了云計算,特別是PaaS云提出的必要性和其為企業數字化轉型帶來的機會,幫助企業制定數字化戰略。在此基礎上,介紹了PaaS平臺CloudFoundry的架構、部署、實施、運維,使企業順利基于CloudFoundry開發云原生應用,實施數字化轉型。本書適合希望通過云計算技術實現數字化轉型的企業決策者、CIO、從事云計算技術工作和咨詢工作的讀者閱讀,也適合希望了解PaaS云技術的讀者和研究人員閱讀。
Preface?前 言一、為何要編寫這本書Pivotal中國研發中心在2013年伴隨著Pivotal全球總公司創立而同步組建,中國研發中心的使命是為企業數字化變革提供前瞻性的技術支撐、方法和文化。Pivotal中國研發中心團隊繼承自EMC卓越研發集團的大數據團隊和VMWare研發中心的云分析(Cloud Analytics)團隊。今天,中國研發中心主要圍繞Cloud Foundry的Web Service服務、Greenplum大數據產品和Hadoop上的HAWQ大數據引擎進行研發。這些產品組合在一起,為企業數字化轉型提供了基于PaaS并擁抱大數據的現代敏捷基礎架構。在云時代,非數字型企業采用這個基礎架構可以極大地縮短和世界級互聯網企業投入數億美元研發的基礎設施的差距。
Pivotal Cloud Foundry是Pivotal產品套件的基礎,中國Cloud Foundry團隊秉承探索精神,在2010年就開始對云和數據交集的前沿進行探索。2010年年底,我們嘗試著想象2015年到2020年工業界云和數據的尖端并開始征程,中間也觸發了Cetas的并購以加快征程。隨著時間的推移,我們創造的產品和服務一次次被時代浪潮托起。團隊今天運營著Cloud Foundry的云版本服務,迎接PaaS浪潮的到來。
因為Pivotal公司秉承開源精神,所以我們的這些產品集可以用于企業的數字化轉型。但是,在將PaaS云和大數據套件平民化的過程中,非數字型企業面臨戰略定位、技術培養和文化轉型的挑戰。這也觸發了我們研發中心的同事們編寫著作的想法,希望能夠幫助實施轉型的企業定義戰略、開發云原生應用以提供數字化服務,并提供Cloud Foundry運營方面的幫助。
二、為何要立足PaaS在過去很長的時間里,系統集成商在企業服務中扮演了很重要的角色。他們幫助企業選擇硬件、網絡、軟件并且配置、部署,原因在于企業軟件往往很復雜,而這個復雜性從部署安裝就開始存在了,企業不得不通過系統集成商來完成這些工作。另一方面,缺乏經驗的工程師可能要摸索比較長的時間才能讓產品運行在穩定可靠的狀態。網絡工程師和系統工程師往往忙得不可開交,經常要跑到機房去連接網絡和安裝不同的系統,產品出現問題時總要從軟件到硬件逐層排查,費時費力。
IaaS(Infrastructure as a Service)技術的成熟讓大家輕松了很多,所有的網絡、存儲和計算資源都可以用一個集中的平臺加以有效的管理,需要使用時創建一個按需配置的虛擬機即可。可以說,IaaS把硬件資源抽象化了。IaaS的好處顯而易見,而且應用廣泛,所以大家在說到云計算的時候,有時候會把IaaS看成云計算的全部。其實,在云計算誕生之初,人們就設想了在IaaS之上建設一個PaaS(Platform as a Service)層。IaaS層提供虛擬計算、網絡和存儲資源之后,部署應用時需要的運行時和服務還是很費周折,應用的生命周期管理、日志、監控都有繁重的工作。PaaS就是為核心業務邏輯的應用提供支撐的服務平臺,它抽象了應用之下、操作系統之上的所有軟件資源和服務,讓它們對應用友好而便捷。
PaaS帶來的價值一點都不亞于IaaS。安裝單節點的數據庫很簡單,安裝多節點的數據庫就復雜一點;運維一個多節點的數據庫并保證很高的可用性,要求就更高了;如果再要求這個數據庫的性能非常好,那么沒有豐富的經驗和完備的監控,就只能是一個美好的愿望。如果用戶有成百上千個應用,而這些應用又依賴無數錯綜復雜的服務,那么PaaS平臺正是這種場景的用武之地,它可以高效地管理好這些應用和服務,把所有這些應用和服務的公共需求做到極致好用。PaaS讓彈性計算真正得以實現。在沒有PaaS時,把應用從1個節點擴展到10個節點,或者從10個節點減少到1個節點,需要做很多的工作,包括逐個創建虛擬機、逐個配置、逐個監控。有了PaaS之后,只需要一個命令,PaaS就會自動執行以上所有過程。
簡單地說,IaaS是面向硬件資源的抽象,解放了系統工程師;PaaS則提供了對軟件服務的抽象,是應用開發和運維人員的得力助手。它們的共同點是,實現了共享資源和集中管理,降低了維護和操作成本,使效益和效率最大化。
我們相信,Cloud Foundry會是一個對產業界有深遠影響力的開源PaaS產品。經過多年的技術積累和產品演化,Cloud Foundry已經茁壯成長為一個可以部署在企業生產環境的成熟產品。在這樣一個軟件無處不在的時代,新型的互聯網公司因為技術的積累和人才的優勢,正在不斷融合到市場的各個方向。傳統的以業務為重的公司因為缺乏快速搭建豐富而可靠的應用的能力,在競爭中處于劣勢。Cloud Foundry的成熟恰逢其時,能夠為所有軟件公司或者希望以軟件帶動業務的傳統公司提供新平臺,從而幫助企業完美轉型,通過敏捷開發,緊隨市場變化,不斷拓展業務。
三、這本書寫了什么在每個時代,都有一些偉大的技術和產品影響整個產業界,每種技術的孵化、發展、演進和流行都離不開技術領袖前瞻性的創新研發,也離不開技術布道者不遺余力的宣傳推廣。Cloud Foundry的奠基者和開發者多年來傾盡全力打造這款產品,我們也愿意為Cloud Foundry的推廣出一份力,希望拋磚引玉,幫助國內更多企業更好地通過Cloud Foundry獲得商業上的成功。
坦白地說,Cloud Foundry看似很復雜,但如果您能靜下心來讀一讀本書,就會發現它本身的設計是很精練而自然的,它在很認真地解決一個廣泛而復雜的問題。如果您能按照本書的介紹進行實戰,即使是在筆記本電腦上安裝一個單機的Cloud Foundry,執行一些操作,也會發現Cloud Foundry對用戶很友好,操作很簡單。
本書分為以下幾部分。第1章和第2章分享了作者對云計算技術的理解、思考和對云計算發展趨勢的判斷,并以汽車行業為例,展現了云計算在助力傳統企業數字化轉型中的作用,以及如何通過PaaS實施企業的數字化轉型。第3章和第4章介紹了Cloud Foundry的發展歷史、架構、特色,以及如何基于Cloud Foundry開發云原生的應用。第5章介紹了Cloud Foundry的部署工具BOSH。第6章和第7章是Cloud Foundry的實戰章節,介紹了Cloud Foundry的規劃、部署和實施。最后兩章介紹了Cloud Foundry的服務和運維工具,對于拓展Cloud Foundry的可用服務和提升運維的自動化程度很有幫助。
我們希望這本書能給準備借助云計算技術向數字化轉型的企業決策者、CIO、正在從事云計算技術工作的讀者帶來幫助。作為學習型企業和團隊,我們更建議采用如下方式閱讀本書:企業的決策者閱讀第1章和第2章,理解云戰略(特別是PaaS云)提出的必要性和帶來的數字化轉型機會;之后將書傳給軟件開發團隊,建議團隊技術人員閱讀第3章和第4章,這部分內容結合實際例子解釋了Cloud Foundry的機理和云原生的概念;開發團隊啟動Cloud Foundry上的應用開發以后,可以把書傳給云運維團隊,他們可以重點閱讀第5~9章,這部分內容會幫助他們理解如何在私有云或者公有云上運維Cloud Foundry。
目前,已有不少傳統企業基于Cloud Foundry進行數字化轉型,更有很多創業團隊基于Cloud Foundry開展他們的工作。關于如何創建一個適合數字化經濟的新型創新軟件和數據團隊,作者非常想聽到讀者的問題和經驗。您可以關注本書微博號(@Cloud Foundry: 從數字戰略到實現)并留言。
限于作者的學識,本書難免有疏漏之處,懇請同行和各位讀者批評指正,我們將不勝感激。
馮雷(Ray Feng)Pivotal中國研發中心總經理高小明 (Simon Gao)Pivotal Cloud Foundry高級研發經理Acknowledgements?致 謝我們特別感謝為Cloud Foundry產品持續投資的Pivotal公司,感謝在持續不斷改進Cloud Foundry的研發團隊。
Pivotal研發中心的前身EMC Greenplum研究部門在范承工博士和Greenplum創始人Scott Yara的關心下成立,這里一并感謝。也感謝EMC中國研究院院長劉偉博士和VMware中國研發中心總經理Alan Ren對Pivotal中國研發中心和Cloud Foundry的一貫支持。他們的幫助是本書能夠出版的前提。
同時也感謝為本書出版提供編輯、審稿和出版的機械工業出版社華章分社。
感謝Pivotal研發中心執行助理段旻(Ariel Duan)為本書出版所作出的項目管理。
感謝Pivotal Cloudops中國團隊所有成員對本書的貢獻,特別是朱磊對第7章和第9章部分內容的整理、編寫以及趙園對第5章內容的整理、編寫。
感謝Pivotal的Scott Frederick,本書對于應用開發的講解基于Scott的演示項目。
最后,感謝所有為本書提供支持鼓勵、內容建議和書稿審閱的朋友,這里不再一一列舉。
馮雷,PIVOTOL中國研發總經理,1997-2001就讀于北京大學物理系,
2001-2003就讀于卡內基梅隆信息系統管理學。2006 -2009任職于Oracle美國加州總部服務器技術部門,2010 至今任職于EMC/Pivotal 中國研發中心,從事大數據分析相關工作。
目 錄?Contents
序
前 言
致 謝
第1章 數字化變革下的新云浪潮 1
1.1 計算技術的變遷與發展 1
1.1.1 計算技術經歷的三代平臺及其背后的技術公司 2
1.1.2 三代技術平臺所驅動的商業模式 5
1.2 云計算概述 8
1.2.1 I層云 9
1.2.2 S層云 12
1.2.3 P層云 13
1.3 P層云計算和數字化變革 15
第2章 數字化轉型第一步:選擇PaaS云平臺 18
2.1 數字化轉型帶來的新需求 19
2.1.1 車聯網 20
2.1.2 運輸網絡和行程共享 20
2.1.3?無人駕駛 21
2.1.4 智能維護 22
2.1.5 電動汽車 22
2.2 數字化轉型中的精益方法 22
2.3 數字平臺選型 23
2.4 組建軟件開發團隊 25
第3章 Cloud Foundry:開源的PaaS云平臺 29
3.1 Cloud Foundry的歷史 30
3.2 Cloud Foundry的架構 31
3.3 應用準備和運行 36
3.4 Cloud Foundry 的特色 38
3.4.1 微服務 38
3.4.2 可伸縮 40
3.4.3 運維友好 41
3.4.4 高可用 43
3.4.5 可擴展 47
3.4.6 容器化 50
3.4.7 安全 51
3.5 Cloud Foundry的應用案例 52
3.6 本章小結 53
第4章 基于Cloud Foundry開發云原生的應用 55
4.1 云原生 55
4.2 持續發布和Concourse 57
4.3 微服務和Spring Boot 58
4.4 企業云原生應用的開發 59
4.4.1 應用案例描述 59
4.4.2 準備工作 60
4.4.3 創建后端微服務 61
4.4.4 前端子項目的開發 78
4.5 應用的管理 79
4.6 更多Spring Cloud服務 81
4.7 本章小結 85
第5章 BOSH原理與分析 86
5.1 BOSH概述 86
5.1.1 BOSH 的組件 87
5.1.2 BOSH部署的基本元素 89
5.2 安裝與使用BOSH 90
5.2.1 使用bosh init安裝BOSH 90
5.2.2 使用bosh init 創建一個基于AWS的BOSH 91
5.2.3 BOSH的用戶設置 101
5.2.4 使用BOSH 106
5.2.5 BOSH命令詳解 107
5.2.6 BOSH 部署描述文件的屬性 111
5.2.7 使用BOSH創建自己的release 118
5.2.8 BOSH中的Health Monitor 131
5.3 BOSH 故障排除 141
5.4 本章小結 141
第6章 Cloud Foundry?的部署規劃 143
6.1 容量規劃 143
6.1.1 容量規劃的概念和目標 143
6.1.2 Cloud Foundry的容量規劃 144
6.1.3 Cloud Foundry的容量監控 145
6.2 網絡設計 146
6.2.1 網絡設計的目標 146
6.2.2 典型的網絡設計方案 147
6.3 安全策略 149
6.3.1 通過網絡規劃保證系統安全 149
6.3.2 Cloud Foundry應用(APP)的安全 150
6.3.3 應用(APP)級防火墻:網絡流量規則 151
6.3.4 BOSH的安全 151
6.3.5 認證與授權 151
6.3.6 安全事件的記錄和審查 151
6.3.7 安全性的一些建議 152
6.4 本章小結 152
第7章 Cloud Foundry的部署實施 153
7.1 基于AWS的安裝 153
7.1.1 安裝的先決條件 153
7.1.2 部署Cloud Foundry 161
7.2 基于OpenStack的安裝 167
7.2.1 安裝的先決條件 167
7.2.2 部署Cloud Foundry 172
7.3 基于vSphere的安裝 182
7.3.1 安裝的先決條件 182
7.3.2 部署Micro BOSH 183
7.3.3 部署Cloud Foundry 185
7.4 使用Ops Manager安裝 189
7.4.1 OpenStack支持版本 189
7.4.2 安裝的先決條件 190
7.4.3 配置OpenStack環境 191
7.4.4 配置并安裝Ops Manager Director 198
7.4.5 安裝Cloud Foundry 205
7.5 本章小結 211
第8章 Cloud Foundry的運維 212
8.1 度量 212
8.2 度量的發送 213
8.2.1 Bosh Health Monitor 214
8.2.2 Cloud Foundry Collector 214
8.2.3 Cloud Foundry Loggregator 214
8.3 度量收集與監控面板 216
8.3.1 Datadog 216
8.3.2 OpenTSDB 217
8.4 系統監控與報警處理 218
8.5 日志的收集和分析 219
第9章 服務與工具 222
9.1 服務 222
9.1.1 服務簡介 222
9.1.2 實現服務代理 225
9.1.3 管理服務代理 226
9.1.4 使用服務 228
9.1.5 用戶提供的服務 229
9.1.6 服務示例 230
9.2 工具 235
9.2.1 PCF-Dev 235
9.2.2 Concourse 240
9.2.3 Spiff 241
9.3 本章小結 250
參考文獻 251