サーバレスアプリケーションは、クラウドで注目を集めるトピックの1つだ。その理由は、ビジネスの状況が変化しても、サーバレスアプリケーションが負荷に応じたスケーラビリティを備えていることにある。ただし、スケーラビリティを確保するには、クラウドチームがサーバレスアプリケーションを適切に設計、開発、導入することが条件となる。
一般的なアプリケーションは、必要に応じて処理リソースを要求できれば拡張できる。また、スケーラブルなアプリケーションは、負荷が高くなったときに増やせるコンポーネントで構成されていなければならない。つまりクラウドチームは、オンデマンドでアプリケーションの追加インスタンスを作成し、負荷が低下したら追加のインスタンスを破棄できる。
サーバレスアプリケーションのスケーラビリティに関する課題の1つ目は、ソフトウェアに起因する。ATM(現金自動預払機)での引き出しを担うアプリケーションにスケーラビリティを持たせるとしよう。まず、増加した負荷をサポートするためにアプリケーションのコピーを作成する。だがそのコピーは、どのようにしてATMからの引き出し処理に結び付くだろうか。この場合に利用するのは、大手クラウドベンダーがサービスとして提供しているような負荷分散機能だ。ぜひ、このサービスを活用してほしい。
2つ目の問題はもっと複雑だ。増加した負荷に対処するためにアプリケーションのコピーを作成した場合、ユーザーが一方のアプリケーションで開始したATMの操作を途中でもう一方のアプリケーションに切り替えたらどうなるだろう。実社会で行われる取引の大半にはコンテキスト(状態)がある。つまり、取引を行うには幾つかの手順を踏まなければならない。残念ながら、このようなコンテキストに依存するアプリケーションにスケーラビリティを持たせることはできない。というのも、一方のアプリケーションのコピーは、もう一方のコピーでこれまでに行われた操作を把握していないためだ。
大半のビジネスアプリケーションは、このようなコンテキストを持っている。スケーラブルなサーバレスアプリケーションを作成するには、モノリシックなアプリケーションの全機能を集約しなければならない。モノリシックなアプリケーションとは、ステートフルではない状態で記述可能か、状態やコンテキストを外部から取得できるアプリケーションのことをいう。
3大大手クラウドベンダーのAmazon Web Services、Microsoft、Googleが提供するクラウドサービスでは、完全にスケーラブルなステートレスまたはコンテキストを持たないソフトウェアを作成するサンプルを提供している。そのアプローチは次の3つだ。
デジタル化する顧客体験に関する消費者と企業の認識ギャップ――ナイスジャパン調査
問い合わせの初動としてインターネットやFAQ検索をする人が約8割。デジタルチャネルによ...
気象データは近未来のデータ 予測に基づき「役に立つ」広告を届ける
気象データを活用することでどのような広告コミュニケーションが可能になるのか。海外の...
「パーソナライゼーションエンジン」 売れ筋TOP10(2022年8月)
今週は、パーソナライゼーション製品の国内売れ筋TOP10を紹介します。