InfoQとQConは「イノベータ、アーリーアダプタ、アーリーマジョリティのステージ」に当てはまるトピックに注目しています。私たちがやろうとしているのは、Geoffrey Moore氏が初期マーケットと呼ぶものに当てはまるアイデアを明らかにすることです。「カスタマベースを作るのは、好機や迫り来る問題より先を行こうとする、テクノロジに熱心な人や先見者です。」私たちは、より広く採用されるように「キャズムを超え」ようとするアイデアも探しています。これに関連して、採用曲線上のテクノロジの正確な位置は変化すると言う価値はあるでしょう。例えば、マイクロサービスは、ベイエリアの企業において、現時点で幅広く採用されています。しかし、他の場所ではそれほど広く採用されておらず、おそらく、それほど適したものではないかもしれません。
この記事では、「アーキテクチャと設計」(A&D)空間について、現在、私たちがどのように考えているかをまとめています。特に、基本的なアーキテクチャパターン、テクノロジフレームワークのパターンの実現、そして、ソフトウェアアーキテクトが養わなければならない設計プロセスとスキルに注目しています。
私たちがこのトピックを最後に見直してから注目に値する変化は、レイトマジョリティとなった「マイクロサービス」を含みますが、内部的な議論でも「正しく設計した分散システム」に深く関係するテーマと、リアクティビティの設計と耐障害性が、今のところ、採用曲線に沿っていないことが目立っていました。ガートナーのハイプ・サイクルに関して、私たちはマイクロサービスの「幻滅期」の底に近づいてるのかもしれません。
私たちは、アーリーマジョリティやレイトマジョリティへ採用曲線に沿って動くことはないアーキテクチャの領域があることも推測しています。不運にも、そこには、イベントソーシング/CQRSベース、または、アクタモデルベースシステムのような、いくつかの非常に効果的なパターンも含みます。これらのパターンは、ある種の組織やビジネスの問題に対して、非常に効果的な解決策を提供できます。
「サーバレス」という言葉は少しばかり紛らわしいですが、モジュール式イベント駆動システムの設計に注目する可能性や、いくつかの基礎をなすオペレーショナルプラットフォームの関心事を自動化する将来性を高く評価します。関連するテーマでは、要求と制約の将来的な変更をサポートする進化的アーキテクチャのために必要なものについても、より多くの議論があります。
「アーキテクト」の役割が、アーキテクチャのパターン認識やフレームワークの認知、そして、分野横断的な関心事の設計を扱うような現代の技術スキルに加え、テクニカルリーダーシップのようなソフトスキルに注目するようになることを、ますます見るようになりました。
ここでは、2018年の下半期にトピックグラフがどのように見えるかを示します。2019年バージョンは、この記事の一番上にあります。
次は、InfoQのアーキテクチャと設計トピックのエディタ3人の内部チャットログを少し編集したものです。採用グラフの推奨されるポジショニングの内容をよりよく示しています。
独立テックコンサルタント、Datawireのプロダクトアーキテクト、そして、InfoQニュースマネージャであるDaniel Bryant氏:
最初に、HTTP2はアーリーアダプタ(EA)、HTTP3はイノベータになると考えています。GraphQL(もしかするとgRPCも)は、EA(または、イノベータ?)でしょう。DevOpsキューに属するケイオスエンジニアのことも考えます。マイクロサービスは、BDD、DDD、そして、TDDとして、レイトマジョリティ(LM)でしょう。
「進化的アーキテクチャ」がどこか、もしかしたらEAに現れるのを見たいと思っています。そして、「テクニカルリーダーとしてのアーキテクト」はどうでしょう(役割の技術的ではない進化を強調して)。
あなたがここでどのように考えているのかを聞きたいと思います。何か動かしたり、トピックを追加、削除する必要があるのか教えてください。
25年以上も.Net/C#とJVM/Javaプラトッフォームでシステムを構築しているITコンサルタント、Jan Stenberg氏:
私は、アーキテクチャ&設計(AD)は、私たちがInfoQで扱う他のトピックとある程度異なると思います。
ADでは、これからやってくるアーキテクチャの新しい、または、更新したバージョンの決まった部分はありません。新しいツール、フレームワーク、または、それらを可能にする頭の切れるアーキテクトによって、代わりに、既存のアイデアが再び人気になって、パッケージ化され、ブランドになります。
また、2つのキューに合いそうな領域もあります。よりハイレベルでは、ADや他のキューのもっと技術的な部分に合っているでしょう。サーバレスはこの例だと思います。よりハイレベルなところでは、ADにとって重要な領域であり、さらに技術的な部分は、クラウドキューに属しているかもしれません。マイクロフロントエンドと、それと同様の技術は、もう1つの例です。これは、AD、またはHTML5とJavaScriptでしょうか?
また、EMやLMには決してならないと私が考えている領域やアーキテクチャがあります。残念なことに、イベントソース/CQRSベースやアクタモデルベースシステムのような、私の好きなアーキテクチャがいくつか含まれています。それらは、予知できる未来に、少しだけ使われるニッチのアーキテクチャだと思います。私たちが、これらをどのように扱うべきか確かではありませんが、おそらく、アーキテクトと開発者がこれらのことを話すのを止めた時に、徐々に消えていくでしょう。
だから、ADの将来に対する私の見解(または、おそらく私の望み)は、
- サーバレス。昨年のプレゼンテーションから受けた私の印象では、サーバーレスは、基礎的なインフラストラクチャに取り組む時間が減って、ますます自動化されます。
- Camundaのようなワークフロープラットフォーム。これらは、より複雑なビジネスロジックを持つマイクロサービスや分散システムにおいてとても重要だと思います。
- イベントソーシング/CQRS。これがメインストリームになることを望んでいます。たぶんEAかEM。
- イベント駆動アーキテクチャ。EAか、たぶんEM。
- アクタモデル/リアクティブ。昨年、私は、これについてVaughn Vernon氏と話しました。彼はこれがいつかメインストリームになると信じていましたが、私はそれを疑っています。
- 進化的アーキテクチャは興味深く、EAが正解だと思います。
- ケイオスエンジニアリング。はい、普通、これはDevOpsです。ADの視点からこのテーマを議論するプレゼンテーションは、例外かもしれません。
- GraphQL、そして、それと同類のツールは、RESTと取って代わる、IかEAだと思います(できれば、適切に実装もされている)。
- テクニカルリーダーとしてのアーキテクト。私は、家で、様々なアーキテクトと会ってきました。彼らの多くにとって、主な仕事は、自分たちのドメインを理解するために、ビジネス/政府のドメイン専門家を得ることです。しかし、たぶん、これは、もっとアジャイルキューの話になるでしょうか?
- マイクロサービスはLMです。(私は、マイクロサービスはすぐに「今日のSOA」になると考えています。多くの人たちが、それらをよい意味で使っています。あまりにも多くの人たちが、分散モノリスにラベルを付けました。)
- DDDは、レイトマジョリティですが、まだInfoQの興味深いテーマであることを望みます。
- BDDはレイトマジョリティか、むしろ「レイトマイノリティ」です。
- TDDは、まだ幾分は多かれ少なかれ興味深い議論です。少なすぎるか、多すぎるか、ユニットテストやブラックボックステスト、アイスクリームコーンか何かですが、少なくともLMです。
私が、カンファレンスや同様のイベントではなく、普段、アーキテクト、開発者、ドメイン専門家等に会う時に、ここで話しているコンセプトの多くは知られていないか、彼らにとってはとてもまわりくどいものであることが分かりました。そのため、彼らにとってInfoQの利点が分かりにくくなっています。私は2年前に聴いたプレゼンテーションを覚えています。ディベロッパカンファレンス(カナダだったと思います)で、Vaughn Vernon氏がDDDを知っている人がどれくらいいるか尋ねた時に、聴講者の約半分が手を挙げました。
私がInfoQで記事を書き始めた時に、アーキテクチャに影響を与える機能性を追加したと思ったフレームワークやライブラリのアップデータについて、かなり書きました。しかし、時間と共に、私の書くことは、興味深いブログの投稿やプレゼンテーションに注目するようになりました。特定のアーキテクチャに密接に関連すると思うAxonやAkka等のフレームワークに関することは、ほんのわずかでした。
このような議論は、QConカンファレンス中にするとよいでしょう。
InfoQのチーフエディタ、Charles Humble氏:
アクタモデルに関して、私はVaughn Vernon氏と同様です。これは、直接、または、メッセージングのような何かを通して、メインストリームになると思います。JVM空間において、Akkaはこのアプローチを広めるよい働きをしています。メッセージングベースのシステムは、長期間、財務システムのアクタのような何かをするのに人気のある方法です。
アクタは、人がしっかりと捉えて、論理的に考えることが簡単にできるようです。そして大規模な並列作業を扱うのによい方法です。私は、現代のアクタベースシステムの例として、Pony周りに構築された勢いを見たいと思っています。しかし、それはありそうもないと言わなければなりません。
進化的アーキテクチャに関して、Martin Fowler氏が昨年のポッドキャストで話し、エクストリームプログラミングと比べたのを聞きたいと思っていました。これについて、Thoughtworksの本を読むのを楽しみにしています。
IHS Markitの主席ソフトウェアエンジニアであり、InfoQアーキテクチャキューのリード、Thomas Betts氏:
非常に高いレベルで、Daniel氏が提案したことにほぼ同意します。そして、Jan氏が言うように、いくつかのアーキテクチャパータンはトピックグラフの自然な経過によく合いますが、他のものは広く適用できないため、アーリーアダプタフェーズの先にはおそらく決して行かないでしょう。
私は、A&DとInfoQの他のトピック、特に文化と手法が重複することに、時折、苦労しています。コンウェイの法則のせいにしましょうか。アーキテクチャの多くは、コミュニケーションに行き着きます。私のシステムに入って、出て行く外部コミュニケーションのポイントは何でしょうか? 私の内部サービスは、お互いどのようにコミュニケーションするでしょうか? 私のデータはどのように永続して、アクセスされるでしょうか?
多くの場合、これらの質問に答える企業のやり方や、選択できる選択肢は、A&DとC&M両方の採用ライフサイクルの曲線上の位置に基づくでしょう。A&Dは技術面で、C&Mは技術面ではないと言いたいですが、それでは簡単に割り切りすぎているように思います。また、技術的な実装は、おそらく開発、かつ/または、言語のキューに分類されるでしょう。A&Dは、その間のどちらともつかない場所にいて、分野横断的な関心事を扱います。できれば、システムの実装方法の方向性を示してほしいものです。
哲学的な暴言をやめて、少し特定の議論のポイントを付け加えるだけにしましょう。
- サーバレス - この言葉は特定の何かを意味しているように見えないので、個人的に好きではありませんが、サーバレスは、おそらくEAにおいて、表される必要があります。
- リアクティブ - おそらくEA。リアクティブアーキテクチャは、もっと共通のものになると思います。開発者たちは、特にJavaScriptで、リアクティブプログラミングに慣れてきています。これは、本末転倒かもしれません。
- DDD - DDD自体は、おそらくLMへ動き、DDDとぴったりと関連するスピンオフなアイデアが、IやEAにたくさんあります。例えば、イベントソーシングはEA/LMとして言われることにメリットがあるでしょう。しかし、多くのこれらのサブトピックがADトピックグラフに含まれることを正当化するとは思いません。
- マイクロサービス - 一般的に間違って使われたり、間違って理解されたりする言葉として、「サーバレス」とトップを争っています。広く使われることに関して、レイトマジョリティに移動するものとしてこれを見ていますが、しっかりした分散アーキテクチャのためのEAになるだけかもしれません。
- 分散システム - トピックグラフの1アイテムとして、これを持つものになるとは思いません。範囲が広すぎます。しかし、私は、自分たちが分散を考えながら設計することについて話しているのを見たいと思います。リアクティブや故障耐性のようなアイデアは、モノリスでは重要ではなくても、強靭な分散システムにとっては重大です。これは、A&Dトピックグラフを混沌とさせる議論となるでしょう。
私は、QConでこの議論をすることを完全に支持します!
ニュースや記事を書いて、現在、そして未来のトレンドを分析する専門的な実践者を探し、トレーニングすることによって、InfoQ編集チームは作られます。エディタページを通してエディタへ申し込んでください。そして、この会話に参加してください。
著者について
Thomas Betts氏は、IHS Markiの主席ソフトウェアエンジニアであり、20年に渡る専門的なソフトウェア開発の経験を持ちます。彼が注目しているのは、顧客を喜ばせるソフトウェアソリューションを提供することです。彼は、小売、金融、ヘルスケア、防衛、旅行を含む、様々な産業で働いてきました。Thomas氏は、妻と息子とDenverに住み、ハイキングすることが大好きです。それ以外は、美しいColoradoを探検しています。
Daniel Bryant氏は、組織と技術の変化をリードしています。彼の現在の仕事は、よりよい要求の収集と計画技術を導入することによって、組織が俊敏になることを含みます。そして、アジャイル開発のアーキテクチャの妥当性に注目し、継続的統合/納品を促進しています。Daniel氏は、現在、技術的専門として、「DevOps」のツール、クラウド/コンテナプラットフォーム、マイクロサービス実装に注目しています。彼は、また、ロンドンJavaコミュニティ(LJC)のリーダーであり、いくつかのオープンソースプロジェクトに貢献し、InfoQやDZone、Voxxed等、よく知られた技術ウェブサイトに書いています。そして、QCon、JavaOne、Devoxxのような国際カンファレンスで発表しています。
Charles Humble氏は、2014年3月に、InfoQ.comのチーフエディタを引き受けました。そして、ニュース、記事、書籍、ビデオプレゼンテーション、インタビューを含むコンテンツ作成を指導しました。InfoQのフルタイムの役割を引き受ける前に、Charles氏は、Javaカバレッジを指揮し、PRPi ConsultingのCTOでした。この会社は、2012年7月にPwCによって買収された報酬調査会社でした。PRPiで、彼は、この会社で使われるすべてのカスタムソフトウェアの開発に、全責任を負っていました。彼は、開発者、アーキテクト、開発マネージャとして、約20年、エンタープライズソフトウェアに取り組んできました。余暇時間には、ロンドンベースの環境テクノグループ、Twofishの3分の1として作曲します。Twofishは、14年間、高価なおもちゃをいじりまわして、2014年2月にデビューアルバムを発表しました。彼は、妻と子供達とできるだけ多くの時間を過ごしています。
Jan Stenberg氏は、スウェーデン北部で25年以上、ITコンサルタントとして働き、.Net/C#やJVM/Javaプラットフォームでシステムを構築する経験を持ちます。彼の経験は、ウェブベースのリッチクライアントアプリケーションを通した、大規模分散サービスベースシステムからハードウェア関連ソフトウェアまで及びます。