Kubernetes でサーバーレスを実現する 5 つの方法

Kubernetes でサーバーレスを実現する 5 つの方法

[51CTO.com クイック翻訳] よく耳にする「サーバーレス」は、「イベント駆動型コンピューティング」や「Functions as a Service (FaaS)」と呼ばれることもあります。その背後にある考え方は、さまざまなイベントに応じてリソースを動的に割り当てることで、さまざまなマイクロサービスの機能を呼び出したり実行したりすることです。サーバーレス コンピューティング プラットフォームにより、アプリケーション開発者はインフラストラクチャとその管理の詳細ではなく、アプリケーション自体に集中できるようになります。

[[313278]]

現在、ほとんどのクラウド サービス プロバイダーは、対応するサーバーレス プラットフォームを提供できます。もちろん、2 つの要素を使用して独自のプラットフォームを構築することもできます。 1 つ目は、コンテナ オーケストレーション システムである Kubernetes です。標準化されたプラットフォームとして、スケーラブルなコンポーネント化されたアプリケーションの構築を可能にします。 2 つ目は、Kubernetes でサーバーレス アプリケーション パターンを構築するシステムです。

現在、ほとんどの Kubernetes サーバーレス フレームワークには、次の共通機能があります。

  • OpenShift などの環境を含む、Kubernetes 対応のあらゆる環境にローカルまたはリモートでデプロイする機能。
  • あらゆる言語で記述されたコードの実行をサポートし、いくつかの一般的なランタイムがパッケージ化されたフレームワークが付属しています。
  • HTTP エンドポイント、キュー メッセージ、その他のフックなどのさまざまなイベントを通じてコード実行をトリガーします。

Kubernetes 上でサーバーレスを構築する主な利点の 1 つは、基盤となるプラットフォームをより細かく制御できることです。 Kubernetes を使用すると、ニーズを満たすサーバーレス プラットフォームを作成できるため、Kubernetes オペレーターはインフラストラクチャを管理し、開発者は必要なコードの作成に集中できます。

以下では、Kubernetes 上でサーバーレス機能を実装する 5 つの主要プロジェクトを紹介します。彼らです:

  • 核分裂
  • ネイティブ
  • キューブレス
  • オープンFaaS
  • オープンウィスク

核分裂

Fission は、Kubernetes の子会社である Platform 9 によって作成および保守されています。主な特徴は、コンテナを構築する必要がなく、定義ファイルを提供することでアプリケーションを作成できることです。

Fission のインストールには必ずしも Helm チャートは必要ありません。一般的に、メッセージ キューを備えた包括的なバージョンとログ サポートを備えた InfluxDB の 2 つのバージョンがあります。基本的な機能とサービスのみを提供する簡易版もあります。前者は本番環境にのみ導入できますが、後者は小規模での試用のみに利用できます。

Fission にコードを追加してデプロイするには、YAML ベースの仕様ファイルを使用します。同時に、Fission のコマンドライン ツールを使用すると、さまざまな機能やルート エントリ トリガー ポイントの YAML ファイルを作成できます。さらに、これらの仕様ファイルを使用すると、さまざまな環境変数、補助コンテナ、ボリューム、Kubernetes フォールト トレランス制御コードを提供できます。

もちろん、Fission は「ワークフロー」も提供します。 Helm チャートをインストールすると、2 つの関数が同じプログラミング言語で記述されていない場合でも、これらのワークフローを 1 つの関数からエクスポートして別の関数に渡すことができます。システムのオーバーヘッドを削減するために、ワークフロー システムは、整数、一般的なバイト ストリームなど、多くの一般的なプリミティブ バイナリ タイプをデフォルトでサポートしていることに注目してください。ただし、各関数では、形式の変換、出力、送信を実行するときに、一定のパフォーマンス コストが発生します。

このタイプの FaaS の欠点の 1 つは、関数を最初に呼び出すときに、関連するコンテナーで顕著な遅延が発生することです。したがって、Fission はコンテナを「予熱」することでこのような遅延を最小限に抑える必要があります。

さらに、Fission が開発者や管理者に提供できるその他の利便性としては、外部インターネットにアクセスできないクラスターへのサービスの展開、オンデマンドでのクラスターへのコードのホット リロード、開発者のデバッグを支援するための機能のさまざまなアクティビティの記録と再生などがあります。また、Fission プロジェクトには寛大な Apache ライセンスが適用されているため、ユーザーは無料で変更することができます。

ネイティブ

