3章漸進的な変更を支える技術
進化的アーキテクチャとは、複数の次元にわたる漸進的で誘導的な変化を支援するものである。
――我々の定義
2010年、Jez HumbleとDave Farleyの2人は、ソフトウェアプロジェクトの開発効率を向上させる開発プラクティスを集めた書籍、『継続的デリバリー』(KADOKAWA/アスキードワンゴ)[4]を刊行した。彼らは同書で自動化やツールを活用してソフトウェアを構築・リリースする仕組みを提供したものの、進化可能なソフトウェアの設計方法に関する枠組みはそこには含まれていなかった。進化的アーキテクチャでは、同書が示した開発プラクティスを前提としつつ、それらを活用して進化可能なソフトウェアを設計する方法を扱う。
我々の進化的アーキテクチャの定義には、漸進的な変更が含まれている。これは、アーキテクチャは小さく漸進的な変更を容易にしなければならないということを意味している。本章では、漸進的な変更を支えるアーキテクチャと、漸進的な変更の実現に使用されるいくつかの開発プラクティスについて説明する。これらは共に進化的アーキテクチャの重要な構成要素だ。そして、漸進的な変更の2つの側面である、開発(開発者がソフトウェアを構築する方法)と運用(チームがソフトウェアをデプロイする方法)について詳しく見ていく。
ここでは運用サイドの漸進的な変更の例を示す。まずは1章で紹介した漸進的な変更の例を、アーキテクチャとデプロイ環境に関する追加の詳細を肉付けするところから始める。本書での例に用いる部品販売業者であるPenultimateWidgetsは、図3-1に示すように、マイクロサービスアーキテクチャと開発プラクティスによって支えられたカタログページを持っている。
Get 進化的アーキテクチャ ―絶え間ない変化を支える now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.