Google App Engineにはどのような代替手段がありますか? [閉まっている]

StackOverflow https://stackoverflow.com/questions/153721

  •  03-07-2019
  •  | 
  •  

質問

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

役に立ちましたか?

解決

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

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

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

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

他のヒント

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 がありますなど

注目を集めるための興味深いもの。

代替案:  1. AppScale  2. Heroku

参照: Google AppEngineの代替案

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

  

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

https://www.heroku.com/about

2016年現在、 PaaS (サービスとしてのプラットフォーム) )および FaaS (サービスとして機能)と同じサーバーレスコンピューティングカテゴリの場合、いくつかのFaaSオプションがあります。

プロプライエタリ

AWS Lambda

  

AWS Lambdaでは、サーバーをプロビジョニングまたは管理せずにコードを実行できます。あなたが消費する計算時間に対してのみ支払う-あなたのコードが実行されていないときは無料です。 Lambdaを使用すると、ほぼすべてのタイプのアプリケーションまたはバックエンドサービスのコードを実行できます。すべて管理が不要です。コードをアップロードするだけで、Lambdaが高可用性を備えたコードの実行とスケーリングに必要なすべてを処理します。他のAWSサービスから自動的にトリガーするようにコードを設定するか、任意のウェブまたはモバイルアプリから直接呼び出すことができます。

AWS Step Functions はAWS Lambdaを補完します。

  

AWS 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のような)が最後ではないこと、そして何年も先にさらにサービスの抽象化が見られることを期待しています。 t

AmazonのElastic Compute CloudまたはEC2は良い選択肢です。基本的に、サーバー上でLinux VMを実行し、Webインターフェイス(電源のオン/オフ用)を介して制御できます。もちろん、SSHまたは通常設定したものを使用してアクセスできます。 そして、それはあなたが制御するLinuxインストールなので、必要に応じてもちろんPythonを実行できます。

Microsoft Windows Azureは検討する価値があるかもしれません。使用していないのではないかと思うので、良いかどうかは言えません。現時点ではCTPであることに注意してください。

こちらをご覧ください。

クラウドに興味があり、生産やテスト用に独自のものを作成したい場合は、ユーカリ。伝えられるところでは、EC2とコード互換性がありますが、オープンソースです。

AWS Elastic Beanstock をご覧になることもできます。 GAE機能。IaaS(つまりEC2)ではなくPaaSとして設計されています。

CPUを集中的に使用するリクエストに使用される別のサーバーとApp Engineを簡単に結合できる方法を確認したいです。

TyphoonAE はこれを試みています。まだテストしていませんが、まだベータ版ですが、活発な開発が行われているようです。

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

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

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

こちらで確認できます:

http://capedwarf.org/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top