BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ アーティクル ソフトウェアアーキテクチャと設計のInfoQトレンドレポート - 2021年4月

ソフトウェアアーキテクチャと設計のInfoQトレンドレポート - 2021年4月

ブックマーク

キーポイント

  • In a cloud-native world, architects are reprioritizing the -ilities they consider most important. Innovative architects are designing for resilience, observability, portability, and sustainability.
  • Dapr and the Open Application Model are two ways to make building distributed systems easier, and it will be interesting to watch how they are adopted in the future.
  • The pendulum seems to be coming to rest, after swinging to extremes between monoliths and microservices. As a result, architects are relying on well-established patterns and designs that focus on high cohesion and low coupling, regardless of the underlying technology.
  • In fully-remote work environments, architects are finding new ways to communicate with their teams, and finding replacements for the water cooler chats which were useful for gathering knowledge.
  • The next generation of GraphQL features, notably GraphQL Federation and GraphQL Microservices, are showing where to go next after companies have strong adoption of GraphQL.

原文(投稿日:2021/04/19)へのリンク

毎年、InfoQエディターは、ソフトウェアアーキテクチャと設計の現状についてディスカッションし、注目すべき主要なトレンドを特定して、このレポートと付属のグラフを作成しています。今年は、InfoQポッドキャストのエピソードでディスカッションを聞くことができます。エディターには、IBMの企業戦略チームのイノベーションリーダーであり、前のQConの講演者であるHolly Cummins氏が加わりました。

___のための設計

まず、アーキテクトにとってどの「-ilities」が最も重要であるかを調べます。ソフトウェアアーキテクトは、横断的関心事に責任があり、大規模システムの個々のコンポーネントがシームレスに連携して全体的な目標を達成できるようにします。2021年に、アーキテクトが関心を持っていると感じる4つの領域は、復元力のための設計、可観測性のための設計、移植性のための設計、および持続可能性のための設計です。

復元力のための設計は、個々のコンポーネントに障害が発生してもシステム全体が引き続き利用できなければならない最新の分散システムにとって不可欠です。多くの点で、実装されているアイデアは新しいものではなく、分散システムやモジュラーアーキテクチャが一般的になるにつれて、重要性が増しているにすぎません。Daniel Bryant氏は、1970年代にDavid Parnas氏が行った仕事と、Michael Nygard氏の最新の本「Release It!」を、サーキットブレーカー、タイムアウト、再試行、および復元力のあるシステムのその他の基本的な要件のアイデアの良い情報源であると言及しました。新しいのは、クラウドネイティブのサービスメッシュを使用したり、Daprなどのフレームワークを構築したりするなど、システム全体でこれらの問題を解決する方法を見つけることです。

採用曲線をさらに下ると、非同期プログラミング手法とイベント駆動型アーキテクチャの採用が着実に増加しています。この採用は、非同期パターンを実装するための参入障壁が低いことと、システムの復元力が向上するという組み込みの利点の両方の結果です。

ただし、イベント駆動型アーキテクチャと非同期システムの裏側は、一般に、それらを推測して理解するのが依然として難しいことです。これが可観測性のための設計の台頭に結びついています。多くの場合、可観測性は実行時のニーズと見なされています。システムが予測された動作をするかどうかを確認できますか? しかしアーキテクトにとって、可観測性は設計時のニーズとしてますます重要になっています。複雑なシステムで発生するすべての相互作用を理解できるのでしょうか?

2021年、イノベーターは、実行時と設計時の両方の可観測性の利点をほとんど自動的に提供する方法を模索しています。可観測性の非機能要件を手動で実装する必要がある開発者の負担を取り除くことにより、システムの全体像から重要なコンポーネントが欠落する可能性が低くなります。これにより、可観測性を使用して、正確で生きたアーキテクチャ図と、それに対応するシステムのメンタルモデルを作成できるようになります。

