AI とマルチクラウドの時代における開発

ソフトウェア・エンジニアの Jason Williams 氏が、急速なデジタル変革の時代におけるソフトウェア開発のための5つの教訓を語る。

By Gary Hilson

By Gary Hilson 2023年11月09日

Jason Wiliams 氏は、常に変化し続けるハイブリッド環境やハイブリッド・マルチクラウド環境におけるソフトウェア開発にどのように取り組んでいるのか、これまで彼が自宅でコツコツと学んできたことを紹介してくれました。 10 代の頃、自分のネットワーク・インフラで Linux の実験をしたことは、アプリケーションが異なるハードウェアやクラウドプラットフォームで使えるようになるために何が必要かを学ぶ素晴らしい方法でした。

現在、ポータブル・ストレージ・デバイスの Pro Data シリーズを開発するハードウェア新興企業 Iodyne のクラウドサービス担当バイスプレジデントである Williams 氏は、SaaS(Software-as-a-Service)の黎明期から、Amazon Web Services(AWS)、Microsoft Azure、Google Cloud のコンテナベースのデプロイメントまで、ソフトウェア開発者向けのクラウドコンピューティングの進化を追いかけてきました。

Jason Wiliams headshot

クラウドベースのソフトウェアとオペレーションのエンジニアとして 20 年の経験を持つ Williams 氏は、人工知能(AI)によって変貌を遂げつつあるクラウドプラットフォームの競合がひしめく中でアプリケーションを開発することの難しさを身をもって体験してきました。絶え間ない変革の世界で成功するアプリケーションを開発するために、今日のソフトウェア開発者は 5 つの重要な教訓を学ばなければならないと彼は言います。

1. オフプレミス化による所有コストの削減

Williams 氏は、電子メールとウェブのセキュリティ・アズ・ア・サービスの会社を共同設立してキャリアをスタートしました。当時はまだクラウド・コンピューティングなどありませんでした。その代わり、サービスはオンプレミスのサーバー機材でいっぱいのキャビネットで運営され、やがて適切なコロケーション施設に移りました。 15 年間にわたり、 Williams 氏は複数のデータセンターからサービスを運営するために、何度も移行を管理しなければいけませんでした。

「ある時、我々が自分たちの機材を所有する理由などないことが明らかになりました」と彼は語っています。

関連記事

ハイブリッド・マルチクラウドにおける5つのコスト最適化戦略

ソフトウェア開発者にとってのクラウド・コンピューティングの利点は、減価償却する機器を購入する際の所有コストがかからないことだと Williams 氏は言います。しかしその代わりに、選択したプラットフォームが進化することを想定してクラウドベースのアプリケーションを構築しなければいけません。また、アプリケーションを異なるハードウェアと異なるクラウドインスタンスで同時に稼働させたいと考えることもあるでしょう。

Williams 氏の会社 Iodyne は、メディアやエンターテインメント企業向けに大容量 NVMe ストレージ・ドライブを製造しており、基本的には最大 48 テラバイトのポータブル・クラウドを提供しています。クラウド向けのアプリケーション開発で重要なのは、顧客をサポートする Iodyne の遠隔測定ソフトウェアです。

「我々はパフォーマンスを知りたいのです」と Williams 氏は言います。「何か問題があるのなら、何が問題なのかを我々に伝えるために、いろいろな手続きを踏む必要はありません」

2. AWS の採用 - ただしロックインは回避

Wiliams 氏によれば、今日まで Iodyne が構築したものはすべて AWS 上にあります。

「しかし、我々はそれを Azure と Google Cloud にデプロイできるように開発しました」と、同氏は述べています。

一つのデータセンター・プロバイダーに依存することは非常に問題であり、クラウド用のアプリケーションを開発するソフトウェア開発者にとって主要な懸念事項であるべきだと Williams 氏は理解しました。彼は、 AWS が事実上の標準となったため、他のすべてのクラウドがそれに追随していると考えています。

関連記事

ロックインされないハイブリッド・マルチクラウド IT の構築

そのため、クラウドから別のクラウドへの移行や、必要なサービスへの加入が容易になります。しかし、開発者はアプリケーション開発プロセスにおいて、いくつのクラウドプラットフォームに対応すべきかを考えるのではなく、基盤となるツールやインターフェイスを優先することから始めるべきでしょう。そうすることで、複数のクラウドプラットフォームへの幅広いアクセスを確保し、ロックインの可能性を減らすことができます。

「事前に多くの計画を立てることで、後に多くの問題を回避することができます」と、 Williams 氏は話しています。「前もって難しい決断をするのです」

3. さまざまな制約がクラウドプロバイダーの選択肢を広げる

Williams 氏によれば、マルチクラウドを意識した開発には制約も生じるといいます。同氏は、すべての機能がすべてのクラウドプラットフォームでサポートされるとは限らないと指摘します。

「現在のプロバイダーをやめるには、どの機能を使わないか、後からエンジニアが考えなければならないからです」と、同氏は述べています。

前述の遠隔測定機能を構築する際、 Iodyne 社はデータを保存し、分析するための柔軟性の高い場所を必要としていました。

