DevOps建設之基於釘釘OA審批流的自動化上線

2022-06-30 15:24:10 字數 3542 閱讀 6812

目錄2、總體實現思路

3、流程描述

4、關鍵實現

5、小結

「devops」一詞是由英文 development(開發)和 operations (運維)組合而成,但它所代表的理念和實踐要比這廣闊的多。devops 涵蓋了安全、協作方式、資料分析等許多方面。但它是什麼呢?

devops 強調通過一系列手段來實現既快又穩的工作流程,使每個想法(比如乙個新的軟體功能,乙個功能增強請求或者乙個 bug 修復)在從開發到生產環境部署的整個流程中,都能不斷地為使用者帶來價值。這種方式需要開發團隊和運維團隊密切交流、高效協作並且彼此體諒。此外,devops 還要能夠方便擴充套件,靈活部署。有了 devops,需求最迫切的工作就能通過自助服務和自動化得到解決;通常在標準開發環境編寫**的開發人員也可與 it 運維人員緊密合作,加速軟體的構建、測試和發布,同時保障開發成果的穩定可靠。

當然,這意味著更改**會更頻繁,基礎架構的使用也會更靈活。所以傳統的管理策略無法滿足這種需求。您也需要應勢而變,贏得先機。

devops是乙個迴圈遞進的過程。通過文化的指引,打造符合當前組織和文化的相關工具鏈,固化協作的規範、流程;然後隨著工具落地、實踐推廣,促使組織更快地發展和改進產品,從而進一步加強協作文化和方式。

引文參考:

隨著devops在公司的不斷實踐落地,基於環境現狀,目前已經發展成較為成熟和穩定的工作流。負責devops建設的團隊目前的工作是內部ops平台開發和不斷發現挖掘內部人員的需求以進一步優化。得益於容器以及k8s相關技術使得業務穩定性提高,基於jenkins pipeline流水線的任務構建及各類環境的部署發布也變得容易,prod生產環境和pre預生產環境的上線發版還是由測試或運維人員負責在平台進行點選和確認發布。

可以參考我之前的文章jenkinssharelibrary實踐之自定義釘釘通知器

以釘釘為例,釘釘的oa審批是乙個常用的工具,其自帶的應用場景包含請假、調休、加班、用印申請等等。

由於對協作軟體釘釘的「重度依賴」,加上內部運維相關平台中還沒有成熟的審核上線機制,因此作為乙個devops er,將釘釘oa審批與devops工作流中的生產上線流程進行結合是我很想做的。

近期通過對釘釘oa審批功能的調研,發現釘釘產品大約在202012月上線了叫做系統整合的功能,下面是來自釘釘關於系統整合的介紹

系統整合是新型的雲集成服務,利用統一的資料模型和編排引擎,通過配置化快速實現釘釘與外部系統的整合對接,將企業不同系統整合到統一平台,享受釘釘高效移動辦公體驗。

借助釘釘系統整合服務,企業可以打通釘釘審批與釘釘其他官方應用、saas應用以及企業內部應用,目前系統整合示例包含智慧型人事、用友u8、金蝶、sap等。

簡單來說,釘釘oa給我們開放了乙個系統整合(也叫做聯結器)的功能,這個功能能夠實現釘釘oa審批單與釘釘外部系統的對接,從而實現不同系統間的資料整合,進一步提高辦公效率。

經過調研,這個功能是收費的(儘管是收費,但相比花費在雲廠商的伺服器費用只能算是九牛一毛),這個功能叫做oa審批高階版,可以在正式使用前以企業身份申請短期試用。

借助釘釘oa自定義審批,讓提交人例如測試人員發起上線審批,將相關上線資訊填寫在審批單中,然後提交到審批人,例如部門領導、專案經理等人員進行審批,審批通過後由程式自動執行上線發版操作。對於相關上線的資訊,當然還是要以直觀的、能夠進行選擇的更為友好,因此審批單中的部分上線資訊需要借助呼叫外部介面生成。

這裡以jenkins工具為例,前提條件是我們已經有了穩定和對業務環境來說較為完善的發版上線流水線(其中包含各種常用引數化構建、發布型別等等),jenkins的相關api中,restful風格的api最為通用。通過api相關方法獲取jenkins上的job資訊、job的構建引數相關資訊、提供到oa審批單讓使用者進行選擇,這就和在jenkins上進行引數化構建是一樣的。

按照上面的泳道圖簡要進行描述:

首先,重要的一點是要向管理員申請企業釘釘工作台oa模組的子管理員操作許可權。釘釘後台登入介面如下

有了許可權之後,申請oa高階版的試用,試用開通後,就能進入到釘釘oa後台建立聯結器了

系統整合分為聯結器和整合流兩種,兩者相比後者能定製一些更為複雜的邏輯。對於本文的場景,選擇聯結器即可

聯結器的建立流程是先輸入聯結器名稱和描述建立聯結器,然後基於建立的聯結器建立動作。當然,也可以給每個動作建立單獨的聯結器,每個聯結器下僅包含乙個動作。

根據上面的泳道圖,整個流程涉及到了兩次聯結器的資料互動。其實我這裡是三次,表單互動一次,關聯表單一次,最終觸發一次

聯結器的建立介面,以第乙個聯結器為例,我這裡叫做「載入專案名稱」,需要填寫鑑權方式、介面url、加密金鑰、請求方式、入參引數、出參引數

聯結器建立好後,建立oa審批表單,通過圖形介面視覺化低**模式進行建立,如下所示

審批單表單設計完成後,需要設計流程設計,即審批流程,我這裡有乙個表單校驗功能是讓使用者確認是否有資料庫變更,只有在沒有資料庫變更或者已完成變更的情況下,發起人才能提交審批,如下所示

(這裡也許是所有人關注的重點)由於jenkinsapi介面提供的只是一些通用的介面方法,而釘釘oa審批單由僅限於提交資料發起審批,所以需要開發乙個介面程式來處理,介面程式是釘釘oa審批和jenkins伺服器之間的橋梁,本文記錄的實踐是以django rest framework為基礎技術框架實現的,基於我的應用場景,目前此介面包含的主要核心功能如下:

這裡有個小坑,自動觸發jenkins流水線執行並不難,但我的流水線之前定義了在構建後還需要接收使用者input的步驟,想要自動繞過或自動input需要一點小技巧,這個下次再聊

由於篇幅有限,這裡也就不多展開,後面有機會的話會將此介面程式開源,這裡僅僅進行介紹和簡要分析。

到這裡,基於釘釘oa審批流完成自動化上線發布操作就完成了,帶來的好處多多:統一了相關人員常用的協作平台、在正常情況下完全無需運維人員介入,極大提高了工作效率,縮短了上線時間。

對接釘釘審批 基於釘釘的合同管理軟體

釘釘是當前企業使用率非常高的辦公軟體,基於釘釘的合同管理軟體當前並不多,天魚軟體合同助手提供了釘釘e應用版本的移動端,可以給企業使用者提供方便的釘釘移動端辦公體驗,並且科技將釘釘的提醒待辦審批等功能整合在合同管理軟體中.合同助手是一款功能強大的合同管理軟體,主要的功能包括 1.合同的資訊,文件管理。...

點晴OA和釘釘有何不同?

點晴oa和釘釘有何不同?按道理說,這個話題最好由第三方來談論,廠商公開評價競爭對手是一項忌諱,貌似也難保客觀,不過今天世界的透明度和過去完全不同,即使你不說,也攔不住使用者的主動發現。廠商把自己吹捧得再好,也並不能愚弄使用者。而且,這也是乙個愈發多元的世界,沒有任何一款產品能夠全面滿足所有使用者的需...

zabbix之告警雜談 釘釘告警

一 註冊釘釘企業號,並找到傳送資訊最重要的三個引數corpid corpsecret agentid 2.檢視corpid corpsecret 在釘釘電腦版上,左下角 管理 登入管理平台 輸入管理密碼 在 企業應用 工作台設定 中可以檢視corpid和corpsecret 3.新增微應用,成功後可...