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