人人網(wǎng)開放平臺之父李福松:安全開放才會健康長久
原創(chuàng)【51CTO獨家特稿】在其他開放平臺剛剛萌芽的時候,人人網(wǎng)開放平臺就已經(jīng)風(fēng)生水起了。人人網(wǎng)早在2008年7月8日就正式對外發(fā)布了開放平臺戰(zhàn)略,從此全面拉開了中國互聯(lián)網(wǎng)的開放平臺時代。開放平臺成為創(chuàng)新者和創(chuàng)業(yè)者的樂土,各種開發(fā)團體、個人、開發(fā)公司都進駐開放平臺,各種應(yīng)用產(chǎn)品五花八門,極大地滿足了用戶的需求,涌現(xiàn)出了很多優(yōu)秀的應(yīng)用產(chǎn)品。像風(fēng)靡世界的開心農(nóng)場就是從人人網(wǎng)開放平臺率先推出并迅速受到廣大用戶喜愛,一時間全民挖菜,場面蔚為壯觀。國際上頗具影響力的著名IT科技雜志《連線》評選出了“過去十年最具影響力的15款游戲”,開心農(nóng)場排名十四。在收獲優(yōu)秀應(yīng)用產(chǎn)品的同時,開放平臺也幫助眾多開發(fā)者迅速創(chuàng)業(yè)成功。
人人網(wǎng)開放平臺官網(wǎng):http://dev.renren.com/
嘉賓介紹
李福松 人人網(wǎng)開放平臺之父 高級產(chǎn)品&技術(shù)經(jīng)理
下面是51CTO對人人網(wǎng)李福松先生的采訪實錄
1. 人人網(wǎng)開放平臺對比其他開放平臺在技術(shù)上有哪些獨特優(yōu)勢?對于中國眾多的開放平臺,您覺得會有怎樣的發(fā)展?
開放必須安全的開放才能保持長久健康的開放狀態(tài),因此對于安全驗證及授權(quán)這塊就尤為重要,人人網(wǎng)開放平臺率先在國內(nèi)采用了OAuth2.0的驗收與授權(quán)解決方案,同時首先翻譯了OAuth2.0的中文版貢獻給國內(nèi)社區(qū),目前OAuth2.0支持多種的驗證流程,在人人網(wǎng)開放平臺接入應(yīng)用方面發(fā)揮重要作用。
用戶隱私是人人網(wǎng)一直非常看重的,而人人網(wǎng)的用戶模型與其他網(wǎng)站有很大不同,因此我們在權(quán)限的粒度設(shè)計上充分照顧到用戶的不同隱私需求,將權(quán)限的范圍進行了詳細(xì)的劃分。
我們構(gòu)建自己的通用開放平臺(Common Programming Platform,簡稱CPP),目的在于增強人人網(wǎng)開放平臺的開放性和標(biāo)準(zhǔn)化,從而使第三方與人人網(wǎng)的集成更加容易和多樣化,進一步推動開放平臺領(lǐng)域的社會分工,為產(chǎn)生各種開發(fā)SDK創(chuàng)造必要條件。
人人網(wǎng)開放平臺在對外公布REST API的基礎(chǔ)上,又對外發(fā)布了我們的Widget API,將可視化的組件也通過API的定義方式對外發(fā)布,充實了我們對API的理解,這樣的設(shè)計是我們在標(biāo)準(zhǔn)化的努力實踐。
人人網(wǎng)開放平臺努力封裝各種語言的SDK,以及為Discuz等開源社區(qū)封裝組件,就是力圖降低開發(fā)者的接入門檻,同時SDK上不僅僅是簡單的接口封裝,也逐漸將業(yè)務(wù)功能進行整合封裝到SDK中。
2. 人人網(wǎng)開放平臺的開放策略是怎樣設(shè)定的?如果我是用戶,為人人網(wǎng)開放平臺開發(fā)第三方應(yīng)用會獲得怎樣的扶植策略?
開放平臺一直秉承開放共贏的理念為客戶服務(wù),不為開發(fā)者設(shè)置過多門檻,同時為了平臺的健康發(fā)展以及開發(fā)者群體的整體利益對于應(yīng)用接入的產(chǎn)品質(zhì)量嚴(yán)格把關(guān),努力將精品推送給人人網(wǎng)用戶。任何一個組織或個人,都可以自由的制作人人網(wǎng)應(yīng)用,我們有專門的營運團隊為開發(fā)者解答業(yè)務(wù)層面的問題,我們也有專門的技術(shù)咨詢與支持團隊為開發(fā)者進行技術(shù)支持,同時我們平臺的運維部門還為那些優(yōu)秀但缺少服務(wù)器的應(yīng)用準(zhǔn)備了一些服務(wù)器供開發(fā)者使用,目前這種服務(wù)器及帶寬的租賃是免費的。同時我們在網(wǎng)站也有不同的資源對應(yīng)用進行推廣。
3. 蘋果APP STORE開發(fā)人員分得七成收益的模式讓大家津津樂道,那么人人網(wǎng)平臺的利潤分成是怎樣設(shè)置的?如何保證開發(fā)人的合理利益?
目前我們在執(zhí)行的分成策略是,在扣除人人網(wǎng)渠道成本后的部分進行4:6分成,開發(fā)者占6成。同時開放平臺也正在積極研究新的更加優(yōu)惠的分成策略,讓開發(fā)者得到更多利潤用以鼓勵開發(fā)者在人人網(wǎng)研發(fā)更多新的產(chǎn)品。
分成策略只是我們吸引開發(fā)者入駐的因素之一,我們通過與開發(fā)者廣泛溝通發(fā)現(xiàn)能夠給其帶來大量流量,提升品牌價值才是開發(fā)者最為看重的,目前的開發(fā)者們更看重的是其團隊的長遠(yuǎn)發(fā)展及品牌目標(biāo),因此在這方面人人網(wǎng)擁有得天獨厚的優(yōu)勢可以幫助開發(fā)者們實現(xiàn)這一目標(biāo)。
除了分成策略,我們在自助廣告的投放也向開發(fā)者的應(yīng)用傾斜,我們在運維資源的支持上也有相對靈活與寬松的政策,很多開發(fā)者得到了我們大量服務(wù)器及帶寬的免費支持。這些都從不同側(cè)面保證開發(fā)者的合理利益得到保障。
4. 中國目前的版權(quán)保護機制還很不完善,人人網(wǎng)開放平臺的授權(quán)機制是如何運作的?開發(fā)者以什么方式可以得到授權(quán)?請介紹下人人網(wǎng)開放平臺的技術(shù)架構(gòu)或者服務(wù)器部署架構(gòu)。這樣的架構(gòu)對比其他平臺在性能上會有怎樣的優(yōu)勢(可不說明參照對比的是哪個平臺)?
通過OAuth 2.0的發(fā)布,我們在“用戶授權(quán)”這一部分,將平臺提供的服務(wù)(Service)進行了標(biāo)準(zhǔn)化(同時也是行業(yè)現(xiàn)成標(biāo)準(zhǔn))。這樣就使得如圖2所示的行業(yè)分工成為可能:
圖2 OAuth 2.0帶來的行業(yè)分工
在圖2中,由于OAuth 2.0帶來的標(biāo)準(zhǔn)化和實現(xiàn)的通用性,各種Connect客戶端(即SDK)就能交給開源社區(qū)來封裝。通常,這樣的開發(fā)工作只需要個人開發(fā)者就可以完成。
在這個基礎(chǔ)上更進一步,在“用戶授權(quán)”以外的領(lǐng)域,可以將整個平臺各種服務(wù)進行標(biāo)準(zhǔn)化,打造出一個Service層+一套相關(guān)規(guī)范(spec)。這樣的技術(shù)架構(gòu),在“用戶授權(quán)”以外的領(lǐng)域,尤其有利于widget產(chǎn)品(暫且叫這個名字)的標(biāo)準(zhǔn)化。關(guān)于這種通用widget的雛形,可以參考facebook的Platform Dialog和各種social plugin。
在圖3中,我們從平臺的各種接口中剝離出一個Service層,在Service層基礎(chǔ)上,產(chǎn)生各種SDK。這個Service層,加上相應(yīng)的一套編程規(guī)范,組成整個開放平臺的核心——通用編程平臺(CPP)。
圖3 基于通用編程平臺(CPP)的技術(shù)結(jié)構(gòu)
在圖3中,平臺的核心,通過標(biāo)準(zhǔn)化搭建起一個Service Layer。這一層的工作必須由開放平臺完成。
上層的兩個SDK層次可以由開源社區(qū)來完成。
第三方應(yīng)用開發(fā)者根據(jù)需要可以選擇使用三個層次的API。
平臺的核心——CPP包括兩部分:
(1)圖3中的CPP Service Layer,由各種endpoint組成。
(2)由文檔組成的Spec,包含endpoint需要的參數(shù)、回傳方式、顯示模式、注冊設(shè)置等規(guī)范。
Service層中的各個endpoint大部分是基于HTTP的一個服務(wù)點,但SSO Endpoint不是。它是某些在運行環(huán)境下進程間通信的接收和驗證服務(wù),其對應(yīng)的Spec中包含進程間通信的地址、參數(shù)、安全驗證設(shè)置等信息。
Service層中的endpoint可以分為四大類:
◆ Auth Endpoints
◆ Renren API Endpoints
◆ Widget Endpoints
◆ Single Sign-on Endpoints
帶有CPP Spec的架構(gòu)圖如下所示:
圖4 通用編程平臺(CPP)的技術(shù)結(jié)構(gòu)(加入CPP Spec)
6. 人人網(wǎng)開放平臺在數(shù)據(jù)庫方面是怎樣的一種組合?是否考慮在未來使用NoSQL數(shù)據(jù)庫?
更全面說開放平臺在數(shù)據(jù)存儲上采用DB+Cache(遠(yuǎn)程+本地)的組合方式。
在DataBase方面采用通用的Master/Slave 的模式,但也同時根據(jù)不同業(yè)務(wù)進行了垂直部署與水平拆分,不同的業(yè)務(wù)會由不同的DB集群承擔(dān),一個業(yè)務(wù)中數(shù)據(jù)量過大的會進行散表的水平拆分;
有專門的Hadoop集群用來集中處理平臺的各種Log;
有專門的Memcached集群維護業(yè)務(wù)數(shù)據(jù);
也對部份業(yè)務(wù)數(shù)據(jù)進行了本地化緩存。
人人網(wǎng)也在研討NoSQL,開放平臺在這方面也有跟進,也在時機成熟的時候大規(guī)模引入NoSQL。
7. 平臺安全性至關(guān)重要,對于開發(fā)平臺的安全性是如何保障的?是不是存在專門的人員來規(guī)劃整個開放平臺的安全機制。
一方面我們采用安全程度高的授權(quán)與驗證解決方案OAuth2.0。
一方面我們在業(yè)務(wù)實現(xiàn)上盡量用簡單實用的流程來降低負(fù)責(zé)度與提高安全性。
一方面我們通過多維的數(shù)據(jù)監(jiān)控及時的發(fā)現(xiàn)異常變化。
一方面我們與人人網(wǎng)安全部門緊密的合作,及時更新各種新發(fā)現(xiàn)的安全漏洞。
我們有專門的人員規(guī)劃平臺的安全機制。
【編輯推薦】