Talk with Drake 內部技術分享會因為眾多原因 (專案結案;主持人中了新冠病毒;台灣人工智慧年會) 而停了三週,終於在十一月的最後一個週五回歸。這一回,由什麼都能聊,默默在開發團隊的背後扮演著 DevOps Engineer 的 Paul-Chenyu Yang 來分享。Paul 將從 CI/CD 的角度,帶著我們一起追溯在 KKStream 的發展歷史,一起來了解我們完成了什麼,優化了哪些開發流程,以及接下來想要朝向的方向!
講題:The Past, the Present, and the Future through CI/CD。
他先以 RedHat 給出的 CI/CD definition 開場,接著再引用了 GitLab 的 10 Reasons why your business needs CI/CD,簡簡單單的二頁,雖然停留時間只有幾分鐘,但就像等著被反覆查閱的一章篇幅似的,第一時間就提供了參考資料供我們日後查閱。
接著,我們跟著他的帶領,進入精神時光屋,從幾乎最早的 Jenkins 開始,依某種先後順序 (但又不全然是時間順序) 帶出過往逐一實現的階段,包括 Infrastructure as Service (MengCheng Wei 古宣佑 Cheyi Lin),GitLab CI/CD 的導入使用與整合,git commit 與 Jira ticket、deployment / release notes 整合、Slack notifications、整進 all-in K8S 的專案 (all are continuously done by lots of KKStreamers’ contributions) …等。
這讓我想到 Dan Maas 曾經提到過,在電影特效或是電腦動畫產業中,有個研究在探討:“要怎麼讓整個工作室的產能可以提高?“ 譬如說,在有很多方面都可以改善並且優化的情況下,要先做哪些事,可以單一個特效工作室,從一年接兩部大作的特效,變成可以一年接四部大作的團隊?
2014,位在紐西蘭的著名特效公司 Wētā FX (Weta Digital) 的 Dr. J.P. Lewis 與團隊還曾發表過一篇有趣的研究 “Can we solve the pipeline problem?"。這篇研究論文的摘要是這麼寫的:在特效產業,其中一個非常重要而難解的問題是 特效製程 (pipeline)。Pipeline 幾乎決定了整個工作室的產能,它需要被持續開發與精進,而且可以說永遠都有可以優化的方向。但很遺憾的,Pipeline 它也是整個工作室團隊最不想要改變的東西…
A list of the most important unsolved problems in VFX production should include the word “pipeline”. Pipelines are a major source of efficiency, but they require ongoing development, and are seemingly never finished. They also resist change. Is it possible to automatically generate pipelines given desired inputs and outputs or design one “universal” pipeline that can do everything with no further modification ever needed? We present similarities between pipelines and programs, and recall metamathematical statements which show that the answer to the above question is negative. However, new approximate solutions may someday mitigate to a large extent this negative situation.
回來看 CI/CD,它一直存在於軟體開發的流程中,過去也許被定義為 Software Engineering,後來被專業化為更多不同面向的方法論與思維,而 CI/CD 是其中的一項。未來,它會再次被重新定義,被給與不一樣的命名,但就如同 Redhat 對它的一個定義:
“a method to frequently deliver apps to customers by introducing automation into the stages of app development.”
2022-11-25 at KKStream Taipei