掃二維碼與項(xiàng)目經(jīng)理溝通
我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
作者:北京小武 2015-11-05 11:45:32
云計(jì)算
OpenStack OpenStack現(xiàn)在非?;馃幔鐓^(qū)也集聚了大量的開發(fā)人員,各家廠商包括通信設(shè)備商、運(yùn)營商、互聯(lián)網(wǎng)公司、電商/店商(包括寶馬、沃爾瑪、蘇寧等)都有參與,用其搭建公有云或私有云平臺。那么我們?nèi)绾螌penStack的代碼變成一份產(chǎn)品呢?

創(chuàng)新互聯(lián)公司是一家專業(yè)提供江孜企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為江孜眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
先自我介紹下,sina微博北京-小武,《云計(jì)算網(wǎng)絡(luò)珠璣》作者,現(xiàn)就職于華為IT產(chǎn)品線云計(jì)算網(wǎng)絡(luò)架構(gòu)與設(shè)計(jì)部。
OpenStack現(xiàn)在非?;馃幔鐓^(qū)也集聚了大量的開發(fā)人員,各家廠商包括通信設(shè)備商、運(yùn)營商、互聯(lián)網(wǎng)公司、電商/店商(包括寶馬、沃爾瑪、蘇寧等)都有參與,用其搭建公有云或私有云平臺。那么我們?nèi)绾螌penStack的代碼變成一份產(chǎn)品呢?
玩過OpenStack的人相信都對剛接觸OpenStack有很深的印象,最開始真是迷茫一片,感覺是螞蟻?zhàn)炜刑?,既不知道如何下嘴,也更有一種遙不可及的高度;熟悉之后會(huì)感覺相對簡單些;如果僅僅將OpenStack運(yùn)行起來做個(gè)demo,已經(jīng)非常不容易,做成產(chǎn)品更是要費(fèi)很多功夫。
所以把OpenStack代碼變成產(chǎn)品首先需要幾個(gè)稱職的程序員,如果按照分工至少需要多少人呢?這個(gè)話題最早個(gè)人討論要追溯到上年和陳沙克老師的一次QQ聊天;現(xiàn)在應(yīng)該需要14個(gè)人,具體是怎么安排計(jì)算出來的?
將整個(gè)OpenStack玩熟,需要部署、管理端、計(jì)算、存儲、網(wǎng)絡(luò)、運(yùn)維等方面的職位需求,僅從開發(fā)的角度來列舉下需求人及負(fù)責(zé)工作內(nèi)容(不是熟悉特性,而是大部分問題能通過代碼層面搞定):
重復(fù)下,這些人不是說只熟悉特性,而是從代碼到產(chǎn)品過程中的大部分問題都能通過代碼層面搞定。
每個(gè)領(lǐng)域應(yīng)加一名人員,一方面防止人員流動(dòng)帶來的損失,再一方面就是因?yàn)槊總€(gè)層面需要的人才都是通才的專家,多增加一個(gè)人力給組建團(tuán)隊(duì)減少困難,會(huì)很大程度上通過人員組合達(dá)到集齊所需技能的要求。
最后加上一名足夠優(yōu)秀的領(lǐng)導(dǎo),當(dāng)然也可以是CTO來兼任;需要其對云計(jì)算市場有足夠深刻的認(rèn)識、對客戶需求有足夠的積累、對技術(shù)人員有足夠的了解、對技術(shù)方向和深度足夠的把控等;但是這個(gè)人一定要有產(chǎn)品的思維,而不是僅僅懂技術(shù)和代碼,不懂得如何為客戶做產(chǎn)品的CTO不是好CTO。
如果需要程序員鼓勵(lì)師就是福利了,節(jié)省成本角度,是不是可以考慮從HR或行政這塊兼職下?
人有了,下面就是一步步代碼來實(shí)現(xiàn)了:
首先要做個(gè)云平臺的管理端來管理云平臺,說白了,OpenStack的定位是云平臺管理端,還需要Horizon來做OpenStack的管理端,通常是一個(gè)web portal;這個(gè)平臺管理端的功能一方面體現(xiàn)了云計(jì)算商家做產(chǎn)品的思路,也體現(xiàn)了云計(jì)算商家產(chǎn)品的定位是哪一層(IAAS/PASS/SAAS)。
注:這里需要說明五點(diǎn):
現(xiàn)在結(jié)合OpenStack的社區(qū)代碼開發(fā)現(xiàn)狀來說下一些注意點(diǎn):
第一,OpenStack的整體代碼較多,因?yàn)闉榱双@取較多廠家的支持,采用了分布式架構(gòu)上的 plugin/driver模式來支持,所以有很多層封裝,導(dǎo)致了整體效率的低下;Nova和cinder基本是Driver的形式,但是Neutron 社區(qū)卻是五花八門的plugin和driver,還有很多私有的廠家自己維護(hù)的plugin和driver,尤其是最近出現(xiàn)了很多SDN支持的 plugin,比如ODL等。如Neutron:Neutron有L2的core plugin(如現(xiàn)在常用的ML2),L3有router的,通常是用linux的namespace實(shí)現(xiàn)(已有ML3的BP);L4-L7的 plugin幾乎是一個(gè)功能對應(yīng)一個(gè);OpenStack原生態(tài)代碼只保證功能可用,附帶的test文件夾代碼居然有人作為自建云平臺的測試標(biāo)準(zhǔn)工具也是醉了;
面對如此多的plugin和driver如何選擇?有錢怎么玩都成,沒人可以招聘,有人自己做一款都沒有問題;沒錢有能力的可以選擇 OpenStack的公有ML2等plugin自己優(yōu)化,沒有能力也沒錢的的自己整兩臺PC搭建個(gè)demo看看就好了;其實(shí)一條路,自己能搞定的選擇自己搞定的那款plugin或合作方提供的plugin,自己搞不定的跟著大眾走,因?yàn)檫@個(gè)plugin用的人多,相當(dāng)于被測試的比其他充分,這樣自己用著有了問題能提出來,總有人來回答或解決,說不定別人都已經(jīng)解決了;core plugin ML2使用ovs做租戶vxlan之間的隔離是現(xiàn)在大家用的最多的。
這里單獨(dú)提下Open vSwitch的子項(xiàng)目OVN,這個(gè)項(xiàng)目體現(xiàn)了老外一貫的開源思路,自己具備核心模塊的掌控能力,其他商家的邊緣參與建立生態(tài)圈;(支持自己的 ovsdb,無礙其他廠家設(shè)備的邊緣支持),新出現(xiàn)的OVN開源有目標(biāo)來將L2-L7的plugin統(tǒng)一,但是道路還很漫長可能會(huì)錯(cuò)過商機(jī);社區(qū)的政治也是很深。
公司參與開源可以拉投資,但對于求職者不能認(rèn)為公司采用了開源,老板或公司就會(huì)很Open;個(gè)人參與開源能提高老牌度,但是也并沒有因?yàn)樽隽碎_源而提升程序員的人格或逼格,所以對做閉源的同學(xué)相比也沒有什么高級的;這些都充分體現(xiàn)了忍狠滾里面的忍字訣,無他耳,參與社區(qū)開發(fā)的技術(shù)能力和水平也不見得都很高,但總有幾個(gè)大牛在;很多人認(rèn)為自己能看代碼什么都能做,不就是幾行代碼么?如果僅是代碼的話的確誰都可以做,但看得懂if else不一定能理解else之外還有沒有else?業(yè)務(wù)技能和場景遠(yuǎn)比代碼重要。
OpenStack的整體架構(gòu)是網(wǎng)絡(luò)的架構(gòu)的設(shè)計(jì),建議讓做網(wǎng)絡(luò)的人來做主(不是只懂tcpdump和ping命令的,而是參與過網(wǎng)絡(luò)設(shè)備研發(fā)、設(shè)計(jì)過數(shù)據(jù)中心架構(gòu)方面有經(jīng)驗(yàn)的人),做存儲和系統(tǒng)的同事參與就行了,因?yàn)镺penStack的設(shè)計(jì)每一步考慮都涉及到網(wǎng)絡(luò)的內(nèi)容;
第二,OpenStack的開源代碼質(zhì)量真是不堪,僅僅是一個(gè)功能可用的狀態(tài),對于性能、架構(gòu)等方面的優(yōu)化還差很多,直接拿開源給客戶搭建產(chǎn)品基本都是找死的節(jié)奏,所以需要有這么幾個(gè)小觀點(diǎn):
a)云計(jì)算廠商的角色基本都是集成商,無論是有能力開發(fā)網(wǎng)絡(luò)、存儲或虛擬化底層的,還是沒有能力的創(chuàng)業(yè)公司,都離不開這幾個(gè)角色;所以想做full stack的公司需要看下自己真有這個(gè)必要和力量嗎?希望大家多多繼續(xù)發(fā)揮硬件的力量,僅僅是系統(tǒng)工程師從軟件來實(shí)現(xiàn)的角度會(huì)讓性能大打折扣,使用硬件也會(huì)加快項(xiàng)目進(jìn)度,建立更好的生態(tài)圈;這一點(diǎn)有幾家公司已經(jīng)意識到做的很不錯(cuò);
b)云計(jì)算廠商做OpenStack產(chǎn)品有兩個(gè)方式,有關(guān)系來解除根據(jù)客戶需求定制化產(chǎn)品,或者有經(jīng)驗(yàn)理解客戶痛點(diǎn)能夠直接用于開發(fā)產(chǎn)品;但是僅僅靠云計(jì)算的情懷基本是走向末路;有些云計(jì)算創(chuàng)業(yè)公司剛起步對客戶還挑揀,沒有搭建過10臺計(jì)算節(jié)點(diǎn)服務(wù)器的經(jīng)驗(yàn),卻非要1000臺以下計(jì)算節(jié)點(diǎn)的單子不接,除非你有很硬的關(guān)系信任你,不然只能靠雙色球一等獎(jiǎng)的概率了;
c)云計(jì)算做的好不好,和是否開源關(guān)系不大;一個(gè)事實(shí)是,UCloud的閉源卻是創(chuàng)業(yè)公司中云計(jì)算做的最好的(個(gè)人觀點(diǎn),不喜勿噴),AWS和 Azure是公有云的大哥大,卻也是閉源(最近有AWS和OpenStack合作的消息);基于OpenStack的大量創(chuàng)業(yè)公司反而多是在整玄乎的概念,真正拿得出手的產(chǎn)品或商業(yè)案例卻不多;很多公司宣揚(yáng)的對社區(qū)貢獻(xiàn)可能為爭取公司融資方面做的貢獻(xiàn)更多些;大公司開源貢獻(xiàn)比如Redhat對于 Linux的產(chǎn)品化方面,有三方面做法:優(yōu)化參數(shù)提升產(chǎn)品性能、掌控開源趨勢降低客戶成本、快速的Bug fix和版本回合能力;這點(diǎn)也是開源公司招聘開源達(dá)人的原因,但是對于小公司來說還無法一步到位的采用這種模式;
d)很多做開源的同學(xué)往往對政府意見都比較大(無論國內(nèi)外),一方面開源需要open這點(diǎn)政府確實(shí)很多時(shí)候做不到,另一方面其實(shí)是開源社區(qū)也有政治,只是這里的政治問題往往掩蓋了經(jīng)濟(jì)利益問題;開源也是各大相關(guān)參與廠商利益競爭的過程;還有一點(diǎn)很多人都認(rèn)為很使用了開源軟件的公司都會(huì)很開放的原因;
e)畢竟OpenStack是開源代碼,客戶用的時(shí)候也會(huì)調(diào)研,包括架構(gòu)和代碼;但是不是因?yàn)樗麊柕膯栴}深入就能說明他很強(qiáng),可能某些方面他們經(jīng)驗(yàn)積累確實(shí)很豐富,但是如果他能搞得定還找你干嗎?所以很可能他不如你但是接觸商家多所以問的問題看起來很專業(yè),如果你能問他問題,可能分分鐘就能問倒他們(這就好比面試學(xué)習(xí),很多情況下面試者和被面試者,都會(huì)有把對方問倒的交集知識點(diǎn),知識場景限制雙方的說話內(nèi)容和方式),你得忍,給他們講懂,那才能說明你真懂,否則很難拿到單子,縱然你公司技術(shù)也很牛。這樣客戶見了很多商家,每個(gè)商家學(xué)一點(diǎn),幾乎說起來都很懂,但是動(dòng)手能力就是上不去。
f)OpenStack也是軟件開發(fā)方面的,和其他軟件架構(gòu)和代碼方面沒有什么差別,也需要從架構(gòu)和性能方面不斷優(yōu)化,可以從以前的軟件開發(fā)上吸取很多經(jīng)驗(yàn);從代碼到產(chǎn)品,先是功能開發(fā),然后是規(guī)模上去,接著就會(huì)性能下降,然后再優(yōu)化,周始輪詢,最終又比較良好的產(chǎn)品級實(shí)現(xiàn);說白了,都是為了底層數(shù)據(jù)轉(zhuǎn)發(fā)面功能,通過管理層來實(shí)現(xiàn);為了實(shí)現(xiàn)大規(guī)模,通過管理層集群來實(shí)現(xiàn)管理層高性能,往往是犧牲了管理面的一致性;CAP這里依然存在;華為在社區(qū)提出了OpenStack級聯(lián)方案,就是通過管理面的努力擴(kuò)大數(shù)據(jù)層面的規(guī)模;
第三,OpenStack的部署、升級和運(yùn)維都是大問題;首先說部署和升級,主要是OpenStack的版本快速發(fā)展,支持特性不斷完善;所以客戶的需求也是要跟隨的上,僅僅是普通bug修復(fù)部署工具基本都能搞定,大的升級影響就會(huì)比較大,甚至?xí)?dǎo)致云平臺底層管理網(wǎng)絡(luò)和業(yè)務(wù)網(wǎng)絡(luò)的重大變更;拿OpenStack的I到J舉例,如果開啟了DVR,想業(yè)務(wù)不中斷只能是跨集群業(yè)務(wù)遷移;運(yùn)維來說是云計(jì)算商家招牌之一,可以明確的說,OpenStack不會(huì)消滅運(yùn)維,只會(huì)導(dǎo)致運(yùn)維人員的技術(shù)要求提高和不努力運(yùn)維的淘汰;對于OpenStack來說會(huì)導(dǎo)致其運(yùn)維承包團(tuán)隊(duì)的出現(xiàn),也會(huì)對OpenStack的培訓(xùn)及運(yùn)維培訓(xùn)有很大需求,畢竟客戶的運(yùn)維人員對于OpenStack的理解都還不是很深入;某些公司說云平臺基本沒有運(yùn)維,那么可以說有可能兩點(diǎn)原因,是只有兩個(gè)機(jī)架的設(shè)備不需要運(yùn)維,另一個(gè)就是運(yùn)維外包并且將升級擴(kuò)容和災(zāi)備的事劃到運(yùn)維工作之外;完全沒有一個(gè)運(yùn)維這話,真正懂行的沒一個(gè)敢這么給客戶說的。
第四,簡單說下SDN和OpenStack的結(jié)合;現(xiàn)在出現(xiàn)了很多SDN的plugin,大部分Neutron 是作為SDN控制器的APP或SDN 控制器的的一部分來使用,暫時(shí)還未看到第三種形態(tài)——作為SDN控制器的Underlay網(wǎng)絡(luò)層面;對SDN的理解我也只有一種,不認(rèn)為有狹義和廣義之分,所謂云計(jì)算廠商說自己天然的云平臺是廣義SDN的,個(gè)人認(rèn)為這都是對SDN沒有理解透徹;SDN應(yīng)用不僅僅是云計(jì)算或數(shù)據(jù)中心,企業(yè)網(wǎng)也可以有很多點(diǎn),這里不多提了;但是隨著各家SDN控制器的出現(xiàn),SDN的網(wǎng)絡(luò)開放之路似乎又到了收窄的方向上;希望SDN能盡快走過優(yōu)勝劣汰的過程,減少中間的無謂成本,多多服務(wù)于需求;順便說下,很多理解我是做SDN的,其實(shí)我是做云計(jì)算的,只是做網(wǎng)絡(luò)出身,一直在跟SDN而已;
和自己原來很多技術(shù)出現(xiàn)一樣,同樣的功能各個(gè)商家都會(huì)取一個(gè)自己的名字,換湯不換藥;但是說自己家名字的功能是業(yè)界第一或第一家實(shí)現(xiàn)的就不要這么理直氣壯了,畢竟你家名字的功能只有你自己家這么叫,當(dāng)然是業(yè)界第一或第一家嘍!其實(shí)底層技術(shù)都是集成了第三方或開源的,別人家也都實(shí)現(xiàn)啦;只是名字不同而已。
其實(shí)挺佩服Intel的,無論是其有意為之還是偶然天成,總之現(xiàn)在你做云計(jì)算都不得不買Intel的CPU,存儲設(shè)備,計(jì)算設(shè)備,甚至交換機(jī)現(xiàn)在的 CPU都很多是Intel的(順便說下Intel也收購了交換芯片商開始做交換機(jī));云計(jì)算如此,SDN的控制器也離不開,還有NFV甚至直接被人誤解為就是基于X86的虛機(jī),可見Intel在這些新興領(lǐng)域的影響力。
最后就是希望再云計(jì)算領(lǐng)域里,希望大家都踏實(shí)些,少些“語不驚人死不休”,喬布斯也只有一個(gè),商業(yè)推廣的那一套來用到技術(shù)上,就真的沒品了;狂妄的預(yù)測誰都可以說來博取眼球,不過仔細(xì)想想真的可能嗎?OpenStack都被拋棄了才有可能將來實(shí)現(xiàn)的技術(shù)現(xiàn)在不提也罷。

我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流