出版時(shí)間:2012-3-10 出版社:機(jī)械工業(yè)出版社華章公司 作者:Christopher M. Moyer 譯者:顧毅
Tag標(biāo)簽:無(wú)
前言
前言: 作為一家小型創(chuàng)業(yè)公司的開發(fā)人員,做了幾個(gè)月將既有服務(wù)移植到云環(huán)境的開發(fā)工作之后,我開始意識(shí)到這些工作由我一個(gè)人來(lái)做的話工作量實(shí)在太大了。于是,我開始尋找其他的開發(fā)人員來(lái)協(xié)助我,或者當(dāng)我找到更好、更有意思的工作機(jī)會(huì)時(shí)讓他頂替我。不久,我就發(fā)現(xiàn)真正徹底理解開發(fā)基于云平臺(tái)的應(yīng)用程序所必需的復(fù)雜度的人相當(dāng)少,而且這些人幾乎都對(duì)自己目前的公司很滿意。 就如何使用云平臺(tái)的話題,我開始在博客中寫專題文章,網(wǎng)址是http://blog. coredumped.org,但我很快又意識(shí)到,我可以花上整整一年寫下所有這些人們應(yīng)該知道的東西。這些文檔應(yīng)該更適合放在參考書中而不是隨隨便便地散落在博客各處,所以我決定寫一本書?! ”緯哪康摹 ”緯⒉皇且槐拘枰獜念^至尾去讀完的教程,而是一本教你如何在云環(huán)境中創(chuàng)建應(yīng)用程序的指南,也是一本可以在遇到特定問題時(shí)隨時(shí)參考的手冊(cè)。當(dāng)公司為你安排新的項(xiàng)目,并告訴你要讓它具有伸縮性時(shí),看看本書中所討論的模式是不是適用于該項(xiàng)目。當(dāng)你在項(xiàng)目中發(fā)現(xiàn)了特定的問題卻束手無(wú)策時(shí),翻一翻本書。如果你嘗試開始一個(gè)新的項(xiàng)目,并且你有一個(gè)非常完美的想法,卻不知道該如何讓系統(tǒng)能夠收縮自如時(shí),翻一翻本書。如果你正嘗試改造一個(gè)既有的項(xiàng)目,使其能在云環(huán)境中自由擴(kuò)展時(shí),翻一翻本書。如果你不知道在云計(jì)算環(huán)境中能構(gòu)建什么樣的應(yīng)用程序時(shí),翻一翻本書。 本書中并沒有發(fā)明許多新的模式,而僅僅是向你展現(xiàn)了一些技巧和新技術(shù),這些都是在云環(huán)境中運(yùn)行系統(tǒng)時(shí)所需要考慮的。盡管你可以將書中討論的模式用于任何形式的集群環(huán)境,但這些模式是為云計(jì)算所提供的服務(wù)量身定做的?! ∪绾问褂帽緯 ”緯譃槿齻€(gè)部分。每個(gè)人都應(yīng)該閱讀第一部分,從而對(duì)云計(jì)算有一個(gè)基本的理解。在第二部分中,你可以挑選最感興趣的模式閱讀。如果你從未開發(fā)過任何形式的云應(yīng)用程序,建議看一下第三部分中的范例應(yīng)用程序,從而使你對(duì)該系統(tǒng)究竟最適合于什么樣的應(yīng)用程序有一個(gè)確切的了解?! 〉谝徊糠郑?ldquo;概念” 第一部分旨在讓你掌握一些在云平臺(tái)上進(jìn)行開發(fā)的基本概念。你應(yīng)該全部閱讀這一部分,該部分分為以下幾章?! 〉?章:“云服務(wù)的基礎(chǔ)”—提供了一些使用云計(jì)算解決方案時(shí)的基本概念,對(duì)于任何對(duì)云計(jì)算平臺(tái)感興趣的開發(fā)人員來(lái)說,本章是絕不容錯(cuò)過的?! 〉?章:“把軟件做成服務(wù)”—針對(duì)如何實(shí)現(xiàn)軟件即服務(wù)(SaaS)提供了一些基本的指南。本章詳細(xì)討論了為什么軟件即服務(wù)是個(gè)好主意,以及如何正確構(gòu)建SaaS?! 〉?章:“云服務(wù)提供商”—提供了一些由不同云服務(wù)提供商所提供的服務(wù)的實(shí)例。 第二部分:“模式” 第二部分更像是一本手冊(cè),給出了構(gòu)建系統(tǒng)時(shí)的問題以及相應(yīng)的解決方案?! 〉?章:“設(shè)計(jì)鏡像”—包括基本的構(gòu)建基礎(chǔ)鏡像的模式,這些鏡像是構(gòu)建應(yīng)用程序的基礎(chǔ)。 第5章:“設(shè)計(jì)架構(gòu)”—包括讓系統(tǒng)與外部系統(tǒng)(不是你所采用的云服務(wù)提供商的系統(tǒng))進(jìn)行交互的模式?! 〉?章:“操作數(shù)據(jù)”—包括針對(duì)數(shù)據(jù)執(zhí)行代碼片段的模式?! 〉?章:“集群系統(tǒng)”—包括為了充分發(fā)揮集群部署優(yōu)勢(shì)而設(shè)計(jì)的基礎(chǔ)框架中使用的模式。 第三部分:“項(xiàng)目” 第三部分以真實(shí)世界中的應(yīng)用程序?yàn)槔?,并將書中所介紹的模式運(yùn)用進(jìn)去。這兩章都采用了相同的入門教程,但實(shí)現(xiàn)的方式不同?! 〉?章:“簡(jiǎn)單的博客系統(tǒng)”—詳細(xì)介紹了如何從頭開始構(gòu)建一個(gè)簡(jiǎn)單的博客系統(tǒng),且不采用任何既有的框架?! 〉?章:“使用Marajo開發(fā)博客系統(tǒng)”—詳細(xì)介紹了如何使用Marajo這一基于云環(huán)境的Web應(yīng)用框架來(lái)構(gòu)建博客系統(tǒng)?! 暮伍_始 現(xiàn)在,許多人的第一個(gè)問題就是:從何開始?該如何迅速開始開發(fā)應(yīng)用程序?如果不想完整地閱讀本書,怎樣做才能簡(jiǎn)單快速地了解到書中這些概念的實(shí)際工作原理? 選擇了本書,你就已經(jīng)走上了正確的軌道。如果隨隨便便地選擇一家云服務(wù)提供商,啟動(dòng)幾臺(tái)服務(wù)器,期待能從這些服務(wù)商那里得到你所想要的東西,毋庸置疑,這是不切實(shí)際的。如果只是挑選一家云服務(wù)提供商,而不做足夠的事前研究,其結(jié)果往往會(huì)讓人們陷入一大堆問題中,而且還會(huì)把這些問題歸咎于云服務(wù)提供商。這就相當(dāng)于你買了一輛手動(dòng)擋的汽車,但完全不了解該如何駕駛,結(jié)果卻向銷售商抱怨說是他們把車賣給了你。如果你在事前沒有做研究或準(zhǔn)備,那么在云環(huán)境中遇到問題時(shí),完全不應(yīng)該感到意外。如果你不是開發(fā)人員,找第三方來(lái)幫你管理云環(huán)境可能會(huì)更合適,但如果你閱讀了本書,我想你絕對(duì)不會(huì)滿足于“找一群家伙來(lái)搞定它”?! ≈轮x 我要感謝我的伙伴和導(dǎo)師Mitch Garnaat,感謝他給予我的幫助和激勵(lì),讓我進(jìn)入了云計(jì)算領(lǐng)域。我也要感謝Amazon Web Services的團(tuán)隊(duì),感謝他們推動(dòng)云計(jì)算的市場(chǎng)不斷向前,且持續(xù)不斷地帶來(lái)新的產(chǎn)品,使本書中的內(nèi)容成為可能。
內(nèi)容概要
《構(gòu)建云應(yīng)用:概念、模式和實(shí)踐》沿用大家所熟悉的“設(shè)計(jì)模式”格式,介紹了云計(jì)算平臺(tái)上行之有效的模式。通過基于python和amazon
web
services(aws)平臺(tái)的詳細(xì)的范例代碼和應(yīng)用程序,向讀者演示了這些模式的實(shí)際運(yùn)用。本書內(nèi)容包括掌握成功的云計(jì)算解決方案的核心原則,如何正確地構(gòu)建軟件即服務(wù)(software
as a
service,saas)模式,理解不同的云服務(wù)提供商所提供的服務(wù),如何設(shè)計(jì)主機(jī)鏡像、為云平臺(tái)上的應(yīng)用打造一個(gè)堅(jiān)實(shí)的基礎(chǔ),如何針對(duì)與外部系統(tǒng)的交互行為選擇最合適的模式,如何實(shí)現(xiàn)高效的數(shù)據(jù)處理以及如何充分發(fā)揮多主機(jī)集群部署的優(yōu)勢(shì)。
《構(gòu)建云應(yīng)用:概念、模式和實(shí)踐》適合軟件開發(fā)人員和對(duì)云計(jì)算感興趣的讀者閱讀。
作者簡(jiǎn)介
Chris Moyer畢業(yè)于美國(guó)羅切斯特理工大學(xué)(Rochester Institute of Technology,RIT),并獲得軟件工程學(xué)士學(xué)位。Chris擁有5年以上的編程經(jīng)驗(yàn),主要集中在云計(jì)算領(lǐng)域。他的大部分時(shí)間都在開發(fā)大受歡迎的boto客戶端類庫(kù),該類庫(kù)用于與Amazon Web Services進(jìn)行通信。通過向boto的創(chuàng)始人Mitch Garnaat學(xué)習(xí),Chris隨后開始基于該客戶端類庫(kù)開發(fā)Web框架,也就是Marajo和botoweb?;谶@些框架,他還創(chuàng)建了大規(guī)模的應(yīng)用程序。 Chris目前是Newstex公司的技術(shù)部副總裁,負(fù)責(zé)管理技術(shù)研發(fā)工作,這些技術(shù)用于將應(yīng)用程序遷移到云平臺(tái),同時(shí)他也管理著自己的部門,該部門正在積極地維護(hù)和開發(fā)幾個(gè)應(yīng)用程序。Chris與妻子Lynn住在紐約。
書籍目錄
譯者序
前言
關(guān)于作者
第0章 引言
0.1 云計(jì)算是什么
0.2 云計(jì)算的革命
0.2.1 主機(jī)
0.2.2 pc革命
0.2.3 高速互聯(lián)網(wǎng)
0.2.4 云
0.2.5 html5和本地存儲(chǔ)
0.2.6 移動(dòng)設(shè)備的黎明
0.3 線程化,并行處理,并行計(jì)算
0.4 基于云的開發(fā)過程與其他應(yīng)用開發(fā)過程有何不同
0.5 應(yīng)該避免什么
0.6 開始用云
0.6.1 選擇一種云模式
0.6.2 實(shí)現(xiàn)一種云模式
第一部分 概念
第1章 云服務(wù)的基礎(chǔ)
1.1 云計(jì)算的起源
1.2 云服務(wù)是什么
1.2.1 計(jì)算
1.2.2 存儲(chǔ)
1.2.3 聯(lián)接
1.3 遺留模式
1.4 運(yùn)行在云中的應(yīng)用并不會(huì)自主擴(kuò)展
1.5 失效是必然的
1.6 一致性,有效性,分區(qū)容錯(cuò)性
1.6.1 一致性
1.6.2 有效性
1.6.3 分區(qū)容錯(cuò)性
1.7 最終一致性
1.8 本章小結(jié)
第2章 把軟件做成服務(wù)
2.1 本書中使用的工具
2.1.1 注冊(cè)amazon web services
2.1.2 安裝boto
2.1.3 環(huán)境設(shè)置
2.1.4 測(cè)試
2.2 什么是應(yīng)用程序所需要的
2.3 數(shù)據(jù)層
2.4 應(yīng)用層
2.4.1 使用elastic load balancing
2.4.2 向負(fù)載均衡器添加服務(wù)器
2.4.3 自動(dòng)向負(fù)載均衡器注冊(cè)實(shí)例
2.5 http和rest
2.5.1 http header
2.5.2 body
2.5.3 方法
2.6 授權(quán)層
2.7 客戶端層
2.7.1 基于瀏覽器的客戶端
2.7.2 本地應(yīng)用程序
2.8 本章小結(jié)
第3章 云服務(wù)提供商
3.1 amazon web services
3.1.1 simplestorageservice(s3)
3.1.2 cloudfront
3.1.3 simple queue service (sqs)
3.1.4 elastic compute cloud (ec2)
3.1.5 elastic block storage (ebs)
3.1.6 elastic load balancing (elb)
3.1.7 simpledb
3.1.8 relational database service(rds)
3.1.9 simple notification service (sns)
3.1.10 virtual private cloud(vpc)
3.2 google云
3.2.1 appengine
3.2.2 google storage
3.3 rackspace云
3.3.1 cloudfiles
3.3.2 cloudservers
3.3.3 cloudsites
3.4 本章小結(jié)
第二部分 模式
第4章 設(shè)計(jì)鏡像
4.1 預(yù)打包鏡像
4.1.1 概要
4.1.2 使用動(dòng)機(jī)
4.1.3 詳述
4.1.4 實(shí)現(xiàn)
4.1.5 范例
4.1.6 總結(jié)
4.2 單例實(shí)例(singleton instance)
4.2.1 概要
4.2.2 使用動(dòng)機(jī)
4.2.3 詳述
4.2.4 實(shí)現(xiàn)
4.2.5 范例
4.2.6 總結(jié)
4.3 原型鏡像
4.3.1 概要
4.3.2 使用動(dòng)機(jī)
4.3.3 詳述
4.3.4 實(shí)現(xiàn)
4.3.5 范例
4.3.6 總結(jié)
第5章 設(shè)計(jì)架構(gòu)
5.1 適配器
5.1.1 概要
5.1.2 使用動(dòng)機(jī)
5.1.3 詳述
5.1.4 實(shí)現(xiàn)
5.1.5 范例
5.1.6 總結(jié)
5.2 門面模式
5.2.1 概要
5.2.2 使用動(dòng)機(jī)
5.2.3 詳述
5.2.4 實(shí)現(xiàn)
5.2.5 范例
5.2.6 總結(jié)
5.3 負(fù)載均衡代理
5.3.1 概要
5.3.2 使用動(dòng)機(jī)
5.3.3 詳述
5.3.4 實(shí)現(xiàn)
5.3.5 范例
5.3.6 總結(jié)
第6章 操作數(shù)據(jù)
6.1 隊(duì)列(queuing)模式
6.1.1 概要
6.1.2 使用動(dòng)機(jī)
6.1.3 詳述
6.1.4 實(shí)現(xiàn)
6.1.5 范例
6.1.6 總結(jié)
6.2 命令模式
6.2.1 概要
6.2.2 使用動(dòng)機(jī)
6.2.3 詳述
6.2.4 實(shí)現(xiàn)
6.2.5 范例
6.2.6 總結(jié)
6.3 迭代器模式
6.3.1 概要
6.3.2 使用動(dòng)機(jī)
6.3.3 詳述
6.3.4 實(shí)現(xiàn)
6.3.5 范例
6.3.6 總結(jié)
6.4 觀察者模式
6.4.1 概要
6.4.2 使用動(dòng)機(jī)
6.4.3 詳述
6.4.4 實(shí)現(xiàn)
6.4.5 范例
6.4.6 總結(jié)
第7章 集群系統(tǒng)
7.1 web分層模式
7.1.1 概要
7.1.2 使用動(dòng)機(jī)
7.1.3 詳述
7.1.4 實(shí)現(xiàn)
7.1.5 范例
7.1.6 總結(jié)
7.2 信號(hào)和鎖模式
7.2.1 概要
7.2.2 使用動(dòng)機(jī)
7.2.3 詳述
7.2.4 實(shí)現(xiàn)
7.2.5 范例
7.2.6 總結(jié)
7.3 map/reduce
7.3.1 概要
7.3.2 使用動(dòng)機(jī)
7.3.3 詳述
7.3.4 實(shí)現(xiàn)
7.3.5 范例
7.3.6 總結(jié)
第三部分 項(xiàng)目
第8章 簡(jiǎn)單的博客系統(tǒng)
8.1 存儲(chǔ)
8.1.1 創(chuàng)建sdb域
8.1.2 user對(duì)象
8.1.3 post對(duì)象
8.1.4 comment對(duì)象
8.2 應(yīng)用邏輯層
8.2.1 wsgi的簡(jiǎn)單介紹
8.2.2 db處理器
8.2.3 user、post、comment對(duì)象的處理器
8.2.4 處理垃圾評(píng)論
8.3 表現(xiàn)層
8.3.1 設(shè)置http代理
8.3.2 博客文章(post)
8.3.3 評(píng)論
8.4 部署
8.4.1 啟動(dòng)基礎(chǔ)實(shí)例
8.4.2 安裝軟件
8.4.3 安裝應(yīng)用程序
8.4.4 安裝apache
8.4.5 打包鏡像
8.4.6 創(chuàng)建代理
8.5 本章小結(jié)
第9章 使用marajo開發(fā)博客系統(tǒng)
9.1 初始化開發(fā)環(huán)境
9.1.1 handlers
9.1.2 resources
9.1.3 static
9.1.4 templates
9.2 創(chuàng)建資源(resource)
9.3 創(chuàng)建處理器
9.4 配置應(yīng)用程序
9.5 運(yùn)行應(yīng)用程序
9.6 創(chuàng)建自定義模板
9.6.1 清單頁(yè)面的模板
9.6.2 編輯博客的模板
9.7 本章小結(jié)
術(shù)語(yǔ)表
編輯推薦
詳述如何打造性能、可擴(kuò)展性、可用性俱佳的云計(jì)算架構(gòu)模式?! ?shí)現(xiàn)高效的數(shù)據(jù)處理以及如何充分發(fā)揮多主機(jī)集群部署的優(yōu)勢(shì)。
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載