午夜免费电影-中文字幕丰满乱孑伦无码专区-久久久久久亚洲精品无码-国产精品天天狠天天看

Spotify的團(tuán)隊(duì)自主運(yùn)營架構(gòu),與瞎想企業(yè)組織的未來

產(chǎn)業(yè)投資 本文作者:杜國棟 2016-03-30
Spotify是北歐的技術(shù)公司,一直熱衷于在內(nèi)部建立大量的“自主運(yùn)營小組”(squad),由小組自我完成工作,而不需要自上而下的管理。這很類似于凱文凱利在《失控》中的觀點(diǎn),在企業(yè)內(nèi)部組織運(yùn)行中的實(shí)現(xiàn)。

我之前編譯的一篇文章《公司拆成自主管理的小團(tuán)隊(duì),馬云專程去北歐學(xué)來的管理結(jié)構(gòu)》,說的就是北歐公司Hudl如何模仿Spotify“自主運(yùn)營小組”的管理模式。具體這篇文章是Spotify官方博客里的內(nèi)容,相比Hudl所說的,算是第一手的經(jīng)驗(yàn)。

Spotify是北歐的技術(shù)公司,一直熱衷于在內(nèi)部建立大量的“自主運(yùn)營小組”(squad),由小組自我完成工作,而不需要自上而下的管理。這很類似于凱文凱利在《失控》中的觀點(diǎn),在企業(yè)內(nèi)部組織運(yùn)行中的實(shí)現(xiàn)。

今天的文章,說的是Spotify一方面在企業(yè)組織形式上建立“自主運(yùn)營小組”,一方面又在技術(shù)后臺(tái)的系統(tǒng)架構(gòu)上,為適應(yīng)這種企業(yè)組織形式,而進(jìn)行了相應(yīng)的調(diào)整。

從文章隱含的意思來看,Spotify一直認(rèn)為,公司內(nèi)部運(yùn)行效率低下的重要原因是:各個(gè)團(tuán)隊(duì)之間需要互相協(xié)作,一旦某個(gè)團(tuán)隊(duì)工作進(jìn)度慢了,其他所有團(tuán)隊(duì)都要等著,于是造成工期延誤。所以,要提高公司的整體效率,就要讓各個(gè)工作團(tuán)隊(duì)之間,互相不依賴;任何一個(gè)團(tuán)隊(duì)的工作不影響另外一個(gè)團(tuán)隊(duì)。

為了實(shí)現(xiàn)這樣的效果,公司產(chǎn)品層面應(yīng)該把各個(gè)功能模塊都隔絕開,某個(gè)功能出現(xiàn)問題,不影響其他功能的正常使用,也就是說,開發(fā)這個(gè)功能的小組掉鏈子了,其他小組開發(fā)的功能還仍然照舊運(yùn)行。

為了實(shí)現(xiàn)這樣的效果,公司的系統(tǒng)架構(gòu)上也要調(diào)整。數(shù)據(jù)庫、存儲(chǔ)等技術(shù)性資源支持方面的工作,也不需要公司內(nèi)部來組織某個(gè)職能部門來協(xié)調(diào),否則職能部門的工作效率將會(huì)影響到資源的調(diào)配效率。所以Spotify建立來一個(gè)類似云服務(wù)的平臺(tái),讓小組自己去配置。

這篇文章有一些細(xì)節(jié)內(nèi)容偏技術(shù),所以我翻譯不出來,錯(cuò)誤肯定會(huì)不少。大家如果側(cè)重技術(shù),還是去看原文吧。原諒我,我本專業(yè)只是個(gè)律師。

為什么明明讀不懂技術(shù)名詞,還要硬著頭皮看這篇文章呢?

因?yàn)椋词故钦f了很多偏技術(shù)的東西,但是基本的思路我還是非常理解和認(rèn)同。或者說,這種技術(shù)后臺(tái)的系統(tǒng)架構(gòu),其實(shí)就是一種企業(yè)生產(chǎn)流程。即使是非技術(shù)型的企業(yè),也可以建立一種這樣的企業(yè)運(yùn)營體制,在這個(gè)體制之上建立各個(gè)接口,讓各個(gè)獨(dú)立的工作小組,可以接入這體制、進(jìn)行運(yùn)轉(zhuǎn),而不受其他環(huán)節(jié)的束縛。