もともと Google によって作成された Knative は、ユーザーが Kubernetes でさまざまなサーバーレス アプリケーションを実行するのに役立ちます。実稼働環境でのサーバーレス デプロイメントの一般的なパターンに焦点を当てています。 Knative は、複数の Kubernetes コンポーネントを効果的に管理および活用するための豊富な専門知識を蓄積してきました。

Kubernetes を管理するには、Knative ではルーティング システムと Istio などのサービス メッシュのほか、Ambassador などの他のオプションも必要です。これには追加のセットアップ作業が必要になりますが、プロジェクトの詳細なガイドには、さまざまなクラウド サービスや、標準の Kubernetes などの環境に関する手順がすでに含まれています。

Knative は、既存の Kubernetes ツールと機能を活用または拡張することで、YAML ファイルを通じてさまざまなアプリケーションと機能を構成し、Docker コンテナを配信できます。さまざまな定義の追加、変更、削除は、kubectl コマンドラインを通じて実行できます。ユーザーは Grafana を使用して Knative アプリケーション パラメータを取得できるほか、Knative 独自のオートスケーラーやその他の Kubernetes 互換スケーラーを使用して拡張を実現することもできます。

ただし、Knative はまだ集中的な開発中であり、その独自ツールの多くはまだ初期段階にあります。その中でも、knctl は専用の Knative コマンドライン ツールです。これにより、他の Kubernetes ツールを使用して Knative を管理しやすくなります。 ko ツールを使用すると、Knative で Go 言語アプリケーションを構築し、コンテナーの構築手順を削減できます。

キューブレス

Bitnami によって作成された Kubeless は、開発者がさまざまな一般的な Web アプリケーション スタックを簡単にインストールするのに役立ちます。 Kubeless は、さまざまなネイティブ Kubernetes カスタム リソース定義 (カスタム リソース定義) を使用して、さまざまな機能を処理します。これは、Kubernetes メタファーと Kubeless のさまざまな機能の間の抽象化レイヤーと考えることができます。

Kubeless は、.NET、Java、Python、Node.js、PHP、Ruby などほとんどのプログラミング言語をサポートしているだけでなく、クラウドネイティブ向けに開発された Ballerina 言語のランタイム プラットフォームもサポートしています。ここでのランタイムは、さまざまな Docker イメージを指します。もちろん、Kubeless にも特定のパッケージ形式があり、Dockerfiles を使用してカスタム ランタイムを構築できます。

Kubeless のもう 1 つの便利な点は CLI です。 CLI は AWS Lambda の CLI と多少似ています。これにより、AWS Lambda から移行する際に、まったく新しいコマンドセットを学習することなく、既存の管理スクリプトを保持できます。 Kubeless は、サーバーレス フレームワークのプラグインとして使用して、さまざまなアーキテクチャ上でサーバーレス アプリケーションを構築することもできます。

オープンFaaS

OpenFaaS の目的は、開発者が Docker コンテナを展開する際の手間を軽減することです。したがって、Kubernetes にデプロイできるだけでなく、ローカル テストや需要の少ない Docker Swarm クラスターにも使用できます。 OpenFaaS CLI を使用して、さまざまな Docker イメージをビルド、プッシュ、クラスターにデプロイし、対応する機能を実行できます。独自のアプリケーションを公開することもできますが、Python、Node.js、.NET、Ruby、Java、または PHP 7 で事前に作成された既製のテンプレートを使用してアプリケーションをデプロイすることもできます。さらに、OpenFaaS CLI の組み込み Web UI を使用すると、新しい関数を作成したり、クラスター内のキーを管理したりできます。

OpenFaaS の別のバージョンである OpenFaaS Cloud は、開発者向けに OpenFaaS の機能を再パッケージ化し、GitHub と GitLab のセルフホスト バージョンを統合し、CI/CD、キー管理、HTTPS、イベント フィードバック機能を Slack に提供します。 OpenFaas Cloud は無料のオープンソース製品であり、ホスト型バージョンも引き続き無料でご利用いただけます。

オープンウィスク

Apache OpenWhisk は汎用のサーバーレス プラットフォームです。 OpenWhisk は、Kubernetes 上でのコンテナの実行をサポートするだけでなく、Mesos と Docker Compose もサポートします。 OpenWhisk は、Kubernetes がさまざまなアプリケーションをデプロイするための Helm チャート ツールを提供します。皆さんもよくご存知の IBM Cloud Functions は OpenWhisk プロジェクトをベースとしているため、OpenWhisk CLI のさまざまなコマンドを直接使用できます。

