サーバーレスコンピューティングと「開発を専門としない開発者」の増加

従来の中央のIT部門では、ソフトウェア開発を専門とする開発者がアプリケーションを作成しますが、目的を達成するための手段としてコーディングを使用する事業部門のIT開発者に関しては、多くの場合に事情が異なります。

[編集者注:  この記事は、2017年8月9日にHPEのコミュニティで発表されたものです。]

 

今日では、中央のIT部門がIT支出のすべてを管理していることはなく、IDC社の見積もりによると、IT部門以外のビジネスユーザーが管理するIT環境の割合は50%を超えています。また最近のGartner社の見積もりでは、大多数のCIOが直接管理する新規IT予算の割合が2022年までに30%を下回ると見られています。

ヒューレット・パッカード エンタープライズ (HPE) の調査によると、こうした変化の背景には、支出が事業部門のIT環境とCDO (最高デジタル責任者) のIT環境の両方に移行しつつあるという事実があり、73%のデジタルトランスフォーメーションプロジェクトと76%のモノのインターネット (IoT) プロジェクトが事業部門のIT環境、またはCDOのIT環境で管理される一方、従来のCIOや中央のIT部門の役割はインフラストラクチャサービスを提供することへと変化しています。

従来の中央のIT部門では、ソフトウェア開発を専門とする開発者がアプリケーションを作成しますが、事業部門によるIT開発に関しては、多くの場合に事情が異なります。事業部門のIT開発者としては、目的を達成するための手段としてコーディングを使用する、有料ソーシャルメディア担当のエグゼクティブ、ポンプエンジニア、工場自動化エンジニアなどが挙げられますが、プロセスではなく目的だけに重点を置くこれらのユーザーは、ブードゥー教の詠唱とひもで束ねたニンニクで同じ目的を達成できるのであれば、手段を選びません。

サーバーレスコンピューティング: テクノロジーとソリューション

では、サーバーレスとは何を意味するのでしょうか。まず、サーバーレスとは「サーバーを必要としない」という意味ではなく、「サーバーを意識する必要がない」ということを示しています。

関数は作成と実行を経て終了しますが、サーバーレスでは、そうした関数を作成して呼び出し、実行したら終了するといったように、関数が最初から一時的なものとなっています。

ここで、受注用のWebサイトを運用しているケースを想像してみてください。あなたは「注文を受ける」のためのサーバーレス関数を作成します。ユーザーが注文をしようとしたときに呼び出されるこの関数は、呼び出された時点でその役割を果たします。この関数は、注文を受けて適切な処理を行ったら終了するようになっています。

関数を作成したユーザーは、サーバー、仮想マシン、さらにはコンテナーについても意識する必要がなく、そのすべてが自動的に処理されます。

実際、サーバーレスでは並列でスケーリングを行ったとしてもそこに意識を向ける必要がありません。たとえば、同時に100件の注文を受けると、受注関数の100個のインスタンスが自動的に作成され、それらが並列で実行されます。

もちろん、サーバーレス関数を呼び出すための何らかの仕組みは必要で、その具体例としては、(HTTP経由の) Webユーザーインターフェイス、イベントを呼び出すIoTシステム、Slackのイベント、モバイルアプリケーションなどが挙げられます。

サーバーレスコンピューティングの詳細については、このテクノロジーに関する重要な情報源となっているMike Roberts氏のブログ (「Serverless Architectures (サーバーレスアーキテクチャー)」) をご覧ください。

 

ベアメタルからVMとコンテナー、そしてサーバーレスへと至る進化

CodeOps Technologies社の創設者であるGanesh Samarthyam氏は、サーバーレスアーキテクチャーに関するSlideShareのプレゼンテーションの中で、ベアメタルサーバーからVMとコンテナー、そしてサーバーレスへと至る進化をわかりやすく説明しています。

ベアメタルサーバーでアプリケーションを構築するには、以下に関する知識が必要です。

  • ハードウェア
  • オペレーティングシステム
  • ランタイム環境
  • コード

 

VMでアプリケーションを構築するには、以下に関する知識が必要です。

  • オペレーティングシステム
  • ランタイム環境
  • コード

 

コンテナーを使用してアプリケーションを構築するには、以下に関する知識が必要です。

  • ランタイム環境 (コンテナー)
  • コード

 

サーバーレス関数を作成するには、以下に関する知識が必要です。

  • コードのみ (その他の知識は不要)

 

開発を専門としない開発者の登場

「サーバーレス」と呼ばれるテクノロジーは、開発を専門としない開発者の多くの要件に確実に対応します。以下は、分析を行うためのコードの作成に着手したビジネスユーザーとの会話を示したものです。

Q: Pythonでのプログラミングを開始したばかりとのことですが、なぜPythonを選択したのですか。

