BT

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

寄稿

Topics

地域を選ぶ

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

ソフトウェアアーキテクチャ・設計のInfoQトレンドレポート — 2022年4月

ブックマーク

キーポイント

  • "Data plus architecture" is the idea that, more frequently, software architecture is adapting to consider data. This holistically includes data quality, data pipelines, and traceability to understand how data influenced decisions and AI models.
  • Innovative software architecture is facilitating data quality the way we’ve improved code quality. Catching bad data early is as important as catching bugs early.
  • The practice of software architecture does not belong solely to people with the job title of architect. Every engineer can actively participate in the architecture, and architects should help facilitate that process.
  • One positive benefit of the pandemic and the shift to remote and hybrid work is increased asynchronous communication, which can manifest as Architecture Decision Records (ADRs).
  • Software architects are adapting their feedback loops, which can be challenging when dealing with colleagues across many time zones or other remote work constraints. Good architects are learning from distributed working how to design better distributed systems.
     

原文(投稿日:2022/04/11)へのリンク

毎年、InfoQの編集者は、ソフトウェア開発の全体像を通して我々が目の当たりにしてきたことについて話し合い、トレンドレポートをいくつか作成しています。それぞれのレポートに対して、独自の採用曲線グラフが含まれます。これによって、編集チームは革新的なテクノロジーやアイデアに対してレポートを集中させることができます。また、読者に対して注目すべきトピックの概要を提供できます。

これらレポートには2つの主要な要素があります。1番目は、現在読まれているレポートです。そこには、過去1年間に追加・変更された個々の項目のトレンドグラフと詳細が含まれます。また、InfoQエディターによるさまざまな分析が含まれます。

レポートの2番目の部分は、InfoQポッドキャストの放送です。これは、編集者の会話の一部を聞いたり、専門家のパネルから事例を聞く機会となります。

トレンドグラフの更新

2021年に、私たちはアーキテクトが主要な「イリティーズ(-ilities:スケーラビリティ、セキュリティなどの総称)」を考え、自身のデザインを形作る多くの方法を見てきました。今年は、そのリストに「セキュリティのための設計」を追加し、アーリーアダプタステージとして検討しています。セキュリティは常に要素として挙がってきましたが、システムとそのコンポーネントを設計する際には、セキュリティを早期に繰り返し考慮することがますます重要になっています。

アーキテクチャは、3つの単語の混成語DevSecOpsの一部ではないかもしれません。しかし、そのアイデアの根底にある要素です。InfoQポッドキャストでMaxime Lamothe-Brassard氏と話し合ったように、サイバーセキュリティとソフトウェアアーキテクチャの間にも多くの類似点があります。

「スケーラビリティーの設計」を追加することを検討しましたが、「回復力の設計」と、スケーラビリティーに対応するために存在するその他のトレンドの概念に包含させることに決定しました。パンデミックの2年目も、オンラインサービスの消費は増え続け、企業は需要を満たすために規模を拡大する必要がありました。

拡張BerkleyパケットフィルターのeBPFは、Linuxカーネルをプログラミングする方法です。これによって開発者は実行時にオペレーティングシステムに機能を追加できるようになります。eBPFをイノベータートレンドとして追加し、今後数年間でその採用を監視します。Liz Rice氏は、InfoQポッドキャストの最近の放送でテクノロジーの概要を説明しました。

「次世代GraphQL」という用語は、GraphQLフェデレーションに変更されました。それは、既存のGraphQL実装の上に構築するものに対して、企業が真っ先に受け入れる解釈であるためです。

「データゲートウェイ」は削除され、「データ+アーキテクチャ」に置き換えられました。また、Architect ElevatorはArchitecture Decision Recordsに置き換えられました。これらの変更については、このレポートの後半で詳しく説明します。

DaprとWebAssemblyの両方が、イノベーターからアーリーアダプターに移行しました。

いくつかの項目は、過去数年間に渡って採用がなく、十分な革新がなかったために削除されました。それはOpen Application Model(OAM)とRSocket & Reactive Streamsです。

データ+アーキテクチャ

私たちは、システム内のストレージ層やトランスポート層でのみ考慮されていたデータが、システムを定める要素へと移行するところを見てきました。これは、データから構築されるAI/MLシステムや、イベントソーシングなどのデザインパターンでは明らかです。これは、データメッシュなど、明確に定義された概念で表される場合があります。これは、別のイノベータートレンドとして引き続き監視します。より頻繁に、アーキテクトが異なる視点でデータを考えるようになってきているため、今年のトレンドグラフに「データ+アーキテクチャ」が追加されました。

InfoQ Podcastのインタビューで、Neal Ford氏とMark Richards氏は、彼らの新書Software Architecture: the Hard Partsにデータに関する章を含める必要があることを話しました。Neal氏は次のように言っています。

データとアーキテクチャが今後数年間で1つのテーマになると確信しているため、完全な全体像を把握したかったのです。そして、私たちが現在行っている多くの専門的な取り組みのテーマは非常に重要です。その関係を解きほぐし、それを円滑に機能する関係にするのが、DBAとアーキテクトの間のコラボレーションです。このプラクティスを、アーキテクチャと設計で慣れ親しんでいるのと同種のプラクティスに取り入れていきます。