這是我想將來嘗試的企業(yè)組織和管理結(jié)構(gòu)。

其實(shí),經(jīng)濟(jì)學(xué)家科斯說過類似的觀點(diǎn)。為什么企業(yè)會(huì)產(chǎn)生?企業(yè)的各個(gè)部門,之前本來都是獨(dú)立的,大家通過市場上的自由合作來實(shí)現(xiàn)協(xié)作。如果什么時(shí)候覺得自由合作效率不高,那大家就合并起來,組成一個(gè)企業(yè),由企業(yè)進(jìn)行自上而下的計(jì)劃經(jīng)濟(jì)模式的指揮管理。現(xiàn)在,Spotify這種模式的出現(xiàn),實(shí)際上把企業(yè)產(chǎn)生之前的市場自由合作,又搬回來企業(yè)內(nèi)部,在企業(yè)內(nèi)部建立一個(gè)自由協(xié)作的市場機(jī)制。

我想,原因可能是,在科斯時(shí)代及之前,信息在市場上的傳導(dǎo)速度太慢,導(dǎo)致自由合作的效率低,而合并為一個(gè)企業(yè)后,在企業(yè)內(nèi)部組織生產(chǎn),信息傳導(dǎo)的速度就起來了。但是現(xiàn)在,有來IT信息技術(shù),即使是在企業(yè)外部,信息也可以迅速傳導(dǎo),那么就不需要企業(yè)來組織生產(chǎn)來,通過一個(gè)信息架構(gòu)平臺(tái),就可以實(shí)現(xiàn)企業(yè)本身的信息傳遞、生產(chǎn)組織等職能。

比如,Uber、滴滴打車、Airbnb、餓了么,實(shí)際上都是在用技術(shù)平臺(tái),扮演之前“企業(yè)”的角色。司機(jī)不再需要從屬于出租車公司來調(diào)度,滴滴打車的技術(shù)平臺(tái)就是出租車調(diào)度公司。

信息技術(shù),正在取代企業(yè)組織形式。

在這篇文章里我要大致介紹一下Spotify的后臺(tái)架構(gòu)。我們的后臺(tái)架構(gòu)一種處在不斷改進(jìn)的過程中,有的模塊已經(jīng)用了很久了,有多么模塊才剛剛開始開發(fā)出來。

要理解為什么Spotify要建立這樣的后臺(tái)架構(gòu),最好先了解一下Spotify的團(tuán)隊(duì)組織結(jié)構(gòu)和協(xié)作模式。Spotify目前有300名工程師,而且還在快速增加中。

一、背景

1. 增長:

Spotify的所有指標(biāo)都在不停地增長,而且規(guī)模越來越龐大。比如,日常用戶的數(shù)量、后端節(jié)點(diǎn)的數(shù)量、客戶端所運(yùn)行的硬件平臺(tái)數(shù)量,產(chǎn)品開發(fā)團(tuán)隊(duì)的數(shù)量,在Spotify平臺(tái)上運(yùn)行的外部應(yīng)用程序的數(shù)量,Spotify上歌曲的數(shù)量,都在一股腦迅速增長。

2.速度:

正是因?yàn)镾potify的增長速度太快,我們不得不一遍又一遍地仔細(xì)分析,在Spotify有什么東西會(huì)妨礙這樣的發(fā)展速度,并且不斷地消除這樣的因素。所以,我們付出了不少努力,一方面,盡可能降低內(nèi)部各個(gè)團(tuán)隊(duì)之間的互相依賴關(guān)系;另一方面,如果我們的架構(gòu)中存在某些會(huì)讓工作復(fù)雜化的東西,而這些東西又是可有可無的話,我們就會(huì)干凈利落地淘汰掉這些毫無意義的復(fù)雜玩意。

