成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Jason Pearlman談《Draw Something》后臺(tái)技術(shù)發(fā)展

系統(tǒng)
最初《Draw Something》的后臺(tái)被設(shè)計(jì)為擁有版本控制的簡(jiǎn)單key/value儲(chǔ)存模式。我們將服務(wù)嵌入現(xiàn)有的ruby API(使用merb框架以及thin網(wǎng)絡(luò)服務(wù)器)。我們的最初理念是將之前所創(chuàng)造的所有內(nèi)容用于現(xiàn)有的API中,并為《Draw Something》編寫一些新的key/value內(nèi)容。

來(lái)源:http://gamerboom.com/archives/51668

作者:Jason Pearlman

我至今已在OMGPOP工作了將近4年,見(jiàn)證著它從最初的約會(huì)網(wǎng)站轉(zhuǎn)變?yōu)橛螒蚬荆⒆罱K扎根于手機(jī)游戲的整個(gè)發(fā)展過(guò)程。而在這期間我們也經(jīng)歷了各種挑戰(zhàn),并嘗試了各種不同的技術(shù)和運(yùn)營(yíng)計(jì)劃。

我一直覺(jué)得我們是個(gè)小型團(tuán)隊(duì),可以利用快速原型,敏捷開(kāi)發(fā)以及其它最新技術(shù)以獲得優(yōu)勢(shì)。同時(shí),身處于游戲領(lǐng)域我們還需要盡可能地嘗試各種不同的理念,以判斷哪些才真正合適。在這幾年時(shí)間里,我創(chuàng)造了虛擬角色系統(tǒng),文本冒險(xiǎn)游戲引擎,全功能的共享數(shù)據(jù)庫(kù)系統(tǒng),基于我們的javascript游戲引擎的多人即時(shí)平臺(tái)游戲,AIM bot系統(tǒng),以及基于我們所創(chuàng)造的bot框架而創(chuàng)造起來(lái)的具有各種聊天功能的游戲等。

但是所有這些游戲的后臺(tái)系統(tǒng)卻是由一個(gè)很小的系統(tǒng)團(tuán)隊(duì)所支撐,這個(gè)團(tuán)隊(duì)中只有三名成員,包括Christopher Holt,Manchul Park以及我自己。我們都是白手起家地創(chuàng)造所有內(nèi)容,并始終堅(jiān)信我們能夠有效地創(chuàng)建并靈活調(diào)整游戲的后臺(tái)系統(tǒng)。直到《Draw Something》的出現(xiàn)。

[[68182]]

draw_something(from idownloadblog.com)

回顧之前

早在4年前我們便在自己的網(wǎng)站OMGPOP.com(游戲邦注:后來(lái)改為iminlikewithyou.com)上推出了《Draw Something》的雛形,那時(shí)候叫做《Draw My Thing》,是一款即時(shí)繪畫(huà)游戲。這是一款有趣的游戲,并且擁有較多的玩家基礎(chǔ)(主要是受益于我們網(wǎng)站當(dāng)時(shí)不錯(cuò)的發(fā)展)。我們同時(shí)也創(chuàng)造了這款游戲的Facebook版本,并吸引了許多忠實(shí)玩家。

去年,我們決定創(chuàng)建這款游戲的手機(jī)版本。但是與此同時(shí),OMGPOP也仍然在不斷探索著最適合自己的發(fā)展方向。我們一直致力于創(chuàng)造出一款真正熱門的游戲。并且與大多數(shù)開(kāi)發(fā)者一樣,這就意味著我們需要盡可能創(chuàng)造出更多游戲。即使是面對(duì)《Draw Something》也不例外。我們知道這是一款具有潛力的游戲,但是卻沒(méi)人能夠預(yù)見(jiàn)它最終的發(fā)展。從技術(shù)角度來(lái)看,我們并未區(qū)別對(duì)待這款游戲。所以我們的后臺(tái)團(tuán)隊(duì)始終致力于快速而高效地為這些游戲提供技術(shù)支持。