他のほとんどのサーバーレス Kubernetes フレームワークとは異なり、OpenWhisk は Kubernetes や Docker の作成に使用される言語である Go ではなく、Scala で書かれています。したがって、プログラミングのアイデアを理解するには、ある程度の時間が必要になるかもしれません。

アプリケーション ランタイム オプションに関しては、OpenWhisk は Java、Node.js、Python、Ruby、PHP、.NET をラップします。さらに、高水準言語オプションには、Scala、Ballerina、Swift、Rust が含まれます。ランタイムは Docker コンテナ タイプなので、独自のアプリケーションを簡単に実装できます。

OpenWhisk のデプロイメントに便利な機能は、「zip アクション」です。コード パッケージのマニフェスト ファイルを使用して、コードと複数の補助ファイルの zip パッケージを OpenWhisk にポイントできます。 OpenWhisk はこれに基づいて後続のアクションを作成できます。同時に、OpenWhisk CLI はツールを使用してコード ディレクトリ ツリーをアーカイブ ファイルに変換することもできます。サービス パッケージ カタログを使用すると、GitHub、Slack、Apache Kafka、Jira などの一般的なサードパーティ製品にアプリケーションを簡単にプラグインできます。

原題: Kubernetes でサーバーレスを実現する 5 つの方法、著者: Serdar Yegulalp

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください。

<<:  2020年に5Gとエッジコンピューティングはどのように発展するのでしょうか?

>>:  クラウドを維持するか、クラウドに移行するか?それが問題だ

推薦する

「SMOは現在最もホットなオンラインマーケティング手法です

オンラインプロモーションに携わっている友人は、SEO(検索エンジン最適化)やSEM(検索エンジンマー...

#BlackFriday# flokinet: 著作権/苦情を無視、オランダ/フィンランド/アイスランド/ルーマニア、VPS と専用サーバーがすべて 30% オフ

2009年に設立されたアイスランドの老舗サーバー商人であるFlokinetが、今年最大の割引プロモー...

王世凡: SEO 顧客関係を維持する方法

多くの友人が王世凡に、なぜいつも注文が取れないのか、なぜ顧客との関係がいつもうまくいかないのか、なぜ...

ウェブサイトのデザインでこれらの厄介な要素を避ける

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますウェブサイ...

動画の SEO をしましょう!

オンライン ビデオ コンテンツの人気が高まるにつれ、一部の検索エンジン マーケティング担当者はこの傾...

コンテンツタイトルの需要は、クリックを誘引するマーケティングよりもはるかに価値があります。

百度にはクリック原則があり、クリックによってキーワードのランキングが向上することは誰もが知っているの...

81vps: 100T 高トラフィック VPS、1Gbps 帯域幅、20G 防御、psychz ロサンゼルス データセンター、評価データ付き

81vps はおそらく新しい事業体(ドメイン名は に登録されています)で、psychz のロサンゼル...

spinservers US ハイエンド サーバー: 179 ドル、2*e5-2683v4、512G メモリ、2*3.84T SSD、1Gbps 帯域幅、無制限トラフィック

spinservers は、中国の中秋節と建国記念日の特別プロモーションとして、月額 59 ドル (...

ウェブサイト最適化におけるマシュー効果

マシュー効果とは、良いものはさらに良くなり、悪いものはさらに悪くなり、より多くのものはさらに増え、よ...

ルートレベルテクノロジーがUrpadを買収

2017 年 5 月 10 日、大手仮想ホスティング会社およびソリューション プロバイダーである R...

検索エンジン最適化(SEO)関連用語

ディレクトリディレクトリは人間が編集した検索結果です。ほとんどのディレクトリは、スパイダーではなく人...

ウェブサイトの最適化で分析する必要があるデータ

私たち一般の SEO 担当者にとって、ウェブサイトの最適化は基本的にオンサイトとオフサイトの 2 つ...

優れた疑似オリジナル作品を書くには?

通常、ウェブサイトのトピックに関して特に豊富な経験を持つウェブマスターだけが、優れたオリジナル作品を...

JD Cloud: 2Gメモリ/2コア/40Gクラウドディスク/4M帯域幅、88元/年、468元/3年、北京/江蘇

JD Cloudは現在、クラウドサーバーの特別プロモーションを実施しています。北京データセンターと江...

「フレンズサークル」が住宅購入クラウドファンディングの「軍隊に加わる」クラウドファンディングプラットフォームに

P2Pに続いて、「クラウドファンディング」はインターネット金融業界で2番目に「急成長」している分野に...