継続的デリバリへ移行し、スピードアップするためには、変化率を上げるとともに、変化のコストや大きさ、リスクを減らす必要がある。そこで、今やDevOpsやアジャイルへの移行やコンテナ化が注目をせざるを得ない、とAdrian Cockcroft氏は、11月にアムステルダムで開催されたDockerカンファレンスの基調講演で発表した。
継続的デリバリを活用して製品開発プロセスをスピードアップする方法を探るため、Adrian氏はOODAサイクル (Observe – Orient - Decide – Act)について、このサイクルを速く回せば回すほど、顧客やマーケットについて新しいことが早く学習でき、アジャイルが増し、競争力が増す。Adrian氏によれば、この通り実行している企業は製品の品質や学習能力が改善しているのを実感している。氏の経験では、これを達成するための課題は、多くの組織がプロダクトマネージャや開発者、品質担当者などの独自チームで構成されており、何かを成し遂げるためには、多くのミーティングやウォーターフォールのアプローチを取らざるを得ないことだ。一般的な解決策としては組織を横断するひとつのデリバリグループを構築することだが、Adrian氏はこのやり方は効率的ではないと考えている。各グループが独自のプラットフォームを再発明するからだ。氏は分離されたプラットフォームチームが他のすべてのチームが利用できるAPIを公開するマイクロサービスの周囲にチームを構成するべきだと考えている。Adrian氏はこれがまさにDevOpsであり、チームの再組織化ということだ。
2014年に起こったのはDockerが標準のポータブルコンテナになり、2015年の多くの人のロードマップに表れたということだ。Dockerが普及した重要な理由は、Adrian氏によれば、移植性とコンテナを使ったデリバリによるスピードアップだ。数時間、数十分かかっていたのもが秒単位になった。また、氏は次のように言っている。
スピードは新しいマイクロサービスアーキテクチャを実現します。
現在のウェブのスケールとマイクロサービスアーキテクチャにはいくつかの共有の特性がある、とAdrian氏は言う。
- 新しいマイクロサービスは配置される頻度が少ない。
- 新しいバージョンは自動的にあ頻繁に配置される。
- システム全体のすべての部分が同時に配置されることはないため、汎用的な目的のオーケストレーションは必要ない。
- アーキテクチャは多くのマイクロサービスを使う。
- 各配置はかなりカスタマイズされている。
次のステップとしてAdrian氏が想定しているのは、標準的なポータブルアプリケーションのオーケストレーションで、おそらく、数多くのマイクロサービスで構成される。新しいバージョンは自動的に配置され、スケーラビリティと可用性に注意が必要だ。また、モノロジックからマイクロサービスアーキテクチャへの移行も起こると考えている。