第9章. 演算子の哲学
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
演算子が解決しようとする問題を指摘し、SDKを使用して演算子を構築する方法の詳細な例を説明した。 また、OLMで演算子を首尾一貫した方法で配布する方法も見てきた。演算子は何のためにあるのか」という本質的な問いを理解するために、これらの戦術をその基礎となる戦略的アイデアに結び付けてみましょう。
演算子の概念は、サイト信頼性エンジニアリング(SRE)から派生したものである。第1章では、ソフトウェアSREとしての演算子について述べた。SREの主要な考え方を復習し、演算子がそれをどのように適用するかを理解しよう。
あらゆるアプリケーションのためのSRE
SREは、ユーザ数や機能が増え続ける大規模システムの運用という課題にレスポンスしてGoogleで始まった。 SRE の主要な目的は、運営するチームを無理に大きくすることなく、サービスを成長させることである。劇的な規模のシステムを、劇的な規模のチームなしで運用するために、SRE はデプロイ、演算子、保守タスクを処理するコードを書く。SRE は、他のソフトウェアを実行するソフトウェアを作成し、それを実行し続け、長期にわたって管理する。SREは、自動化を中心とした、より広範な管理・エンジニアリングテクニックのセットである。その目標は、「自律型」ソフトウェアや「自動運転」ソフトウェアなど、さまざまな名前で呼ばれているのを聞いたことがあるかもしれない。図4-1で紹介した演算子成熟度モデルでは、"Auto Pilot "と呼んでいる。
演算子とOperator Frameworkは、Kubernetes上で実行されるアプリケーションに対して、このような自動化の実装を容易にする。Kubernetesはサービスのデプロイをオーケストレーションし、ステートレスアプリケーションの水平スケーリングや障害回復の作業の一部を自動化する。分散システムリソースをAPIの抽象化として表現する。or演算子を使用することで、開発者はこれらのプラクティスを複雑なアプリケーションに拡張することができる。
ベッツィー・ベイヤー他編による「Site Reliability Engineering」(O'Reilly)は、SREの原則に関する権威あるガイドである。GoogleのエンジニアであるCarla Geisserのコメントは、SREの自動化の要素を象徴している。「もし通常運用中に人間の演算子がシステムに触れる必要があるなら、それはバグである。1SREはバグを修正するコードを書く。演算子は、Kubernetes上の幅広いクラスのアプリケーションのために、それらの修正をプログラミングする論理演算子だ。Operatorは、アプリケーションの実行を維持するための定期的な雑用を自動化することで、人間の介入によるバグを減らす。
労せずして、紡がず
SREは、システムの運用に必要なタスクを実行するソフトウェアを作成することで、労力を削減しようとする。この文脈での労力とは、 、「自動化可能で、戦術的で、永続的な価値を持たず、サービスが成長するにつれて直線的に拡大する作業」と定義される。2
自動化できる:コンピューターが望む仕事
マシンができるなら、仕事は自動化できる。人間の判断が必要なタスクは、マシンにはできない。例えば、経費報告書はマシン主導で様々な境界チェックを受けるが、通常、すべての領収書ではないにせよ、自動化されたプロセスが境界外としてフラグを立てた項目については、最終的に人間によるレビューが必要である。範囲内のレポートの承認は自動化できるかもしれないが、範囲外のケースの最終的な受理または拒否は自動化できないかもしれない。ソフトウェアで自動化できる作業も、反復的であればソフトウェアで自動化すべきである。反復タスクを実行するソフトウェアを構築するコストは、反復の生涯にわたって償却することができる。 ...