概要
首先這篇文章并非攻擊PaaS,也不是否定PaaS的價(jià)值。相反,筆者是想通過(guò)本文對(duì)PaaS有一個(gè)更加明確的界定,它是什么,能處理哪些問(wèn)題,不能解決哪些問(wèn)題。這樣可以對(duì)所有正在探索PaaS或準(zhǔn)備上PaaS的企業(yè),能有一個(gè)參考。
本文作為筆者過(guò)去十年的工作總結(jié),對(duì)PaaS的實(shí)踐和思考。 筆者曾在新浪供職九年時(shí)間,參與并負(fù)責(zé)研發(fā)內(nèi)部動(dòng)態(tài)平臺(tái)(私有PaaS)的建設(shè)并在后來(lái)領(lǐng)導(dǎo)了整個(gè)SAE(公有PaaS)項(xiàng)目的發(fā)展,因?yàn)橛辛藙?dòng)態(tài)平臺(tái)的實(shí)踐經(jīng)驗(yàn),也才有了后來(lái)SAE的誕生,兩者有因果聯(lián)系。
動(dòng)態(tài)平臺(tái)(Dynamic Pool)
這個(gè)名詞是和靜態(tài)池相對(duì)的。因?yàn)樾吕嗽诤茉缇蜑樾侣剺I(yè)務(wù)構(gòu)建了一個(gè)靜態(tài)池(目前仍在沿用)。
起源
動(dòng)態(tài)平臺(tái)的立項(xiàng)在2004年,當(dāng)時(shí)CTO李嵩波先生負(fù)責(zé)新浪技術(shù)工作,他對(duì)這個(gè)項(xiàng)目非常支持。童劍當(dāng)時(shí)是這個(gè)項(xiàng)目的帶頭人。
當(dāng)時(shí)的動(dòng)態(tài)平臺(tái)解決的問(wèn)題:
資源共用 避免一個(gè)應(yīng)用一堆機(jī)器
開(kāi)發(fā)有規(guī)范 不能按照每個(gè)開(kāi)發(fā)人員的好惡
統(tǒng)一的運(yùn)維管理 開(kāi)發(fā)人員不管理機(jī)器,只負(fù)責(zé)代碼編寫(xiě)和數(shù)據(jù)庫(kù)設(shè)計(jì)
發(fā)展
動(dòng)態(tài)平臺(tái)的發(fā)展初期,得益于公司領(lǐng)導(dǎo)的支持和成本管理的加強(qiáng)。這使得新項(xiàng)目申請(qǐng)?jiān)O(shè)備預(yù)算變得困難,進(jìn)而促進(jìn)了動(dòng)態(tài)平臺(tái)的快速發(fā)展。
發(fā)展過(guò)程中遇到的主要難題:
資源爭(zhēng)搶沖突問(wèn)題
故障排查難度大
數(shù)據(jù)庫(kù)管理面臨挑戰(zhàn)
開(kāi)發(fā)和運(yùn)維的協(xié)作配合
這些難題在動(dòng)態(tài)平臺(tái)不同的發(fā)展時(shí)期,表現(xiàn)程度也不盡相同。在不同時(shí)期,都有相應(yīng)的流程或技術(shù)來(lái)解決這些問(wèn)題。
壯大
2009年,微博技術(shù)負(fù)責(zé)人決定使用動(dòng)態(tài)平臺(tái),這使得動(dòng)態(tài)平臺(tái)的承載規(guī)模在隨后幾年都呈現(xiàn)了井噴式的高速發(fā)展。并使得動(dòng)態(tài)平臺(tái)的適應(yīng)能力更強(qiáng)。
動(dòng)態(tài)平臺(tái)快速發(fā)展壯大的根本原因在于公司領(lǐng)導(dǎo)支持和嚴(yán)格的成本管理,削減業(yè)務(wù)部門IT預(yù)算。這一點(diǎn)可供想搞私有IaaS或私有PaaS的企業(yè)參考,如果你們的預(yù)算很多,那么搞私有云,十有八九是要失敗的!很明顯,業(yè)務(wù)部門的IT預(yù)算足夠,是沒(méi)有能動(dòng)性去使用私有云的。
如果要問(wèn)全球業(yè)務(wù)規(guī)模最大的PaaS是哪一家,那一定是新浪研發(fā)的動(dòng)態(tài)平臺(tái)!
SAE
2008年Google GAE發(fā)布。筆者當(dāng)時(shí)正負(fù)責(zé)動(dòng)態(tài)平臺(tái)的日常管理。當(dāng)時(shí)的GAE我看到后非常驚艷,開(kāi)發(fā)人員可以自助管理自己的應(yīng)用,寫(xiě)好代碼提交后就直接運(yùn)行。而當(dāng)時(shí)動(dòng)態(tài)平臺(tái)還是工單時(shí)代,開(kāi)發(fā)人員需要提交應(yīng)用申請(qǐng),我們?cè)诤笈_(tái)進(jìn)行手工配置后開(kāi)通。當(dāng)時(shí)就有一股沖動(dòng),想要搞一個(gè)類似的產(chǎn)品。這在2009年成為現(xiàn)實(shí)。2009年11月SAE如愿上線,并很快發(fā)布了alpha1、alpha2、beta等多個(gè)版本。隨著微博的蓬勃發(fā)展,2011年微博開(kāi)放平臺(tái)應(yīng)用的蓬勃發(fā)展,有力地帶動(dòng)了SAE的飛速發(fā)展,當(dāng)時(shí)的微博投票、粉絲匯、微博數(shù)據(jù)分析、聊天工具等大量第三方的應(yīng)用快速地在SAE上誕生,并且日訪問(wèn)量都可以輕松過(guò)千萬(wàn)。
挑戰(zhàn)
SAE的技術(shù)架構(gòu),很有多動(dòng)態(tài)平臺(tái)的影子。其運(yùn)營(yíng)維護(hù)也得益于過(guò)去多年成熟的經(jīng)驗(yàn)。但外部用戶和內(nèi)部用戶的差別,對(duì)SAE的影響很大,特別是后來(lái)IaaS和云主機(jī)在國(guó)內(nèi)快速發(fā)展,SAE發(fā)展速度放緩。
外部業(yè)務(wù)的差異性大,內(nèi)部業(yè)務(wù)相對(duì)要整齊;
外部客戶的協(xié)作難度更高:外部客戶數(shù)量龐大,在服務(wù)支持上只能側(cè)重于重要的客戶;
敏感應(yīng)用監(jiān)管難度高;
DDoS攻擊每日不絕:這是所有做公有云的人都面臨的痛苦;
惡意應(yīng)用多:比如惡意的淘寶客。
用戶使用SAE的理由
毫無(wú)疑問(wèn),SAE是國(guó)內(nèi)最早的PaaS平臺(tái),也是目前國(guó)內(nèi)最成熟、用戶規(guī)模最大的PaaS平臺(tái)。即使是在目前云計(jì)算用戶爭(zhēng)搶越來(lái)越激烈的今天,每天仍然有大量用戶注冊(cè)使用SAE平臺(tái)。之所以有用戶愿意使用SAE,核心的原因:
快速獲取App運(yùn)行環(huán)境。雖然說(shuō)用戶搭建一套Lamp或Tomcat環(huán)境并不復(fù)雜,但如果不是很熟練,看文檔去做,幾個(gè)小時(shí)還是需要的;
免運(yùn)維。這個(gè)是最關(guān)鍵和核心的。使用SAE后,你完全不需要關(guān)心運(yùn)維了,只要負(fù)責(zé)寫(xiě)代碼,這對(duì)很多開(kāi)發(fā)人員來(lái)說(shuō),很有吸引力;
便宜 SAE的實(shí)現(xiàn)方式,決定了它的密度最高,目前沒(méi)有其他模式可以相比。這也是為什么使用SAE會(huì)很便宜的原因。這對(duì)很多個(gè)人開(kāi)發(fā)者而言很有吸引力。
PaaS解密
定義
維基百科的解釋: In this model, the consumer creates the software using tools and/or libraries from the provider. The consumer also controls software deployment and configuration settings. The provider provides the networks, servers, storage, and other services that are required to host the consumer's application
上面的定義,應(yīng)該是對(duì)多家PaaS供應(yīng)商的產(chǎn)品的一個(gè)總結(jié)。包括GAE、Heroku、CloudFoundry、OpenShift、SAE等。翻譯為中文的意思就是:使用者只要提交應(yīng)用代碼,其余所有事由PaaS供應(yīng)商搞定。
這是多么美好的愿景!我想這也是所有開(kāi)發(fā)者的夢(mèng)想,只關(guān)心代碼,其他的都不用管,服務(wù)還都能運(yùn)行得很好,99.99%的可用性,不用擔(dān)心半夜出故障還得爬起來(lái),不用擔(dān)心數(shù)據(jù)庫(kù)忘記了備份導(dǎo)致數(shù)據(jù)丟失,不用擔(dān)心訪問(wèn)量突然倍增,服務(wù)抗不住,不用擔(dān)心網(wǎng)絡(luò)故障來(lái)回切換服務(wù)。世界變得好有秩序。
上面描述的愿景,令人十分向往。如果真的有這樣的PaaS存在,如果GAE真的做到了這些,為何云計(jì)算的領(lǐng)導(dǎo)者是AWS,不是GAE?
我不禁懷疑,這樣萬(wàn)能的包治百病的PaaS真的存在嗎?不論是作為先行者的GAE、Heroku、SAE,還是后來(lái)的CloudFoundry、OpenShift,還是現(xiàn)在的基于Docker的Flynn、Deis。
如果讓我現(xiàn)在給一個(gè)PaaS的定義,我會(huì)這樣寫(xiě):PaaS是一套開(kāi)發(fā)、運(yùn)維的規(guī)范和流程,可以通過(guò)一些輔助工具將規(guī)范、流程沉淀下來(lái)。但同時(shí)業(yè)務(wù)和技術(shù)總是處于不斷變化的時(shí)代,流程和規(guī)范也需要適應(yīng)變化。沒(méi)有一套流程規(guī)范能讓你用一輩子,也沒(méi)有什么工具可以幫助你一勞永逸地解決所有問(wèn)題。新浪動(dòng)態(tài)平臺(tái)已經(jīng)有不到10年的歷史,一直都處于不斷的演進(jìn)、變化、調(diào)整中,之所以需要不斷演進(jìn)變化,因?yàn)榧夹g(shù)在變化、業(yè)務(wù)在變化、組織在變化,不要期待不變,那是不可能也是做不到的。
PaaS解決什么問(wèn)題
要談PaaS能夠解決哪些問(wèn)題,取決于PaaS提供哪些能力,一般而言,目前的PaaS提供:
代碼部署能力;
代碼運(yùn)行時(shí)環(huán)境,如Java、PHP、Ruby等;
各種應(yīng)用運(yùn)行所需的服務(wù) 典型的是數(shù)據(jù)庫(kù);
從上面的功能看,PaaS主要解決的問(wèn)題是應(yīng)用的部署以及執(zhí)行。
PaaS不能解決什么
PaaS不能做到全自動(dòng)、無(wú)故障的運(yùn)維管理;
PaaS也不能代替你實(shí)施開(kāi)發(fā)和運(yùn)維流程的梳理,而這個(gè)我認(rèn)為對(duì)企業(yè)才是最核心的,是一個(gè)開(kāi)發(fā)和運(yùn)維觀念的變化,光有工具是不行的;
PaaS需要的運(yùn)營(yíng)維護(hù)工具,仍然是需要你自己開(kāi)發(fā)或者購(gòu)買的。PaaS無(wú)法提供全套的管理工具;
PaaS提供的服務(wù)仍然是有限的。比如你需要LBS服務(wù),或者消息推送服務(wù),可能某個(gè)PaaS提供,但另外的就沒(méi)有。沒(méi)有全能廠商可以提供所有服務(wù),如果他提供了,也一定是個(gè)花架子。
看到上面幾點(diǎn),大家是不是覺(jué)得PaaS沒(méi)什么用?其實(shí)不是,PaaS只是個(gè)工具,你需要首先變革你的理念,或者你不使用CloudFoundry這么復(fù)雜的系統(tǒng),但如果你已經(jīng)將你的開(kāi)發(fā)和運(yùn)維流程規(guī)范做得很到位,那么確實(shí)是不需要PaaS的,或者你在實(shí)施你的流程時(shí),就已經(jīng)自覺(jué)或不自覺(jué)地使用了某些工具,你可以非常快速地部署軟件、實(shí)施監(jiān)控、有條理地進(jìn)行備份,那么你確實(shí)無(wú)需再去引入一個(gè)PaaS平臺(tái)了。
PaaS最終應(yīng)該是解決方案,適應(yīng)客戶需求的解決方案,而且是需要隨著業(yè)務(wù)需求的變化可以不斷演變。而不是客戶削足適履去適應(yīng)PaaS這個(gè)工具。那樣的話,PaaS之路必定是多災(zāi)多難。
NiceScale
離開(kāi)老東家新浪后,當(dāng)時(shí)我立志做一個(gè)靈活性很強(qiáng)的PaaS,可以支持任意的軟件棧,能夠幫用戶管理維護(hù)好他的所有軟件棧。這個(gè)項(xiàng)目設(shè)定的目標(biāo)比CloudFoundry要大,當(dāng)然我們?cè)赑aaS運(yùn)營(yíng)上的經(jīng)驗(yàn)足夠。但是Docker發(fā)展如火如荼后,一個(gè)通用的PaaS意義還有多大?而且要解決PaaS的運(yùn)管方面的需求,其復(fù)雜度也很高。但最關(guān)鍵還是,用戶真的需要這么復(fù)雜的工具嗎?
我重讀Unix經(jīng)典著作,思考前輩們是如何處理這樣復(fù)雜的工程的。我們承認(rèn),服務(wù)運(yùn)行的管理確實(shí)非常復(fù)雜,但是如果使用了復(fù)雜的工具去管理,那么也只能帶來(lái)更高的復(fù)雜度。解決復(fù)雜的問(wèn)題,只有簡(jiǎn)單,任何復(fù)雜的事情,都是可以分解為簡(jiǎn)單。
從簡(jiǎn)單入手,于是有了新的NiceScale。但NiceScale的目標(biāo)沒(méi)有變,降低用戶使用云計(jì)算的復(fù)雜度一直是我們的追求,是我們矢志不渝的目標(biāo)!
這個(gè)新的產(chǎn)品,前期只解決一個(gè)小問(wèn)題,幫助你非常容易地管理多個(gè)服務(wù)器。通過(guò)批量在多個(gè)機(jī)器上執(zhí)行腳本,并將行為記錄下來(lái)。功能雖少,但是相信你使用過(guò)后,會(huì)體驗(yàn)到它的強(qiáng)大與方便。
原來(lái)服務(wù)器管理也可以不再枯燥,變得有趣、很酷!
初心未變,但我們選擇了另外一條路,簡(jiǎn)單的路。
Keep it simple, stupid ...
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標(biāo)題:PaaS,不是銀彈
本文網(wǎng)址:http://www.oesoe.com/html/consultation/10839717012.html