アーキテクチャ

オンプレミス環境では、多くの場合、テクノロジーアーキテクチャの中心チームがあり、製品や機能を担当する他のチームがベストプラクティスに従うように、まとめ役として機能します。テクノロジーアーキテクチャチームには、通常、テクニカルアーキテクト (インフラストラクチャ)、ソリューションアーキテクト (ソフトウェア)、データアーキテクト、ネットワーキングアーキテクト、セキュリティアーキテクトなどの担当者が含まれます。テクノロジーアーキテクチャチームでエンタープライズアーキテクチャ機能の一部としてよく使用されるのが、TOGAF または Zachman Framework です。

AWS では 1 つの中心チームに職能を持たせるのではなく、その職能を複数のチームに分散することが望まれています。意思決定権を分散することを選択した場合は、チームが内部の標準を満たしていることを確認する必要があるなどのリスクが発生します。当社はそのようなリスクを 2 つの方法で軽減します。第 1 に、AWS には各チームにその機能を持たせることに焦点を当てたプラクティス« [ 方法、プロセス、標準、受け入れられている基準です。 ] »  があり、チームが満たすべき基準のバーを上げることを確実にするためにエキスパートを配置しています。第 2 に、基準を確実に満たすための自動チェックを実行するメカニズム«意志だけでは絶対にうまくいかない。成し遂げるには適切なメカニズムが必要です。Jeff Bezos。つまり、人間の努力に置き換えるメカニズム (多くの場合、自動化) がルールやプロセスに遵守しているか確認することです。 ] »  を導入しています。この分散型アプローチは、Amazon のリーダーシッププリンシプルによって支持されており、お客様を起点に物事を考える« [ Working backwards(お客様を起点に物事を考える) は当社のイノベーションプロセスの基本となる部分です。AWS では、お客様とその要望を起点に当社の取り組みを定義して進めます。 ] »  という文化を、すべてのロールにわたって確立します。お客様のことを真剣に考えているチームが、お客様の要件に応じて商品を開発します。

アーキテクチャについては、すべてのチームがアーキテクチャを作成し、ベストプラクティスに従う能力があることを期待しています。新しいチームがそれらの職能を獲得したり、既存のチームが水準を高めたりすることができるように、それらのチームがプリンシパルエンジニアの仮想コミュニティを利用して、エンジニアに設計を評価してもらったり、AWS のベストプラクティスを理解するのを助けてもらったりすることができるようにします。プリンシパルエンジニアリングコミュニティの仕事はベストプラクティスを周知させ、わかりやすくすることです。その方法の例としては、ベストプラクティスを実例に適用することについてランチタイムトークで取り上げます。その話を録音して、新しいチームメンバー向けのオンボーディング教材として使用できます。

AWS のベストプラクティスはインターネットの規模で多くのシステムを運用してきた当社の経験から生まれました。ベストプラクティスの定義には主にデータを活用しますが、プリンシパルエンジニアなどの専門分野に精通した人がベストプラクティスを設定することもあります。プリンシパルのエンジニアは、新しいベストプラクティスチームとして機能するようにコミュニティに従います。やがてそれらのベストプラクティスは当社の内部評価プロセスやコンプライアンス遵守メカニズムに取り込まれて正式なものになります。Well-Architected フレームワークは当社の内部評価プロセスを顧客向けに実施しているものであり、フィールドの役割全体で、ソリューションアーキテクチャや内部エンジニアリングチームなどのプリンシパルエンジニアリングの考えが体系化されています。Well-Architected フレームワークは、学んだことを活用できるスケーラブルなメカニズムです。

プリンシパルエンジニアリングコミュニティが取り組んでいるアーキテクチャの分散所有に従うことによって、お客様の要件に基づいて Well-Architected のエンタープライズアーキテクチャが生まれると当社は確信しています。テクノロジーリーダー (CTO や開発マネージャーなど) がお客様のワークロードのすべてに対して Well-Architected の評価を実施することで、お客様のテクノロジーポートフォリオのリスクがよくわかるようになります。このアプローチを使用して、チーム全体に関わる課題を特定し、その課題に取り組むことができます。プリンシパルエンジニアはメカニズムや、トレーニング、ランチタイムトークを活用して、特定の領域についての考えを複数のチームで共有することができます。