「 AWS を使い始めていますが、このインフラを Azure や Google Cloud の上に置きたい場合、どのようにすればロックインされないようにできるのでしょうか?」と Williams 氏は質問しました。

関連記事

ハイブリッド・マルチクラウドの相互運用性をめぐる競争

その答えは、彼のアプリケーション開発への指針を与えてくれました。 Iodyne は、AWS 上でオープンソースの NoSQL データベース管理システムである Cassandra と、その MySQL サービスである Aurora を採用することにしました。

「 Aurora を使用することで、他の MySQL ベースのプロバイダーに移行することができます」と Williams 氏は説明し、Cassandra には AWS が提供しない機能がいくつかあると述べました。ロックインを避けるために、 Iodyne は独自の Cassandra クラスタを導入することに決めました。

「我々はどこにでも展開できます」

開発者は、開発プロセスの最初の段階で、アプリケーションの機能を選択し、対応可能なクラウドを決定するべきだと Williams 氏は言います。 AWS から Google や Azure に移行することで冗長性を確保できるため、アプリケーションをホストしているサーバーを汎用性のあるものと考えることが重要です。そうすれば、あるクラウドプラットフォームから別のクラウドプラットフォームへの移行は、それほど困難なことではなくなります。移行する際にはまだやるべきことがありますが、必要な変更はすべて予測できます。

4. AI は人間の開発者を補強するものであって、取って代わるものではない。

AI はクラウドとデータセンターに変革をもたらしつつあります。そのため、誰もが頭を悩ませています: AI はソフトウェア開発者に取って代わるのだろうか?

Iodyne 社にとって AI とは、遠隔測定アプリケーションに機能追加する機会を見出すものであって、そのアプリケーションを開発した人間を置き換えるものではありません。

その精神に基づいて、Williams 氏は、開発者が AI について最初に考えるべきことは、人間がミスを犯しやすい、あるいは人間にはできないタスクであるために、人間が行っていることを AI が補強できるのはどこか、ということだと指摘します。

「AI が最も適しているのはそういうところだ」と彼は提案しました。

Iodyne 社の場合、AI はストレージ・デバイスとそれをサポートするアプリケーションの安全性を高めると同時に、ストレージの効率を向上させる可能性を提供できる、とWilliams 氏は述べています。

5. クラウド・アプリケーション開発者は、「手を動かす」ことで賢くなる

若い開発者はプログラムの書き方を知る必要があります。しかし、Williams 氏がこれと同じくらい重要だと感じているのは、単純に楽しみながら情報技術に触れることです。 10 代の頃、映画『ジュラシック・パーク』に触発されて Linux をインストールし、それがアプリケーションを構築する際に直面する課題に対処するためのよいきっかけとなりました。

「なぜなら、自宅で遊び心を持つことで、仕事でもより効果的に働くことができるからです」と Williams 氏は言い、「自分の家で自分のネットワーク・インフラを運用したり、さまざまなツールやコンセプトで遊んだりするのは、かつてないほど簡単なことです」と付け加えました。

「遊ぶことの方がはるかに多くのことを教えてくれます」

関連記事

ハイブリッド・マルチクラウド基盤がアプリ開発を支援する仕組み

機能を追加する際に何が必要かを理解することができるため、ハードウェアに重点を置いている人も、プログラミングを学ぶことで恩恵を受けることができると Williams 氏は言う。同氏は、アプリケーションを実行するために使用しているクラウドベースのプラットフォームを理解するためには、 IT インフラストラクチャ担当者がアプリケーション開発者とコミュニケーションできること、またその逆も重要だと述べています。

哲学の学位を持つ Williams 氏は、ハイブリッド環境やマルチクラウド環境向けのアプリケーションを構築する際には、クリティカルシンキングが問題解決に大いに役立つと語っています。しかし、幼少期にテクノロジーに触れることで、開発者は常に進化し続ける IT 環境の中で代替のきかない実践的なスキルを身につけることができます。

「スタートアップを立ち上げ、インフラを運営するために学んだことは、すべて自分の家で自分のネットワークを運営することで学んだことだ」と、彼は語りました。

編集部注:Nutanix のハイブリッドマルチクラウドソフトウェアが、オンプレミスとパブリッククラウドにまたがるアプリとデータの管理にどのように役立つかを学び、エッジからコアまでの AI イニシアチブを簡素化し、迅速に開始できるように設計されたフルスタックのソフトウェア定義 AI 対応プラットフォームである Nutanix GPT-in-a-Box の詳細についてはこちらをご覧ください。

Gary Hilson 氏は、 B2B エンタープライズ・テクノロジーと IT 意思決定者に影響を与える問題について 20 年以上執筆しています。EE Times、Embedded.com、Network Computing、EBN Online、Computing Canada、Channel Daily News、Course Compare など多くの業界誌に寄稿してきました。彼の詳細は X でご覧ください。

© 2023 Nutanix, Inc. 無断複写・転載を禁じます。その他の法的情報については、こちらをご覧ください

関連する記事

デジタルトランスフォーメーションと AI の時代におけるソフトウェア開発のための 5 つの教訓