サーバーレスコンピューティングを始めるのに役立つ 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として明記してください。

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

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

推薦する

1.4.2 エントリーファイル(2)

1.4.2 エントリーファイル(2)この構成項目のブロックで、「AllowOverride None...

クラウドテクノロジーの将来に関する6つのトレンド

現在、今後数年間にわたって業界を形作ることになるクラウド テクノロジーのトレンドが数多く発生していま...

中国の SaaS は終焉を迎えたのか?

最近、中国のいくつかのスターSaaS企業が「困難な状況」にあると報告している。総合労務管理サービスプ...

food.net ドメイン名について: あらゆる人をカバーする 6 つのカテゴリ

昨今、人々の生活水準は向上し、衣食住の問題は基本的に解決され、人々の追求は健康的な食生活へと変わりま...

企業のウェブサイトを構築する際は、どのような原則に従うべきでしょうか?

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

モノリシックアプリケーションの謎を解く

モノマーって不思議な響きですね。世界中の何千もの組織では、モノリシック アプリケーションが独立して並...

Oracle Marketing Cloudは、精密なトラフィックの迂回と重要なインキュベーションを利用して、シスコの新しい効率的なカスタマージャーニーを実現します。

MarTech エコシステムは日々拡大しています。市場に存在するさまざまなマーケティング理論やソリュ...

ローカルフォーラムの採用セクションがローカル採用ウェブサイトに与える影響

最近、地元の求人サイトを運営している私の友人が、徐々に地域でナンバーワンの求人サイトになってきました...

ブランドマーケティングプロモーション:「The Debaters」のプロダクトプレイスメントを学ぶには?

プロダクト・プレイスメントは、その誕生以来、「矛」と「盾」の間で避けられない争いに直面してきました。...

コロケーションデータセンターを最大限に活用するハイブリッドクラウドアプローチ

パブリック クラウドは、マルチテナント クラウド コンピューティング環境として、大量のデータを持つ企...

エッジコンピューティングの種類と用途

エッジ コンピューティングは、スーパー クラウド コンピューティングの次のステップです。データ需要が...

スマートなキーワードレイアウトでウェブサイトのランキングを素早く向上

ウェブサイトのランキングは重要ですか? SEO 担当者であれば、その答えはご存知でしょう。それは重要...

12306との協議第2部:システムがオープンでなければ、3億元の投資が無駄になる可能性がある

ニュース速報:9月27日早朝、「二重節」の連休まであと2日となったとき、北京で働く小林さん(仮名)は...

3月、最新のGoDaddyは2.95米ドルで.comドメイン名を登録しました

3 月の最新の godaddy ドメイン名登録割引コード: .com ドメイン名の登録には 2.95...

動画マーケティング分析と動画再生回数アップのための発想法!

最近は動画マーケティングをやっています。基本的な考え方としては、人気の動画を見つけて、途中に自分の広...