web-dev-qa-db-ja.com

Google App Engineに代わるものは何ですか?

GAEに代わるものはあります。私が保持したいコードがすでに十分に機能していることを考えると、言い換えれば、私はパイソンを掘っています。ただし、私のユースケースは、リクエスト数が少なく、CPU使用率が高いタイプのユースケースであり、App Engineをいつまでも使用できなくなるのではないかと心配しています。アマゾンウェブサービスや他の種類のクラウドプロバイダーについて多くの人が話しているのを聞いたことがありますが、他のほとんどのサービスがそのアプリの範囲のサービス(データクエリ、ユーザー認証、自動スケーリング)を提供する場所を見つけるのに苦労していますエンジンが提供します。ここに私のオプションは何ですか?

47

GAEは独自のクラスに属しているため、現時点では(コードの移植性に関して)GAEに代わるものはないと思います。確かにGAEはクラウドコンピューティングですが、私はGAEをクラウドコンピューティングのサブセットと見なしています。 AmazonのEC2もクラウドコンピューティング(Joyent Accelerators、Slicehost Slicesと同様)ですが、明らかに2つの異なる獣でもあります。したがって、現在、ニーズに応じてアーキテクチャを再考する必要がある状況にあります。

GAEの直接的な利点は、インフラストラクチャ(スケーラブルなWebサーバーおよびデータベース管理)に関連するため、基本的にメンテナンスフリーであることです。 GAEは、基盤となるシステムではなく、アプリケーションにのみ焦点を当てたい開発者に合わせて調整されています。 VM images/templatesを提供することにより、これらの他のクラウドコンピューティングソリューションもアプリケーションについて心配するだけでよいようにしようとしています。最終的にはニーズによって、あなたが取るべきアプローチ。

これらすべてを念頭に置いて、私たちのニーズも満たすハイブリッドソリューションと回避策を構築することもできます。たとえば、GAEは直接とは言えません。言い換えると、GAEは比較的多数のリクエストと少数のCPUサイクルを提供します(有料版が異なるかどうかは不明です)。

ただし、この課題に取り組む1つの方法は、GAEをフロントエンドとして、Amazon AWS(EC2、S3、およびSQS)をバックエンドとしてカスタマイズしたソリューションを構築することです。 AWSでスタック全体を構築することもできますが、既存のコードの多くを書き直す必要があると言う人もいます。さらに、以前の stackoverflow post の回避策として、GAEでバックグラウンドタスクをシミュレートする方法を説明しています。さらに、 HTTP Map/Reduce を調べて、ワークロードを分散することもできます。

23
fuentesjr

AppScale

AppScaleは、ユーザーが独自のGoogle App Engineアプリケーションをデプロイしてホストできるようにするプラットフォームです。これは、Amazon EC2とEucalyptusだけでなく、XenとKVMでも自動的に実行されます。 AppScale Systems によって開発および保守されています。 Python、Go、PHP、およびJava Google App Engineプラットフォームをサポートしています。

http://github.com/AppScale/appscale

その間...

...それはほぼ2015年であり、コンテナは前進する方法のようです。 GAEに代わるものが出現しています。

Googleは Kubernetes をリリースしました GCEコンテナーの管理 のために開発したコンテナースケジューリングソフトウェアですが、他のクラスターでも使用できます。

次のようなDockerには 今後のPaaS がいくつかあります

注目すべき興味深いもの。

30
wires

代替:1. AppScale 2. Herok

参照: Google AppEngineの代替?

5
avngr

PaaS (サービスとしてのプラットフォーム)と FaaS (サービスとしての機能)を一括で使用する場合同じ サーバーレスコンピューティング カテゴリでは、いくつかのFaaSオプションがあります。

独自の

AWS Lambda

AWS Lambdaを使用すると、サーバーをプロビジョニングまたは管理することなくコードを実行できます。消費したコンピューティング時間に対してのみ料金が発生します。コードが実行されていない場合は無料です。 Lambdaを使用すると、実質的にすべてのタイプのアプリケーションまたはバックエンドサービスのコードを実行できます-管理は一切不要です。コードをアップロードするだけで、Lambdaが高可用性を備えたコードの実行とスケーリングに必要なすべてを処理します。他のAWSサービスから自動的にトリガーするようにコードを設定するか、任意のWebまたはモバイルアプリから直接呼び出すことができます。

AWSステップ関数はAWS Lambdaを補完します。

AWS Step Functionsを使用すると、視覚的なワークフローを使用して、分散アプリケーションとマイクロサービスのコンポーネントを簡単に調整できます。それぞれが個別の機能を実行する個々のコンポーネントからアプリケーションを構築すると、アプリケーションを迅速にスケーリングおよび変更できます。ステップ関数は、コンポーネントを調整し、アプリケーションの関数をステップ実行するための信頼できる方法です。 Step Functionsは、アプリケーションのコンポーネントを一連のステップとして配置および視覚化するグラフィカルコンソールを提供します。これにより、マルチステップアプリケーションの構築と実行が簡単になります。 Step Functionsは自動的に各ステップをトリガーして追跡し、エラーが発生すると再試行するため、アプリケーションは期待どおりに順序どおりに実行されます。 Step Functionsは各ステップの状態をログに記録するため、問題が発生した場合に問題を迅速に診断およびデバッグできます。コードを書かなくてもステップを変更および追加できます