我們已經(jīng)學(xué)會(huì)了如何簡(jiǎn)單做事。最初《Draw Something》的后臺(tái)被設(shè)計(jì)為擁有版本控制的簡(jiǎn)單key/value儲(chǔ)存模式。我們將服務(wù)嵌入現(xiàn)有的ruby API(使用merb框架以及thin網(wǎng)絡(luò)服務(wù)器)。我們的最初理念是將之前所創(chuàng)造的所有內(nèi)容用于現(xiàn)有的API中,并為《Draw Something》編寫一些新的key/value內(nèi)容。因?yàn)槲覀兪歉鶕?jù)比例進(jìn)行設(shè)計(jì),所以我們一開(kāi)始便選擇Amazon S3作為我們所有key/value數(shù)據(jù)的儲(chǔ)存庫(kù)。而采取這一做法的初衷便是放棄一些等待時(shí)間并獲得無(wú)限量的可擴(kuò)展性和儲(chǔ)存空間。

并且我們之后所添加的各種內(nèi)容都是以標(biāo)準(zhǔn)化模式進(jìn)行。任何想要建造一個(gè)可擴(kuò)展系統(tǒng)的人都必須想辦法讓每個(gè)系統(tǒng)規(guī)模的層面能夠獨(dú)立于其它層面。我們將NGINX網(wǎng)絡(luò)服務(wù)器(它指向HAProxy軟件負(fù)載均衡器)作為前臺(tái)網(wǎng)絡(luò),它隨后將打開(kāi)我們運(yùn)行于thin網(wǎng)絡(luò)服務(wù)器中的ruby API。而MySQL便是我們此時(shí)的主要數(shù)據(jù)儲(chǔ)存處。我們將大量使用緩存系統(tǒng)以及redis進(jìn)行異步排列,并使用ruby庫(kù)存調(diào)用resque。

飛速發(fā)展

在《Draw Something》發(fā)行后幾天我們開(kāi)始注意到一個(gè)非常奇特的現(xiàn)象。這款游戲正在快速發(fā)展著。發(fā)布當(dāng)天它便取得了3萬(wàn)次的下載量;而在發(fā)布10天后,其下載量更是飆升至七位數(shù)。

各種名人開(kāi)始在twitter上談?wù)撨@款游戲——包括John Mayer(游戲邦注:美國(guó)創(chuàng)作歌手)和Pauly D,更是為我們的游戲創(chuàng)造了更多的流量。之前的玩家也未離開(kāi)游戲,他們深深陷入游戲的樂(lè)趣中,游戲的總體使用率甚至遠(yuǎn)遠(yuǎn)高于它每天的下載量。

大多數(shù)工程師都是根據(jù)比例去開(kāi)發(fā)軟件,但是要知道,在任何復(fù)雜的系統(tǒng)中即使你嘗試著為其設(shè)下基準(zhǔn)并進(jìn)行測(cè)試,你也很難判斷哪些內(nèi)容會(huì)以何種方式遭遇失敗,以及你需要在何時(shí)修改何種系統(tǒng)等。

解決問(wèn)題

我們所遇到的第一個(gè)問(wèn)題便是我們平常所使用的API速度過(guò)快,這就意味著我們只能以平常的方法(即單線程,一次只執(zhí)行一次請(qǐng)求)去使用thin網(wǎng)絡(luò)服務(wù)器,而對(duì)于公共云服務(wù),我們卻不知道有多少時(shí)間能夠用于內(nèi)容備份。

