BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ アーティクル ソフトウェア・アーキテクチャとデザインのInfoQトレンドレポート - 2023年4月

ソフトウェア・アーキテクチャとデザインのInfoQトレンドレポート - 2023年4月

キーポイント

  • Daprのようなフレームワークがクラウドネイティブの抽象化モデルに焦点を当て、アーキテクトがビジネスロジックを実装の詳細から切り離せるようにするため、移植性を考慮したデザインが採用されつつある。

  • 大規模言語モデルは、アーキテクチャのトレードオフを理解するのに役立ち、新世代のローコード・ノーコード開発者に力を与えるなど、大きな影響を与えるかもしれない。

  • ソフトウェアの持続可能性は、今後数年間、設計上の主要な検討事項となるだろう。ソフトウェアシステムの二酸化炭素の排出量をより適切に測定し、削減するための取り組みが行われている。

  • 分散型アプリは、暗号通貨やNFTを超えるブロックチェーンを実現しつつあるが、消費者の需要がないため、ニッチなパターンに留まるだろう。

  • 建築家は、意思決定の文書化、伝達、理解の方法について常に改善を求めている。ADRやgitの履歴を調べる法医学者のような役割を果たす大規模言語モデルが、将来的に活躍する分野かもしれない。

 

画像

InfoQ Trends Reportsは、InfoQ読者に注目すべきトピックのハイレベルな概要を提供し、またInfoQ編集部が革新的な技術に焦点を当てるのにも役立つ。このレポートとトレンドグラフに加え、付属のポッドキャストでは、編集部員がこれらのトレンドについて話している。

トレンドグラフの更新

詳細は後述するが、まずは昨年のトレンドグラフからの変化点をまとめておくとよい。

今年は新たに3つの項目がグラフに追加された。大規模言語モデルとソフトウェアサプライチェーンセキュリティが新たなイノベーターのトレンドとなり、アーリーアダプターの下に "チームスポーツとしてのアーキテクチャ"が追加された。

今年は新たに3つの項目がグラフに追加された。大規模言語モデルとソフトウェアサプライチェーンセキュリティが新たなイノベーターのトレンドとなり、アーリーアダプターの下に "チームスポーツとしてのアーキテクチャ"が追加されたのである。採用されたトレンドにより"移植性を考慮したデザイン"、データ駆動型アーキテクチャ、およびサーバーレスが右へ移動した。eBPFはニッチな用途であり、アーキテクチャの決定において主要なドライバーとなる可能性が低いため、削除されたのだ。

また、いくつかのトレンドは、名称を変更したり、組み合わせたりした。Daprは"移植性を考慮したデザイン "コンセプトの実装であると考え、別のトレンドとして削除したのだ。データ駆動型アーキテクチャは、"データ+アーキテクチャ"と" データメッシュつまりdApps"を組み合わせたものである。ブロックチェーンは、分散型アプリ、つまりdAppsというより広範な概念に置き換えられた。WebAssemblyは、サーバーサイドとクライアントサイドの両方を記すようになった。これらは関連はあるが別のアイデアであり、将来的には独立して進化する可能性があるためである。

移植性の考慮したデザイン

移植性を考慮したデザイン"の移植性の側面は、コードを拾って移動可能にすることではない。むしろ、インフラストラクチャからのきれいな抽象化を実現するものである。InfoQの編集者であるVasco Veloso氏は"システムを設計・構築する人は、実行するプラットフォームの詳細を気にしすぎることなく、価値をもたらすものに集中できる"と述べている。

この設計思想は、Daprのようなフレームワークによって実現されている。InfoQのニュースマネージャーであるDaniel Bryant氏は、CNCFプロジェクトの利点として、クラウドネイティブサービスを構築するための抽象化レイヤーとAPIを明確に定義していることを挙げている。Bryant氏は "[統合では]APIがすべてであり、[Dapr]は最小公倍数的なことをせずに抽象化を提供する"と述べているのだ。

