mixi.jp:使用开源软件搭建的可扩展SNS网站
于敦德 2006-6-27
Mixi目前是日本排名第三的网站,全球排名42,主要提供SNS服务:日记,群组,站内消息,评论,相册等等,是日本最大的SNS网站。Mixi从2003年12月份开始开发,由现在它的CTO – Batara Kesuma一个人焊,焊了四个月,在2004年2月份开始上线运行。两个月后就注册了1w用户,日访问量60wPV。在随后的一年里,用户增长到了21w,第二年,增长到了200w。到今年四月份已经增长到370w注册用户,并且还在以每天1.5w人的注册量增长。这些用户中70%是活跃用户(活跃用户:三天内至少登录一次的用户),平均每个用户每周在线时间为将近3个半小时。
下面我们来看它的技术架构。Mixi采用开源软件作为架构的基础:Linux 2.6,Apache 2.0,MySQL,Perl 5.8,memcached,Squid等等。到目前为止已经有100多台MySQL数据库服务器,并且在以每月10多台的速度增长。Mixi的数据库连接方式采用的是每次查询都进行连接,而不是持久连接。数据库大多数是以InnoDB方式运行。Mixi解决扩展问题主要依赖于对数据库的切分。
首先进行垂直切分,按照表的内容将不同的表划分到不同的数据库中。然后是水平切分,根据用户的ID将不同用户的内容再划分的不同的数据库中,这是比较通常的做法,也很管用。划分的关键还是在于应用中的实现,需要将操作封装在在数据层,而尽量不影响业务层。当然完全不改变逻辑层也不可能,这时候最能检验以前的设计是否到位,如果以前设计的不错,那创建连接的时候传个表名,用户ID进去差不多就解决问题了,而以前如果sql代码到处飞,或者数据层封装的不太好的话那就累了。
这样做了以后并不能从根本上解决问题,尤其是对于像mixi这种SNS网站,页面上往往需要引用大量的用户信息,好友信息,图片,文章信息,跨表,跨库操作相当多。这个时候就需要发挥memcached的作用了,用大内存把这些不变的数据全都缓存起来,而当修改时就通知cache过期,这样应用层基本上就可以解决大部分问题了,只会有很小一部分请求穿透应用层,用到数据库。Mixi的经验是平均每个页面的加载时间在0.02秒左右(当然根据页面大小情况不尽相似),可以说明这种做法是行之有效的。Mixi一共在32台机器上有缓存服务器,每个Cache Server 2G内存,这些Cache Server与App Server装在一起。因为Cache Server对CPU消耗不大,而有了Cache Server的支援,App Server对内存要求也不是太高,所以可以和平共处,更有效的利用资源。
图片的处理就显得相对简单的多了。对于mixi而言,图像主要有两部分:一部分是经常要使用到的,像用户头像,群组的头像等等,大概有100多GB,它们被Squid和CDN所缓存,命中率相对比较高;另一部分是用户上传的大量照片,它们的个体访问量相对而言比较小,命中率也比较低,使用Cache不划算,所以对于这些照片的策略是直接在用户上传的时候分发到到图片存储服务器上,在用户访问的时候直接进行访问,当然图片的位置需要在数据库中进行记录,不然找不到放在哪台服务器上就郁闷了。
文章参考:Batara Kesuma在MySQL Users Con 2006上的发言
21 Nov, 2007
Posted by: admin In: PHP
下載最新的 memcached-win32,解壓縮到 C:\memcached
開始→執行→輸入 ‘C:\memcached\memcached.exe -d install’
開始→執行→輸入 ‘C:\memcached\memcached.exe -d start’
修改php.ini,新增一行 ‘extension=php_memcache.dll’
下載 php_memcache.dll 至 C:\PHP\ext
重新啟動apache
13 Nov, 2007
Posted by: admin In: Web Spot
2007年又快到尾聲了,即將來臨的2008年裡,似乎也在預告著另一波網路模式正在快速的成長,隨著一波一波社群網站的收購新聞,以及中國網站也上市的消息,不免嗅出幾個味道。
網路媒體在往後的幾年,應該都很風光。
根據美國網路廣告局(IAB)公布最新調查數據顯示,07年第三季美國網路廣告收入達到了52億美元,比去年同期成長了25%,創歷史新高紀錄。
IAB也表示,隨著更多的廣告客戶從傳統媒體轉移到網路媒體,儘管網路廣告在整個廣告市場所佔的比例比較小,但網路廣告市場卻不斷的快速成長。
美國不是我們生活環境,所以感受不到,但就幾個大筆的國外收購案看來,看重的就是這網路廣告市場的開發,台灣大家也慢慢發現到,現在越來越多的傳統廣告,都開始搭配網路廣告的效應,「馬上快速上網搜尋 XXX」,這廣告詞對常看電視的人應該不陌生吧,在平面廣告上,也一定會帶上一個搜尋Bar,裡面是輸入廣告關鍵字,當我第一次看到「遠雄二代宅」的廣告方式,我就驚覺到,這將會是往後傳統廣告的必要元素,因為當你家老爸老媽都會上網時,「關鍵字」就是他們最容易記憶的文字,這我也是親身感受到,我那老爸竟然都會上網搜尋,因為對老一輩的人來說,記憶是慢慢退化,所以他們更需要簡潔有力的「關鍵字」。
Web 2.0 模式,即將被汰換掉了。
Web 2.0的概念,開啟了一個網路的新世紀,但這個概念似乎真的是個概念,因為到2007年尾,原本創投看好的Web2.0卻演變成紛紛搖頭,不過,這概念這想法,應該說是個分水嶺,沒有這波概念的催化,怎麼會產生出網路媒體市場的蓬勃,這名詞,改變了很多觀念跟想法,進而快速的催生了很多的網站服務,大家就卯了勁,在這塊大餅上發揮,但是,這也衍生了很多問題點,最重要的就是「盈收在哪?」,大家一昧的顧著讓用戶進來店裡參觀、玩樂、交友,但店裡的開銷成本呢?收入呢?隨著進來的人越來越多,勢必你的店也需要一直擴張,但在沒有收入的情況下,你哪來的資金擴張店面?
這裡有很多矛盾點,在之前我的觀念也是如此,我想要收益,總是要有人流先吧,沒人來講再多想再多,都是在狗屁,也許是本身不是業務,也不是會「話」大餅的人,所以最基本的概念就是,最有力的武器就是人流多,但這裡有個很恐怖的危機,就是沒有穩定明確長期的收益模式,因為不明確,這危機有多恐怖?想想如果你想靠廣告收益,能夠攤平你網路成本?在之前沒有詳細規劃考量,到人流起來,才去發展就會來不及,所以才會導致Web2.0都幾乎是虧損燒錢。
Web 3.0 模式,正在慢慢開始入侵了。
最近幾波新聞的報導,相信很少著墨網路生態的也會發現,有些東西開始發酵了,拿Facebook跟Google來說,這是其中一個矚目的新聞,Facebook的成長,慢慢也達到了可以拿起來跟Google相提並論的地位,至於Facebook如何爬到這種「勘沾(台語)」,這大家都可以說上好幾點,但我看重的是,Facebook的Open程度,這其實是跟Google一直在推出的概念想法相同的,而這也是Web 2.0的概念,平台提供的服務是核心,讓大家來參與,一起成長,從早期的單純B的Open模式,演變成現在Mix(又B又C)的Open模式,如此的擴張整合,將演變成另一種相互的共存體,彼此站與站之間的交流更加密切,而不再單打獨鬥,也不會單調乏味,但在某個程度上,這樣的模式還是有諸多的問題會衍生,這在慢慢觀察,但就目前,我自己對未來2008年,網站發展模式來看,Web 3.0將是一個慢慢會出現的話題,也或許,到時候別在講幾點幾,會是個新名詞。如果台灣前幾大BSP網站,有這樣的想法,如雅虎奇摩,開始開放API,我相信,這將會讓台灣的網路產業,產生一個很大的分水嶺。
11 Nov, 2007
Posted by: admin In: 網站行銷
最近著墨在「一起玩玩」網站行銷推廣上,既然要配合目前主流的推廣方式。
「口碑行銷 ( Word-of-Mouth, WOM)」
看了不少相關文章,說到這不免要碎碎念一下,在網站上看到的資源非常多,但如何正確的吸收這些資訊,以及如何整理這些資訊就變得好煩雜,尤其是對於我這類型的,要如何由淺入深,要如何分辨資訊的正確性,就是很重要的課題,往往因為資訊的繁雜,到最後,變得腦袋一片混亂,搞不清楚。
今天看了Joshua Porter寫的How to Design for Word-of-Mouth跟小甲的博客分享的,兩個交叉吸收整合一下,換我用繁體分享。
設計的極致就是讓某個事物屌到人們生活中不可以沒有它,當人們覺得它很重要的時候,自然就會很樂意的分享給他人,而當這些使用者都成為你的宣傳人員時,你獲得最大的收益就是,你不用再花費龐大的行銷預算來讓收入提高,因為使用者的影響力遠大於你自己的老王賣瓜,這樣你只需要把重點放在,該如何滿足使用者需求,並且滿足到讓使用者願意去分享。
Joshua Porter寫出了8個該注意的步驟,在規畫商品(服務)上或是要推廣上,看看自己是否也考量到了:
1. 讓用戶再使用產品(服務)時,感覺到興奮,會High,不能只有好玩。
我想這應該是最基本的,當產品(服務)在開發之前,本身就應該知道這需求點,如果自己都覺得沒有意思的東西,那就別搞了,但這邊該強化的是,更多的興奮。
2. 提供工具(功能)或方法,好讓使用者快速的將這興奮的感覺分享出去。
現在有越來越多的宅男(腐女),基本上已經很少用嘴巴跟人分享溝通,那就要考量到這些用文字或是圖形文字散播想法的人,該提供怎樣的工具或是方法,好讓他們可以把網站上得到的樂趣快速的分享給其他人,很矛盾的是,越來越多的宅男,在網站上的影響力遠大於周遭的朋友,畢竟周遭能認識的數量是少數,想想看,光一個網路遊戲,你就會在其中認識多少朋友,這種擴張的速度,遠大於一般生活中的朋友。
3. 讓接收者很容易的明白對方分享的是什麼。
讓接收分享的人,很快的明白接收到的訊息是什麼,別讓很簡單的分享,演變成很複雜的行為,流程上面應該多多以本身是接收的角度來思考,也盡量避免在分享的設計上,存放太多要表達的訊息,需要簡潔有力。
4. 讓接收者清楚明白分享的價值在哪。
如果你的商品已經讓分享者感受到興奮,那該如何把這份興奮,同樣的傳遞給他人?根據上一則的「簡潔有力」,就是要簡單的告訴接收者牛肉在哪,除了分享者在分享他的熱情訊息外,我們也要做到讓接收者,很快速的明白這份熱情在哪。
5. 提供接收者一個「被邀請的尊貴」。
透過口碑傳播的方式,就要讓他們感受到自己與一般訪問網站的網友的差異,就像實體店面一樣,因為你是誰誰誰介紹的,光這個介紹基本就9折開始談,甚至也有可能是得到什麼介紹小獎品之類的,這樣分享的多半會很樂意幫你做推廣,因為人都是虛榮的,我在這邊有VIP,似乎多半也有向別人炫耀的感覺,且這部分商店如果做得好,大家便會不斷的向他人炫耀自己在這邊的價值,所以網站也如此,為分享者塑造一個VIP的感覺,而經由分享者介紹的好友,也同等享有這份VIP的感覺,另外在網站訊息上也告知接收者,你進來的畫面是”你獨有的”。
6. 在註冊之前,告訴接收者,好處有什麼。
很多網站在推廣上都希望訪問網友先註冊,再來慢慢告訴網友,網站的加值在哪,多半又一堆網站在註冊時,需要填一堆有的沒有的資料,對網站經營者來說,這些數據似乎都是很重要,因為在找廣告商的時候,如果能提供網友的統計數據,這是有加分的效果,但是如果這些都是假的資料呢?如果能告訴網友,越詳細的資料,網站越能給予更多的價值呢?這樣網友是否在註冊時,更能將自己的資料詳細提供出來,與其要一堆假性的資料,不如就要更精準的資料吧。
7. 讓網友多多回來網站的理由。
網站平台是否有這份價值,讓網友多多回來的價值?多半網站都是利用活動,來希望網友多多回來網站,所以網站服務,除了提供本身使用者的價值外,更需要思考有什麼價值好讓用戶多多回來網站,尤其是Web2.0的網站,網友在網站上的參與,才能創造出網站更多的價值,當前就是利用討論或是社群的方式,來牽繫著用戶跟朋友之間的聯繫,那還有什麼可以創造出來呢?
8. 讓新用戶也願意再分享給別人。
如同作者寫的,這就是一個口碑行銷迴圈的結束點,如同第一點,讓新用戶感受到這網站的價值,讓用戶在網站上得到興奮,它自然也願意分享。