[51CTO.com クイック翻訳] よく耳にする「サーバーレス」は、「イベント駆動型コンピューティング」や「Functions as a Service (FaaS)」と呼ばれることもあります。その背後にある考え方は、さまざまなイベントに応じてリソースを動的に割り当てることで、さまざまなマイクロサービスの機能を呼び出したり実行したりすることです。サーバーレス コンピューティング プラットフォームにより、アプリケーション開発者はインフラストラクチャとその管理の詳細ではなく、アプリケーション自体に集中できるようになります。
現在、ほとんどのクラウド サービス プロバイダーは、対応するサーバーレス プラットフォームを提供できます。もちろん、2 つの要素を使用して独自のプラットフォームを構築することもできます。 1 つ目は、コンテナ オーケストレーション システムである Kubernetes です。標準化されたプラットフォームとして、スケーラブルなコンポーネント化されたアプリケーションの構築を可能にします。 2 つ目は、Kubernetes でサーバーレス アプリケーション パターンを構築するシステムです。 現在、ほとんどの Kubernetes サーバーレス フレームワークには、次の共通機能があります。
Kubernetes 上でサーバーレスを構築する主な利点の 1 つは、基盤となるプラットフォームをより細かく制御できることです。 Kubernetes を使用すると、ニーズを満たすサーバーレス プラットフォームを作成できるため、Kubernetes オペレーターはインフラストラクチャを管理し、開発者は必要なコードの作成に集中できます。 以下では、Kubernetes 上でサーバーレス機能を実装する 5 つの主要プロジェクトを紹介します。彼らです:
核分裂 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とエッジコンピューティングはどのように発展するのでしょうか?
>>: クラウドを維持するか、クラウドに移行するか?それが問題だ
Pacificrack は、ブラックフライデー向けにハイブリッド サーバーの 70% オフ プロモー...
序文最近、分散トランザクションに関するブログ投稿をいくつか読んで、メモを取りました。ハハハ〜データベ...
ウェブサイトの最適化は、以下の条件を満たしてから実行する必要があります。新しいウェブサイトの場合は、...
権威の高いウェブサイトを追い求める人は多く、外部リンクを貼るにしても、友好的なリンクを他者と交換する...
この記事では、SaaS、PaaS、IaaS という 3 種類のクラウド サービス オファリングについ...
2017年はゲーム業界の競争が激化した年でした。広告主は大きなプレッシャーを感じており、ユーザー獲得...
少し前、百度インデックスは変更を受けました。最初はアカウントが1日に作成できるキーワードが5つに制限...
今日、グループ内で、Kubernetes プローブの設定方法を尋ねる人がいました。付け加えるべきこと...
3g メモリ/150g ハードディスク/200m 無制限、月額 5 ドル、ご興味ありますか?バックア...
サーバーは Intel Xeon Quad-Core E3-1240 u、ハードディスク RAID1...
hostkvm には現在、サイト全体で 20% 割引のクーポン コードがあり、これは定期的な割引で、...
あるオペレーションディレクターが私にこう言いました。「SEO は外部リンクを貼るだけじゃないのか?」...
著者 |マクロ編纂者:ヤン・ジェン昨年、Web 開発会社 Mainmatter は Web 向け R...
法達クラウド(陝西安泉雲網絡科技有限公司西県支社のブランド、付加価値通信事業ライセンス番号B1-44...
cloudxtiny はイギリスの会社で、Precision Technology Consulti...