アーキテクトのもう1つの重点分野は、マルチクラウドであろうとハイブリッドクラウドであろうと、移植性 (portability) のための設計です。ほとんどの場合、アーキテクトが真のマルチクラウドの移植性を実現したり、ベンダーロックインを回避したりするために最小公分母で設計する理由はありません。ただし、特に企業買収の場合、CTOは、AWS、Azure、GCP、オンプレなどの個別のホスティング環境で実行されるシステムを使用する可能性が高くなります。標準化に関する決定を行うとき、アーキテクトは自分たちの戦場を選ぶ必要があります。

Holly Cummins氏は、新しいイノベーターのトレンドの1つである、持続可能性のためのデザインについて話しました。これは、ソフトウェア業界が航空業界に匹敵するレベルのカーボン使用量のために責任があることを人々が認識しているために浮上しています。コンピューティング使用量の請求額はエネルギー消費量と高い相関関係があるため、これの一部はほぼ直接測定可能です。CTOとアーキテクトが影響を与える可能性があるのは、不要なコンピューティングの使用を削減するか、より持続可能なクラウドホスティングオプションを利用することです。一部のクラウドデータセンタは100%のグリーンエネルギーで稼働していますが、バージニア州のデータセンタは石炭を源としています。レイテンシ (待ち時間) がそれほど問題にならない場合は、バージニアではなくアイスランドでホストするのが理にかなっているかもしれません。多くの企業は、純粋に経済的な理由でホスティングコストを削減しようとしていますが、持続可能性を優先し、それに応じてシステムを設計およびデプロイすることを選択している企業もあります。

正しく構築された分散システム

マイクロサービスのトピックは、トレンドグラフ全体で着実に移動しており、分散システムの構築が容易になったため、しばらくの間、レイトマジョリティトレンドに分類されてきました。ただし、すべての問題を解決するための試みとして、マイクロサービスの乱用に対する反発が続いています。場合によっては、これによりモノリスに戻るなど、大きな逆転が発生しました。振り子の揺れが止まり、ほとんどのシステムでようやく正気のアプローチで着手しているようです。

分散システムまたはモジュラーモノリスの構築に関するいくつかのトレンドはすべて、高凝集度や低結合度などの基本的なアーキテクチャの原則に戻っています。ドメイン駆動設計は、レイトマジョリティトレンドと見なされていますが、コンテキストマッピングとシステムの境界の特定に関する優れたガイダンスを探しているアーキテクトによって引き続き重要視されています。同様に、C4モデルは、システムを理解するのに役立つアーキテクチャ図の階層セットを作成するのに非常に役立ちます。

データアーキテクチャ

InfoQは、ソフトウェアアーキテクチャとデータアーキテクチャの重複にイノベーションを見出し続けています。昨年グラフに追加されたデータメッシュは、今年もイノベータートレンドに残っています。これは、APIゲートウェイに似ていますが、データの側面に焦点を当てたデータゲートウェイによって結合されています。マイクロサービスがポリグロット永続層につながったため、APIゲートウェイは、抽象化、セキュリティ、スケーリング、フェデレーション、および契約駆動の開発機能を提供します。

アーキテクトの役割

私たちは、ソフトウェアアーキテクトが組織で果たす役割を引き続き検討します。従来の「ボックスと矢印」の責任を超えて、アーキテクトは他のチームメンバの技術リーダーおよびメンターとしての役割を果たしています。アーキテクトはまた、多くのオーディエンスとコミュニケーションをとることができる必要があります。Gregor Hohpe氏は、アーキテクトのエレベーターに乗って、CTOや他の幹部と話し、そしてエンジンルームに移動して開発者と協働していると説明しています。

多くのチームにとって、パンデミックのためにコミュニケーションスタイルが非常に混乱し、多くの企業は長期的なリモートワーク戦略を採用しました。これは、アーキテクトが開発者と同じ部屋に座って会話を聞くことができたという理由だけで、浸透によって学ぶ能力を失ったことを意味します。これが役に立ったところでは、IMチャットルームであろうとアーキテクチャの決定記録であろうと、より多くの書面によるコミュニケーションにつながり、チームが定期的にそれらを参照しているため、それらを最新の状態に保ちます。主要なアーキテクトは、フルリモートチームの制約を活用して、より優れたソフトウェア設計を作成する方法を模索しています。

