サーバーレスコンピューティングを始めるのに役立つ 7 つのオープンソース プラットフォーム

サーバーレスコンピューティングを始めるのに役立つ 7 つのオープンソース プラットフォーム

[51CTO.com クイック翻訳] サーバーレスという用語は、最近会話の中でよく見かけるようになりました。この概念と、サーバーレス コンピューティングやサーバーレス プラットフォームなどの関連する概念を明確にしておくと役立ちます。

サーバーレスは、多くの場合、FaaS (Function as a Service) という用語と同じ意味で使用されます。しかし、サーバーレスとは​​サーバーが存在しないことを意味するものではありません。実際には、アプリケーションの展開、実行、管理を行うサーバーを提供するパブリック クラウド プロバイダーなど、数多くのサーバーが存在します。

サーバーレス コンピューティングは、開発者がソフトウェア システムを構築および提供する方法の変化を表す新しいカテゴリです。コードを通じてアプリケーション インフラストラクチャを抽象化すると、開発プロセスが大幅に簡素化されるとともに、コストと効率の面で新たなメリットがもたらされます。サーバーレス コンピューティングと FaaS は、クラウド ネイティブ サービスやハイブリッド クラウドとともに、エンタープライズ IT の次の時代を定義する上で重要な役割を果たすと信じています。

[[249819]]

サーバーレス プラットフォームは、ユーザーがコード関数 (操作とも呼ばれます) を実行し、各関数の結果を返すことを可能にする API を提供します。サーバーレス プラットフォームは、開発者が関数の結果を取得できるように、HTTPS エンドポイントも提供します。これらのエンドポイントは他の関数への入力として使用でき、関連する関数のチェーンを提供します。

ほとんどのサーバーレス プラットフォームでは、ユーザーは関数をデプロイ (または作成) してから実行します。サーバーレス プラットフォームには、指示があったときに関数を実行するために必要なすべてのコードが用意されます。サーバーレス関数の実行は、ユーザーがコマンドを使用して手動で呼び出すことも、スケジュールされたタスクのアラート、ファイルのアップロード、その他の多くのイベントなどのイベントの発生時に関数をアクティブ化するように構成されたイベント ソースによってトリガーすることもできます。

サーバーレス コンピューティングを始めるための 7 つのオープン ソース プラットフォーム

1. Apache OpenWhisk

Apache OpenWhisk は、あらゆる規模のイベントに応じてコードを実行できるサーバーレスのオープンソース クラウド プラットフォームです。 Scala言語で書かれています。フレームワークは、HTTP リクエストなどのトリガーからの入力を処理し、小さな JavaScript または Swift コードを実行します。

2.核分裂

Fission は、開発者が Kubernetes を使用して関数を構築できるようにするサーバーレス コンピューティング フレームワークです。これにより、プログラマーは任意のプログラミング言語で短命関数を記述し、それらの関数を任意のイベント トリガー (HTTP リクエストなど) にマップできます。

3.アイアン関数

IronFunctions は、既存のサービスを統合し、Docker を採用することで一貫性のあるマイクロサービス プラットフォームを提供するサーバーレス コンピューティング フレームワークです。開発者は Go 言語で関数を記述します。

4. Fnプロジェクト

Fn プロジェクトは、あらゆるクラウドやオンプレミスなど、どこでも実行できるオープンソースのコンテナネイティブ サーバーレス プラットフォームです。使いやすく、さまざまなプログラミング言語をサポートし、スケーラブルで高性能です。

5.オープンラムダ

OpenLambda は、Apache ライセンスに基づいてライセンスされ、Go で記述され、Linux コンテナーをベースにしたサーバーレス コンピューティング プロジェクトです。 OpenLambda の主な目標は、ユーザーがサーバーレス コンピューティングへの新しいアプローチを探求できるようにすることです。

6.キューブレス

