9.4 コスト、持続可能性、グリーンソフトウェア
概要と動機
ソフトウェアは、お金、電力、水、資材を消費する物理的なインフラストラクチャの上で動きます。コンピューティングの歴史の大半で、これらのコストは他の誰かの問題でした。設備投資の予算がハードウェアを隠し、エネルギーはエンジニアには見えませんでした。クラウドコンピューティングがそれを変えました。消費を細粒度でオンデマンドにし、直接帰属できるようにしたので、コスト、そしてますます炭素が、エンジニアリングの関心事になりました。この章は、絡み合う二つの規律を扱います。変動するクラウドの支出に財務の説明責任をもたらす実践であるFinOpsと、より少ないエネルギーと低い炭素排出で同じ仕事をするシステムを築く実践であるグリーンソフトウェア。効率的なソフトウェアは、通常、より安くよりクリーンなので、二つは大きく重なります。
大きなチームにとって、数字は莫大です。大企業のクラウドの請求書は年に数千万から数億に達しえて、数ポイントの無駄が、人員やプロダクトに資金を出せたはずの本物のお金を表します。大きなデジタル資産群のカーボンフットプリントも無視できず、組織は、規制当局、投資家、顧客、自社の従業員から、それを測定して減らすよう高まる圧力に直面しています。数百のチームがそれぞれ、インスタンスのサイズ、データの保持、アーキテクチャについて独立に決めると、小さな非効率が大きなコストと排出に複合します。コストと炭素を可視にして説明責任を負わせるガバナンスが、両方を抑えるのに不可欠です。
企業と政府への関連性は直接的です。公共部門の組織は納税者のお金を使い、持続可能性の義務とネットゼロの約束にますます縛られるので、効率的で低炭素の運用を示すことは、財政上の義務であり方針上の義務でもあります。企業は、環境パフォーマンスへの投資家の精査と、利幅への競争圧力に直面します。どちらの設定でも、コストと持続可能性は後付けから取締役会レベルの関心事に移りました。エンジニアリングの選択が、それらの関心事が最終的に実現されるか逃されるかを決める場所です。
主要原則
- 消費を可視にする。 見えないものは最適化できません。コストと炭素は、それを引き起こすチームとサービスに帰属させなければなりません。
- 説明責任は所有者にある。 リソースをプロビジョニングするエンジニアが、自分のコストと炭素の影響を見て、所有すべきです。
- 効率はコストと炭素の両方に仕える。 より少ないリソースで同じ仕事をすることは、通常、お金と排出を同時に節約します。
- 継続的に適正サイズにする。 需要は変わるので、プロビジョニングは一度設定して忘れるのではなく、見直さなければなりません。
- 炭素には時間と場所がある。 同じ計算でも、電力がいつどこで生成されるかによって、排出が多くも少なくもなります。
- 三角形のバランスをとる。 コスト、パフォーマンス、信頼性は互いにトレードオフの関係にあります。盲目的ではなく意図して最適化します。
- 早期に効率を設計する。 長期のコストと炭素は、後段の調整よりアーキテクチャの選択がはるかに支配します。
推奨事項
FinOpsの可視性、最適化、説明責任を確立する
FinOpsは三つの反復する段階で進みます。把握(Inform): タグ付け、配分、ダッシュボードで可視性を築き、すべてのコストがチーム、サービス、事業上の目的に帰属され、共有のコストが公正に分けられるようにします。最適化(Optimise): 無駄(遊んでいるリソースと孤児リソース)を排除し、過剰にプロビジョニングされたサービスを適正サイズにし、安定した基底負荷にはリザベーションやセービングプランのようなコミットメントベースの割引を採用し、中断可能な仕事にはスポットあるいはプリエンプティブルな容量を使います。運用(Operate): バジェット、異常アラート、予測、定期的なレビューで、コストを通常のエンジニアリングの実践に埋め込みます。何よりも、コストのデータを、それを生み出すエンジニアの前に置いてください。効率を、財務だけの関心事ではなく、エンジニアリング、財務、プロダクトの共有の目標にします。
炭素を意識した省エネルギーのソフトウェアを築く
炭素の削減には三つのてこがあります。エネルギー効率: より良いアルゴリズム、キャッシュ、不要な計算の回避を通じて、より少ないCPUサイクル、より少ないメモリ、より少ないデータ移動で同じ仕事をするよう、ソフトウェアを書いて設定します。ハードウェア効率: 遊んでいる容量も電力を引き、製造の炭素を抱えているので、より高い稼働率、統合、現代の効率的なハードウェアで、リソースを十分に使います。炭素の意識: 柔軟なワークロードを、時間と場所で、電力網がよりクリーンなときと所へ移します。たとえば、再生可能エネルギーの発電が高いときにバッチジョブを動かす、あるいは低炭素の電力のリージョンで動かす。Software Carbon Intensityの仕様のような、認められた方法で測定します。強い再生可能エネルギーの約束と透明な報告を持つプロバイダーとリージョンを好みます。
持続可能なアーキテクチャを設計して適正サイズにする
アーキテクチャが、コストと炭素の下限を決めます。実際の需要に合わせてスケールし、遊んでいるときはゼロまでスケールする弾力的な設計を好み、使われない容量を動かし続けるために払うことが決してないようにします。サーバーレスとオートスケーリングは、急変するワークロードの無駄を減らし、マネージドなサービスはマルチテナンシーを通じて稼働率を改善できます。恐れからの過剰なプロビジョニングではなく、実際の使用に対して、計算、ストレージ、データベースを適正サイズにします。冷たいデータがより安く低エネルギーの層へ移る、あるいは削除されるよう、データのライフサイクル方針を設定します。データ量とネットワーク転送を減らすことは、ストレージのコストと、ビットを動かすエネルギーの両方を削ります。効率を、パフォーマンスと信頼性と並べてレビューされる設計要件として扱います。
コスト、パフォーマンス、信頼性を意図してバランスさせる
コスト、パフォーマンス、信頼性は三角形を成します。一つを強く押すと、通常は他に課税します。より多くの冗長性とより低いレイテンシはより多くのコストがかかり、しばしばより多くのエネルギーを消費します。これらのトレードオフを明示的にし、事業価値に結びつけます。SLO(サービスレベル目標)を使って、サービスが実際にどれだけの信頼性とパフォーマンスを必要とするかを定義し、すべてを一様に金メッキするのではなく、その目標に合わせてプロビジョニングします。重要でない内部のワークロードは、より安く、冗長性が低く、炭素の面でより柔軟な構成を受け入れられます。プレミアムなプロビジョニングは、本当にそれに値するもののために取っておきます。
窒息させずに統治する
ゲートではなくガードレールを提供します。中央のプラットフォームチームは、効率的な既定、タグ付けの徹底、バジェットのアラート、セルフサービスのダッシュボードを提供でき、日々の決定は、ワークロードを所有するチームに任せます。コストの効率と炭素の削減について組織全体の目標を設定し、進捗を透明に報告し、節約を祝います。デリバリーを遅くする重い承認の官僚主義を避けます。狙いは、効率的な選択を容易な既定にすることです。
トレードオフ: 長所と短所
| 決定 | 長所 | 短所 |
|---|---|---|
| コミットメント割引 | 基底負荷の大きな節約 | ロックイン、需要が変わるとリスク |
| スポット/プリエンプティブルな容量 | 最も安い計算、余った電力網を使う | 中断、増える複雑さ |
| 積極的な適正サイズ化 | 低いコストと炭素 | 急増時にプロビジョニング不足のリスク |
| 炭素を意識したスケジューリング | 低い排出 | ジョブの遅延、エンジニアリングの労力 |
| マルチリージョンの冗長性 | より高い信頼性 | より多くのコスト、エネルギー、炭素 |
統一するトレードオフは、最大の信頼性とパフォーマンスが、最小のコストと炭素とめったに一致しないことです。冗長で、常時稼働で、低レイテンシのシステムは高価でエネルギーを食うので、一様な金メッキは、それを必要としないワークロードに、お金と排出の両方を無駄にします。規律は、SLOを使って野心を事業価値に適正サイズにし、プレミアムなリソースを重要な所にだけ使うことです。コミットメント割引とスポット容量は本物の節約を提供しますが、管理しなければならないロックインと中断のリスクを持ち込みます。炭素を意識したスケジューリングは排出を節約しますが、遅延や移転を許容するワークロードにしか合いません。
チームで議論すべき問い
今日、クラウド支出のどれだけの割合が、実際にタグ付けされてチームに帰属されていますか。 FinOpsの把握の段階が基礎です。見えないものは最適化できず、タグのない配分されない支出は、誰も無駄を所有しないことを意味します。理想ではなく本物のカバレッジの数字と、タグのない最大の項目の一覧を、議論に持ち込んでください。数百のチームがそれぞれ独立にプロビジョニングする大きな組織では、低い帰属率は、共有の非効率が、目に見えないまま数百万に複合することを意味します。政府と企業の設定では、帰属は、納税者あるいは株主の支出を擁護する方法であり、共有プラットフォームの公正な分担コストを配分する方法でもあります。答えが最初の一手を決めます。カバレッジが低いなら、適正サイズ化の前にタグ付けの徹底と配分が来ます。可視性のない最適化は推測だからです。
基底負荷のどれだけがコミットメント割引でカバーされ、需要が変わったときそのコミットメントはどうなりますか。 リザベーションとセービングプランは、安定した基底負荷に大きな節約を届けますが、ロックインを持ち込むので、積極的に買いすぎると、プロダクトが終了あるいは移行したとき、割引が負債に変わります。数字を持ち込んでください。コミットされたカバレッジの割合、基底負荷の傾向、来年に形が変わりそうなワークロード。規律は、持続すると確信する下限だけをコミットし、変動する層をオンデマンドあるいはスポットでカバーし、需要の変化に合わせて見直すことです。大きな企業では、これは本物の財務上のリスクを伴う財務部門的な決定なので、財務とエンジニアリングが、どちらか一方だけではなく共同で所有すべきです。答えは、持続する基底負荷と不確かな需要を分け、コミットメントを前者に合わせてサイズ化すべきです。
フリートのどれだけが遊んでいて、稼働中に燃やすエネルギーだけでなく、製造に含まれる炭素も数えていますか。 遊んでいる容量も電力を引き、すでにハードウェアの製造に費やされた炭素を抱えているので、過剰にプロビジョニングしながら稼働中のエネルギーだけに注目すると、足跡の本物の一部を見逃します。稼働率のデータを持ち込んでください。平均とピーク、プロビジョニングされたものと使われたものの隔たり、ゼロまでのスケールあるいは統合が可能な所。より高い稼働率はコストと炭素に同時に仕え、それがこの章を貫く筋なので、遊んでいる無駄は、持てる最もきれいな勝利です。ネットゼロの義務のもとにある組織では、製造に含まれる排出を含む誠実な炭素の測定が、本物の進歩と、規制上や評判上の反発を招くグリーンウォッシングを分けます。答えは、最も稼働率の低いワークロードを、統合、オートスケーリング、ゼロまでのスケールの対象にし、製造の炭素を静かに無視しない測定方法を設定すべきです。
エンジニアは自分のサービスのコストと炭素を見ていて、見たことに誰かが行動していますか。 可視性は、リソースをプロビジョニングする人々に届き、その行動を変える場合にだけ元を取るので、財務が毎月レビューするがエンジニアが決して開かないダッシュボードは、説明責任ではなく飾りです。相反する引力は本物です。プラットフォームチームは中央の制御と整った報告を望み、デリバリーチームは、監視や出荷への新たなゲートのように感じられるものに憤ります。誰が実際にコストと炭素のデータを見るか、どれだけの頻度か、先四半期にそれから何かの適正サイズ化や片付けが続いたかの証拠を持ち込んでください。数百のチームが独立にプロビジョニングする大きな組織では、エンジニアが所有するシグナルと、無視されるレポートの違いは、複合する節約と複合する無駄の違いです。企業と政府の設定では、単位経済(リクエストごと、顧客ごと、案件ごとのコストと炭素)を、所有するチームの前に置いてください。集計の数字は予算を擁護しますが、単位あたりの数字は設計の決定を変えるからです。
どのワークロードが時間やリージョンで本当に柔軟で、電力網がよりクリーンな所でスケジュールするには何が必要ですか。 炭素を意識したスケジューリングは、柔軟な仕事を電力が低炭素のときと所へ移しますが、遅延や移転を許容するジョブにしか合わないので、最初の仕事は、本当に延期できるバッチの仕事を、ユーザー向けやレイテンシに縛られるものから分けることです。トレードオフは、リージョンやオフピークの窓をまたいでジョブを動かすと、エンジニアリングの労力、データ転送のコスト、時にデータ所在地のリスクが加わり、節約される排出を上回りうることです。バッチと分析のジョブの候補一覧、そのレイテンシの許容度、データ所在地の制約、合法的に動かせるリージョンの炭素強度を持ち込んでください。企業にとって、これは適正サイズ化の上に乗る控えめな最適化なので、コストの基礎の前ではなく後に順序づけてください。政府では、電力網のクリーンさにかかわらず、データ所在地と主権のルールが、市民のデータを国境をまたいで動かすことを禁じうるので、リージョンの選択は、炭素の問題である前に法的な問題です。
どんな効率と持続可能性の目標を設定し、それを達成しても静かに信頼性を壊さないように書かれていますか。 目標は努力を集中させますが、粗いコストや炭素のゴールは、間違った行動を招きます。チームは、プロビジョニングを減らし、冗長性を剥ぎ取り、小さな節約を大きなインシデントと交換する形で仕事を先送りします。緊張は、リーダーシップが報告できる野心的なトップダウンの数字と、各サービスの実際のSLOに根ざしたボトムアップの目標の間にあるので、両者は課されるのではなく、調和させる必要があります。現在の目標、それを測定するベースライン、最適化がサービスが本当に必要とするものに食い込むのを止める信頼性のガードレールを持ち込んでください。大きな組織では、集計の目標は、ワークロードが異なるチームへ公正に分解されなければならないので、顧客向けの決済サービスと内部のレポートのジョブが、同じ効率の期待を負うべきではありません。持続可能性の数字が公開の開示に現れる企業と政府の文脈では、報告されるすべての数字を監査可能な測定方法に結びつけてください。精査のもとで擁護できない目標は、成果ではなく負債だからです。
セクター別の視点
スタートアップ。 コストは滑走路なので、タグ付けの一日の午後と一つのバジェットアラートが、次の資金調達の前にもう1か月を買えます。FinOpsのプロセスと炭素の会計は完全に飛ばしてください。請求書を見て、遊んでいるリソースを殺し、待機している容量ではなく負荷に対して払うよう、ゼロまでスケールするマネージドなプラットフォームを選ぶだけです。最も乏しい資源はエンジニアリングの注意なので、明らかな無駄を自動化して先へ進みます。
小規模事業者。 FinOpsの専門家はおらず予算も厳しいので、専用のプラットフォームを買うのではなく、クラウドプロバイダーがすでに与えるコストツールに頼ってください。月次のバジェットアラートを設定し、プロバイダーの適正サイズ化の推奨を有効にし、運用の効率を価格に織り込むマネージドとサーバーレスのサービスを好みます。持続可能性を、人員を置かなければならない報告プログラムではなく、低炭素のリージョンと効率的な既定を選ぶこととして扱います。
大企業。 問題は、多くのチームにわたるガバナンスです。一貫したタグ付け、共有プラットフォームのコストの公正な配分、財務とエンジニアリングが共同で所有するコミットメント割引の戦略、すべてのチームが見るシグナルとして表面化されたコストと炭素。数百の独立したプロビジョニングの決定が無駄に複合しないよう、効率的な既定と測定方法を標準化し、クラウドの支出と排出を、局所的な最適化の寄せ集めではなく、目標、異常アラート、透明な報告を伴うポートフォリオとして管理します。
政府。 調達規則、透明性、公的な説明責任がすべての選択を形づくります。納税者のお金を使い、しばしばネットゼロの義務に縛られるので、財政の慎重さと監査された排出の進捗の両方を示さなければならず、それはグリーンウォッシングではなく、製造に含まれるハードウェアを含む誠実な炭素の測定を意味します。データ所在地と主権のルールが、電力網のクリーンさにかかわらず使えるリージョンを制約するかもしれず、効率と排出の指標は公的な精査のために公開する必要があるかもしれないので、監査のもとで擁護できる測定方法を選んでください。
事例
スタートアップ。 シードステージのスタートアップは、クラウドの請求書が2か月で倍になるのを見て、理由がわかりません。創業者が一日の午後を使って、すべてのリソースを機能ごとにタグ付けし、単純なバジェットアラートをオンにします。タグは、忘れられたステージングのクラスターと、夜間のジョブのために一日中動いている過大なデータベースを明らかにします。クラスターを止め、ジョブをより小さなインスタンスでのオフピークの予定された実行に移すと、請求書が3分の1減り、チームにもう1か月の滑走路を買い与えます。
大企業。 大きく広がったクラウドの資産群を持つ多国籍の小売業者が、FinOpsの実践を立ち上げます。タグ付けを徹底し、すべてのコストをプロダクトチームに配分し、エンジニアが毎日見るダッシュボードに支出を表面化させます。1年以内に、遊んでいるリソースを取り除き、過剰にプロビジョニングされたサービスを適正サイズにし、安定した基底負荷にセービングプランを買い、クラウドの支出をおよそ4分の1削ります。それから、夜間の分析バッチジョブを、低炭素のリージョンとオフピークの時間に動かすようにスケジュールし、コストと排出の両方を減らし、炭素の節約を年次の持続可能性の開示で報告します。
政府。 国のネットゼロの義務のもとで市民サービスを運営する政府機関は、納税者のお金に対する財政の慎重さと、排出目標への進捗の両方を示さなければなりません。ワークロードを適正サイズにして統合し、まれにしかアクセスされない記録を冷たい低エネルギーのストレージに移すデータ保持の方針を設定し、再生可能電力の割合が高いクラウドのリージョンを選びます。主要なサービスの炭素強度を測定し、公的な説明責任のために効率と排出の指標を公開します。効率的な既定とセルフサービスのダッシュボードが、数十のデリバリーチームに、中央のボトルネックなしに持続可能な選択を可能にします。
ビジネスケース: 動機、ROI、TCO
ここでの見返りは、異例なほど直接的です。FinOpsの最適化は、規律ある取り組みで、クラウドの支出を通常5分の1から3分の1減らし、その節約は直接収益に流れ込むか、新しい仕事の資金になります。炭素の削減も、回避された炭素価格、持続可能性の要件を持つ契約への適格性、規制上と評判上のリスクの低減を通じて、財務的な価値をますます持ちます。効率はコストと炭素を同時に下げるので、可視性と適正サイズ化への単一の投資が、両方の次元で元を取ります。
総所有コストは、採用のコストを数えなければなりません。コストと炭素の可視性のツール、実践を動かすFinOpsあるいはプラットフォームの職員、適正サイズ化と再設計のためのエンジニアリングの時間。これらは節約に比べて控えめで、効率的な既定が組み込まれるにつれて縮みます。採用しないコストは静かに複合します。事業より速く育つ暴走するクラウドの請求書、誰も所有しないために決して表面化しない無駄、持続可能性についての増す規制、投資家、評判の露出。リーダーシップに論拠を示すには、現在の支出とその成長の軌跡、推定される無駄、FinOps採用のベンチマークの節約を示してください。それから、排出の削減とコンプライアンスの価値と組み合わせます。コストと持続可能性を、二つのレンズを通して見た同じ効率化の取り組みとして枠づけ、事業がお金を節約することと炭素を削ることの間で選ばなくて済むようにします。
アンチパターンと落とし穴
- コストの帰属がない。 タグがなく配分されない支出は、誰も無駄を所有せず、誰も最適化できないこと。
- 設定して忘れるプロビジョニング。 リソースを一度サイズ化して見直さないことは、過剰なプロビジョニングへのずれを保証すること。
- 財務だけのFinOps。 コストを、エンジニアリングのシグナルではなく経理の関心事として扱うと失敗する。支出を駆動する決定を下すのはエンジニアだから。
- グリーンウォッシング。 測定なしに持続可能性を主張することは、規制上と評判上の反発を招くこと。
- 信頼性を犠牲にした効率。 サービスが負荷のもとで失敗するほど積極的に削ることは、小さな節約を大きなインシデントと交換すること。
- 製造に含まれる炭素の無視。 遊んでいるハードウェアを過剰にプロビジョニングしながら、稼働中のエネルギーだけに注目すると、製造の足跡を見逃すこと。
- 官僚的なゲート。 支出への重い承認プロセスはデリバリーを遅くし、チームにガバナンスを迂回させること。
成熟度モデル
レベル1: 開始。 クラウドのコストは、毎月の請求書の驚きです。タグ付け、配分、炭素の意識はなく、プロビジョニングは気前がよくめったに見直されません。誰も所有しないので無駄は見えず、起こる片付けも、実践ではなく請求書ショックへの反応です。
レベル2: 発展。 基本的なコストの可視性とタグ付けが存在し、いくらかの適正サイズ化と遊んでいるリソースの片付けが行われますが、カバレッジと厳密さはチーム間で大きく異なります。いくつかのグループは支出を見て低炭素のリージョンを試し、他はどちらもしません。持続可能性は認められているが測定されず、良い習慣は共有の期待ではなく個人の主導に依存します。
レベル3: 標準化。 FinOpsの実践が文書化され、組織全体に適用されます。タグ付けは徹底され、共有のコストは合意された方法で配分され、バジェット、予測、異常アラートが標準です。コミットメント割引と適正サイズ化は定義された手引きに従い、炭素は主要なサービスについてSoftware Carbon Intensityの仕様のような認められた方法で測定され、リージョンとスケジューリングの選択は、ケースごとではなく一貫して検討されます。
レベル4: 管理。 コストと炭素が、ベースラインに対して測定され制御されます。チームは、単位経済(リクエストごと、顧客ごと、案件ごとのコストと炭素)、遊んでいる分と製造に含まれる炭素の推定を含む稼働率、基底負荷に対するコミットメントのカバレッジ、予測の精度を追跡し、すべて組織の目標に対して報告されます。異常は調査を引き起こし、効率とSLOの遵守は一緒にレビューされるので、最適化が静かに信頼性を侵食することがなく、プロビジョニングについての実行か中止かの決定は、直感ではなくこのデータに基づいて行われます。
レベル5: オーケストレーション。 コストと炭素は、日々の実践に配線された、継続的で所有されるエンジニアリングのシグナルです。効率的な既定、自動化された適正サイズ化、炭素を意識したスケジューリングが規範で、組織は、需要、価格、電力網の強度が移るにつれて、資産群を継続的に再均衡させます。コスト、パフォーマンス、信頼性はSLOを通じて意図してトレードオフされ、持続可能性の指標は監査可能な方法で公的な報告と投資家向けの報告に供給し、実践は、事業、市場、規制が進化するにつれて適応します。
議論のためのアイデア
- あなたの組織でクラウドのコストを所有すべきは誰ですか。財務、中央のFinOpsチーム、それともリソースをプロビジョニングするエンジニアリングのチームですか。
- 多くの利用チームにわたって、共有プラットフォームのコストを公正に帰属させるには、どうしますか。
- コストの節約と、それを得るために犠牲にするかもしれない信頼性やパフォーマンスの間の、正しいバランスはどこにありますか。
- サービスのカーボンフットプリントをどう測定し、利用できるデータをどれだけ信頼しますか。
- あなたのワークロードのうち、時間やリージョンでの炭素を意識したスケジューリングに十分柔軟なものはどれですか。
- 危険なプロビジョニング不足を促さずに、チームを動機づける効率と持続可能性の目標をどう設定しますか。
要点
- クラウドはコストと炭素をエンジニアリングの関心事にしました。可視性と所有が、両方を制御する基礎です。
- FinOpsは三つの段階で進みます。把握(可視性)、最適化(適正サイズ化と割引)、運用(実践への埋め込み)。
- 効率的なソフトウェアは通常、お金と炭素を一緒に節約するので、二つのレンズを持つ一つの取り組みとして扱います。
- エネルギー効率、より高いハードウェアの稼働率、時間と場所での炭素を意識したスケジューリングを通じて、炭素を減らします。
- アーキテクチャと適正サイズ化が長期のコストと炭素を支配します。弾力性とゼロまでのスケールのために設計します。
- SLOを使ってコスト、パフォーマンス、信頼性のバランスを意図してとり、ゲートではなくガードレールで統治します。
参考文献とさらなる読み物
- J.R. Storment, Mike Fuller, Cloud FinOps: Collaborative, Real-Time Cloud Financial Management
- FinOps Foundation, FinOps Framework documentation
- Green Software Foundation, Principles of Green Software Engineering and Software Carbon Intensity (SCI) Specification
- Anne Currie, Sarah Hsu, Sara Bergman, Building Green Software
- Adrian Cockcroft, writings on cloud efficiency and sustainability
- The Shift Project, Lean ICT: Towards Digital Sobriety