BT

進化的アーキテクチャの特徴

| 作者: Jan Stenberg フォローする 29 人のフォロワー , 翻訳者 徳武 聡 フォローする 0 人のフォロワー 投稿日 2016年4月11日. 推定読書時間: 3 分 |

原文(投稿日:2016/03/31)へのリンク

進化的アーキテクチャの第一原則は非破壊的な変更をサポートすることだ。進化的アーキテクチャの特徴と原則についての記事でRebecca Parsons氏Neal Ford氏マイクロサービスアーキテクチャは、進化的アーキテクチャの優れた例になると書いている。彼らの考えではマイクロサービスはドメイン駆動設計(DDD)で言う境界付けられたコンテキストの原則に従うため、進化的アーキテクチャの原則に適う。

Thoughtworks社で働く2人は、進化的アーキテクチャの定義はまだ固まっていないものの、現時点では次のように定義している。

進化的アーキテクチャの第一の原則は、複数の次元で継続的かつ漸進的な変更を支援することです。

進化的アーキテクチャには多くの特徴がある。2人が示しているのは、以下の通り。

  • モジュールと結合: 技術的設計でモジュールをサポートし、しっかり定義された境界によってコンポーネントを分離する。これによって非破壊的な変更を簡単に実現できるようになる。開発者にとって非破壊的変更は大きな利点がある。反対に泥だんごアーキテクチャはモジュール性がなく、それゆえ、進化できない。
  • ビジネス能力に沿った組織化: ドメインレベルでのモジュール化はドメイン駆動設計(DDD)で実現される。マイクロサービスでドメインに沿って分離するのは、SOAのように技術レイヤで分離することとは大きく異なる。
  • 実験: 進化的アーキテクチャがビジネスに与える強力な力が実験だ。アプリケーションの変更は些細なこととなり、A/Bテストカナリアリリースなどが可能になる。また、マイクロサービスアーキテクチャは同じサービスの複数のバージョンを同時に動かすこともできる。これによって、実験が可能になり仮説駆動開発が可能になる。

また、原則を通じて進化的アーキテクチャを概観することもできる。原則は、アーキテクチャや設計手法の特徴を示している。アーキテクチャについての意思決定をするときに関する原則は以下の通り。

  • 適応度関数: アーキテクチャの適応度関数はシステムの重要な特徴を定義する。例えば、稼働時間、スループット、可用性、セキュリティだ。レーダーチャートを使って視覚化することもできる。
  • 痛みを先に: プロジェクトにおいて、痛みを産みそうなものを先に手をつける。こうすることで、痛みの原因となる問題の特定が早まり、痛みの除去のための自動化が進みやすくなる。デプロイのパイプラインのような継続的デリバリやデータベースの移行などは進化的アーキテクチャを簡単にする。
  • 最終責任時点: 従来のアーキテクチャと進化的アーキテクチャの大きな違いは意思決定のタイミングだ。例えば、構造や技術スタック、通信パターンなどの決定の場合、従来のアーキテクチャではコードを書く前に行われる。進化的アーキテクチャでは、最終責任時点の前までに決定できればよい。その時点で決定をするのは難しいかもしれないが、適応度関数が指針を示してくれる。ただし、アーキテクチャに重大な影響を与える決定や成功にとって重要な要因になる決定は早めにするべきだ。

Parsons氏とFord氏は、継続的デリバリDevOpに言及しつつ、アーキテクチャとは、現在進行のプロセスのスナップショットであり、進化的アーキテクチャにとっては運用を意識することが極めて重要だと結論付けている。

Ford氏は進化的アーキテクチャについてのウェビナーを開催している。

QCon London 2015では、Parsons氏はこのテーマでプレゼンをしている。

Jimmy Bogard氏は2010年に進化的アーキテクチャについてブログで書いている

 
 

Rate this Article

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

特集コンテンツ一覧

ASP.NET Core - シンプルの力

Chris Klug 2018年6月4日 午前3時26分

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT