背景介紹

我曾介紹過一些跟 DevOps 相關的工具和平台,看起來各種工具鏈可以隨心所欲的搭配組合,但在設計企業客戶的 DevOps 解決方案時,我必須考慮他們的工具鏈和管理模式,以制定可實施的方案,對於大多數客戶而言,他們並不知道如何通過自己手中的資源更好的實施 DevOps。

這一次,我在實施 Atlassian DevOps 解決方案的時候,設計了一些定制化的 Bamboo 自動化任務,然而,隨著客戶對 DevOps 場景的需求變更,以及自動化任務數量的增加,定制任務的修改變得繁瑣。我意識到需要一個更高效的方法來處理這些定制任務,並簡化配置過程。

image

多思考一步的解決方案

為了解決這個問題,我開始考慮將這些任務和任務集設計為自定義任務模板。

這樣做不僅簡化了新任務的配置過程,還提高了配置的可讀性。最重要的是,通過升級插件應用,我可以同時更新所有計劃任務,實現場景化的定制。

image

探索後放棄

在一年前,我已經嘗試開發這個 Bamboo 插件應用,以便更便利地實施 DevOps 解決方案。然而,儘管我反復研讀官方文檔,但除了使用 Atlassian SDK 生成 “hello world” 的示例應用之外,我始終無法開發出自己的插件應用。我意識到插件開發並非易事,文檔也更適合有經驗的開發者。

需要的知識點太多了:

  • Java
  • Maven
  • Atlassian SDK
  • Bamboo 插件框架
  • Bamboo 插件 API
  • ……

image

因此,很多人尚未開始,就如我一般,深陷探索大門之外的知識沼澤。

ChatGPT 初體驗再踏征程

隨著 OpenAI 推出 ChatGPT,並與其交互了三個多月,我發現它在代碼編寫方面確實有著令人驚喜的進步。這使我重新振作起來,決定再次挑戰插件開發。與一年前相比,此時我已經明確了插件需求,使其更加可見和可觸摸。

image

在中國,對 ChatGPT 全是正面報道,把它渲染得無所不能。但即使這樣,起初我對 ChatGPT 開發插件的能力依舊有所懷疑,但在嘗試與它深度交流後,發現它給出的回復準確且聚焦,比起使用搜索引擎更加方便快捷。儘管有時它會提示我查看官方文檔,但它已經提煉出了要點,幫助我更好地理解官方教程。最終,通過向 ChatGPT 提出目標性問題,我得到了一個相關的演示。

憑借我之前的積累,眼看著一堆堆代碼逐行呈現在屏幕上,心裡驚嘆 —— 這次有戲。

ChatGPT 真的會編程嗎

儘管 ChatGPT 在編寫代碼方面給了我幫助,但實際上並不意味著一切都能順利進行。我遇到了很多編譯錯誤,花費了很長時間與 ChatGPT 探討解決方案。最終我成功構建並將自定義腳本任務部署到 Bamboo 上,儘管結果沒有按預期呈現,但這次嘗試讓我知道我終於站到了應用開發的門口。

image

如此看來,ChatGPT 會編程不假,但,並非粘貼即用,特別是這種專業領域的編程。然而,我相信,隨著時間的推移,技術終究會進一步突破,最終自然語言描述即可生成插件應用。

AI 輔助下撬開了應用開發的大門

我重新審視了任務設計,提出了一個大膽的想法,把 Bamboo 內置的自定義腳本任務進行封裝,本質上是執行一個自定義的腳本任務。這意味著我只要跑通一次設計,我就可以用同樣的方式實現所有的定制任務。

這種思路使我的提示更加精準,目標更加明確。我繞開了插件開發本身的複雜性,專注於開發一個執行硬編碼 Shell 腳本的 Bamboo 內置自定義腳本任務插件。通過不斷嘗試和迭代,我最終在 Bamboo 上成功執行了自己定義的插件任務 —— echo "hello world"

之後就是再根據官方文檔和與 ChatGPT 交流實現了向自定義腳本裡傳入參數,就這樣不斷嘗試,不斷迭代,整整三天的時間,終於達到了最低交付的標準,它讓我的交付變得非常的簡介。相信今後,這個插件對我們項目實施來說,也會越來越好用。

image

One more thing

如果僅止步於此,那將浪費 ChatGPT 的價值。作為完整的插件開發流程的一部分,最後一個重要步驟是將插件發布到應用市場。這需要準備的信息超出了普通工程師的能力範圍,至少需要以下內容:

  • 供應商賬戶信息
  • 應用名稱(60字以內)
  • 總結性標語(130字以內)
  • 摘要(250字以內)
  • 概覽頁面的圖片和功能摘要
  • 數據安全和隱私聲明(包含應用如何使用和保護用戶數據的信息)
  • 應用使用說明文檔或食品

image

這些工作聽起來相當繁瑣,但在 ChatGPT 的幫助下,這一切變得更加高效。我與 ChatGPT 的交互幫助我生成了所需的文本內容,同時還能提供市場銷售技巧和指導。最終,我通過 ChatGPT 的幫助完成了應用的提交。

如果提交一切順利,應用市場會自動創建一個申請工單。

於 3 月 20 日開始的第一次提交並非十分順利,由於經驗不足,我缺失了一些資料,以至於近一個月後我與官方取得聯繫,經過幾輪交涉,在 4 月 26 日我再一次提交了新版本的發布申請,最終於 5 月 2 日正式發布。

通過 ChatGPT 的幫助,我成為了全球 170 個 Bamboo 插件的開發者之一。

image

寫在最後

插件開發曾讓我放棄,但借助ChatGPT,我再次踏上了這條道路。儘管它無法直接解決問題,但它像一個顧問團隊,儘管他們可能沒有遇到過我的問題,但他們通過自己的經驗和實力,總能找到解決方案。

我們的客戶往往面臨的不僅是技術難題,更是對場景和流程的願景。我的工作是幫助他們逐步實現並細化這些願景,讓他們逐漸具備構建自己願景的能力。

未來,我希望能為客戶提供更廣闊的思路,為他們帶來更多可能性。我的首個應用將隨著場景的增多而增強,而這絕不會是我最後一個應用。