
エッジ環境向けのソフトウェアエンジニアリングは、エッジコンピューティングのツール、プラットフォーム、そしてサービス上で、そしてそれらと連携して実行されるべきです。声に出して言うのは非合理的、あるいは狂気じみているように思えるかもしれませんが、コンピューティングエッジの構築にはエッジテクノロジーが不可欠です。
ソフトウェア インフラストラクチャの専門家 Progress は、それ以外の手段を提案することは愚かな行為に等しいと考えています。
しかし、どのようにして私たちはここに至ったのでしょうか。そして、エッジコンピューティング銀河の西の渦巻き腕で私たちが非常に大切にしている点滅するセンサーのノードにまで、DevOps (開発と運用) という結合されたワークフロー文化を維持しようとすると、なぜエッジのコーディングがこれほど難しいのでしょうか。
エッジDevOps:複雑
Progress の Chef Business 部門の EVP 兼ゼネラルマネージャーである Sundar Subramanian 氏は、DevOps と DevSecOps 機能で知られる ChefConf トラック内で開催され、現在は Progress の親会社となっている Progress の年次開発者ユーザー コンベンション Progress360 で、エッジと DevOps についての見解を述べました。
「私たちは、物事が急速に変化する世界に突入しており、それが複雑さを招いています」とスブラマニアン氏は述べています。「…オンプレミスからクラウド、そしてエッジへと移行するにつれて、デバイスの数と種類、そしてそれら上で実行されるデータとアプリケーション処理ジョブの範囲が拡大するにつれて、複雑さが増していきます。そして、これらすべてがDevOpsシステムをさらに複雑にしているのです。」
参照: ネットワーク管理者に必要な20の良い習慣と、やめるべき10の習慣 (無料PDF) (TechRepublic)
ここでも、複雑さの要因は単一のベクトルで現れるわけではありません。新しいデバイスやスマートマシンが日々登場しています。5Gでは新たなネットワークプロトコルも考慮する必要があり、コンテナとそれに関連するオーケストレーション技術の有効性が実証され、その利用が増えていることから、クラウドには新たな複雑さが生じています。
主要なクラウド サービス プロバイダー (CSP) が提供するさまざまなオペレーティング システム、さまざまなコンプライアンス制限、さまざまなコンピューティング アーキテクチャの使用を考慮すると、デスクトップ、クラウド、エッジで物事が自然にシンプルになっているように見える時期ではありません。
「ITスタックの新しい要素をエッジに移行すると、ノード数、アプリ数、そして今後の統合タスクといった面で、あらゆる面で複雑さが増します」とスブラマニアン氏は述べています。「これら全てを、異なる種類のコード(オープンソースとプロプライエタリ)を使用し、かつ異なる[ソフトウェアアプリケーション]プロダクトオーナー向けに安全に運用可能な本番環境へと移行できる形で実現することは、大きな課題です。」
エッジ準拠のDevOpsの進化
プログレスがここで提案している技術提案は、エッジ対応のDevOpsがより複雑化しているため、現代のITには、より複雑な、あるいは少なくともより専用かつ精密に設計されたDevOpsプラットフォームと一連のコンピテンシーを活用する必要があるというものです。同社は最近、あらゆるレベルでDevOpsの変化を促す要因を探るため、約600人の経営幹部を対象とした調査を実施したと述べています。
チームが聞いた最も重要な点は、変化を推進するビジネス要因です。企業は、俊敏性、迅速な変化、製品とサービスの両面における生産ラインの切り替え、そしてサプライチェーン管理の複雑さへの対応と対応を明確に望んでいます。
エッジ コンピューティングが加わることにより、組織はビジネス要素とテクノロジー要素間の新たな接続マッピングを模索しているようです。
「この新しいITの世界では、サイバーセキュリティチームの重要性はますます高まっています」とスブラマニアン氏は述べています。「インフラ、ネットワークデータプロセス、ワークフロー、知的財産など、あらゆる分野にまたがるセキュリティが必要です。」
「これまで以上に多くの場所にデバイスが存在する今、これらの資産に悪影響が及ばないようにするにはどうすればよいのか、私たちは自問する必要があります。」
プログレスの観点から見ると、Chef Business部門のテクノロジーを組み合わせることで、テクノロジーの複雑さを簡素化できるかどうかがプログレスにとって重要になります。これにより、企業はより高度な自動化を実現し、手作業による人的ミスを排除できるようになります。
スブラマニアン氏は、アプリケーション開発ライフサイクルの一部として自動化できる様々なアクティビティを捉えています。これには、テスト自動化、ビルド自動化、セキュリティ自動化、自動監視などが含まれます。これらのIT要素はすべて、現在「インフラストラクチャ・アズ・コード」と呼ばれるものの全体像を構築するのに役立ちます。
参照: 熱意を抑えないで: エッジコンピューティングのトレンドと課題 (TechRepublic)
「自動化の適切なバランスを見つけ、基本的な決定(および重要な決定)に人間が関与するべき場所を把握し、どのタスクを手動制御のままにしておくべきかを決定することは、人間フリーゾーンについて話すときに私たちが考えることの大きな部分を占めています」とスブラマニアン氏は明言した。
まず、エッジトポロジを把握する
エッジコンピューティングが台頭する世界において、DevOpsはより複雑な管理課題となっています。エッジコンピューティングの分野における技術の進化を踏まえ、ソフトウェアアーキテクトと開発者は今後何に最も留意すべきでしょうか?
「今日、エッジ環境向けソフトウェアの構築について議論する際に最も考慮すべきことは、特定の環境においてどのような種類のエッジトポロジーで作業しているかを特定することです」と、ProgressのChef製品ライン担当プロダクトマネジメントVP、プラシャント・ナンジュンダッパ氏は述べています。「分散型のエッジ環境は、高度な接続性を備えた断片化されたデバイスタイプで構成されている場合があり、個別に管理されるため、その接続性は不可欠です。一方、分散型のエッジデバイスも存在します。」
分散型エッジデバイスの場合、ナンジュンダッパ氏はこのトポロジーを、デバイス自体がパートナー、フランチャイズ、またはその他のサードパーティによって運用されるシナリオとして説明しています。そして、このような環境では、エッジデバイス自体へのネットワーク接続の一貫性は当然低下します。
「エッジ インフラストラクチャ管理チームが目の前のアーキテクチャを正確に識別し、長期にわたって堅牢に機能する安全なソフトウェア配布モデルを実現するには、この 2 つの違いを理解することが非常に重要です」と Nanjundappa 氏は説明します。
DevOpsをエッジコンピューティングのリテラシーの新たなレベルに引き上げることで生み出される、よりきめ細かなニュアンスや特異性は、大規模なITスタックそのものの母鉱脈へと円環して戻ってくると、私たちは考えます。この高性能、常時稼働、そして大規模というメッセージは、Progressメッセージセットの中核を成しており、共生的なソフトウェアエンジニアリングの要素もここで作用していると推測できます。
その結果、IT インフラストラクチャとシステム ポリシー制御が、アプリやデバイス自体よりも魅力的で説得力のあるものになる可能性があるようです。