當前位置:
首頁 > 知識 > MaxCompute多團隊協同數據開發項目管理最佳實踐

MaxCompute多團隊協同數據開發項目管理最佳實踐

背景:

之前各種數據開發、數據支持、數據挖掘都在同一個項目中,隨著公司規模的不斷壯大,參與大數據開發的部門(團隊)也越來越多,單項目的弊端慢慢顯現出來:

弊端:

  • 許可權管理混亂,任務和數據經常被他人修改、覆蓋

  • 開發人員眾多,水平參差不齊,任務依賴比較混亂,一旦有任務失敗,會導致多條業務線無法正常產出數據

  • 爭搶計算資源,導致重要任務因搶不到資源無法如期完成

  • 由於人員眾多數據許可權設置不規範,常常都是給多個角色許可權的,風險比較高

  • 各團隊成本核算問題,無法準確評估各個團隊所佔用的資源情況

基於以上的種種弊端,經評估決定引入多個項目,先來個整體架構圖

多項目架構圖:

MaxCompute多團隊協同數據開發項目管理最佳實踐

這樣子各個團隊都有自己的項目,自己管理自己的項目,優點就很明顯

優點

  • 通過項目隔離,有效的防止數據和任務被其他團隊修改和刪除等問題

  • 除非是pro項目任務出錯,否則不會影響到其他業務線的任務,最大程度降低各業務間的影響

MaxCompute多團隊協同數據開發項目管理最佳實踐

  • 針對不同的項目可以配置不同的收費策略:例如mining項目,可能只有當做數據挖掘的時候會消耗大量的計算資源,而通常可能一周才會訓練一次;因此按量計費會比較划算,也避免搶佔其他項目任務的資源(計量計費說明參看:https://help.aliyun.com/document_detail/27989.html?spm=5176.doc35455.6.557.7aee7V)

  • 各個項目的資源獨立計費,每個團隊的資源消耗情況如下圖各個項目所使用情況一目了然

  • 各個項目由各自團隊管理,減少項目管理員的工作量,並且可以根據各自團隊的實際情況細分許可權

雖然有以上這些優點,但是同時也會帶來其他的不便

缺點

項目間的數據表,資源,udf共享(主要還是讀操作)

解決方案

現在介紹如果解決跨項目帶來的不便:

MaxCompute有個package的概念,現在我就通過命令行的方式向大家介紹如何通過package來解決跨項目的共享問題:**以pro項目中的Table共享給其他項目:BI為例**(其他項目類似)

操作步驟

  1. 在pro項目中創建1個package (可根據實際情況創建,我這邊是創建3個package:tables_package,functions_package,resources_package) 命令是: use pro ; create package tables_package; (以下以tables_package為例,其他的類似)

  2. 往tables_package中添加數據表(function,資源): add Table ** to package tables_package ; ( add function ** to package function_package ; | add resource ** to package resources_package ;)

  3. 在pro項目中允許其他(BI)項目install package 包: allow project BI to install package tables_package;

  4. 在BI項目中,安裝package tables_package 包: use BI ; install package pro.tables_package ;

  5. 在BI項目中,授權給用戶或角色:use BI ; grant read on package pro.tables_package to user aliyun$odps_test@aliyun.com; (具體授權可以參考MaxCompute官方幫助文檔:https://help.aliyun.com/document_detail/27935.html?spm=5176.doc27807.2.6.D6aL6R)

  6. 在B項目從查詢tables_package所包含的表、資源、UDF: desc package pro.tables_package;

  7. 在B項目中使用pro項目的表,udf: select pro:udf() from pro.table where **** ; udf調用時項目名加冒號pro:udf(),表調用時項目名加點pro.table.

需要注意的是: 第5項這樣是針對特定的人或角色,我們目前的做法是將pro項目下的表和udf以只讀的方式共享給其他的項目的所有成員,因此可以通過Policy授權的方式統一授權只讀許可權給B項目下的所有人(policy相關的官方文檔:),方法如下:

use BI; install package pro.tables_package; put policy /tmp/policy.txt;

/tmp/policy.txt內容如下:

{

"Version": "1",

"Statement": [

{

"Effect": "Allow",

"Principal": "*",

"Action": "odps:Read",

"Resource": [

"acs:odps:*:projects/BI/packages/pro.functions_package"

]

}

]

}

最後在這提出一點可以再改進的地方:

  • 在pro項目中新增表的時候,希望能夠自動add到對應的package里,免得每新建一張表就得再執行add table *** to package *** ;

以上是我公司在使用MaxCompute的一個最佳實踐

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雲棲社區 的精彩文章:

打造雲上代碼交付鏈,CodePipeline實踐分享
重磅!完美融合Kubernetes,Ghostcloud企業級容器雲平台EcOS率先實現雙容器調度
專訪|楊強教授談CCAI、深度學習泡沫與人工智慧入門
擁抱開發過程中的「黑天鵝」

TAG:雲棲社區 |

您可能感興趣

使用Jira software+Structure實現大規模跨團隊項目管理
OpenStack自己的容器管理項目Zun的實踐
Python web開發:Flask的項目配置
如何在 Emacs 中使用 Magit 管理 Git 項目
Karmin更新Aripuan?鋅項目開發
項目評級——RewardMob
700 Manhattan Development項目在Koreatown開工建設
MR內容創作分發平台Minsar入選Magic Leap創作者計劃項目
為刺激VR/AR領域發展 Digital Catapult再次啟動Augmentor項目
開啟第一個WeChat Applet項目開發之旅
Servlet+MyBatis項目轉Spring Cloud微服務,多數據配置修改建議
IBM介紹Project Debater人工智慧辯手項目最新進展
歐貳國際 International O2 Design 建築設計項目部
flask 項目中使用 bootstrapFileInput
Apache頂級項目孵化的故事-CarbonData成長史
Decred 的未來:項目負責人 Jake Yocom-Piatt 獨家專訪
重磅項目—ContentBox
VMware 收編 Serverless OpenFaaS 創始人;戴爾關閉開源項目
Adobe的Aero項目旨在幫助創作者開發AR內容
Github 項目推薦 用PyTorch 實現 OpenNMT