ログイン / 登録 アカウント

サーバーレスの導入が着実に広がり、開発者と企業はその恩恵を受けています。サーバーレスを導入することによって、開発者は価値の提供、優れたイノベーションの推進、より大規模な組織に対して新しいサービスやアプリケーションの迅速な提供に一層力を注ぐことができます。こうした理由から、Red Hatは、イベンティングやファンクションのような新しい機能によってRed Hat OpenShift Serverlessを継続的に更新しています。

サーバーレスを活用することによって、Red HatはKubernetesを導入する際のハードルを引き下げています。KubernetesのAPIの大半は、開発者ではなくIT運用チームを対象としているためです。OpenShift Serverlessは、アップストリームのKnativeプロジェクトに基づき、Kubernetesを拡張して開発者に利用しやすい構造を提供します。リクエスト駆動型の自動スケーリングやイベント駆動型コンピューティングのような最新のパターンを利用することにより、アプリケーション開発上の問題を解決する上で役立ちます。開発されたアプリケーションは、要件や使用状況に応じて自動的にスケールアップ/スケールダウンし、時間とリソースの節約を実現します。

今日の職場では、テクノロジーはもはや目新しいものではありません。むしろ、電気が住宅にとってそうであるのと同じように、いつでも使えるユーティリティーなのです。サーバーレスのアプローチを採用することで、企業はテクノロジーをいつでもアクセスできることを約束します。開発リソースに対するオンデマンドアクセスに加え、動的スケーリングの恩恵も得られるため、アプリケーションの要求の増大(または縮小)により素早く対応することが可能になります。OpenShift Serverless 1.11のリリースでは、イベンティングのアップデートによってこれらすべてが容易になっています。

Red Hat OpenShift Serverlessとは

OpenShift ServerlessはOperatorによってパッケージ化され、ファンクション機能を追加することでKnativeを拡張します。開発者は、必要に応じてRed Hatがサポートするランタイムを使用してサーバーレスアプリケーションを作成し、それをOpen Container Initiative(OCI)仕様に準拠したLinuxコンテナとしてパッケージ化することができます。これによって、アプリケーションの作成に使用されたプログラミング言語にかかわらず、それらのコンテナが任意のOCI準拠プラットフォーム上のいかなる環境でも常に実行可能であることが証明されます。OpenShift Serverless上のアプリケーションは、パイプラインサービスメッシュモニタリングメータリングなど、他のOpenShiftサービスと統合することも可能で、実稼働に即応できる統合的な体験が提供されます。

新機能:Eventingを提供開始

Red Hat OpenShift 4.6およびOpenShift Serverless 1.11のリリースによって、Red Hatは、OpenShift ServerlessのEventingコンポーネントの一般提供を開始します。Eventingは、新しいソリューションを設計する際に、オンプレミス、クラウド上、およびKubernetesの内外で動作する多数のシステムと相互接続できるイベント駆動型アプリケーションを構築する機能を提供します。Red Hatでは、Eventingについて概説する短い動画を制作しました。こちらでご視聴ください。

イベント駆動型アプリケーションは、トリガーイベントに基づいて問題の分離を促進し、一般にデプロイやスケーリングを個別に行うことが容易です。OpenShift ServerlessのEventingコンポーネントは、アプリケーションのトリガーとなる送受信イベントの共通インフラストラクチャを提供します。そこではイベントソースなどの強力な構造が利用可能です。これによって外部システムに接続し、固有の形式からCloudEventsに変換することにより、イベントの生成元にかかわらず各種のインフラストラクチャにわたって移植性と一貫性を向上できます。

もう1つの重要なEventingの構造はBrokerです。これを利用すると、複数のイベントソースに接続し、それらのイベントを運用効率に優れたマルチテナントモデルでイベントタイプなどの属性に基づきルーティングすることができます。EventingではChannelsも利用できます。これは複数のアプリケーションで同じイベントタイプを使用し、同じイベントを処理する必要がある時に有用です。また、組織が最適規模で容易に管理できるイベント駆動型マイクロサービスに移行する上で役立つと考えられます。

OpenShift Serverlessの開発者体験

OpenShift Serverlessでは、サーバーレス環境の導入を容易にする目的で、開発者およびユーザー体験が最優先されています。OpenShift Serverlessを導入すれば、開発者は、現在コンテナ化されているアプリケーションをサーバーレスコンテナとしてデプロイすることができます。

OpenShiftのコンソールにおける統合的なEventing体験は極めて簡明です。開発者は、Knativeで利用可能なイベントソースのリストから選択できます。このリストはApache Camel-Kによって拡張され、AWS SQS、AWS Kinesis、Salesforce、Slack、Telegramなど、より多くのイベントソースに対応しています。このリストは、OpenShift OperatorHubを使用してインストールされるKubernetes Operatorによってサービスを追加することで、さらに拡張することができます。

開発者がChannelsやBrokerを作成する際には、デフォルトでインメモリー実装が使用されます。しかし、Apache Kafkaの実装も提供されており、実稼働シナリオではこちらが推奨されます。これは、Red Hat AMQ Streamsを通じてあらゆるOpenShiftクラスタにインストールすることができ、インストール済みのApache Kafkaを使用するように設定することも可能です。

OpenShift Serverlessは、Red Hatのポートフォリオ全体にわたってクラウドネイティブな開発ツールと統合されています。今回のリリースでは、マルチメッシュ、JWT認証トークン、Knativeサービス用のカスタムドメインを含むOpenShift Service Meshのサポートを発表しました。今回のリリースには、OpenShift Pipelineのテンプレートやタスクへのアクセスも含まれています。

OpenShift Serverlessでのファンクションの作成

前述のとおり、OpenShift ServerlessはKnativeを拡張し、1.11リリースではファンクションを作成する機能を追加しています。これらのファンクションは、開発者が定義済みのテンプレートに基づき独自のランタイムでアプリケーション開発に容易に着手するための手段を提供します。これは開発者体験の面でも従来と大差はありません。OpenShift Serverlessで提供される同じコマンドラインインタフェース(CLI)(kn)を使用でき、Buildpacksに基づいています。この初期リリース(現在は開発者プレビュー段階)では、Quarkus、NodeJs、Goの3つのファンクションランタイムを提供しています。これらのファンクションは、平文のHTTP要求か、または前述した同じEventingコンポーネントを再利用してCloudEventsによってトリガーすることができます。これらのファンクションには、反復的な開発プロセスやテストに役立つローカルな体験も追加されています。

サーバーレスのファンクションとコンテナの組み合わせによって、開発者は選択肢を手にすることができます。そして、両方のパラダイムを使用してアプリケーションを構築することにより一貫性のある開発者体験を提供し、双方の要素を活かして最新のクラウドネイティブ・アプリケーションを作り上げることができます。

OpenShift Serverless 1.11の機能を利用すれば、開発者はサーバーレスのワークロードによって機能を拡張するとともに、Eventingを活用して現実世界の課題に即応できるイベント駆動型アプリケーションを構築することが可能です。

OpenShift Serverless 1.11の詳細については、「OpenShift Serverlessの概要(Getting started with OpenShift Serverless)」をご覧ください。


About the author

William Markito Oliveira is an energetic and passionate product leader with expertise in software engineering and distributed systems. He leads a group of product managers working on innovative and emerging technologies.