A: PPC (クリック報酬型) キャンペーンのデータを使用して必要なレベルの分析を行うには、Pythonを使用する必要があるとGoogleから教えられたからです。

Q: どのようなインフラストラクチャで分析を行うのですか。

A: わかりませんし、関心もありません。より迅速かつ正確にPPCキャンペーンを調整できるよう、分析を行う必要があるだけです。

Q: Pythonを気に入っていますか。

A: Pythonは目的の達成に役立ちます。

この会話からもわかるように、事業部門の「開発者」は、多くの場合に「開発を専門としない開発者」であり、このような開発者にとって、コードの開発は目的ではなく、売上を増やしたり、真冬に汚水ポンプが故障するのを防ぐための予測メンテナンスを行ったり、工場の安全性と効率を向上させたりするための手段に過ぎません。使用可能なツールが増える中、こうした開発者は、中央のIT部門と連携して事業部門が質問を開始してからかなり時間が経たないと成果が得られない可能性があるプロジェクトを作成するのではなく、独自にコードを作成する傾向にあります。

 

開発を専門としない開発者は何を求めているのか

開発を専門としない開発者が最も必要としているのは、PPCの分析やポンプの予測メンテナンスといった目的の達成を妨げるものを排除することです。

開発を専門としない開発者は、サーバー (の規模や必要な台数)、ストレージ、VM、コンテナー、並列化、スケーリングなどには関心がありません。

またセキュリティ、コンプライアンス、データ主権、およびデータの耐障害性に関する要件を満たさなければならないことを理解してはいるものの、特別な作業を行わなくても (あるいはセキュリティやコンプライアンスなどの詳細を理解しなくても) そうした目的を達成できればそれに越したことはないと考えています。

開発を専門としない開発者は通常、「実験」モードでアプリケーションの開発を開始します。その後、Gartner社が「スケールアウトモード」と呼ぶモードに移行しますが、開始段階では (そして多くの場合に長期間にわたって) 実験モードで作業が進められます。一般的に、実験モードは開発を専門としない開発者が十分な資金を持っていないか、持っていたとしても実験的なことにそのすべてを投じたくないと考えていることを意味します。そのため、こうした開発者は従量制課金、つまり使用した演算リソースの料金だけを支払うモデルを求めています。

従量制課金モデルには、負債を残すことなくプロジェクトを終えられるオプションもあります。ここでは、大規模な水道事業のケースを考えてみましょう。(中央のIT部門ではなく事業部門に所属する) エンジニアリング責任者は、分析を活用して上下水道ポンプの故障時期を予測したいと考えていましたが、そのプロジェクトが成功するかどうかに確信を持てずにいました。そのため、この責任者は実験モードで使用したリソースの料金のみを支払い、必要であれば未使用のコンピュート資産を残すことなくプロジェクトを終了できるようにしたいと考えました。この責任者のニーズに対応して懸念を解消するには、すでにアクセス可能なデータを活用し、そこからビジネスプロセスの改善に役立つ実用的な情報を引き出せるアプリケーションのプロトタイプを迅速に作成できなければなりませんでした。

 

サーバーレスコンピューティングを利用する方法

サーバーレス関数は、パブリッククラウドプロバイダー、Amazon Web Services (AWS)、Microsoft Azure、Google Cloudなどから入手できます。AWSは、長年にわたってLambdaと呼ばれるサーバーレスサービスを提供してきた実績を有します。また、Azureは本番サービスとしてサーバーレス関数を展開しており、Google Cloudでも関数が提供されています。

AWS、Azure、およびGoogleのサーバーレス関数は、いずれも呼び出すたびに料金が加算される仕組みになっています。この料金体系は、利用したサービスの価値が最も正確に反映されるものであると考えられており、サーバーレス関数のユーザーに好まれています。

IBM社とAdobe社もOpenWhiskと呼ばれるサーバーレスフレームワークを提供していましたが、これは現在、Apache社のフレームワークとなっています。また (Kubernetes、OpenStack、およびハイブリッドクラウドのエキスパートである) Platform9社からも、Apacheを通じてFissionと呼ばれる現時点ではアルファ版のサーバーレスフレームワークが提供されています。Platform9社のサーバーレスフレームワークでは、サーバーレス関数の作成、終了、そして必要に応じて並列呼び出しを管理するためにKubernetesが使用されます。

この記事/コンテンツは、記載されている特定の著者によって書かれたものであり、必ずしもHewlett Packard Enterpriseの見解を反映しているとは限りません。

enterprise.nxt

ITプロフェッショナルの皆様へ価値あるインサイトをご提供する Enterprise.nxt へようこそ。

ハイブリッド IT、エッジコンピューティング、データセンター変革、新しいコンピューティングパラダイムに関する分析、リサーチ、実践的アドバイスを業界の第一人者からご提供します。