編集

次の方法で共有


よく寄せられる質問: SRE に参加するにはコーディング方法を知っている必要がありますか?

個人が SRE への参加を検討しているときや、チームが SRE プラクティスの導入を検討しているときの一般的な疑問は、"コーディング方法を知っている必要があるか" ということです。

短く答えれば、"はい" になります。

しかし、完全な答えはもう少し微妙です。 サイト信頼性エンジニアリングでコーディングが役に立つ 3 つの場面と、それぞれの場面で必要なコーディングの専門知識のレベルについて見てみましょう。 この一覧は完全ではありませんが、これらのシナリオはより一般的なユース ケースの一部です。

シナリオ 1: 自動化による労務の軽減

サイト信頼性エンジニアや、SRE プラクティスを使用する他のユーザーは、できるだけ労務を減らそうとします。 "労務" は、SRE では特定のことを意味します。 労務という言葉は、特定の特性を持つ人間が実行している運用作業を表します。 労務には、長期的に引き換えられる価値はありません。 それによって、サービスがどのような意味でも進行することはありません。 多くの場合、繰り返し作業であり、ほとんどが手動で行われます (自動化できる場合であっても)。 時間の経過と共にサービスまたはシステムが大きくなると、そのシステムに対する要求の数も比例した割合で増加し、さらに多くの手動作業が必要になります。

たとえば、サービスのために SRE チームが毎週何かをリセットしたり、新しいアカウントとディスク領域を手動でプロビジョニングしたり、手動で再起動を繰り返したりする必要がある場合は、これが労務である運用負荷です。 これらのアクションを完了しても、長期的で永続的な面でサービスが向上することはありません。 これらのアクションは、繰り返し続けなければならない傾向があります。

SRE では、労務は嫌われます。 彼らは、可能で適切である場合は、それをなくそうとします。 これは、SRE で自動化が役に立つ場面の 1 つです。 これらの要求を自動的に処理できれば、チームはより多くの利益と効果がある作業を行うための余裕を得ることができます。

"コーディングの専門知識": 自動化にはコーディングの専門知識がいくらか必要ですが、完全なソフトウェア エンジニアリング スキルは必要ありません。 (おそらく PowerShell または Bourne シェルで) 小さいスクリプトを記述できる場合や、ほとんどコードを記述せずに Azure ロジック アプリを作成する場合であっても、このアプリを使うと労力を減らすことができます。

シナリオ 2: API またはドメイン固有の言語 (DSL) またはテンプレートを介した制御

SRE の作業には厳密には必須ではありませんが、API、DSL、およびテンプレートによって環境 (特にクラウド環境) を制御できると、SRE は作業をスケールアップできます。 インフラストラクチャのプロビジョニングおよびプロビジョニング解除、監視の構成、複数のサービスの統合などは、コーディングを利用するとはるかに効率的になります。

"コーディングの専門知識": 前のシナリオと同様に、これにはコーディングの専門知識がいくらか必要ですが、完全なソフトウェア エンジニアリング スキルは必要ありません。 前に説明したスクリプトとロジック アプリの他に、Azure Resource Manager テンプレートは最小限のコーディング エクスペリエンスでも使用できます。

シナリオ 3: コードの修正

サイト信頼性エンジニアは、システムの信頼性の向上を目指しています。 この目標のためには、システムのソース コードを調査し、問題を特定し、多くの場合、コード ベースに戻って修正を行う必要があります。 この作業の洗練性のレベルは状況によって大きく異なる場合がありますが、コーディングの専門知識は、これらのケースでの明確な要件です。

"コーディングの専門知識": このシナリオでは、ソフトウェア エンジニアリングに関する完全な専門知識が必要です。

次のステップ

サイト信頼性エンジニアリングおよび少量のコード作業について、詳細を知りたい場合は、 サイト信頼性エンジニアリング ハブおよび上の製品ドキュメントのリンクを参照してください。