re:Invent 2024 Dr.Werner キーノートに参加しました!
こんにちは、ベンジャミンの星野です。re:Invent2024 Day4の12/5(木)に行われたAmazonのCTO、ワーナー博士のキーノートに参加してきました!
スピーチでは複雑さを管理するための6つの教訓が示され、simplexity(単純性)の重要性を説いていました。
1.進化可能性を必須要件にする
システムは時間の経過とともに変化するため、将来の変更に対応できる柔軟な設計が重要となる。Amazon S3は初期のシンプル構成から顧客のニーズや技術の進歩に合わせて進化を続け、現在では300以上のマイクロサービスで構成されている。
2.複雑さを細分化する
複雑なシステムは管理が容易な小さな構成要素に分割する必要がある。例えば、当初とてもシンプルなサービスだったAmazon CloudWatchは時間の経過とともに複雑化していったが、結合度の低い小さな構成要素に分割し、高い凝集性と適切に設計されたAPI を実装することで簡単に相互通信できるようになった。
3.組織をアーキテクチャに合わせる
組織はシステムのアーキテクチャと同じくらい複雑になることを認識する必要がある。また、成功する組織を作るためのキーポイントは、現状に満足しないことである。Amazon S3チームは、各チームがオーナーシップを持って自律的に動くことで成果を出している。
4.セル単位に整理する
システムを独立したセルに分割することで、障害の影響範囲を最小限に抑えシステム全体の安定性を向上させる。
5.予測可能なシステムを設計する
システムの動作を予測可能にすることで、複雑さを軽減し安定性を高めることができる。Amazon Route 53は、DNSデータベースを継続的に再構成するよりも定期的にヘルスチェックを行うことで予測可能な動作を実現している。
6.複雑さを自動化する
自動化は大規模なシステムを管理するために不可欠である。AWSは多くの分野で自動化を行っているが、「何を自動化すべきか」ではなく「何を自動化しないか」と問うのが正しい。
また、以上6つの教訓をスピーチする中でワーナー博士は茹でガエルを例にあげ、「サインを見逃すな。それらの兆候を見逃せばシステムはどんどん複雑化し、管理が困難になるだろう」と発言していました。
茹でガエルの例はビジネスシーンで良く使われる例え話ですが、普段の業務の中でそういったわずかな異変をいち早く察知するということが重要なことだと改めて気づくとともに、物事をシンプルに保つことがいかに重要か再認識できました。
ワーナー博士のキーノートはこちらから閲覧できます。
では、また!