DevOps アーキテクチャについて探る
適切に設計されたアーキテクチャは、エンド ユーザーにビジネス価値を迅速に提供できるハイウェイのようなものです。 その方法が正しくない場合、橋が流され、最終的な目的地に到達できないようなものです。
ソフトウェア アーキテクチャの概要
アーキテクチャの長期的な実行可能性を達成するには、その "設計"、"実装"、"アップグレード"、および "必然的な変更" が必要です。
アーキテクチャは、運用可能になり、生き物になるまでは抽象的です。
米国で最も著名な構造アーキテクトの 1 人である William LeMessurier は、ニューヨークの画期的な Citicorp 本社タワーの設計および建設コンサルタントを務めました。 このタワーは 1977 年に完成しました。 翌年、タワーの設計を研究しているプリンストン大学の学生から電話を受け、欠陥の可能性を指摘された後、LeMessurier は、実際に建物に構造的な欠陥があることを発見しました。
この建物は、時速 70 マイル (113 km) の風 (気象一覧によると、ニューヨーク市では少なくとも 55 年に 1 回発生します) に耐えることができません。 このような状況になると、接合部が破損し、13 階から建物が倒壊します。 当時、タワーは満室でした。 LeMessurier は、所有者と市当局にこのニュースを伝える必要がありました。
LeMessurier は、専門家としての責任という複雑で困難な問題に直面しました。 彼は、ハリケーンによって建物が倒壊する前に、幅広い人々に構造上の欠陥を警告し、欠陥の修復に協力を求めなければなりませんでした。
その夏、ハリケーンの Ella が街に向かっていました。 建物は保護されました。 それ以来、Citicorp タワーはしっかりと建っています。
重要
ソフトウェア アーキテクチャとは、実装後に変更するにはコストがかかる基本的な構造について選択することです。
次のような特性があります。
- 利害関係者: 業務の利害関係者、アプリケーション チーム、QA チーム、運用、セキュリティ、ユーザーが含まれます。
- 関心の分離: 複雑さを軽減するために、設計を推進する関心の分離を行います。
- 品質主導の属性: スケーラビリティ、拡張性、信頼性、メンテナンス性、セキュリティなど。
- 概念の整合性: ソフトウェア アーキテクチャは、アーキテクチャ、データ、およびプロセスの整合性を維持するために、何を実行すべきか、どのように実行すべきかについての全体的なビジョンを表しています。
- 認知的制約: 組織には、コミュニケーション構造のコピーである設計を作り出すという制約があります。
- 繰り返しのスタイル: ソフトウェア アーキテクチャ規範に従い、繰り返しの懸案事項に対処するための標準的な方法を開発する必要があります。
どのようなアーキテクチャでも、次の "-ilities (-性)" に対処します。
- 監査可能性
- availability
- 互換性
- 組み立て可能性
- 構成可能性
- ユーザー補助機能 (accessibility)
- 適応性
- 省コスト性
- カスタマイズ性
- 実証可能性
- 展開容易性
- durability
- 使いやすさ
- 拡張性
- 柔軟性
- 相互運用性
- 管理容易性
- 移植性
- 予測可能性
- 回復性
- 信頼性
- 反復可能性
- 再利用性
- スケーラビリティ
- メンテナンス性
- 社交性
- 簡潔性
- テスト容易性
- 持続可能性
- 追跡可能性
- 再現性
ソフトウェアを構築するときに、アーキテクトはこれらの "-性" の中から最も重要なものを決定する必要があります。 ただし、これらの要素の多くは互いに対立しています。
たとえば、アーキテクチャ、運用、その他の多くの要素のバランスを慎重に取る必要があるため、ハイ パフォーマンスと極端なスケーラビリティの両方を実現することは難しい場合があります。
この意思決定プロセスは、バランスを取ることです。各アーキテクチャの決定に関する長所と短所のバランスを取ると、トレードオフにつながります。これはアーキテクトがよく嘆くことです。
過去数年間で、ソフトウェア開発のコア エンジニアリング手法が段階的に発展したことにより、アーキテクチャが時間の経過と共にどのように変化するか、この進化が起こったときに重要なアーキテクチャの特性をどのように保護するかについて再考するための基盤が築かれました。
DevOps アーキテクチャ
Gene Kim は、著名な DevOps の研究者、著者であり、先見性を持つ人物です。 彼は、DevOps を実現するために必要な 3 つのことを特定しています。
「1 つは文化的要素です。 もちろん、もう 1 つはツールとテクノロジです。 3 つ目はアーキテクチャです。 自動化を含む優れたテクノロジ手法が必要です。 信頼性の高い文化が必要です。 そして、そこにたどり着くにはアーキテクチャが必要です」
この書籍『Accelerate (加速する)』で提示された研究によると、新しいシステム、記録システム、パッケージ化された商用ソフトウェア、メインフレーム ソフトウェア、組み込みソフトウェアなどのさまざまな種類のシステムについて、システムの種類と配信のパフォーマンスの間に有意な相関関係はありません。 重要なのは、展開容易性とテスト容易性です。
ヒント
アーキテクチャが優れていると、展開容易性とテスト容易性が向上します。
アーキテクチャと組織
コンウェイの法則は、1967 年にこの考え方を導入したコンピューター プログラマの Melvin Conway にちなんで名付けられました。 これにより、システム設計は、システムを設計する組織のコミュニケーション構造の影響を受けることが認知されました。
重要
コンウェイの法則: (広義の) システムを設計するあらゆる組織は、その構造が組織のコミュニケーション構造のコピーである設計を作り出します。
この法則は、ソフトウェア モジュールが機能するには、複数の作成者が互いに頻繁にやり取りする必要があるという理由に基づいています。
そのため、システムのソフトウェア インターフェイス構造には、システムを作成した組織の社会的境界が反映され、それを越えてやり取りすることはより困難になります。
エンタープライズ DevOps におけるアーキテクトのスキル
アーキテクトは、次のようなさまざまなスキルを開発し、改良します。
- 全体像を考えること
- システム思考
- ビジネスの知識
- 対人スキル
- 影響力とリーダーシップのスキル
- 技術アーキテクチャの理解
- IT 財務管理の経験
- 時間管理
- エンタープライズ アーキテクチャ (EA) フレームワークの経験
- 経営幹部に IT を説明する能力
- プレゼンテーション スキル
- 指導スキル
- データ アーキテクチャと IT 運用の理解
重要
ただし、21 世紀の成功のために最も重要なスキルは何でしょうか。
学習する意欲と能力です。