在Spotify我們建立了很多自行運(yùn)營的小組(squad)。Spotify內(nèi)部,最重要的一個(gè)觀念就是,團(tuán)隊(duì)必須能自行運(yùn)營。每個(gè)開發(fā)團(tuán)隊(duì)(或者說“小組”),其工作和運(yùn)營,都應(yīng)當(dāng)是能獨(dú)立于其他小組的。

即使有時(shí)候兩個(gè)小組之間存在一定的互相依賴關(guān)系,但大部分時(shí)候各個(gè)小組之間還應(yīng)當(dāng)是獨(dú)立前進(jìn)的。如果某個(gè)小組的工作能否取得進(jìn)展,依賴于另一個(gè)小組的工作進(jìn)展,那么我們會(huì)采取這樣的策略:在內(nèi)部各個(gè)團(tuán)隊(duì)之間實(shí)行代碼透明化的模式( transparent code model),并建立自助服務(wù)架構(gòu)( self service infrastructure)。

3. 代碼透明化模式:

Spotify內(nèi)部的每個(gè)開發(fā)團(tuán)隊(duì)都可以看到Spotify的所有代碼。這意味著,Spotify的所有開發(fā)人員,都可以看到Spotify客戶端、Spotify后臺(tái)和Spotify架構(gòu)的所有代碼,并且也可以修改這些代碼。如果某個(gè)小組遲遲不能完成工作,導(dǎo)致另外一個(gè)小組沒有辦法開展下一步工作,那么后面這個(gè)小組完全可以跳開前面那個(gè)小組,自己去完全前面小組應(yīng)該完成的工作、直接更新所需要的代碼。

在實(shí)踐中,Spotify的代碼透明模式,是通過所有團(tuán)隊(duì)共享同一臺(tái)git服務(wù)器(git server)來實(shí)現(xiàn)的。每個(gè)git存儲(chǔ)器( git repo)都會(huì)指定一名系統(tǒng)所有者,負(fù)責(zé)維護(hù)代碼,確保代碼不會(huì)rot。代碼透明模式讓每個(gè)人的工作都可以向前推進(jìn),每個(gè)人都可以獲得其他所有人的代碼。這種方式讓Spotify可以隨時(shí)向前推進(jìn),并保持一種積極和開放工作環(huán)境。

4. 自助服務(wù)架構(gòu):

所有的架構(gòu)都應(yīng)當(dāng)是可以自助服務(wù)的( self service entity)。通過這種方式,任何一個(gè)團(tuán)隊(duì)要向前推進(jìn)工作,都想不需要等另外一個(gè)團(tuán)隊(duì)幫他們獲得硬件支持、設(shè)置存儲(chǔ)集群( storage cluster)或更改配置( configuration change)。Spotify的后端架構(gòu)建立來好幾個(gè)層次的硬件和軟件,從物理設(shè)備( physical machines )到信息傳輸( messaging)與存儲(chǔ)解決方案(storage solutions)。

5. 開源:

我們一直在盡可能用開源的工具。在Spotify 的后端所使用的軟件中,我們會(huì)選擇對(duì)Spotify最關(guān)鍵的一些軟件,努力提高其可伸縮性。Spotify 也在積極參與為許多開源項(xiàng)目,比如Apache Cassandra和ZMQ。我們幾乎沒有自己的專用軟件,因?yàn)槲覀儾徽J(rèn)為我們有能力開發(fā)出能適應(yīng)Spotify飛速發(fā)展需求的軟件。

6. 文化:

在Spotify我們堅(jiān)信應(yīng)當(dāng)給個(gè)人充分的授權(quán)。這反映在我們的企業(yè)組織結(jié)構(gòu)中建立了自主運(yùn)營團(tuán)隊(duì)。這樣工程師就有足夠機(jī)會(huì)在Spotify內(nèi)部參與和嘗試其他領(lǐng)域的工作,從而讓每個(gè)人對(duì)工作都能保持熱情。我們還會(huì)定期組織駭客日(hackday),讓每個(gè)人嘗試實(shí)現(xiàn)他們的任何想法。

二、基本架構(gòu)

只要是需要處理大量用戶的系統(tǒng)架構(gòu),Spotify都會(huì)進(jìn)行分區(qū)。Spotify架構(gòu)有多種分區(qū)的方式。最主要的是通過功能進(jìn)行分區(qū)。我們可以先采用非常非常簡化的方式來描述這種分區(qū)。

比如,Spotify客戶端中所有頁面中涉及物理屏幕的部分,由某個(gè)小組負(fù)責(zé),Spotify中所有的功能性部分由另一個(gè)小組負(fù)責(zé)。每個(gè)小組負(fù)責(zé)的功能都是跨平臺(tái)的,比如,既包括在IOS設(shè)備上、也包括在瀏覽器上通過Spotify的后端即時(shí)響應(yīng)請(qǐng)求。(翻譯不出來了,不太懂技術(shù)啊)

即使某個(gè)功能沒能實(shí)現(xiàn)出來,Spotify客戶端上的其他功能仍然不受影響,并會(huì)獨(dú)立地繼續(xù)工作。如果兩個(gè)功能之間確實(shí)存在某種些微的依賴關(guān)系,有時(shí)候一個(gè)功能沒有實(shí)現(xiàn),只會(huì)導(dǎo)致另一個(gè)功能不能完全發(fā)揮出來,但不會(huì)導(dǎo)致整個(gè)Spotify無法提供服務(wù)。

由于并不是每個(gè)用戶都會(huì)用到Spotify的所有功能,某些功能出現(xiàn)問題只會(huì)涉及到很小一部分用戶。

并且,因?yàn)槟硞€(gè)功能所涉及的技術(shù),都由某一個(gè)小組集中掌握的,所以很容易在這個(gè)小組內(nèi)部進(jìn)行A/B測試,也很容易對(duì)收集到到數(shù)據(jù)進(jìn)行分析,并由直接涉及的小組來負(fù)責(zé)考慮如何對(duì)這個(gè)功能進(jìn)行決策。

功能分區(qū)工作更具有可伸縮性、更可靠、也更高效,從而使團(tuán)隊(duì)的工作更專注。

三、后端架構(gòu)

Spotify先是把產(chǎn)品架構(gòu)按功能進(jìn)行分區(qū),并建立了技術(shù)水平高超的跨功能小組來進(jìn)行工作任務(wù)的維護(hù)。在解決這些問題之后,Spotify面臨的問題是:Spotify的后端架構(gòu)能否確保各個(gè)小組獨(dú)立自主運(yùn)營。

讓每個(gè)小組都可以快速地開發(fā)出產(chǎn)品功能,而不會(huì)受到其他小組的拖累,這是我們的架構(gòu)所需要解決的問題。而Spotify的解決方案,還應(yīng)當(dāng)可以擴(kuò)展到全球。我已經(jīng)說過,我們建立了代碼透明模式來解決這個(gè)問題,讓某個(gè)團(tuán)隊(duì)可以直接跳過其他配合團(tuán)隊(duì)的工作,直接向前推進(jìn)。但是,除了眾多的功能開發(fā)小組之外,Spotify還有其他團(tuán)隊(duì)需要以合適的方式組織起來。

在許多企業(yè)的組織體系里,都會(huì)有一個(gè)數(shù)據(jù)庫管理員,負(fù)責(zé)數(shù)據(jù)庫及其架構(gòu)的維護(hù)。你需要通過運(yùn)營部門區(qū)申請(qǐng)從數(shù)據(jù)中心分配硬件,或者諸如此類的工作。

如果自主運(yùn)營的產(chǎn)品開發(fā)小組有100個(gè)以上時(shí),這種組織工作就會(huì)成為小組開發(fā)工作的瓶頸,因?yàn)檫\(yùn)營部門實(shí)在無法應(yīng)付眾多的小組同時(shí)提出需求。

為了解決這個(gè)問題,我們開發(fā)出了一個(gè)后端的架構(gòu),提供完全自助化的服務(wù),不再需要運(yùn)營部門來做這樣的配合工作。完全自助服務(wù)意味著,任何小組都可以在現(xiàn)場自行進(jìn)行開發(fā)和迭代,而不需要其他團(tuán)隊(duì)或部門的配合。

1. 配置:

