簡談企業Power BI CI/CD實施框架

微軟技術棧發表於2022-06-27

image.png

概述

在企業場景中,BI報表更多地作為一項IT服務,而絕不僅是報表工具而已。同理,正如我此前多次闡明,Power BI是一套服務,也絕不僅是Power BI Desktop,它的開發,測試與部署,都需要得到有效的管理。因而,無論是基於合規性,還是協作效率等方面來考量,企業實施PBI持續整合與部署,百利而無一害。

然而,當前國內外的大小企業,已經成功實施PBI CI/CD的案例並不多,我雖無法完全瞭解他們的做法,但基於自身的經驗和理解,我提出了兩種實施思路,供讀者參考。
下文我會通過流程圖和一些截圖來幫助讀者理解這種思路,但具體的技術操作此處不會STEP-BY-STEP, 因為官網文件有的,自己輕易能摸索出來的,以及一些我在此前部落格中講過的,沒有在這裡重複的必要。

方案A

這兩種方案並不只是理論,他們在實際的技術實施上都是行得通的。其中第一種方案(Plan A)是我個人比較推薦的方案,它使用OneDrive for business做版本控制,用Power Automate做持續部署,具體如下:

這種方案無論是對於擁有單個開發團隊的中小型組織,還是多個開發團隊的大型企業,都是適用的。對於持續整合的部分,其做法即是為開發團隊建立一個共享OneDrive,在該OneDrive下可以建立不同的folder以供不同的PBI專案組使用,並將其配置到用於DEV環境的工作區:

在該模式下,開發者無需將報表部署到工作區,而只需要將其上傳到OneDrive即可,其好處如下:

  1. 使用OneDrive託管DEV環境中的PBI報表檔案,任何版本變動均與該工作區同步
  2. 有利於PBI開發團隊的管理,分工,以及版本協同
  3. 充分利用OneDrive本身具有的版本回退的功能特性,輕鬆實現PBI檔案版本控制

此外,讀者也不必擔心的是,此模式下PBI資料集與資料來源的連線以及重新整理是不受影響的,此外,由於我們僅需為DEV工作區配置OneDrive,故而待其後續釋出到UAT或生產環境後,OneDrive中的任何版本變動都只會影響DEV環境,不會影響UAT和生產。

持續部署的部分,我們恰好可以利用Power Automate的OneDrive或Sharepoint的觸發器,這樣,我們可以實現每當一個新的版本上傳到OneDrive後,自動觸發後續的工作流:

因此在工作流的後續部分,我們可以呼叫PBI REST API對Power BI內容進行操作,比如實施部署並重新整理對應的資料集:

注:關於利用Power Automate呼叫Power BI REST API,可參考此文
https://d-bi.gitee.io/pbi-res...

方案B

Plan B相對而言則略麻煩一點,它使用GitHub或Bitbucket等類似平臺 (下文以GitHub代稱) 作為PBI檔案的託管平臺與版本管理工具,而使用Azure DevOps或Jenkins這種專用的 CI/CD 工具(下文以DevOps平臺統稱)進行持續部署。具體如下:

在該模式下,開發者將PBI檔案Push到GitHub,並在DevOps平臺建立管道執行具體的部署程式碼來實現CI/CD,其優勢如下:

  1. 能夠利用DevOps平臺豐富的CI/CD功能
  2. 能夠與企業其他型別的開發專案在同一個CI/CD體系下進行管理
  3. 能夠與企業其他型別的CI/CD專案(比如一些ETL專案)進行整合

但相比Plan A不足的點在於目前GitHub不能直接配置到Power BI工作區,無法像方案A那樣與DEV環境實時同步,因此多了一個部署到DEV的環節;另一方面則是該方案實施起來要稍微麻煩些。下圖是我使用Jenkins實現方案B的部署成功截圖 (我在使用Jenkins的測試過程中確實費了一點周折,但具體步驟不在本文範疇內,若有機會另行贅訴)。

相比之下,使用Azure DevOps做部署的過程則順利得多。下圖T1和T2是我分別用兩種不同方法實現Power BI自動部署的成功記錄,實際情況下,每當開發者將新版本的PBIX檔案推送到GitHub,則DevOps管道自動被觸發,將PBIX自動部署到PBI工作區並完成資料重新整理。

總 結

通常情況下,我更傾向於方案A的模式,它方便,簡明,高效,易於管理。但如果PBI的整合與部署需要符合企業級框架下統一的部署規範,或者需要與ETL等其他專案進行整合的需要,那麼方案B或許是唯一選擇。此外,IT團隊實際實施此方案時,要考慮的方面還很多,比如報錯處理,版本回退,資料集與資料流間的依賴關係和部署次序等等問題,而本文旨在拋磚引玉,具體的方案則一定是需要團隊依據實際情況做相應調整和完善。


微軟最有價值專家(MVP)


微軟最有價值專家是微軟公司授予第三方技術專業人士的一個全球獎項。29年來,世界各地的技術社群領導者,因其線上上和線下的技術社群中分享專業知識和經驗而獲得此獎項。

MVP是經過嚴格挑選的專家團隊,他們代表著技術最精湛且最具智慧的人,是對社群投入極大的熱情並樂於助人的專家。MVP致力於通過演講、論壇問答、建立網站、撰寫部落格、分享視訊、開源專案、組織會議等方式來幫助他人,並最大程度地幫助微軟技術社群使用者使用 Microsoft 技術。

更多詳情請登入官方網站:
https://mvp.microsoft.com/zh-cn


長按識別二維碼
關注微軟中國MSDN

點選加入微軟MVP~

相關文章