一個產(chǎn)品經(jīng)理眼中的云計(jì)算:前生今世和未來
![](http://image.woshipm.com/wp-files/img/37.jpg)
最近發(fā)了太多JobDeer的廣告了,感覺不寫點(diǎn)干貨有些對不起我的粉絲們。于是這次寫寫我還算熟悉的領(lǐng)域——云計(jì)算。 作為新浪云的前產(chǎn)品經(jīng)理,我不想從技術(shù)角度去講云了,這次我從產(chǎn)品的視角來管中窺豹吧。當(dāng)然,水平有限,錯誤難免,所以請各位看官批判的讀下去哈。 如果要我來劃云計(jì)算的里程碑,我會劃出兩個點(diǎn)。 第一個點(diǎn)是Xen等虛擬化技術(shù)的出現(xiàn),第二個點(diǎn)是Docker等容器興起。 在虛擬化技術(shù)出現(xiàn)之前,我們都在使用物理機(jī)。記得08年創(chuàng)業(yè)時,我一個人扛著一臺1U托管進(jìn)了順義電信,然后就每隔一段時間給機(jī)房打電話,請師傅幫忙按電源重啟服務(wù)器。 當(dāng)有了虛擬化以后,其實(shí)只發(fā)生了一個小改變:一臺物理機(jī)可以被分割成許多臺虛擬機(jī)了。 這件事情有什么意義呢? 至少有兩個方面的意義。 首先是利用率。 每臺物理機(jī)只能有一個操作系統(tǒng),而在一個操作系統(tǒng)里邊,各種業(yè)務(wù)可能互相干擾。所以我們一般會把機(jī)器按業(yè)務(wù)分組,來創(chuàng)建集群。對于大型項(xiàng)目來說,集群的利用率是不錯的。但是對于小項(xiàng)目,這種方式利用率就很差了,因?yàn)橐粋€業(yè)務(wù)節(jié)點(diǎn)最少需要一臺獨(dú)立的機(jī)器。 有了虛擬機(jī),就不一樣了。一臺機(jī)器可以虛擬化為很多個操作系統(tǒng),分配給很多不同業(yè)務(wù)和不同的人。這樣利用率就上來。 然后是可控性。 在虛擬機(jī)之前,有很多控制是物理的,就像我前邊提到的,重啟是需要按電源的。但是虛擬化以后,重啟就變成軟件可控的東西了(當(dāng)然,前提是掛掉的不是宿主機(jī))。 可以用軟件或者API接口隨時啟動、關(guān)閉虛擬機(jī)說起來是件小事,但這后來卻演變成了可以自動調(diào)度的彈性云服務(wù)—— 當(dāng)你的應(yīng)用壓力大時,云平臺可以自動幫你創(chuàng)建新的虛擬機(jī);當(dāng)應(yīng)用壓力小時,它可以幫你關(guān)幾臺,省電省錢。自動化的能量就是這么大。 以這部分服務(wù)為基礎(chǔ),云計(jì)算的最基礎(chǔ)的一個層次,IaaS(基礎(chǔ)設(shè)施即服務(wù))出現(xiàn)了。之后虛擬化技術(shù)本身開始日益成熟、很多服務(wù)器開始在硬件級別支持虛擬化;再后來,以操作系統(tǒng)為粒度的隔離方案不斷加強(qiáng),保證在同一臺物理機(jī)上的虛擬機(jī)用戶不會因?yàn)閷懘疟P太猛、用網(wǎng)絡(luò)過度等情況影響別人。 隔離技術(shù)可以說是云計(jì)算的核心技術(shù)點(diǎn)之一,正是隔離技術(shù)不斷的進(jìn)步,使云的隔離粒度一層層加深,從而推動了云計(jì)算產(chǎn)業(yè)的一級級迭代更新。 接下來,這幫用慣了虛擬機(jī)的程序員們開始不滿足了。為什么我寫20個PHP項(xiàng)目,需要我裝20個操作系統(tǒng)?為什么不能這20個操作系統(tǒng)共享一個Web運(yùn)行環(huán)境,而20個PHP項(xiàng)目之間彼此隔離就好了呢。這樣我就只需要上傳PHP代碼就好了。 于是我們對云計(jì)算的隔離粒度提出了更高的要求:隔離能不能從操作系統(tǒng)層次進(jìn)化到應(yīng)用層次。 PaaS(平臺即服務(wù))出現(xiàn)了。 由于應(yīng)用本身對于平臺有依賴,所以我們一般會選擇將通用功能做成平臺共享的,而將應(yīng)用代碼和數(shù)據(jù)隔離。 為了實(shí)現(xiàn)這個隔離,我們需要制造沙箱。沙箱必須足夠安全,除了能合理的分配各個應(yīng)用消耗的資源外,它還要保證兩個用戶之間絕對不能非授權(quán)訪問到彼此的數(shù)據(jù)。 不同語言用到的沙箱技術(shù)不同,所以這個時代的PaaS多是可語言相關(guān)的。 比如GAE支持Java和Python、HeroKu支持Ruby。用得最多的PHP語言卻沒有可用的PaaS,所以新浪做了國內(nèi),大概也是全球第一個支持PHP的大規(guī)模公有PaaS平臺,那就是SinaAppEngine。 我喜歡把這些PaaS稱為專用PaaS。 專用PaaS有突出的優(yōu)點(diǎn),也有蠻致命的弱點(diǎn)。 優(yōu)點(diǎn)是它可以非常有效的降低資源消耗,并在開發(fā)者遵守約定的前提下極大的提升開發(fā)效率。由于PaaS平臺的管理者可以統(tǒng)一管理絕大部分資源,所以它可以實(shí)現(xiàn)去運(yùn)維化。 去運(yùn)維化是PaaS和IaaS最大的區(qū)別,這個區(qū)別讓PaaS平臺有了和IaaS平臺PK的資本。 以我們公司為例,如果將JobDeer放置在IaaS上,我們就需要維護(hù)完整的操作系統(tǒng)。 日志是否超過4個G了,Apache和Nginx的升級布丁是否打好了,SSH是否被人惡意掃描了…… 種種煩心事都隨之而來,最后我們就只能去雇傭一個系統(tǒng)管理員來做這一切。對于一個創(chuàng)業(yè)公司,這是至少每年10萬的投入。 于是我們選擇了將JobDeer放置在SAE上,從6月到現(xiàn)在,我們的花費(fèi)不過幾萬云豆——等于幾百塊錢,這里邊沒有因?yàn)檫\(yùn)維花一分錢。 那么為什么這么好的模式,沒有把所有生意都從IaaS服務(wù)商那里搶過來呢? 因?yàn)閷S肞aaS有一個挺大的弱點(diǎn),就是沙箱技術(shù)的不完美,大部分的PaaS平臺都要求應(yīng)用程序本身針對平臺進(jìn)行相應(yīng)的修改才可以運(yùn)行。比如在SAE上,代碼目錄是不可寫的,文件上傳的路徑是SAE_TMP。這些看似微小細(xì)節(jié)的不兼容,卻導(dǎo)致了大量的現(xiàn)有項(xiàng)目不能直接運(yùn)行在SAE上,而要修改成千上萬的項(xiàng)目并讓其在最新版本中支持PaaS平臺,是一件費(fèi)時費(fèi)力的事情。 正是因?yàn)檫@點(diǎn),專有PaaS才沒有成就其霸業(yè)。不光是SAE,GAE也沒能在競爭中PK過AWS。其實(shí)我覺得挺遺憾的,我內(nèi)心里還是相信有機(jī)會的。 看到這里你一定會問,那我們能不能造出一個完美的容器,讓其可以完全兼容標(biāo)準(zhǔn)應(yīng)用環(huán)境,這樣這些應(yīng)用就不用修改就可以直接運(yùn)行了呢? 我對這個問題也很好奇,而且做出過努力。這個努力就是全兼容沙箱(它被應(yīng)用在新浪云商店上),這是新浪云在全兼容容器上的一個嘗試。但不得不承認(rèn),我當(dāng)時的想法還是局限了一些,我們只做了對PHP在單機(jī)級別的全兼容。 一方面是從專用PaaS平臺帶過來的慣性思維,覺得這種容器也應(yīng)該是和語言相關(guān)的;另一方面在技術(shù)投入上也存在一些制約因素。 往后過了一段時間,系統(tǒng)級別的容器技術(shù)成熟了。Linux container(簡稱LXC)開始應(yīng)用在各種場景。于是我們規(guī)劃了沙箱2.0,完全基于LXC,可以兼容各種語言,但SAE已經(jīng)騰不出來人開發(fā)了。 再晚一點(diǎn)時間,Docker出現(xiàn),它不依賴于語言,可以輕松的把機(jī)器隔離到進(jìn)程粒度——于是泛PaaS時代到來了。 進(jìn)程粒度的隔離意味著什么? 本質(zhì)上來講,它不過是一個性價比更好的虛擬機(jī)而已。但是當(dāng)虛擬化到達(dá)進(jìn)程級別,「虛擬機(jī)」就廉價化了。你會為了一個Apache起一個虛擬機(jī)么?你會為了一個MySQL又起一個虛擬機(jī)么?不會的。 但你會為Apache起一個Docker,為MySQL起一個Docker。因?yàn)樗鼈儾贿^是兩個進(jìn)程而已。分成不同的進(jìn)程,可以更好的對架構(gòu)去耦合,當(dāng)Apache升級時,MySQL不會受影響。 但是,泛PaaS未必任何地方都比專用PaaS強(qiáng),由于沒有了專用PaaS里邊的平臺層,運(yùn)維成本又被重新引入了進(jìn)來?,F(xiàn)在你有一堆的Docker要管理了,不比一坨虛擬機(jī)輕松多少。 所以泛PaaS要發(fā)展,必然要出現(xiàn)一個在Docker容器外層對其進(jìn)行統(tǒng)一管理的平臺。因?yàn)榻柚@個平臺,我們才能重新去運(yùn)維化。 在國外,CoreOS就在這個方向上一路飛奔。它提供管理工具,可以按配置批量創(chuàng)建容器,又將各種Docker容器服務(wù)化,提供了服務(wù)發(fā)現(xiàn)機(jī)制。這些都是為了把碎片化的Docker容器重新拼接成一個進(jìn)程粒度的、分布式的、免運(yùn)維的平臺。 在國內(nèi),前SAE總監(jiān)王利俊同學(xué)創(chuàng)辦的NiceScale.com 也是為Docker去運(yùn)維化服務(wù)的,他們采用了更獨(dú)特的方式,目前產(chǎn)品還沒正式發(fā)布,我就不劇透了。 可以看到,隔離技術(shù)的不斷進(jìn)步,就如同智子在不同維度的展開,一層層的推動了云計(jì)算往縱深發(fā)展。如果用一幅圖來表示的話,大概就是這個樣子: 當(dāng)隔離層次進(jìn)入應(yīng)用層后,會發(fā)生一個質(zhì)的飛躍。這個飛躍我叫它分布式SaaS(軟件即服務(wù))。 先來說說原來的集中式SaaS。 其實(shí)SaaS雖然是云計(jì)算最上邊的層次,但其出現(xiàn)卻非常早。這是因?yàn)樗鋵?shí)和虛擬化沒有什么關(guān)系,也并不依賴于IaaS平臺。 它指的是人類通過網(wǎng)絡(luò)(特別的是瀏覽器)直接消費(fèi)服務(wù),但如果按這個標(biāo)準(zhǔn),網(wǎng)站就是最早的SaaS —— 我們通過瀏覽器消費(fèi)資訊、社交等服務(wù)。但其實(shí)我們并不把網(wǎng)站叫做SaaS,而是把原來C/S結(jié)構(gòu)的產(chǎn)品,比如CRM、ERP的B/S形態(tài)稱為SaaS。(Salesforce:怪我咯) 集中式SaaS有一個非常大的問題,就是它的數(shù)據(jù)安全。 iCloud最近被攻擊,你們都看到明星的艷照了。集中式SaaS出問題時,使用SaaS服務(wù)的所有公司都沒法工作。這就是中心化的代價。 在我看來,互聯(lián)網(wǎng)的發(fā)展都是以去中心化為方向的,即使是像微博、Facebook這種原本封閉的網(wǎng)絡(luò),也通過開放平臺,在一定程度上實(shí)現(xiàn)了去中心化。 所以我相信,一定會有比集中式SaaS更好的模式存在。 我們回過頭來看隔離粒度。 當(dāng)隔離粒度從物理機(jī)器進(jìn)化到操作系統(tǒng)層次時,催生了IaaS業(yè)務(wù),實(shí)現(xiàn)了去機(jī)器化,我們不用再關(guān)注機(jī)器本身。 當(dāng)隔離粒度從操作系統(tǒng)進(jìn)化到進(jìn)程層次時,催生了PaaS業(yè)務(wù),實(shí)現(xiàn)了去運(yùn)維化,我們不用再關(guān)注操作系統(tǒng),可以專注業(yè)務(wù)本身。 所以我花了幾個月時間去思考,下一個粒度是什么。但當(dāng)我往下挖了幾鏟子,「哐」的一聲,發(fā)現(xiàn)旁邊的門打開了。 當(dāng)隔離粒度達(dá)到進(jìn)程級別,一類特殊的進(jìn)程開始催生新的業(yè)務(wù) —— 這類進(jìn)程叫做云APP。 APP層隔離和進(jìn)程層隔離在技術(shù)上大同小異,但是他們的受眾發(fā)生了巨變。 一個Apache進(jìn)程,只有程序員能消費(fèi);一個WordPress APP,不懂技術(shù)的人也能輕松享用。 所以,當(dāng)隔離粒度專注于云APP時,將實(shí)現(xiàn)去技術(shù)化,不懂技術(shù)的人群將可以第一次享受到完全自主可控的個人云。 分布式SaaS來了,云APP 2C的時代來了。 這撬起了個人云APP這個巨大市場的一角。想想手機(jī)這個市場,App store出現(xiàn)之前,我們只能被動的去使用手機(jī)上僅有的那一點(diǎn)點(diǎn)應(yīng)用,沒有人會為了手機(jī)上的應(yīng)用花錢;而當(dāng)App store將這個手機(jī)應(yīng)用市場做起來,將其透過手機(jī)推給每一個普通人時,一個幾百億的市場出來了。 云App也是一樣的。以前我們只能被動的接收各個網(wǎng)站、App提供的云端同步功能,將自己的隱私數(shù)據(jù)保存在一些有流氓前科的公司服務(wù)器上(這對不懂技術(shù)的人群來說,其實(shí)是沒有選擇的)。 但是如果他們可以選擇了呢? 這就是Docker為什么要做Hub,Docker是云APP的封裝技術(shù),Hub就是云App的分發(fā)器和渠道通路、是云計(jì)算中的App Store、是云APP商業(yè)化的關(guān)鍵節(jié)點(diǎn)。 先是提供技術(shù)中間件級別的分發(fā),覆蓋企業(yè)和開發(fā)者;再是提供個人云APP級別的分發(fā),讓SaaS進(jìn)入從來沒覆蓋過的個人市場。 順便說一句,從這里我學(xué)到的是,技術(shù)進(jìn)步的方向是由需求帶動的,而不光是技術(shù)本身。如果沒有一個強(qiáng)需求來拉動,技術(shù)進(jìn)步本身就會變成學(xué)術(shù)論文——就像一枚種子,只能靜靜的等待屬于它的時代。不幸的是這個時代經(jīng)常還沒到來就已經(jīng)過去了。 上一節(jié)說得很抽象,我說個現(xiàn)實(shí)的例子你們感受下。 還是從iCloud的艷照說起吧(我是有多在意艷照,笑),當(dāng)分布式SaaS到來后,我們不會將自己的私密照片同步到iCloud的云,而是去云APP商店挑選一款私人數(shù)據(jù)同步軟件,比如OwnCloud。 只需要點(diǎn)一下鼠標(biāo),將其加入購物車,然后輸入我們想要的網(wǎng)址,支付購買。30秒不到,地球上就有了一個專屬于你的私有云,別人連它的網(wǎng)址都不知道,更別說密謀攻擊它了。 然后網(wǎng)站會顯示一個二維碼,掃描二維碼后,你的手機(jī)上就有了一個APP,可以隨時消費(fèi)來自你私人云端的數(shù)據(jù)。 個人再也不用擔(dān)心隱私(其實(shí)是概率小了非常多)、公司再也不用擔(dān)心數(shù)據(jù)安全(其實(shí)是掌控了數(shù)據(jù)所有權(quán))。 那么,誰會去開發(fā)這些專門使用于私人云的應(yīng)用呢? 每一個成功的軟件產(chǎn)品背后,都有一個和它功能相當(dāng),而體驗(yàn)略差的開源產(chǎn)品(笑)。這是因?yàn)榇蟛糠珠_源軟件在和商業(yè)軟件競爭中不掙錢導(dǎo)致的二期投入不足。 一旦分布式SaaS建立起來,開源開發(fā)者可以從平臺售賣的云空間利益中分成,我也相信,有越來越多的優(yōu)秀開源產(chǎn)品,可以直接對消費(fèi)者收費(fèi)。(即使是開源的,不懂技術(shù)的消費(fèi)者也不愿意自己去手工搭建環(huán)境 —— 他們更愿意付錢解決問題,這是程序員們難以理解的。) 開源軟件如果能掙到錢,掙到大錢,那么那些以控制和中心化為生的商業(yè)軟件在它們面前將會黯然失色。 這是一個多么燦爛的未來。 不管你信不信,我的前同事,新浪云的運(yùn)營經(jīng)理王偉平同學(xué)信了。于是他上周從新浪離職,創(chuàng)建了基于Docker的即點(diǎn)即用分布式SaaS平臺—— diancloud.com 。雖然不知道這個月底能不能上線,但據(jù)說已經(jīng)可以在網(wǎng)站上申請邀請碼了。 再來說說其他層次。 IaaS這個層次正猛烈分化,一部分在快速下沉,另一部分快速上升。 所謂下沉,是指原來做機(jī)房的、做通信的公司都在快速進(jìn)入這個市場。而隨著IaaS平臺管理軟件(比如openStack)的日益成熟,這個層次的技術(shù)含量將越來越小,工程強(qiáng)度和日常運(yùn)維層次的要求反而會越來越高。 最后,會催生一個平行于銀行系統(tǒng)、交通系統(tǒng)、通信系統(tǒng)同等體量的云系統(tǒng)。會不會被國有化難說,但必然會進(jìn)入國家控制范圍。 所謂上升,是指原來依托虛擬機(jī)來做彈性擴(kuò)展等業(yè)務(wù)的平臺,會迅速轉(zhuǎn)移到進(jìn)程級隔離的技術(shù)(比如Docker)上來。這將從根本上改變軟件開發(fā)、軟件測試、軟件分發(fā)、以及軟件銷售的流程和格局。 如果還覺得抽象我說幾個比較接近的詞:Github、DevOPS、分布式SaaS。 肚子餓了,就寫到這里。這篇文章里邊有很多的預(yù)測和個人觀點(diǎn),不一定是對的,但都是我思考過的。我盡量把得出結(jié)論的原因和邏輯表述出來了,大家在這個基礎(chǔ)上去自行判斷吧。當(dāng)一個嶄新的云時代夾雜著大塊美金迎面砸來時,有人拋個磚總是好事,對吧。 本文作者: @Easy ,國內(nèi)首家互聯(lián)網(wǎng)人才拍賣網(wǎng)站JobDeer.com創(chuàng)始人,曾任新浪云產(chǎn)品經(jīng)理。 原文首發(fā)于GET新知社區(qū):http://get.jobdeer.com/706.get一
二
三
四
五
六
七
八
九
我想請問一下,是不是云上都會有租戶,包括公有云、私有云、混合云…
一個產(chǎn)品經(jīng)理,為什么把全文畫上了下劃線,可讀性好差,不過文章還可以,深度有點(diǎn),不算入門
不大懂技術(shù)的產(chǎn)品努力走過……對一些專業(yè)名詞理解起來略感吃力!
其實(shí)樓主寫的相當(dāng)好….但是可能大部分人都不懂…所以這篇文章比較冷清…