雖然我們看到一些內(nèi)容開(kāi)始備份,但是這一方法卻并非長(zhǎng)久有效。同時(shí)我們也通過(guò)不斷地創(chuàng)造出更多服務(wù)器而節(jié)約時(shí)間。幸運(yùn)的是,我們以此設(shè)計(jì)出了DrawSomething API,并且將其區(qū)別于我們主要的API以及框架。我們總是對(duì)一些新技術(shù)充滿好奇,就像此時(shí)的我們正研究著Ruby 1.9極其纖程(fiber)以及Event Machine + synchrony。并且為了能夠更快解決問(wèn)題,我們選擇了Goliath——來(lái)自PostRank的一款非阻塞型ruby應(yīng)用服務(wù)器。在接下來(lái)的24小時(shí)內(nèi)我得把key/value代碼以及其它支持庫(kù)存移植到了這個(gè)服務(wù)器上,并編寫一些測(cè)試然后激活這一服務(wù)。結(jié)果正如預(yù)想的那樣,我們成功地將6個(gè)服務(wù)器中的115個(gè)應(yīng)用實(shí)例分解為只剩下15個(gè)應(yīng)用實(shí)例。

但是這種一帆風(fēng)順的局面卻是短暫的。一些問(wèn)題開(kāi)始慢慢浮出水面。這時(shí)候我們真的是晝夜不停地工作著,并且在某天的凌晨1點(diǎn)發(fā)現(xiàn)了主要問(wèn)題所在,即我們的云數(shù)據(jù)儲(chǔ)存在這時(shí)候發(fā)生了90%的請(qǐng)求錯(cuò)誤。這之后,我們立刻接收到了來(lái)自運(yùn)營(yíng)商的郵件,告知我們因?yàn)榉?wù)器運(yùn)行達(dá)到極限才導(dǎo)致這一問(wèn)題出現(xiàn),所以他們不得不開(kāi)始限制游戲的運(yùn)行速度。

這時(shí)候,服務(wù)對(duì)我們來(lái)說(shuō)就猶如黑盒子一樣,而我們需要努力獲得更多控制權(quán)。此于我們每秒鐘大約可以接收到30幅畫(huà),而這對(duì)于當(dāng)時(shí)的我們來(lái)說(shuō)真的是個(gè)大數(shù)目了。所以我們便需要一個(gè)全新的后臺(tái)以規(guī)劃并處理我們現(xiàn)在的流量。我們?cè)?jīng)在一些小系統(tǒng)中使用過(guò)Membase,并認(rèn)為它能夠有效地應(yīng)用于這款游戲中,所以我們便決定采取這種行動(dòng)。

我們開(kāi)始使用Membase(也就是Couchbase)的一個(gè)小cluster并重新編寫了整款應(yīng)用,并在當(dāng)天凌晨3點(diǎn)時(shí)激活它。我們的云數(shù)據(jù)儲(chǔ)存問(wèn)題立刻得到了緩解——盡管我們?nèi)匀辉谑褂盟鼘?shù)據(jù)到移植新的Couchbase中。通過(guò)這種優(yōu)化,我們的游戲便能夠持續(xù)有效地向前發(fā)展了。

接下來(lái)一周對(duì)于我們來(lái)說(shuō)也是困難重重,因?yàn)槠渌恍╇S機(jī)的數(shù)據(jù)儲(chǔ)存問(wèn)題也不斷涌現(xiàn),而與此同時(shí)我們還需要去規(guī)劃其它基礎(chǔ)設(shè)施部分。這時(shí)候,我們需要更加勤奮地投入研究中,并咨詢其他能夠幫助我們處理這種爆炸式發(fā)展的人士。

我曾經(jīng)與10多個(gè)非常聰明且出色的人士進(jìn)行交談,包括來(lái)自Hunch的Tom Pinckney及其優(yōu)秀的團(tuán)隊(duì),SocialFlow的Frank Speiser及其團(tuán)隊(duì),Tumblr的Fredrik Nylander,F(xiàn)astly的Artur Bergman,以及之前在Twitter上遇到的Michael Abbot等。有趣的是盡管我提出了相同的問(wèn)題,即他們會(huì)如何處理這類型的挑戰(zhàn),他們卻給予了我各種不同的答案。從而讓我們意識(shí)到其實(shí)我們自己的答案與那些我們所尊敬的團(tuán)隊(duì)的答案同樣都是有效的。所以我們便繼續(xù)朝著一開(kāi)始所設(shè)定好的道路前進(jìn),并不斷思考我們?cè)撨x擇何種技術(shù)以及如何執(zhí)行它們。