Bilgin Ibryam氏による最近の記事では、クラウドネイティブアプリケーションがクラウドバウンドアプリケーションに進化していることを説明している。クラウドバウンドアプリケーションは、アプリケーションロジックとコンピュートインフラの論理コンポーネントでシステムを設計する代わりに、統合バインディングに焦点を当てる。このバインディングには、外部APIや、ワークフローオーケストレーション、オブザーバビリティのテレメトリなどの運用ニーズが含まれるのだ。

移植性を考慮したデザインサーバサイドをサポートするもう一つの技術は、WebAssembly、特にサーバサイドWebAssemblyである。WebAssemblyは、ブラウザで実行されるコードを最適化するためのクライアントサイドの機能であると考えられることが多いようだ。しかし、WebAssemblyを使用すると、サーバサイドのコードにも大きな利点がある。InfoQ編集者のEran Stiller氏は、WebAssemblyベースのコンテナを作成するためのプロセスについて説明した。

Dockerコンテナにコンパイルして、そのコンテナ内のシステム全体をオーケストレーターでスピンアップするのではなく、WebAssemblyにコンパイルすることで、コンテナをより軽量化できる。ブラウザを実行するためのものなので、セキュリティも確保されている。そして、どんなクラウドでも、どんなCPUでも、どこでも動かすことができるのだ。- Eran Stiller氏

DaprWebAssemblyの詳細については、InfoQのトピックを参照ください。

大規模言語モデル

AI、特にGPT-3やGPT-4のような大規模言語モデルをめぐるニュースは、無視できない。一般の人々への普及やあらゆるメディアでの報道が示すように、単にソフトウェアの専門家によって使用されるツールではないのだ。しかし、ソフトウェア・アーキテクトにとってはどうなのだろうか。ある意味、何が起こるか知るには早すぎる。

ChatGPTとBingを使用すると、GPT-3のような大規模言語モデルで何が可能になるのか、まだ見え始めたばかりである。これこそ、イノベーター・トレンドの定義だ。何が起こるかは不明だが重要であり、今後数年で進化していくのを見るのが楽しみである。- Thomas Betts氏

将来は不確定だが、私たちは、これらのAIモデルが一般的に、構築するソフトウェアとその方法にプラスの利益をもたらすという楽観的な考えを持っている。ChatGPT、Bing chat、GitHub Copilotのコード生成機能は、コードやテストを書くのに便利で、開発者がより速く作業可能になる。また、建築家もチャットボットを使って設計の選択肢を検討したり、トレードオフを分析可能だ。

こうした効率性の向上は有用だが、AIモデルの限界を理解するために注意を払う必要がある。AIモデルには、明らかでないバイアスが組み込まれている可能性がある。また、自信満々に答えているように見えても、あなたのビジネス領域を理解していない可能性もあるのだ。

大規模言語モデルに基づいて新製品が開発されたり、企業が既存のシステムに組み込む方法を見つけたりするため、これは間違いなく2023年に注目すべき大きなトレンドとなるだろう。

データ駆動型アーキテクチャ

昨年は、アーキテクトがシステムを設計する際に、データをどのように異なる形で考慮するかを捉える方法として、"データ+アーキテクチャ "というアイデアについて説明した。今年は、この考え方をデータメッシュと組み合わせて、"データ駆動型アーキテクチャー "という見出しをつけたのである。

データの構造、保存、処理は、実装時に処理される詳細ではなく、前もって懸念されるものだ。QCon Londonのプログラミング委員会のメンバーであるBlanca Garcia-Gil氏は、"クラウドアーキテクチャを設計する際には、データの収集、保存、セキュリティについて最初から考えておく必要があり、後からAI/MLの活用も含めて価値を導き出せる "と述べている。また、Garcia氏は、少なくともシステムの他の部分のオブザーバビリティの状態と比較すると、データのオブザーバビリティは依然として革新的なトレンドであると指摘した。

データメッシュはパラダイムシフトであり、データプロダクトの所有権を中心にチームが整列している。これは、データ駆動型アーキテクチャの考え方に合致しており、コンウェイの法則をシステム全体の設計に取り入れられたのだ。

持続可能性を考慮したデザイン

