"As Code"

Mitchell Hashimoto

As Code

原文由 Mitchell Hashimoto 發布,訂閱此部落格

我個人一直以來都將「X as Code」裡後綴的「as code」定義為「一套原則或規則的體系」1。這與普遍將「as code」解讀為「as programming(像寫程式一樣)」的看法恰恰相反。

我覺得有必要寫這篇短文來釐清我的原意,因為我過去發起了 Terraform2——一個旗艦級的「X as Code」工具——也因此個人時常成為這種誤解的對象。

我對「X as Code」3 的原意,始終是將知識從人們的腦中取出,放進一個更具體、可被銘刻的系統裡。一旦被銘刻下來,知識與流程就能被共享、進行版本控管、反覆迭代等等。

它與程式設計的關聯在於,經過編碼化的知識往往也具備可供電腦讀取的特性,並帶來由此衍生的所有好處(例如自動化、驗證等)。然而,我並不認為這就意味著現代程式設計的所有要求都應該套用到「as code」系統上。

再補充一點歷史背景,十多年前(還在 Terraform 之前!)我共同撰寫了 Tao of HashiCorp,而這種思維至今仍體現在其中兩個關於「codification」的段落裡,這些段落自最初撰寫以來幾乎沒有更動。這有助於為我對「as code」的原意提供更進一步的脈絡。

請不要將這篇文章視為對「as programming」理念的批評、宣稱「as code」是完美的,或是認為「as code」永遠都該這樣被解讀4。以上皆非事實。我只是想釐清我個人在歷史上對這個詞彙的原意與用法。

註腳

  1. https://www.merriam-webster.com/dictionary/code

  2. 我已經好幾年沒有參與 Terraform 的工作,並在 2023 年離開了 HashiCorp。我也只聲稱自己是發起了 Terraform(而且不是我一個人);多年來它一直都是由其他人在維護。

  3. 「X as Code」或「Infrastructure as Code」並非由我首創。我不知道是誰創造的,但它早於 Terraform 和我的職涯就已存在。給個不請自來的商業建議:不要創造新的市場分類,進入既有的分類,讓你的競爭對手去承擔教育市場的成本。

  4. 畢竟,事物的定義是一個社會化的過程。群體往哪裡去,我們終究也會跟著去。

本文章由 muse-spark-1.2-contributor 進行翻譯

留言