データ+アーキテクチャには、SEOにとって馴染みのある用語がいくつか含まれています。例えば、データゲートウェイで、それはグラフ上で置き換わっています。また、そこには、データ品質などのアイデアや、「使用するデータが正しいことをどのように確認するか。それが私たちが期待していたものであることをどうやって知ることができるか。」という問題を解決しようとするツールを導入することも含まれています。この疑問に対応しないと、結果的に悲惨なことになる可能性があります。

InfoQの編集者であるEran Stiller氏は、Badookでの自身の仕事でデータ品質を考えており、この件について次のように述べています。

今日の企業は、人工知能と機械学習のアルゴリズムにますます依存するようになってきています。企業はそれらを使って、顧客体験を強化し、売上と在庫レベルを予測し、ビジネスに対する価値ある分析結果を得ることができます。場合によっては、人間の介入なしに完全に自動化された決定を行うことさえあります。これらのアルゴリズムはデータに依存しています。データが良ければ、彼らは使用に適したモデルを構築することができます。しかし残念ながら、データは時間の経過とともに変化し、その品質は低下します。データ収集でエラーが発生し、データパイプラインが誤ってデータに対する混乱をもたらす可能性があります。また、以前にデータに対する仮定が時間の経過とともに変化し、有効でなくなる可能性があり、悲惨なビジネス結果を引き起こす可能性があります。

たとえば、不動産会社のZillowは、最近5億ドル以上の評価損を計上 しました。これは住宅価格を予測し、ビジネス上の意思決定を推進するためのデータモデルが変化する現実に適応できなかったためです。

さらに、欧州連合などの世界中の規制当局は、人工知能アルゴリズムを作成・使用する方法を規制している最中です。同様のAlgorithmic Accountability Actが最近米国議会で導入されました。これらの規制の重要な部分は、アルゴリズムの導出に使用されるデータが正当であることを保証することです。

したがって、データの品質と信頼性は、すべてではないにしても、ほとんどのテクノロジー企業にとってますます懸念されるトピックになると私は予測しています。コードをテストするのと同じように、データをテスト・検証し、期待どおりに動作することを保証する必要があります。そうしないと、ある朝目を覚まして、不正な予測に基づいてビジネス戦略を立てたり、さらに悪い場合には、数十億ドルの費用がかかるような悲惨な財務上の意思決定を完全自動で行う可能性があります。私たちの誰もがそのような状況になりたくないでしょう。

アーキテクトとアーキテクチャ

業界全体で、アーキテクトの役割とソフトウェアアーキテクチャ・設計の実践を定義する幅広い領域があります。多くの企業にはソフトウェアアーキテクト向けの役職はなく、そのような役職のある企業は非常に様々な責任を持っています。それにもかかわらず、ソフトウェアは常に設計され、常にアーキテクチャを備えています。私たちの課題は、アーキテクチャで実践されている革新的な方法と、これがソフトウェアアーキテクトの役割にどのように現れるかを明確にすることです。

これは、トレンドグラフの短い概念に要約するのは難しい考えです。昨年、組織の様々なレベルでコミュニケーションをとる必要があるというアーキテクトに対する「アーキテクトエレベータ」というGregor Hohpeのアイデアがありました。それ以前には「テクニカルリーダーとしてのアーキテクト」がいました。どちらもアーリーアダプターのカテゴリーに属していました。これは必ずしも革新的ではないが、広く採用されていないという直感からのものです。

今年は、アーリーアダプターのアイデアとして「アーキテクチャデシジョンレコード(ADR)」を含めました。ADRのすばらしい参考文献は、Michael Nygard氏の2011年の記事にあります。ほとんどのソフトウェアチームは「ボックスと矢印」のアーキテクチャ図に精通しています。これは、システムの望ましい状態、あるいは現在の状態を文書化するのに役立ちます。

ただし、これらの設計上の決定が行われた理由を理解することは、多くのケースで有用です。これがADRの目的です。ADRは、検討された他のオプションとその時点で行われたトレードオフ分析とともに決定を記録することにより、将来、設計を更新する必要がある場合、または単に設計に疑問がある場合のリマインダーとして非常に役立ちます。

分散システム、および半自律的なチームによって構築されたマイクロサービスを構築することに対する副作用の1つは、アーキテクチャの決定も分散されることです。したがって、アーキテクトは、チームがアーキテクチャタスクを実行できるように支援する必要があります。タスクとは、トレードオフ分析、適切な意思決定、それらの決定の文書化と伝達などです。Andrew Harmel-Law氏によると、ADRはソフトウェアアーキテクチャをスケールさせる上での重要な要素になります。

アーキテクトの役割とソフトウェアアーキテクチャの実践に関する詳細な議論を聞くために、付属するポッドキャストを聞くことを強くお勧めします。

 

開催予定のQCon Events 2022

国際的なソフトウェア開発会議のQConは、2022年に(対面とオンラインで)戻ってきます。

QConでは、さまざまな領域にわたる世界で最も革新的なシニアソフトウェアエンジニアが集まり、新しいトレンドとプラクティスの実際の実装を共有してくれます。

奥深い知見のあるソフトウェアリーダーから、ソフトウェアを作成し、アーキテクチャをスケーリングし、技術的リーダーシップを身につける(製品の売り込みではない)実践的なインスピレーションを発見してください。正しい意思決定の助けになるでしょう。

QCon London(4月4日~6日)に現地で参加するか、QCon Plus(5月10日~20日)にオンラインで参加してください。

作者について

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT