前言
“君子和而不同,小人同而不和。”-- 孔子
我們認為,對於任何一個有研發訴求的企業,賬號體系都是需要儘早考慮、慎重對待,且不應該隨意變更的。
問題型別
研發團隊在設計賬號體系和管理賬號的時候經常會遇到各種問題,比如:
問題1:
業務在變化,組織也要隨時調整,導致與之相應的賬號許可權也要頻繁調整:
在企業業務高速發展的大背景下,為了適應業務變化,企業的組織架構經常會進行調整,研發人員也會在不同的業務中來回切換,甚至在不同的業務中會承擔不同的角色。因此,設計賬號體系的時候,需要考慮賬號許可權能靈活調整、即時生效,避免因為許可權缺失阻礙研發活動,或是因為許可權氾濫引起安全風險。
問題2:
研發活動中存在多種角色,一個賬號也包含多個角色,賬號與角色的對應關係不好維護:
現代研發體系下,一次需求交付涉及多個角色,比如產品經理、後端開發、前端開發、UED、測試、應用運維等,不同的角色有不同的關注檢視和許可權,而同一個賬號又會承擔多個角色,比如同時承擔後端開發與應用運維的工作。因此,賬號與角色的對應關係是多對多,且會隨著業務變化的,如何有效維護,也是一個需要考慮的問題。
問題3:
不同的工具有各自的賬號系統,需要分別對接,且經常需要維護以適應組織調整和員工變化:
為了保證業務的高效演進,企業需要購買和自研大量的工具和系統,為了讓這些系統協同工作,需要進行賬號體系的對接,並且保證組織的調整和人員的變化,能及時同步到這些系統上,避免資料不一致帶來的協作問題。因此,企業的賬號體系需要做到唯一來源,標準化接入。
我們推薦的企業賬號體系應該滿足如下幾點要求:
- 企業的所有角色都有唯一的賬號管理來源
- 企業的各個系統(包括研發系統與一般業務系統)的賬號統一且互通
- 企業可以管理和維護自己的組織架構,並能根據組織架構在各個系統中管理許可權
- 企業可以定義和管理研發活動中的各種角色,為每種角色定義許可權
- 企業可以透過為賬號配置角色來控制賬號許可權
- 企業的各類研發資產都能納入許可權管理,並能被角色管理
我們基於阿里雲的產品,來具體看一下如何建立符合上述要求的企業賬號體系。
以釘釘為中心的賬號體系
對於沒有過多歷史包袱,或者已經在使用釘釘的企業,我們推薦以釘釘為中心的賬號體系。
在這一賬號體系下,企業所有成員(包括研發團隊與業務團隊)都在釘釘上建立和管理組織架構。研發成員透過釘釘認證登入系統,獲取成員在系統中的角色資訊,根據所屬角色的許可權進行研發活動。
因此,從實施的角度,企業基於釘釘建立研發賬號體系包含4個步驟:
1.企業基於釘釘管理組織結構
第一步是註冊釘釘並建立或關聯已有企業,接下來在釘釘中管理企業的組織結構,包括人員和團隊資訊等,請參考釘釘企業通訊錄管理,這裡不作贅述。釘釘賬號將成為企業成員的唯一認證來源,企業的各個系統都可以和釘釘打通,請參考釘釘應用接入指南完成企業各個系統的接入。
至此,對於研發團隊來說,主要的兩個訴求還都無法滿足:
- 授權和管理雲上的資源(如ECS、ACK等)
- 打通整個研發工具鏈
為了解決這兩個問題,我們需要將釘釘與雲效整合起來,透過整合,可以實現:
- 同步組織架構和成員到雲效中
- 透過釘釘訊息進行研發協作
- 整合釘釘文件到雲效中
- 使用釘釘中的雲效小程式
2.雲效繫結企業釘釘
整合的第一步是雲效企業的管理員需要將雲效繫結企業釘釘,完成組織架構和成員同步。詳細操作步驟可以檢視企業繫結-完成組織架構和成員同步。這裡把主要步驟說明一下。
- 企業釘釘管理員在釘釘中安裝雲效應用,選擇正確的組織和使用範圍(是全員還是某個團隊)。
- 雲效企業管理員在釘釘的雲效應用中繫結釘釘企業和雲效企業,管理員如果未繫結阿里雲賬號的話,需要先完成
- 員工釘釘賬號管理阿里雲賬號
操作再返回繼續。管理員在釘釘雲效應用中完成雲效企業繫結,如下圖。
3.員工釘釘賬號關聯阿里雲賬號(主賬號、RAM賬號)
阿里雲有自己的賬號體系,而這些賬號又跟雲上資源的操作許可權相關,為了保證許可權的有效隔離,雲效要求員工使用釘釘賬號認證前先繫結阿里雲賬號。
阿里雲賬號分為主賬號和RAM賬號,關於RAM可以檢視什麼是訪問控制。如果不確定,對於企業員工,我們建議選擇RAM賬號。
完成繫結後,員工就可以透過釘釘掃碼登入雲效了。
4. 配置雲效企業角色和角色許可權
我們推薦按角色管理許可權,將人與角色分開,為不同的角色定義不同的許可權。
4.1,定義企業全域性角色,預設企業角色分為:擁有者、管理員、成員和外部成員,可以按照自身特點新增和調整角色許可權。
4.2,定義應用交付平臺 AppStack的企業角色許可權。所看到的企業角色都來自於企業全域性角色,但是可以為其定義應用交付平臺特有的全域性許可權,見下圖。注意,這裡的許可權是針對於所有應用的。
4.3,定義應用交付平臺 AppStack的應用角色許可權,這些許可權只針對某個具體應用。AppStack定義了5種應用角色:應用擁有者、應用負責人、開發、測試和運維,可以根據需要調整每種角色的許可權。
4.4,為每個應用成員配置對應的角色。
總結
在現代組織中,業務相關的研發人員都有兩個維度的角色:一是組織職能角色,一是業務角色。其中組織職能角色是相對穩定的,而業務角色是在不斷變化的。我們推薦以釘釘為核心管理組織賬號和組織架構,將雲效與釘釘繫結,做到統一登入、統一管理。同時,定義不同的角色,並按照應用維度為不同的人員配置對應的角色,做到按應用維護角色、按角色管理許可權。
延伸內容
以現有內部賬號系統為中心的賬號體系:
很多企業,雖然獨立的軟體開發團隊建立不久,但企業內部IT系統已經運作很長時間了,有自己的賬號管理體系(如LDAP),或者因為網路安全等原因,許可權認證必須在自有網路中完成。這種情況下,直接切換到釘釘這樣的系統的成本比較高,而企業又希望與雲上研發的工具和資源打通。對此,我們建議配合阿里雲iDaaS一起使用,具體方案詳見iDaaS的說明,本文不再贅述。
參考
關於我們
瞭解更多關於雲效DevOps的最新動態,可微信搜尋關注【雲效】公眾號;
福利:公眾號後臺回覆【指南】,可獲得《阿里巴巴DevOps實踐指南》&《10倍研發效能提升案例集》;
看完覺得對您有所幫助別忘記點贊、收藏和關注呦;