新聞中心
來到移動(dòng)互聯(lián)網(wǎng)時(shí)代,廣告技術(shù)發(fā)生了質(zhì)的改變。不再像PC時(shí)代廣告的展示空間、廣告樣式那樣豐富和自由;廣告的商業(yè)化特殊特征,也使其技術(shù)平臺(tái)接受著高并發(fā)、極低延時(shí)和大數(shù)據(jù)量的挑戰(zhàn)。面對(duì)移動(dòng)時(shí)代越來越苛刻的用戶體驗(yàn)需求,廣告業(yè)務(wù)對(duì)于系統(tǒng)可靠性的要求也變得越來也高。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),波密企業(yè)網(wǎng)站建設(shè),波密品牌網(wǎng)站建設(shè),網(wǎng)站定制,波密網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,波密網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
在WOT2016互聯(lián)網(wǎng)運(yùn)維與開發(fā)者大會(huì)現(xiàn)場(chǎng),記者專訪到聚效廣告SRE工程團(tuán)隊(duì)總監(jiān)張燁,探尋聚效工程團(tuán)隊(duì)是如何利用Docker 和 Mesos來保障服務(wù)可靠性的。
嘉賓簡(jiǎn)介
張燁(Michael)目前就職于聚效廣告平臺(tái)工程師團(tuán)隊(duì),主要負(fù)責(zé)SRE和大數(shù)據(jù)平臺(tái)。十多年互聯(lián)網(wǎng)行業(yè)的DevOps實(shí)踐經(jīng)歷,也是OCP在國內(nèi)的少數(shù)先行者之一。同時(shí)也是中國反垃圾郵件聯(lián)盟的聯(lián)合創(chuàng)始人和Linux中國小區(qū)的初創(chuàng)專家。
為什么是Docker
移動(dòng)互聯(lián)網(wǎng)時(shí)代的廣告創(chuàng)意和營(yíng)銷,必須要找到精準(zhǔn)與用戶體驗(yàn)之間的平衡點(diǎn)。張燁介紹說,為了應(yīng)對(duì)挑戰(zhàn),聚效廣告除了依托數(shù)據(jù)和精準(zhǔn)營(yíng)銷的技術(shù)之外,還針對(duì)移動(dòng)端的一些新特性和場(chǎng)景,設(shè)計(jì)In APP廣告、HTML5廣告等一些特有應(yīng)用,基于原有的基礎(chǔ)平臺(tái)嘗試不同的產(chǎn)品化實(shí)現(xiàn)。這些廣告產(chǎn)品業(yè)務(wù)的復(fù)雜性及商業(yè)化的特殊性,使聚效廣告系統(tǒng)需要表現(xiàn)出更高的可靠性,來應(yīng)對(duì)高并發(fā)、極低延時(shí)和大數(shù)據(jù)量的挑戰(zhàn)。
張燁認(rèn)為對(duì)于可靠性的定義,應(yīng)該基于整體業(yè)務(wù)平臺(tái)之上來衡量,包括公司系統(tǒng)的經(jīng)濟(jì)損失、商業(yè)品牌塑造、媒體影響力等等,而不應(yīng)該局限于系統(tǒng)的某些模塊或服務(wù)可用性??煽啃灾笜?biāo)是一個(gè)目的,為了達(dá)到這個(gè)目的,企業(yè)還需要要解決哪些問題,系統(tǒng)架構(gòu)、開發(fā)和運(yùn)維工具等方面還需要做哪些事情,根據(jù)業(yè)務(wù)的實(shí)際情況是應(yīng)該將目標(biāo)定為3個(gè)九、4個(gè)九或是更高,等等。為了達(dá)到目的,企業(yè)需要從技術(shù)和可靠性等方面做綜合的考量。
為了保障服務(wù)的可靠性,以及提高系統(tǒng)的靈活伸縮性能,聚效工程團(tuán)隊(duì)在Docker容器化和Mesos資源調(diào)度框架方面進(jìn)行了較為深入的探索。2014年底,聚效SRE團(tuán)隊(duì)開始接觸Docker,2015年中旬開始正式將Docker投入到生產(chǎn)環(huán)節(jié)來使用。張燁說之所以選擇Docker,是為了解決公司業(yè)務(wù)對(duì)于服務(wù)可調(diào)度化的需求。他們發(fā)現(xiàn)將服務(wù)Docker化可以解決這個(gè)訴求,于是開始將Docker集成到公司原有的的CICD(持續(xù)集成與持續(xù)交付)的開發(fā)流程中,并驅(qū)動(dòng)團(tuán)隊(duì)開發(fā)和保證這些監(jiān)控工具和運(yùn)維工具的可用性?!拔覀儾皇菫榱薉ocker而使用Docker,Docker只是一個(gè)輪子,是驅(qū)動(dòng)我們提高軟件和系統(tǒng)品質(zhì)的工具”,張燁這樣告訴記者。
為什么是Mesos
隨著在生產(chǎn)環(huán)境下部署Docker集群的需求越來越多,Mesos、Kubernetes等資源管理和調(diào)度軟件也漸漸走進(jìn)大家的視線。經(jīng)過不斷的選型和嘗試,聚效廣告系統(tǒng)目前采用的是Mesos來實(shí)現(xiàn)Docker集群的管理和資源調(diào)度
最初聚效廣告系統(tǒng)選擇的是Kubernetes來管理Docker集群?!癒ubernetes是很好的整體解決方案,因?yàn)樗且粋€(gè)大而全的工具,既能解決容器化、又能解決資源調(diào)度,又能解決服務(wù)發(fā)現(xiàn)等等的問題”,張燁是這樣評(píng)價(jià)Kubernetes的。那是什么原因讓他們放棄Kubernetes,轉(zhuǎn)而使用Mesos的呢?張燁向記者解釋說,這是因?yàn)镵ubernetes的網(wǎng)絡(luò)模型比較復(fù)雜,在高并發(fā)情況下的性能是很大的問題,但這正是廣告系統(tǒng)非常關(guān)鍵的需求,因此只能無奈放棄。
Mesos是Apache下的開源分布式資源管理框架,起源于Google的數(shù)據(jù)中心資源管理系統(tǒng)Borg,被稱為是分布式系統(tǒng)的內(nèi)核。Mesos實(shí)現(xiàn)了雙層調(diào)度機(jī)制,使它可以管理多種類型的應(yīng)用程序。第一級(jí)調(diào)度是Master的守護(hù)進(jìn)程,管理Mesos集群中所有節(jié)點(diǎn)上運(yùn)行的Slave守護(hù)進(jìn)程。集群由物理服務(wù)器或虛擬服務(wù)器組成,用于運(yùn)行應(yīng)用程序的任務(wù),比如Hadoop和MPI作業(yè)。第二級(jí)調(diào)度由被稱作Framework的“組件”組成,包括調(diào)度器(Scheduler)和執(zhí)行器(Executor)進(jìn)程,其中每個(gè)節(jié)點(diǎn)上都會(huì)運(yùn)行執(zhí)行器。Mesos能和不同類型的Framework通信,每種Framework由相應(yīng)的應(yīng)用集群管理。這些Framework可以減少個(gè)業(yè)重造輪子的代價(jià),像Mesos本身不處理網(wǎng)絡(luò)問題,但利用Marathon我們可以選擇Docker本身提供的Host模式和Bridge模式。Mesos的開源特性與基于Framework的調(diào)度機(jī)制,是聚效廣告系統(tǒng)選擇它的重要原因。
服務(wù)Docker容器化的典型問題
經(jīng)過不斷的摸索和實(shí)踐,聚效SRE團(tuán)隊(duì)在服務(wù)Docker容器化方面積極了很多經(jīng)驗(yàn),張燁也享了幾個(gè)比較典型的問題。
- 不要在Docker中加入SSH
很多人都喜歡用SSH,也會(huì)認(rèn)為在Container里安裝一個(gè)SSH Server 就可以直接連接Container并且進(jìn)入它的內(nèi)部,這樣就可以很容易地檢查日志,做備份,或者重啟進(jìn)程,調(diào)整配置等。但其實(shí)只有SSH Sever是不夠的,還需要加入進(jìn)程管理軟件,Monit 或 Supervisor等監(jiān)控軟件,而且由于Docker只能管理單進(jìn)程,如果應(yīng)用停止了,我們只能通過進(jìn)程管理軟件那里獲得信息,這樣就把簡(jiǎn)單的Docker復(fù)雜化了,并且會(huì)有一些訪問上的安全隱患。在使用Docker的時(shí)候,一定要跳出把它當(dāng)成小“vps”的誤區(qū),尋找其它解決方案來處理需要SSH的問題
- 存儲(chǔ)持久化
Docker 有一個(gè)Plugin的機(jī)制,可以讓一個(gè)容器為其他容器提供存儲(chǔ)。這個(gè)容器是可以Ceph, Gluster或者任何其他的存儲(chǔ)集群的一員,并掛載在另一個(gè)容器上,來解決存儲(chǔ)持久化的問題。
- Docker網(wǎng)絡(luò)性能
張燁講到,他們跳過了Docker本身網(wǎng)絡(luò)性能問題。對(duì)于網(wǎng)絡(luò)性能需求高的服務(wù),他們選擇了它的host模式來兼容;對(duì)于網(wǎng)絡(luò)性能不高的服務(wù),則是采用Docker本身自帶的網(wǎng)絡(luò)解決方案,從而避免了我們重新去做SDN的研發(fā),或者說重新造輪子的代價(jià),而是選擇用適合于自身業(yè)務(wù)的產(chǎn)品繞過去。
留給每位工程師的DevOps問題
Docker是一個(gè)對(duì)開發(fā)者非常友好的東西:簡(jiǎn)單的實(shí)現(xiàn)不同機(jī)器上的環(huán)境標(biāo)準(zhǔn)化,可以輕松拿來拿去,而且在不同的云平臺(tái)上都支持。但把Docker用起來對(duì)運(yùn)維而言則是很大的挑戰(zhàn)。
張燁告訴記者,在聚效,DevOps是每個(gè)工程師都必須要做的事情,所有開發(fā)規(guī)范和工作方式都是圍繞DevOps的方式去做,所以對(duì)每位工程師的能力要求非常高。因?yàn)槊课还こ處煵粌H僅是在開發(fā)產(chǎn)品的Feature,還要在DevOps理念的指導(dǎo)下,考慮開發(fā)出來產(chǎn)品的可運(yùn)維性、可監(jiān)控性、可交付性等等,并且日常的Ops的這些On call工作,也是由Dev-team輪流完成。
張燁的建議是,不要強(qiáng)求每個(gè)團(tuán)隊(duì)都要用DevOps這種方式工作。我們可以在特定的團(tuán)隊(duì)和特定的項(xiàng)目里采用DevOps這種方式,比如一些對(duì)于可靠性要求非常高的業(yè)務(wù),會(huì)提高項(xiàng)目整體迭代能力和可靠性。
文章名稱:聚效廣告張燁:基于Docker和Mesos的服務(wù)可靠性保障實(shí)踐
文章起源:http://m.5511xx.com/article/cdoeseh.html


咨詢
建站咨詢