その他のトピック

DaprOpen Application Model (OAM) は、どちらも2019年後半にMicrosoftによって導入されました。OAMはクラウドネイティブアプリケーションを定義するための仕様であり、コンテナやオーケストレーターではなく、アプリケーションに焦点を当てています。同様に、Daprは、クラウドネイティブ開発を容易にすることを目的としたプラグ可能なコンポーネントを備えたフレームワークです。Microsoftはそれらの作成に関与しましたが、どちらもオープンソースプロジェクトであり、どのクラウドプロバイダでも動作し、DaprはCNCFプロジェクトになるかもしれません。DaprとOAMはどちらもまだ大きな採用が見られていないため、注目すべきイノベータートレンドであることは明らかです。

WebAssemblyはもう1つのイノベータートレンドです。アーキテクトにとって、それがWebフレームワークとモバイル開発の単なる補助として使用されるのか、それともシステムがWebAssemblyを念頭に置いて設計されるのか、そしてそれがどのように現れるのかを見るのは興味深いでしょう。

最後の注意は、昨年のトレンドグラフでキャズムを越えたGraphQLについてです。それ以来、特にNetflixでは、次世代のGraphQL機能、特にGraphQLフェデレーションGraphQLマイクロサービスのためのイノベーションがありました。マイクロサービスによって作成されたスプロール現象がそのスプロール現象を管理するための新しいパターンにつながったように、GraphQLに多額の投資を行っている企業にとって、新しい複雑さの管理を支援するためにGraphQLフェデレーションが必要です。これはすべての企業が遭遇する問題ではありませんが、将来どこに行くのかを知り、確認することは依然として有用です。

著者について

Thomas Betts氏 は、InfoQのアーキテクチャとデザインのリードエディターであり、Blackbaudのシニアプリンシパルソフトウェアエンジニアです。20年以上の間、彼の焦点は常に顧客を喜ばせるソフトウェアソリューションの提供にありました。彼は小売、金融、ヘルスケア、防衛、旅行などさまざまな業界で働いてきました。Thomasは妻と息子と一緒にデンバーに住んでおり、ハイキングやその他の方法で美しいコロラドを探索するのが大好きです。

Daniel Bryant氏 は、Ambassador LabsのDev Relのディレクターであり、InfoQのニュースマネージャであり、QCon Londonの議長を務めています。彼の現在の技術的専門分野は「DevOps」ツール、クラウド/コンテナプラットフォーム、およびマイクロサービスの実装に焦点を当てています。DanielはLondon Java Community (LJC) のリーダーであり、いくつかのオープンソースプロジェクトに貢献し、InfoQ、O'Reilly、DZoneなどの有名な技術Webサイトへの投稿や、QCon、JavaOne、およびDevoxxのような国際カンファレンスでの常連のプレゼンターです。

Holly Cummins氏 は、IBM Corporate Strategyのイノベーションリーダーであり、IBM Garageのコンサルタントとして数年間を過ごしました。Garageの一部として、彼女は銀行からケータリング、小売、NGOまで、さまざまな業界のクライアントにテクノロジー対応のイノベーションを提供しています。Hollyは、OracleのJavaチャンピオン、IBM Qアンバサダー、およびJavaOne Rock Starです。彼女はManningの「Enterprise OSGi in Action」の共著者です。

Eran Stiller氏 は、CodeValueのCTOであり共同創設者です。CodeValueのCTOとして、Eranは、複数のビジネスドメインにわたるさまざまなソフトウェアソリューションを設計、実装、およびレビューします。ソフトウェア開発とアーキテクチャにおける長年の経験と、人前で話すこととコミュニティへの貢献の実績を持ち、Microsoftは、2018年にはMicrosoft Regional Director (MRD) として、2016年にはMicrosoft Most Valuable Professional (MVP) としてEranを認めています。

この記事に星をつける

おすすめ度
スタイル

BT