盡管使用Couchbase為我們帶來(lái)了一系列問(wèn)題,但是我們都認(rèn)為從當(dāng)前的基礎(chǔ)設(shè)施徹底轉(zhuǎn)移到完全不同的平臺(tái)風(fēng)險(xiǎn)更大。而此時(shí)的《Draw Something》每天能夠吸引300萬(wàn)至400萬(wàn)玩家。我們聯(lián)系了Couchbase并獲得了一些建議,也就是擴(kuò)展我們的cluster,利用SSD硬盤驅(qū)動(dòng)器和大量的RAM強(qiáng)化我們的服務(wù)器。我們的確這么做了,也就是創(chuàng)造出更多cluster,并基于可擴(kuò)展內(nèi)容而進(jìn)一步分解它們。并且隨著流量的不斷攀升,我們也持續(xù)完善并規(guī)劃著游戲的后臺(tái)服務(wù)器。現(xiàn)在我們平均每秒鐘可以接收上百?gòu)埉?huà)了。

隨著游戲的迅速發(fā)展,我們的玩家每天也在迅速翻倍增長(zhǎng)。而這時(shí)候我們需要面對(duì)的情況便是如果用戶每天成倍增長(zhǎng)著,我們的服務(wù)器也必須每天翻倍發(fā)展。幸好我們的系統(tǒng)高度自動(dòng)化,而我們也不斷創(chuàng)造出更多服務(wù)器,使服務(wù)器最終能夠趕上游戲的發(fā)展速度,讓游戲能夠在100個(gè)服務(wù)器之間有序地運(yùn)行著。但是這個(gè)問(wèn)題解決了,前面又出現(xiàn)了另一個(gè)瓶頸。

我們做好了要連續(xù)大干60多個(gè)小時(shí)的準(zhǔn)備,并且在此期間都不打算離開(kāi)電腦了。我們必須使用DNS負(fù)載均衡器擴(kuò)展網(wǎng)絡(luò)服務(wù)器,我們必須完成獲得更多HAProxies等急迫任務(wù),并且通常都要在深夜落實(shí)行動(dòng)。

非常幸運(yùn)的是我們的大多數(shù)層面都是可擴(kuò)展的并且不需要做出過(guò)多的修改。我們的定制服務(wù)器監(jiān)控工具一直在幫助追蹤游戲的加載,儲(chǔ)存甚至是游戲的即時(shí)用戶屬性,以幫助我們更好地進(jìn)行容量規(guī)劃。最終,我們輕松地推出了應(yīng)用的cluster,并包含了NGINX,HAProxy以及Goliath服務(wù)器(相互獨(dú)立),并且在上線后它們能夠以一種恒速幫助我們提高容量。現(xiàn)在,我們每秒鐘便能夠接收上千張畫(huà)了,而一周前看似巨大的流量換做現(xiàn)在也已經(jīng)變得非常渺小了。

draw something elvi(from gamasutra)

draw something elvi(from gamasutra)

展望未來(lái)

OMGPOP所有員工都非常支持我們現(xiàn)在的工作,并且也清楚我們現(xiàn)在所做的事情對(duì)于公司發(fā)展的重要性。也就是我們得到了公司內(nèi)部的絕對(duì)認(rèn)可。

難得有游戲能夠在如此短的時(shí)間內(nèi)便創(chuàng)造出如此顯赫的成績(jī),也難得有人會(huì)為游戲的發(fā)展付出如此高的代價(jià)。直至今日,《Draw Something》在50天內(nèi)便創(chuàng)造出了超過(guò)5000萬(wàn)次下載量。在最高峰時(shí)游戲服務(wù)器甚至每秒能夠收到大約3千幅畫(huà)。看到游戲取得的巨大成功,我們能夠自豪地說(shuō),雖然還存在一些粗糙的修補(bǔ)程序,但是我們有信心保持這款游戲的有效運(yùn)行。如果這款游戲失敗了,我們也不可能迎來(lái)如此巨大的發(fā)展。