如果某個(gè)小組開發(fā)新的功能,往往需要在多個(gè)地方同時(shí)部署。我們正在開發(fā)的一個(gè)后端架構(gòu),運(yùn)行開發(fā)小組自行決定是在Spotify的數(shù)據(jù)中心部署,還是在外部的公有云部署。Spotify的系統(tǒng)架構(gòu),正在盡可能讓Spotify內(nèi)部的數(shù)據(jù)中心和外部的公有云之間不存在太大的差別,這樣方便開發(fā)小組選擇和使用。簡而言之,Spotify內(nèi)部的數(shù)據(jù)中心遲延問題處理的最好,也最穩(wěn)定。外部公有云硬件條件更好更快,而且動(dòng)態(tài)擴(kuò)展性更好。開發(fā)小組可以根據(jù)自己的需要靈活選擇。

2. 存儲(chǔ):

大多數(shù)功能都需要某種形式的存儲(chǔ),比如“播放列表”功能或者“關(guān)注”功能。對(duì)于一個(gè)有數(shù)百萬人使用的功能來說,建立一個(gè)合適的存儲(chǔ)解決方案并不是一件容易的事情,有很多因素都需要考慮到:訪問模式、站點(diǎn)之間的故障轉(zhuǎn)移、工作容量、一致性、備份、降級(jí)等。很難找到一個(gè)通用的方法完全解決所有的問題。所以,Spotify的后端架構(gòu)中提供了不同的存儲(chǔ)方案:Cassandra, PostgreSQL 和 memcached。

3. 信息傳輸:

Spotify的客戶端和后端服務(wù)之間的信息溝通,通過這種模式來實(shí)現(xiàn):請(qǐng)求-應(yīng)答( request-reply),信息傳輸( messaging),發(fā)布訂閱(pubsub)。我們自己建立一套低遲延、低額外開銷(overhead)的信息傳輸層,并準(zhǔn)備將其擴(kuò)展到高投遞保障( delivery guarantees)、故障轉(zhuǎn)移路由( failover routing)和更靈活的負(fù)載平衡(load-balancing)。

4. 容量規(guī)劃:

Spotify的快速增長使Spotify的后端發(fā)生了大量的流量。每個(gè)小組都需要確保他們的功能可以擴(kuò)展到本地負(fù)載。各個(gè)小組可以手動(dòng)監(jiān)控其流量,發(fā)現(xiàn)和解決遇到的瓶頸,并根據(jù)需要擴(kuò)容。我們也建立了一個(gè)后端架構(gòu),讓各個(gè)小組都可以自動(dòng)擴(kuò)展其服務(wù)的負(fù)載。因?yàn)橹挥性谀阋呀?jīng)發(fā)現(xiàn)遇到瓶頸了才會(huì)擴(kuò)展自動(dòng)負(fù)載,所以需要開發(fā)小組自己進(jìn)行一定程度的人工監(jiān)控。我們的后端架構(gòu)可以很容易的創(chuàng)建出負(fù)載情況的圖標(biāo),并在需要時(shí)發(fā)出警報(bào)。

5. 功能或服務(wù)互相隔離:

小組開發(fā)出來的新功能或服務(wù)之間應(yīng)當(dāng)與現(xiàn)有的功能保持一定的隔離。這非常重要,因?yàn)檫@樣就能讓開發(fā)小組毫無顧忌地以最快的速度開發(fā)產(chǎn)品,同時(shí)把負(fù)面影響控制在最小。為了實(shí)現(xiàn)這樣的需求,我們對(duì)信息傳輸層的速率做了限制,并且通過許可機(jī)制進(jìn)行控制。速度限制有一個(gè)默認(rèn)的閾值,從而運(yùn)行開發(fā)小組可以在一定范圍之內(nèi)調(diào)用其他服務(wù)。如果預(yù)計(jì)到可能發(fā)生流量擁堵,開發(fā)小組之間需要進(jìn)行協(xié)調(diào),以共同處理這個(gè)問題。不同小組開發(fā)的不同功能,分別獨(dú)立地在不同的服務(wù)器或虛擬主機(jī)上運(yùn)行,以避免某個(gè)服務(wù)影響到另外一個(gè)服務(wù)。

四、總結(jié)

