arclamp

ITアーキテクト 鈴木雄介のブログ

Cloud First Architecture設計ガイドが発売(8/25)されます #cfadg

本を書きました。2016/8/25に発売されます。ハッシュタグは #cfadg (Cloud First Architecture Design Guide)でお願いします。

Cloud First Architecture 設計ガイド

Cloud First Architecture 設計ガイド

「Cloud First Architecture設計ガイド」ですから、クラウドファーストなアーキテクチャをどうやって設計するのか?という本です。とはいえ、(僕らしく)回りくどい道のりでクラウドファーストについて解説しています。

クラウドファーストは「クラウド技術群を前提にシステムを構築する」ということですが、これを体現したのがマイクロサービスアーキテクチャでしょう。しかし、マイクロサービスアーキテクチャは技術論ではありません。
マイクロサービスアーキテクチャはムーブメントであり、テクノロジーであり、マネジメントであるという多面的な姿を持っています。「サービス同士を連携させる」といった一言では済ませられないのです。

おそらく多くのITサービスが、マイクロサービスアーキテクチャという巨人の肩に乗るはずです。様々なクラウドサービスを利用すること、様々な企業が公開しているオープンソースソフトウェアを利用すること、様々なメソッドやプロセスを実践すること。

しかし、この巨人がいかに立ち上がったのかという物語を知らないと、巨人の膝小僧やくるぶしを肩と誤認しかねません。よって、マイクロサービスアーキテクチャに至るまで、どういった背景と経緯があったのかを知ることで、巨人の大きさや姿を明確に理解することができると考えました。


本書は6章でなりたっていますが、1章から3章までは「マイクロサービスアーキテクチャへの道のりを解説すること」にあてられています。アジャイルを源流にDevOpsというムーブメントが生まれ、仮想化やクラウドをうまく利用しながらマイクロサービスアーキテクチャというものが形作られてきた15年間です。

続く4章では、こうしたクラウドファーストというものとエンタープライズシステム開発の関わりについて整理しています。象徴的なアジャイルウォーターフォールITILとDevOps、マイクロサービスアーキテクチャーとSOAの比較をしています。また、エンタープライズクラウドファーストを導入する際の阻害要因について考えています。

第5章は現代的なアーキテクチャ設計の進め方について僕なりの考え方を整理しました。
アーキテクチャ設計というのは事前的な作業であり、そこ構造を定めることで実装が始まります。旧来のアーキテクチャ設計というのは、ソフトウェア開発の初期段階でソフトウェアに対する要求を的確に理解し、それに基づいて最適な構造を導く、とされてきました。しかし、現在のソフトウェアでは全ての要求を最初に描くことはできません。むしろ、作りながら要求を導くことが正しいとされています。
よって、クラウドファーストなアーキテクチャー設計では「要求が定まらなければ構造が決まらない」「要求を定めるためには作らなければならない」「作るためには構造が決まっていないといけない」というジレンマに陥ります。このジレンマを受け入れ、いかにアーキテクチャ設計を戦略的に進めるのかが重要です。

最後の第6章では、こうした現状においてエンジニアがどういったスキルを身につけるべきかを考えてみました。マイクロサービスアーキテクチャを支える技術は、テクノロジーだけでもクライアント、サーバー、インフラと多方面に拡がります。CI/CDといった要素も重要です、一方で、UXやリーンといった手法や、当然、アジャイルようなプロセス論も必要です。こうした多方面に拡がっている要素を全て理解することは不可能です。では、自分自身がどういった方向性でサバイブしていくべきなのでしょうか?もちろん、僕自身も答えを見つけられてはいないのですが、その方向性だけでも共有したいと思っています。

5章を除く部分についてのサマリは福井のイベントで講演した資料をご覧ください。


出版される前から弱気なのは、もうこの瞬間にも本の一部が時代遅れになっているだろうということです。その筋の専門家が読めば「ださっ」と言われかねないだろうとも思っています。ただ、そういった最新技術をピックアップすることよりも、これまでの道のりを整理することが必要だと感じた次第です。

この本が皆さんにとって少しでも助力になれば幸いです。少ししたらイベントも企画します。