Kubeless は、基盤となるインフラストラクチャを気にせずに少量のコードをデプロイできる Kubernetes ネイティブのサーバーレス フレームワークです。 Kubernetes リソースを活用して、自動スケーリング、API ルーティング、監視、トラブルシューティングなどの機能を提供します。

7. オープンファス

OpenFaas は、Docker と Kubernetes を使用してサーバーレス機能を構築するためのフレームワークであり、メトリクスに対する第一級のサポートを提供します。あらゆるプロセスを関数としてパッケージ化できるため、定型コードを書き直すことなく、多くの Web イベントを使用できます。

Kubernetes は、きめ細かいデプロイメント モデルを使用してワークロードをより迅速かつ簡単に処理し、サーバーレス ワークロードとマイクロサービス アプリケーション コンテナーを管理するための最も人気のあるプラットフォームです。 Knative Serving (https://github.com/knative/serving) を使用すると、Kubernetes 上でサーバーレス アプリケーションと関数を構築およびデプロイし、Istio (https://istio.io/) を使用して次のような高度なシナリオをスケーリングおよびサポートできます。

  • サーバーレスコンテナの迅速な導入
  • 自動的にゼロまで拡大・縮小する
  • Istio コンポーネントのルーティングとネットワーク プログラミング
  • デプロイされたコードと構成のポイントインタイムスナップショット

Knative (https://github.com/knative/) は、クラウド ネイティブ プラットフォーム上でアプリケーションを構築および実行するための一般的なタスクに重点を置いており、ソース コードをコンテナー ビルドにオーケストレーションしたり、サービスをイベント エコシステムにバインドしたり、展開中にトラフィックをルーティングおよび管理したり、ワークロードを自動的にスケーリングしたりするために使用されます。

Istio は、マイクロサービス (Envoy プロキシの観点からは実質的にサービス メッシュ コントロール プレーン) を接続および保護するためのオープン プラットフォームであり、開発者、オペレーター、プラットフォーム プロバイダーなど、フレームワークと対話する複数のペルソナを考慮して設計されています。

たとえば、次のコード スニペットを使用して、ローカル Minishift プラットフォームで Knative Serving を使用して JavaScript サーバーレス ワークロードをデプロイできます。

  1. ## Dockerファイル
  2. bucharestgold/centos7-s2i-nodejs:10.xから
  3. ワークディレクトリ /opt/app-root/src
  4. package*.json をコピーします。/
  5. npmインストールを実行
  6. コピー 。 。
  7. エクスポーズ8080 3000
  8. CMD [ "npm" "start" ]
  9.  
  10.  
  11. ## パッケージ.json
  12. {
  13. 「名前」 : 「挨拶係」
  14. 「バージョン」 : 「0.0.1」
  15. 「プライベート」 : true
  16. 「スクリプト」 : {
  17. 「開始」 : 「ノード app.js」  
  18. },
  19. 「依存関係」 : {
  20. "エクスプレス" : "~4.16.0"  
  21. }
  22. }
  23.  
  24. ## アプリ.js
  25. var express = require( "express" );
  26. var app = express();
  27.  
  28. var msg = (process.env.MESSAGE_PREFIX || "" ) + "OpenShift 上の NodeJs::Knative" ;
  29.  
  30. app.get( "/" 関数(req、res、 next ) {
  31. res.status(200).send(メッセージ);
  32. });
  33.  
  34. app.listen(8080,関数() {
  35. console.log( "アプリはポート8080で起動しました" );
  36. });
  37.  
  38. ##サービス.yaml
  39. APIバージョン:serving.knative.dev/v1alpha1
  40. 種類: サービス
  41. メタデータ:
  42. 名前: グリーター
  43. 仕様:
  44. 構成:
  45. リビジョンテンプレート:
  46. 仕様:
  47. 容器:
  48. 画像: dev.ローカル/greeter:0.0.1-SNAPSHOT

Node.js サーバーレス アプリケーションを構築し、サービスをローカル Kubernetes プラットフォームにデプロイします。 Kubernetes (または Minishift) に必要な基本コンポーネント (Knative、Istio、Knative Serving) をインストールします。プロセスは次のとおりです。

1. 次のコマンドを使用して Docker デーモンに接続します。

  1. (minishift docker-env) && eval(minishift oc-env)

2. 次のコマンドと Jib (https://github.com/GoogleContainerTools/jib) を使用して、サーバーレス アプリケーション コンテナ イメージをビルドします。

  1. ./mvnw -DskipTests クリーンコンパイル jib:dockerBuild

3. Minishift などのサーバーレス サービスを Kubernetes クラスターにデプロイします。

  1. kubectl を適用 -f サービス.yaml

結論は

上記の例は、Kubernetes、Knative Serving、Istio などのクラウド ネイティブ プラットフォームを利用して、サーバーレス アプリケーションの開発をどこからどのように開始するかを示しています。

原題: サーバーレス コンピューティングを始めるための 7 つのオープン ソース プラットフォーム、著者: Daniel Oh

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

<<:  上級データベースエンジニアに必要なスキル

>>:  クラウドの価格設定についての真実をご存知ですか?

推薦する

chicagovps-全品50%オフ/Windows/1gメモリ/4コア/40g SSD/2Tデータ/年額35ドル

chicagovps.net は、米国選挙日に VPS イベントを開催し、chicagovps シリ...

クラウドベースのコラボレーション アプリケーションで企業データを保護する方法

今日、クラウド コンピューティングの導入は驚異的な速度で増加しており、組織は特定のビジネス ニーズを...

ウェブサイト最適化のためのタイトル設定の解釈

これまで多くの友人がタイトルの設定方法を分析してきました。ほとんどの友人は、キーワードをうまく使うた...

controlvm-768m メモリ (xen)/50g ハードディスク/G ポート/フェニックス/ドイツ/マレーシア/10 ドル

ControlVM Technology (002187594-T) は、マレーシアで独自の設備を備...

仮想マシンバイトコード実行エンジン

いわゆる「仮想マシン バイトコード実行エンジン」は、実際には、クラス ファイルに指定されたバイトコー...

タオバオ検索ランキングの詳細な分析

電子商取引業界の代表的なプラットフォームである Taobao には、毎日数え切れないほどの人々が参加...

ウェブサイトの関連性は奇妙な花のようなものです。関連性をうまく保つことは、一枚板の橋を渡るようなもの (パート 2)

上記の記事では、ウェブサイトコンテンツ構築の観点から、ウェブサイトコンテンツ構築の関連性をどのように...

ウェブサイトを最適化する際に画像を最適化する方法

ウェブサイトの最適化において、画像の最適化は実は大きな部分を占めています。これは SEO 最適化の重...

インターネットとタオバオマーケティングの今後の動向分析

ウェブマスターの皆様、ADMIN5 を 3 年間離れてから戻ってきました。今回は、Taobao とウ...

上海は「両会」のオンライン相談プラットフォームの設立を先導し、ガバナンスのデジタル変革を加速

上海はガバナンスのデジタル変革をさらに加速します。本日、第13期市政協第4回会議が開幕し、上海は正式...

ブランドがオンラインでお菓子を配っていますが、どの 520 マーケティングが一番甘いでしょうか?

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービステキスト | 脳を燃やす...

spinservers: 米国の無制限トラフィック サーバーは月額 69 ドルから、帯域幅 1Gbps、2*e5-2630L v2/64g メモリ/1.6TSSD、30 台限定

spinservers は現在、特別プロモーションを開始しており、米国のサーバーは月額 69 ドルか...

オンラインアライアンス環境における広告掲載手法の簡単な分析(I)

最近、製品部門のユーザーエクスペリエンスチームの学生は、アライアンス環境における広告に関する一連の研...

コンテナ構築の7つのベストプラクティス

コンテナと Kubernetes は急速に人気を集めていますが、まず 1 つのことを明確にする必要が...