Google Cloud Functions

2016年現在、アルファ版です。

Google Cloud Functionsは軽量のイベントベースの非同期コンピューティングソリューションであり、サーバーやランタイム環境を管理する必要なく、クラウドイベントに応答する小さな単一目的の関数を作成できます。 Google Cloud StorageとGoogle Cloud Pub/Subからのイベントは、Cloud Functionsを非同期でトリガーできます。または、同期実行にHTTP呼び出しを使用できます。

Azure関数

開発を加速するイベントベースのサーバーレスコンピューティングエクスペリエンス。需要に基づいてスケーリングでき、消費したリソースに対してのみ支払います。

開いた

サーバーレス

サーバーレスフレームワークを使用すると、自動スケーリング、実行ごとの支払い、イベント駆動型の機能を任意のクラウドにデプロイできます。現在、Amazon Web ServiceのLambdaをサポートしており、他のクラウドプロバイダーもサポートするように拡張しています。

IronFunctions

IronFunctionsは、プライベート、パブリック、またはハイブリッドのあらゆるクラウド向けのオープンソースのサーバーレスコンピューティングプラットフォームです。


FaaSがCaaS(サービスとしてのコンテナー)とどれだけ競合するかはまだ分からない。前者はより軽量に見えます。どちらもマイクロサービスアーキテクチャに適しているようです。

(FaaSのような)関数は終わりではなく、何年も先にさらにサービスの抽象化が見られることを期待しています。テストのみの開発、続いて平易な言語のシナリオ。

4
Acumenus

少し遅れましたが、Herokuを試してみました。

Herokuはポリグロットクラウドアプリケーションプラットフォームです。 Herokuを使用すると、サーバーについてまったく考える必要がありません。選択したプログラミング言語で最新の開発手法を使用してアプリを作成し、SQLやNoSQLデータベース、Memcachedなどのアドオンリソースでアプリを作成できます。 Herokuコマンドラインツールを使用してアプリを管理し、Gitリビジョン管理システムを使用してコードをデプロイします。これらはすべてHerokuインフラストラクチャで実行されています。

https://www.heroku.com/about

4
phocks

Microsoft Windows Azureは検討に値するかもしれません。使ったことがないのではないかと思いますので、良いかどうかはわかりません。現時点ではCTPだということを覚えておいてください。

ここで確認してください。

3
PythonPower

AmazonのElastic Compute CloudまたはEC2が適切なオプションです。基本的に、サーバー上でLinux VMを実行します。これらのサーバーは、Webインターフェイス(電源の投入と切断用)を介して制御できます。もちろん、SSHまたは通常設定するものを介してアクセスできます。そして、Linuxのインストールなので、制御できます。もちろん、必要に応じてpythonを実行します。

3
Adam Haile

AWS Elastic Beanstalk も確認することをお勧めします。GAE機能と同等であり、IaaS(i.n. EC2)ではなくPaaSとして設計されています。

3
Lynn Langit

クラウドに興味があり、本番環境やテスト用に独自に作成したい場合は、 Eucalyptus を参照する必要があります。 EC2とコード互換性があるとされていますが、オープンソースです。

2
MrTelly

CPUを多用するリクエストに使用される別のサーバーとApp Engineを簡単に組み合わせる方法に興味があります。

1
jamtoday

TyphoonAE がこれを試みています。まだテストはしていませんが、まだベータ版ですが、少なくともアクティブな開発段階にあるようです。

1
Steve Armstrong

Red HatのCape Dwarfプロジェクトを使用して、Wildflyアプリサーバー(以前のJBoss)上でGAEアプリを変更せずに実行することもできます。

あなたはそれをここでチェックすることができます:

http://capedwarf.org/

0
user2012519

クラウドコンピューティングへの移行が急速に進んでいるため、さまざまなプラットフォームをテストするために時間を無駄にする時間はありません。 Javaにも興味がある場合は、 Jelastic を試してみることをお勧めします。

Jelasticの最大の特長の1つは、アプリケーション機能の変更を除いて、アプリケーションのコードに変更を加える必要がないことですが、選択したプラットフォームがこれを要求するという理由ではありません。これを参照すると、実際に時間を無駄にすることはありません。展開プロセスは完璧であり、.warファイルをさらにどこにでも展開できます。GAEを使用するには、システムのニーズに合わせてアプリを変更する必要があります。たまたまJavaで作業していて、より柔軟なプラットフォームを探し始めている場合は、Jelasticが互換性のある代替手段です。

0
Daria