正如我一開始所說的,我們的這種架構(gòu)還處于完善過程中,還會(huì)遇到很多有意思的挑戰(zhàn)。我所說的,只是我們目前的觀點(diǎn)。因?yàn)槲覀円恢痹诓粩喔倪M(jìn),所以我的觀點(diǎn)也會(huì)不斷修正和改變。

原文標(biāo)題:Backend infrastructure at Spotify

原文鏈接:https://labs.spotify.com/2013/03/15/backend-infrastructure-at-spotify

版權(quán)聲明
執(zhí)惠本著「干貨、深度、角度、客觀」的原則發(fā)布行業(yè)深度文章。如果您想第一時(shí)間獲取旅游大消費(fèi)行業(yè)重量級(jí)文章或與執(zhí)惠互動(dòng),請(qǐng)?jiān)谖⑿殴娞?hào)中搜索「執(zhí)惠」并添加關(guān)注。歡迎投稿,共同推動(dòng)中國旅游大消費(fèi)產(chǎn)業(yè)鏈升級(jí)。投稿或?qū)で髨?bào)道請(qǐng)發(fā)郵件至執(zhí)惠編輯部郵箱zjz@tripvivid.com,審閱通過后文章將以最快速度發(fā)布并會(huì)附上您的姓名及單位。執(zhí)惠發(fā)布的文章僅代表作者個(gè)人看法,不代表執(zhí)惠觀點(diǎn)。關(guān)于投融資信息,執(zhí)惠旅游會(huì)盡量核實(shí),不為投融資行為做任何背書。執(zhí)惠尊重行業(yè)規(guī)范,轉(zhuǎn)載都注明作者和來源,特別提醒,如果文章轉(zhuǎn)載涉及版權(quán)問題,請(qǐng)您及時(shí)和我們聯(lián)系刪除。執(zhí)惠的原創(chuàng)文章亦歡迎轉(zhuǎn)載,但請(qǐng)務(wù)必注明作者和「來源:執(zhí)惠」,任何不尊重原創(chuàng)的行為都將受到嚴(yán)厲追責(zé)。
本文來源創(chuàng)思舍,版權(quán)歸原作者所有。
發(fā)表評(píng)論
后發(fā)表評(píng)論
最新文章
查看更多
# 熱搜詞 #

新用戶登錄后自動(dòng)創(chuàng)建賬號(hào)

登錄表示你已閱讀并同意《執(zhí)惠用戶協(xié)議》 注冊

找回密碼

注冊賬號(hào)

主站蜘蛛池模板: 正在播放老肥熟妇露脸| 国产中老年妇女精品| 久久久久久久久久国产精品免费 | 国产欧美在线观看不卡| 久久国产劲暴∨内射新川| 鲁一鲁一鲁一鲁一曰综合网 | 亚洲国产精品成人无码区| 国产伦精品免编号公布| 亚洲中文字幕无码av永久| 中国丰满人妻videoshd| 国产精品萌白酱永久在线观看 | 无码日韩精品一区二区人妻| 亚洲国产精品久久艾草| 免费大片黄国产在线观看| 香蕉人人超人人超碰超国产| 国产精品偷伦视频免费观看了 | 天堂在/线资源中文在线| 亚洲日本一区二区三区在线| 亚洲欧美日韩精品久久亚洲区| 久久久中文久久久无码| 真人插b免费视频播放| 亚洲日韩一页精品发布| 少妇内射高潮福利炮| 亚洲人成在线影院| 国产成人无码网站| 亚 洲 视 频 高 清 无 码| 夜夜添狠狠添高潮出水| 中文字幕无码人妻aaa片| 啦啦啦www日本高清免费观看| 国产精品久久久久久无码| 99这里只有精品| 久久精品国产亚洲av麻豆长发| 无遮挡粉嫩小泬久久久久久久 | 国产亚洲av无码av男人的天堂| 三级国产三级在线| 1000部啪啪未满十八勿入下载| 18禁黄污吃奶免费看网站| 精品久久久久久久中文字幕| 丰满少妇被猛男猛烈进入久久 | 肥臀熟女一区二区三区| 久久99国产精品久久99|