本周我們?cè)凇禗raw Something》中又添加了一些新的功能,如評(píng)論和保存功能——這也是玩家所希望的。

現(xiàn)在,我們已經(jīng)成為Zynga中的一份子(也就是Zynga Mobile New York),我們能夠更加專注于《Draw Something》的完善——而我們也仍然保持著OMGPOP的企業(yè)文化。現(xiàn)在,我們甚至計(jì)劃將該游戲轉(zhuǎn)移到Zynga的zCloud基礎(chǔ)設(shè)施(游戲邦注:能夠有效地協(xié)調(diào)并處理社交游戲中的工作負(fù)荷)。

回首過(guò)去幾周的發(fā)展,我們真的很難想象自己可以從一家原本只有幾個(gè)員工的小公司而成為Zynga的一份字,并接觸到更多專業(yè)人士和技術(shù)。

可以說(shuō),我們終于實(shí)現(xiàn)了目標(biāo)而創(chuàng)造出一款真正熱門的游戲。盡管我們?cè)獾搅烁鞣N挫折,并且也有所延遲,但是我們最終還是創(chuàng)造出一個(gè)真正有效的后臺(tái)去發(fā)展我們的這款游戲。

 

責(zé)任編輯:yangsai 來(lái)源: gamerboom
相關(guān)推薦

2009-11-05 14:10:42

IT技術(shù)

2012-03-20 21:21:59

開(kāi)發(fā)

2012-05-07 14:28:55

2016-12-13 12:11:37

2012-04-08 20:58:48

APP

2011-08-31 12:24:26

投影儀技術(shù)

2018-03-21 06:47:02

移動(dòng)通信5G互聯(lián)網(wǎng)

2009-11-18 15:58:05

PHP技術(shù)

2009-04-30 15:22:25

JDBCODBCAPI

2012-07-02 14:32:22

HTML5

2009-11-03 10:53:25

光纖接入技術(shù)

2009-11-06 11:03:02

EPON接入技術(shù)

2009-02-26 16:05:23

Java手機(jī)終端J2ME

2019-08-01 13:34:44

容器趨勢(shì)Kubernetes

2016-12-23 14:43:37

2009-11-03 13:35:31

NGN接入技術(shù)

2015-10-29 10:08:58

2009-10-26 12:56:11

寬帶無(wú)線接入技術(shù)

2009-12-24 16:21:33

WiMax技術(shù)發(fā)展
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日本高清视频在线播放 | 欧美精品1区2区 | 91精品国产综合久久久久 | 国产 日韩 欧美 制服 另类 | 视频三区| 五月综合激情网 | 1级毛片 | 能免费看的av | 免费国产一区二区 | 综合另类| 免费亚洲一区二区 | 成人在线观看网站 | 精品中文在线 | 日韩欧美国产一区二区三区 | 国产毛片在线看 | 有码在线| av在线一区二区三区 | 成人午夜免费网站 | 91视频大全 | 99伊人网| 日本激情视频中文字幕 | 91亚洲国产成人久久精品网站 | 成人性生交大免费 | 国产精品大片在线观看 | 国产精品美女久久久 | 玖玖爱365 | 在线精品一区二区 | 成人高清在线视频 | 国产不卡视频在线 | 99爱国产| 国产精品大片 | 91久久久久久 | 天天看天天爽 | 亚洲福利一区二区 | 国产一级毛片精品完整视频版 | 亚洲精品不卡 | 亚洲欧美精品一区 | 五月婷婷中文 | 99国产精品一区二区三区 | 中文一区 | 国产精品一区二区在线观看 |