• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
    您當前的位置是:  首頁(yè) > 新聞 > 文章精選 >
     首頁(yè) > 新聞 > 文章精選 >

    容器云多租戶(hù)及權限中心設計

    2017-12-01 09:15:41   作者:汪照輝 王作敬   來(lái)源:開(kāi)源云中文社區   評論:0  點(diǎn)擊:


      容器云平臺逐步進(jìn)入到了企業(yè)生產(chǎn)環(huán)境,但容器云產(chǎn)品化才剛剛起步。很多功能的設計很不完善也很不合理。這篇文章從容器云多租戶(hù)考慮,提出多租戶(hù)可能的需求,從而設計出適用不同場(chǎng)景需求的多租戶(hù)和多租戶(hù)權限中心能力,更能靈活的滿(mǎn)足不同租戶(hù)的需求。
      摘要
      隨著(zhù)容器技術(shù)的火熱,不能免俗,我們也嘗試引入容器技術(shù)搭建私有容器云平臺,然后在容器云的基礎上逐步實(shí)現公司的PaaS平臺,以提供給各團隊應用托管、應用開(kāi)發(fā)、應用運維的能力,同時(shí)希望實(shí)現開(kāi)發(fā)測試環(huán)境一致性,實(shí)現互聯(lián)網(wǎng)應用或類(lèi)互聯(lián)網(wǎng)應用的彈性伸縮,實(shí)現手機應用的灰度發(fā)布,實(shí)現持續集成持續交付的敏捷流程,實(shí)現運維自動(dòng)化等能力。
      我們前后接觸了10多家容器云廠(chǎng)商,從交流過(guò)程中,隨著(zhù)理解的深入,也發(fā)現基本上所有的廠(chǎng)商都是基于開(kāi)源社區版本的功能,很少有自己的想法,難以滿(mǎn)足我們的需求,特別是多租戶(hù)的設計,基本上都是開(kāi)發(fā)人員一廂情愿的想法,沒(méi)有理解多租戶(hù)功能。所以這里我們就拋磚引玉討論下如何看待多租戶(hù)及多租戶(hù)權限訪(fǎng)問(wèn)控制的設計實(shí)現。
      容器云多租戶(hù)
      多租戶(hù),顧名思義,就是很多人來(lái)租用容器云平臺的資源來(lái)實(shí)現自己的應用托管運維需求。那么資源管理與分配就是我們首先需要面對的問(wèn)題。那么容器云中什么是資源?資源該由誰(shuí)來(lái)管理?如何分配?誰(shuí)來(lái)運維這些資源?誰(shuí)來(lái)使用這些資源? 是不是一個(gè)admin就可以眉毛胡子一把抓,干所有事情?
      資源概念很廣,對于容器云平臺來(lái)說(shuō),租戶(hù)是不是一種資源?當然是。但這里我們討論的只是容器云平臺提供的基礎資源:計算資源、存儲資源、網(wǎng)絡(luò )資源。
      有了資源,那么誰(shuí)來(lái)管理運維分配使用這些資源?目前幾乎所有的容器廠(chǎng)商都是由一個(gè)容器平臺管理員來(lái)做所有的事情,這很不合理!
      多租戶(hù)很重要的一點(diǎn)是資源隔離,安全。即便是私有云,也需要考慮相應的安全和業(yè)務(wù)隔離需求,特別做一個(gè)產(chǎn)品時(shí)。
      從多租戶(hù)的角度考慮,租戶(hù)租用容器云平臺的資源來(lái)托管、開(kāi)發(fā)、部署運維自己的應用、服務(wù)。容器云平臺需要提供、維護保障租戶(hù)能正常使用這些資源,同時(shí)給租戶(hù)托管的應用提供服務(wù)注冊、服務(wù)發(fā)現、服務(wù)配置、日志、監控、預警告警、彈性伸縮、負載均衡、安全等能力。我們要明白的是租戶(hù)只是租用這些能力,他并不運維這些能力。租戶(hù)關(guān)注的是其托管的應用和服務(wù),他需要做的是利用平臺提供的這些能力來(lái)無(wú)縫的運維他們的應用和服務(wù)。
      到此,我們就理解清楚了上面的幾個(gè)問(wèn)題。租戶(hù)只是使用/租用資源;容器云平臺管理運維這些資源。租戶(hù)側重于對自由的應用或服務(wù)進(jìn)行運維。資源由租戶(hù)申請,容器云平臺來(lái)分配管理資源。
      我們再來(lái)討論下容器云中多租戶(hù)的可能的案例需求:
      多租戶(hù)可能需求
    • 案例需求一
      不同組織架構支持。租戶(hù)可能是一個(gè)公司、一個(gè)部門(mén)、一個(gè)團隊、一個(gè)項目組或者簡(jiǎn)單一個(gè)人等。一個(gè)公司可能有不同的部門(mén),一個(gè)部門(mén)有子部門(mén),一個(gè)團隊可能有多個(gè)項目組,一個(gè)人可能屬于不同的團隊不同的項目組……有點(diǎn)頭大,是不是?多租戶(hù)中需要支持不同的組織架構形式,并且這個(gè)組織架構是租戶(hù)自己定義管理的。
      圖表 1需要支持的租戶(hù)的不同組織架構需求
    • 案例需求二
      權限定義。容器云為租戶(hù)提供不同的功能,不同功能組件可能面臨著(zhù)不同權限定義的問(wèn)題。對于租戶(hù)來(lái)說(shuō),可以完全控制其下的賬戶(hù)管理,賬戶(hù)管理可能有增刪改查等權限;但對資源,只能申請、使用分配到的資源,或者再分配資源給其他用戶(hù)或角色。而對租戶(hù)自己的應用可能有查詢(xún)、部署、運維(配置更新停止啟動(dòng)等)、刪除等權限。
      圖表 2不同功能不同權限定義需求
    • 案例需求三
      角色定義、授權。對于部署的應用A, 可能的需求是分配一個(gè)用戶(hù)UserA僅 有應用A運維的角色,用戶(hù)UserA只有運維應用A的權限。當然用戶(hù)UserA需要有從鏡像倉庫更新對應的應用鏡像的權限,需要有在日志中心查詢(xún)應用A的日志的權限,在監控告警中心配置應用A監控告警規則的權限等。當然也可以不賦予用戶(hù)A此權限。
      圖表 3角色定義,授權
    • 案例需求四
      多租戶(hù)用戶(hù)登錄。前面提到不同租戶(hù)下可能有同名用戶(hù)或同賬號用戶(hù)。同一用戶(hù)/同一賬號也可能屬于不同的租戶(hù),那么登錄的時(shí)候如何通過(guò)租戶(hù)賬號來(lái)區分?
    • 案例需求五
      對應用不同資源需求的支持。租戶(hù)開(kāi)發(fā)的應用可能需要不同的資源類(lèi)型來(lái)支撐,比如某應用B需要內存優(yōu)化的資源,某應用C需要IO優(yōu)化和高CPU計算的資源,應用D可能只通用資源就可以,應用E需要GPU資源,等等。這就需要根據不同的應用需求,提供不同的資源支撐。
    • 案例需求六
      充分利用現有資源。我們知道容器不占用很多資源,那么為充分有效利用可用的資源,公司內可能有虛擬化資源,也可能有一些淘汰的物理機。是不是可以利用起來(lái)部署容器?這些設備配置各異,即便是新購買(mǎi)主機,不同批次配置也可能不一樣,這些資源如何能更好的管理和使用?
    • 案例需求七
      都把容器列到菜單最顯著(zhù)位置,生怕沒(méi)人知道他們采用了容器技術(shù)。但對于租戶(hù)來(lái)說(shuō)關(guān)心的重點(diǎn)應該是應用,用不用容器,用什么容器,應用部署在哪臺主機哪個(gè)集群都應該是透明的,都不重要。只要保證資源有效可用,在資源異常情況下能順利實(shí)現應用遷移即可。
      回到應用。這里的應用我們指業(yè)務(wù)應用。一個(gè)業(yè)務(wù)應用可以看作是一個(gè)系統,也可以是系統的一個(gè)模塊,或者組件。一個(gè)業(yè)務(wù)應用可能由多個(gè)服務(wù)組成,這里就涉及到了服務(wù)的編排。每個(gè)服務(wù)可能需要部署一到多個(gè)服務(wù)實(shí)例,每個(gè)服務(wù)實(shí)例運行在Pods或容器中。Pods或容器和主機、存儲、網(wǎng)絡(luò )等資源相關(guān),主機上有CPU、Memory等資源。我們希望我們運維一個(gè)應用時(shí),不同層次的對象可以有效平滑的關(guān)聯(lián)起來(lái),就像一個(gè)人,有骨架,有血肉,是一個(gè)整體。而不是點(diǎn)這里一下,再點(diǎn)那里一下,跳來(lái)跳去。
      圖表 4應用管理
    • 案例需求八
      同時(shí)業(yè)務(wù)服務(wù)涉及到鏡像倉庫、服務(wù)的注冊發(fā)現、服務(wù)配置、服務(wù)部署策略、服務(wù)運行監控、服務(wù)彈性伸縮、服務(wù)負載均衡、異常遷移、自動(dòng)恢復等。每個(gè)租戶(hù)登錄時(shí)可能只希望看到鏡像倉庫、日志、監控告警、配置等中自己相關(guān)的信息,不希望其他租戶(hù)看到自己的信息。
    • 案例需求九
      多租戶(hù)還有重要的一點(diǎn)就是安全和資源隔離。租戶(hù)用戶(hù)不需要連接登錄遠程容器云資源主機或容器引擎。我們說(shuō)了,容器資源由容器平臺來(lái)運維,租戶(hù)只是使用資源。不管私有云或公有云,理念要一致,不能隨意而為。否則安全就無(wú)法保證。
      基于上面提到的需求,我們看下怎么實(shí)現。看起來(lái)挺復雜,其實(shí)也很簡(jiǎn)單。只有想不到,沒(méi)有做不到。
      多租戶(hù)和權限中心實(shí)現
      從目前國內各廠(chǎng)商的實(shí)現來(lái)看,沒(méi)有能滿(mǎn)足以上需求的, 也沒(méi)有廠(chǎng)商認真考慮上面的問(wèn)題。
      多租戶(hù)設計,需要考慮到租戶(hù)的權限訪(fǎng)問(wèn)控制,這涉及到容器云平臺整體的權限控制架構,所以這里我們提出了一個(gè)權限中心的概念,實(shí)現一個(gè)權限中心,由權限中心來(lái)實(shí)現對容器云各組件及各功能的動(dòng)態(tài)控制,以適應靈活的不同的場(chǎng)景需求?
      一、 組織結構的實(shí)現可采用類(lèi)似論壇的層次結構方法,無(wú)論多少層多少級,只標注其父結點(diǎn)ID,樹(shù)型結構遍歷可以獲得所有的結點(diǎn)。這也是我們下面權限訪(fǎng)問(wèn)控制實(shí)現的基礎。
      二、由于每項功能可以提供不同的操作,所以定義權限時(shí)很難用統一的權限名稱(chēng)來(lái)定義,這里可以借助Oracle數據庫的權限定義,比如應用管理,有部署、查看、運維、刪除等權限;租戶(hù)資源管理,有申請、使用、再分配等權限。
      三、角色定義,就需要基于用戶(hù)及用戶(hù)組織結構,權限和容器云提供給租戶(hù)的功能列表來(lái)實(shí)現。可以采用Oracle 數據庫的用戶(hù)角色權限定義方式來(lái)定義。容器云平臺初始化時(shí)可以預定義角色,比如租戶(hù)管理員角色、應用管理員角色等。
      四、用戶(hù)登錄我們借用Windows domain的概念,一個(gè)租戶(hù)就是一個(gè)domain。租戶(hù)賬號就是domain name。 登錄時(shí)指定domainName\useraccount的方式登錄。根據定義的角色權限展示不同用戶(hù)視圖。以租戶(hù)賬號登錄時(shí),可以不用指定domain登錄。 租戶(hù)/用戶(hù)賬號是有效的Email Address。租戶(hù)賬號是超級用戶(hù)賬號。
      五、資源管理需要容器云平臺來(lái)支撐,簡(jiǎn)單的方式是通過(guò)標簽來(lái)進(jìn)行資源分類(lèi)。 一方面可以方便的充分有效的利用公司內資源,另一方面也有針對性的對應用不同資源需求提供支持。再者也可以簡(jiǎn)單實(shí)現資源隔離。
      這樣組織結構可支持不同的需求變化,每用戶(hù)(人員)有從屬于租戶(hù)(domain)下的自己的賬號。租戶(hù)可定義不同的角色,角色賦予用戶(hù),用戶(hù)可有多種角色、角色權限可繼承。用戶(hù)使用資源重點(diǎn)關(guān)注應用的運維。
      之所以把權限訪(fǎng)問(wèn)控制提取出來(lái)實(shí)現一個(gè)統一的權限中心組件,是因為整個(gè)容器云平臺,各個(gè)組件都面臨著(zhù)權限訪(fǎng)問(wèn)控制需求。從云計算的理念來(lái)說(shuō),松耦合,插件式的組件或模塊設計更靈活和適用快速變化的需求。對一個(gè)客戶(hù)來(lái)說(shuō),一個(gè)組件可能需要也可能不需要,每個(gè)組件都可以以插拔的方式來(lái)控制,根據客戶(hù)需求來(lái)部署相應的組件,實(shí)現相應的權限訪(fǎng)問(wèn)控制,將會(huì )更靈活和便利。
    【免責聲明】本文僅代表作者本人觀(guān)點(diǎn),與CTI論壇無(wú)關(guān)。CTI論壇對文中陳述、觀(guān)點(diǎn)判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。

    專(zhuān)題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 宿迁市| 延川县| 千阳县| 卫辉市| 营山县| 和政县| 象山县| 门源| 长子县| 易门县| 荥阳市| 贺兰县| 临清市| 阿克苏市| 独山县| 东宁县| 孝感市| 玛纳斯县| 望奎县| 监利县| 梓潼县| 博白县| 克拉玛依市| 堆龙德庆县| 江津市| 华坪县| 江油市| 开封县| 平遥县| 荃湾区| 桂平市| 青浦区| 双江| 富民县| 通榆县| 拜城县| 汨罗市| 唐海县| 太白县| 兴隆县| 阳东县| http://444 http://444 http://444 http://444 http://444 http://444