常見問題:我必須知道如何撰寫程式碼,才能參與 SRE 嗎?

當個別人員考慮參與 SRE,而小組也在考慮導入 SRE 做法時,常出現的問題是「您必須知道如何撰寫程式碼嗎?」?

簡短答案為:是。

但完整答案可能會有細微上的差別。 讓我們來看看網站可靠性工程中涉及撰寫程式碼的三個案例,以及每個案例所需撰寫程式碼專業知識的程度。 此清單並非完整,但這些案例是一些較常見的使用案例。

案例 1:透過自動化移除繁瑣作業

網站可靠性工程師和使用 SRE 做法的其他人員會盡可能在任何情況下移除繁瑣作業。 「Toil (繁瑣作業)」表示 SRE 中的特定事項。 繁瑣作業指的是由具備特定特性人員所完成的操作工作。 辛勞沒有長期的可兌換價值。 不會以任何有意義的方式將服務往前推進。 辛勞通常是重複的,且大部分需要手動運作 (即使有可能自動化)。 當服務或系統隨著時間變大,對該系統的要求數量也可能按比例增加,並且需要更多的手動人力。

例如,如果服務要求 SRE 小組每週重設某個項目,或手動佈建新帳戶和磁碟空間,或重複手動重新啟動,這就是繁瑣作業所造成的操作負荷。 完成這些動作,並沒有使服務以任何長期且持久的方式得到改善。 這些動作很可能必須一遍又一遍重複。

SRE 不喜歡辛勞。 其會在適當的情況下,盡可能將其消除。 這是自動化在 SRE 中發揮效用的地方之一。 如果這些要求可自動處理,如此可讓小組專注於更有價值和影響力的事項。

撰寫程式碼專業知識:自動化需要一些撰寫程式碼專業知識,但不需要完整的軟體工程技能。 如果您可撰寫少部分指令碼 (也許在 PowerShell 或 Bourne 殼層),或即使您幾乎未使用程式碼來建立 Azure 邏輯應用程式,此應用程式仍可協助減少繁瑣作業的情況。

案例 2:透過 API/網域特定語言 (DSL)/範本控制

即使對於 SRE 作業而言並非必要,但能夠透過 API、DSL 和範本 (特別是雲端環境) 控制環境仍允許 SRE 相應增加其工作。 佈建/取消佈建基礎結構、設定監視和整合數個服務,皆可透過撰寫程式碼大幅提高效率。

撰寫程式碼專業知識:如同先前案例,這也需要一些撰寫程式碼專業知識,但不需要完整的軟體工程技能。 除了先前提及的指令碼和邏輯應用程式之外,具備基本撰寫程式碼專業知識即可使用 Azure Resource Manager 範本

案例 3:修正程式碼

網站可靠性工程師希望改善系統的可靠性。 此目標有時需要深入探討系統的原始程式碼、判斷問題,而且通常都會導致要回頭修正程式碼基底。 即使此工作的複雜程度會根據情況而有很大的差異,但在這些情況下,撰寫程式碼專業知識會是必要需求。

撰寫程式碼專業知識:在此案例中通常需要完整的軟體工程專業知識。

下一步

有興趣深入瞭解網站可靠性工程和低程式碼工作嗎? 請參閱網站可靠性工程中樞 (以上連結的產品文件)。