持続可能性を考慮したデザインは、より多く採用されるようになってきているが、業界では持続可能なシステムや低炭素排出量のためのデザインを本当に受け入れ始めたばかりなので、革新的なトレンドとして残すことを選択した。コスト削減のために二次的に実現するのではなく、サステナビリティを第一の機能として考える必要がある。Veloso氏は、"最近、持続可能性に関する話題が多くなっていることに気づいた。正直なところ、その理由の半分は、エネルギーが高価になり、誰もがOPEXを削減したいと思うようになったからだろう"と述べている。

最大の課題のひとつは、システムの二酸化炭素の排出量を測定することの難しさである。これまで、コストは環境負荷の代用品として使われてきた。計算量の多さと炭素使用量の多さには相関関係があるからである。しかし、この手法には多くの限界があるのだ。

Green Software Foundationは、消費された炭素を測定するツールの作成を支援しようとする取り組みの1つである。QCon Londonでは、Adrian Cockcroft氏が、3 つの主要なクラウドベンダー(AWS、Azure、GCP)が現在どのような立場で炭素計測を提供しているか、その概要を説明した。

ツールが改善されれば、開発者は炭素使用量をシステムの他のオブザーバビリティのメトリクスに加えることが可能になる。その値が見えるようになれば、それを減らすようにシステムを設計し、修正できるようになるのだ。

これは、移植性やクラウドネイティブフレームワークをめぐる考え方とも関連している。システムの移植性が高まれば、もっとも環境に優しい方法で動作するようにシステムの適応がより簡単にできるようになる。つまり、グリーンエネルギーを使用するデータセンターにリソースを移動したり、利用可能なエネルギーがよりグリーンな時間帯にワークロードを処理したりできるのだ。太陽光発電を利用すれば、日中がもっとも環境に優しい時間帯となる可能性があるため、サーバーの稼働率が低い夜間に稼働させることが最良の選択であると考えることはもはやできない。

分散型アプリ(dApps)

ブロックチェーンと分散型台帳は、分散型アプリを支える技術である。しかし、ブロックチェーンは、ほとんどの人が問題として認識していない問題を解決するテクノロジーであることに変わりはない。

ブロックチェーンと Web 3.0 以外の分散化の使用は、ソフトウェア開発エコシステム内の他の場所でも登場している。例えば、Mastodonは Twitter に代わる分散型ソーシャル ネットワークとして登場した。ただし、このプラットフォームの消費者への取り込みは、既存の集中型サービスほど成功していない。 主にTwitterの変化により、Mastodonは代替となる分散型ソーシャルネットワークとして登場した。 しかし、ブロックチェーンは、ほとんどの人が問題視していないことを解決する技術であることに変わりはない。 このニッチな適用性から、ブロックチェーンは依然としてイノベーター・トレンドに分類される。

チームスポーツとしての建築

アーキテクトはもはや一人で仕事をすることはなく、もはや技術的な問題だけを考えられない。アーキテクトの役割は業界によって大きく異なり、中にはその肩書きを完全に排除し、アーキテクトの意思決定を主に担当する"プリンシパルエンジニア"を支持する企業もある。これは、アーキテクトがシステムを構築するエンジニアと密接に連携し、システム設計を継続的に洗練させていくという、より協調的なアプローチに対応するのだ。

アーキテクトは、ソフトウェアチームと協働してデザインを考え、それを反復してきた。ここでは(特に大きな組織では)異なる役割を見続けているが、コミュニケーションと、必要に応じてデザインを試す概念実証を通して協力することが重要である。- Blanca Garcia-Gil氏

アーキテクチャ決定記録(ADRs)は、設計の決定を文書化し、伝達する方法として、現在一般的に認識されている。また、エンジニアが技術的な意思決定やトレードオフを考慮することを学ぶためのコラボレーションツールとしても利用されているのだ。

トレンドレポートのディスカッションをInfoQポッドキャストで聴く

Architecture & Design編集部は、遠隔地に集まってこれらのトレンドについて議論し、その内容をポッドキャストとして収録しました。 ディスカッションの内容を聞いて、これらのトレンドの背景にある考え方を感じ取ってほしい

                    

作者について

この記事に星をつける

おすすめ度
スタイル

BT