Google App Engine 有哪些替代方案?

发布于 2024-07-06 06:13:44 字数 1560 浏览 7 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(13

梦开始←不甜 2024-07-13 06:13:44

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,例如

值得关注的有趣内容。

AppScale

AppScale is a platform that allows users to deploy and host their own Google App Engine applications. It executes automatically over Amazon EC2 and Eucalyptus as well as Xen and KVM. It has been developed and is maintained by AppScale Systems. It supports the Python, Go, PHP, and Java Google App Engine platforms.

http://github.com/AppScale/appscale

In the mean time...

...it is amost 2015 and it seems that containers are the way to go forward. Alternatives to GAE are emerging:

Google has released Kubernetes, container scheduling software developed by them to manage GCE containers, but can be used on other clusters as well.

There are some upcoming PaaS on Docker such as

Interesting stuff to keep an eye on.

╰沐子 2024-07-13 06:13:44

我认为现在没有 GAE 的其他替代方案(就代码可移植性而言),因为 GAE 是独一无二的。 当然,GAE 是云计算,但我将 GAE 视为云计算的一个子集。 亚马逊的 EC2 也是云计算(以及 Joyent Accelerators、Slicehost Slices),但显然它们也是两种不同的野兽。 因此,现在您所处的情况需要根据您的需求重新考虑您的架构。

GAE 的直接好处是它基本上是免维护的,因为它涉及基础设施(可扩展的 Web 服务器和数据库管理)。 GAE 更适合那些只想关注应用程序而不是底层系统的开发人员。在某种程度上,您可以认为该开发人员友好。 现在还应该说,这些其他云计算解决方案也试图通过提供 VM 映像/模板来让您只关心您的应用程序。 最终,您的需求将决定您应该采取的方法。

现在考虑到这一切,我们还可以构建也可以满足我们需求的混合解决方案和解决方法。 例如,GAE 似乎并不直接适合您描述的这个特定应用程序需求。 换句话说,GAE 提供的请求数量相对较高,CPU 周期数量较低(不确定付费版本是否会有所不同)。

然而,应对这一挑战的一种方法是构建一个定制的解决方案,其中 GAE 作为前端,Amazon AWS(EC2、S3 和 SQS)作为后端。 有人会说您不妨在 AWS 上构建整个堆栈,但这也可能涉及重写大量现有代码。 此外,作为解决方法,之前的 stackoverflow 帖子描述了一种在 GAE 中模拟后台任务的方法。 此外,您还可以使用 HTTP Map/Reduce 来分配工作负载。

I don't think there is another alternative (with regards to code portability) to GAE right now since GAE is in a class of its own. Sure GAE is cloud computing, but I see GAE as a subset of cloud computing. Amazon's EC2 is also cloud computing (as well as Joyent Accelerators, Slicehost Slices), but obviously they are two different beasts as well. So right now you're in a situation that requires rethinking your architecture depending on your needs.

The immediate benefits of GAE is that its essentially maintenance free as it relates to infrastructure (scalable web server and database administration). GAE is more tailored to those developers that only want to focus on their applications and not the underlying system.In a way you can consider that developer friendly. Now it should also be said that these other cloud computing solutions also try to allow you to only worry about your application as much as you like by providing VM images/templates. Ultimately your needs will dictate the approach you should take.

Now with all this in mind we can also construct hybrid solutions and workarounds that might fulfill our needs as well. For example, GAE doesn't seem directly suited to this specific app needs you describe. In other words, GAE offers relatively high number of requests, low number of cpu cycles (not sure if paid version will be any different).

However, one way to tackle this challenge is by building a customized solution involving GAE as the front end and Amazon AWS (EC2, S3, and SQS) as the backend. Some will say you might as well build your entire stack on AWS, but that may involve rewriting lots of existing code as well. Furthermore, as a workaround a previous stackoverflow post describes a method of simulating background tasks in GAE. Furthermore, you can look into HTTP Map/Reduce to distribute workload as well.

寄风 2024-07-13 06:13:44

截至 2016 年,如果您愿意将 PaaS(平台即服务)和 < a href="https://en.wikipedia.org/wiki/Function_as_a_Service" rel="nofollow noreferrer">FaaS(功能即服务)在同一个无服务器计算 类别,那么您有一些 FaaS 选择。

专有

AWS Lambda

AWS Lambda 让您无需预置或管理服务器即可运行代码。 您只需为消耗的计算时间付费 - 当您的代码未运行时无需付费。 借助 Lambda,您几乎可以为任何类型的应用程序或后端服务运行代码 - 全部都是零管理。 只需上传您的代码,Lambda 就会处理以高可用性运行和扩展您的代码所需的一切。 您可以将代码设置为自动从其他 AWS 服务触发或直接从任何 Web 或移动应用程序调用。

AWS Step Functions 是对 AWS Lambda 的补充。

AWS Step Functions 可以使用可视化工作流程轻松协调分布式应用程序和微服务的组件。 从各个组件构建应用程序(每个组件执行独立的功能),让您可以快速扩展和更改应用程序。 Step Functions 是协调组件并逐步执行应用程序功能的可靠方法。 Step Functions 提供了一个图形控制台,可以将应用程序的组件排列和可视化为一系列步骤。 这使得构建和运行多步骤应用程序变得简单。 Step Functions 自动触发和跟踪每个步骤,并在出现错误时重试,以便您的应用程序按顺序按预期执行。 Step Functions 会记录每个步骤的状态,因此当出现问题时,您可以快速诊断和调试问题。 您甚至无需编写代码即可更改和添加步骤

Google Cloud Functions

截至 2016 年,它处于 alpha 阶段。

Google Cloud Functions 是一种轻量级、基于事件的异步计算解决方案,允许您创建小型、单一用途的函数来响应云事件,而无需管理服务器或运行时环境。 来自 Google Cloud Storage 和 Google Cloud Pub/Sub 的事件可以异步触发 Cloud Functions,您也可以使用 HTTP 调用来同步执行。

Azure Functions

基于事件的无服务器计算体验可加速您的开发。 它可以根据需求进行扩展,您只需为消耗的资源付费。

打开

无服务器

无服务器框架允许您将自动扩展、按执行付费、事件驱动的功能部署到任何云。 我们目前支持 Amazon Web Service 的 Lambda,并正在扩展以支持其他云提供商。

IronFunctions

IronFunctions 是一个开源无服务器计算平台,适用于任何云(私有云、公共云或混合云)。


FaaS 与 CaaS(容器即服务)的竞争效果如何还有待观察。 前者看起来更轻。 两者似乎都适合微服务架构。

我预计功能(如 FaaS 中的)并不是最终的结果,并且许多年后我们将看到进一步的服务抽象,例如仅测试开发,然后是简单语言场景。

As of 2016, if you're willing to lump PaaS (platform as a service) and FaaS (function as a service) in the same serverless computing category, then you have a few FaaS options.

Proprietary

AWS Lambda

AWS Lambda lets you run code without provisioning or managing servers. You pay only for the compute time you consume - there is no charge when your code is not running. With Lambda, you can run code for virtually any type of application or backend service - all with zero administration. Just upload your code and Lambda takes care of everything required to run and scale your code with high availability. You can set up your code to automatically trigger from other AWS services or call it directly from any web or mobile app.

AWS Step Functions complements AWS Lambda.

AWS Step Functions makes it easy to coordinate the components of distributed applications and microservices using visual workflows. Building applications from individual components that each perform a discrete function lets you scale and change applications quickly. Step Functions is a reliable way to coordinate components and step through the functions of your application. Step Functions provides a graphical console to arrange and visualize the components of your application as a series of steps. This makes it simple to build and run multi-step applications. Step Functions automatically triggers and tracks each step, and retries when there are errors, so your application executes in order and as expected. Step Functions logs the state of each step, so when things do go wrong, you can diagnose and debug problems quickly. You can change and add steps without even writing code

Google Cloud Functions

As of 2016 it is in alpha.

Google Cloud Functions is a lightweight, event-based, asynchronous compute solution that allows you to create small, single-purpose functions that respond to cloud events without the need to manage a server or a runtime environment. Events from Google Cloud Storage and Google Cloud Pub/Sub can trigger Cloud Functions asynchronously, or you can use HTTP invocation for synchronous execution.

Azure Functions

An event-based serverless compute experience to accelerate your development. It can scale based on demand and you pay only for the resources you consume.

Open

Serverless

The Serverless Framework allows you to deploy auto-scaling, pay-per-execution, event-driven functions to any cloud. We currently support Amazon Web Service's Lambda, and are expanding to support other cloud providers.

IronFunctions

IronFunctions is an open source serverless computing platform for any cloud - private, public, or hybrid.


It remains to seen how well FaaS competes with CaaS (container as a service). The former seems more lightweight. Both seem suited to microservices architectures.

I anticipate that functions (as in FaaS) are not the end of the line, and that many years forward we'll see further service abstractions, e.g. test-only development, followed by plain-language scenarios.

就此别过 2024-07-13 06:13:44

亚马逊的弹性计算云或 EC2 是一个不错的选择。 您基本上在服务器上运行 Linux 虚拟机,您可以通过 Web 界面(用于启动和关闭)进行控制,当然还可以通过 SSH 或您通常设置的任何方式进行访问......
由于它是您控制的 Linux 安装,因此如果您愿意,您当然可以运行 python。

Amazon's Elastic Compute Cloud or EC2 is a good option. You basically run Linux VMs on their servers that you can control via a web interface (for powering up and down) and of course access via SSH or whatever you normally set up...
And as it's a linux install that you control, you can of course run python if you wish.

云胡 2024-07-13 06:13:44

Microsoft Windows Azure 可能值得考虑。 恐怕我还没有使用过它,所以不能说它是否有任何好处,你应该记住它目前是一个 CTP。

在此处查看。

Microsoft Windows Azure might be worth consideration. I'm afraid I haven't used it so can't say if it's any good and you should bear in mind that it's a CTP at the moment.

Check it out here.

划一舟意中人 2024-07-13 06:13:44

有点晚了,但我愿意尝试一下 Heroku:

Heroku 是一个多语言云应用程序平台。 有了 Heroku,你
根本不需要考虑服务器。 您可以使用编写应用程序
您的编程语言中的现代开发实践
选择,用 SQL 和 NoSQL 数据库等附加资源来支持它,
Memcached 等。 您使用 Heroku 管理您的应用程序
命令行工具,并使用 Git 修订控制部署代码
系统,全部运行在 Heroku 基础设施上。

https://www.heroku.com/about

A bit late, but I would give Heroku a go:

Heroku is a polyglot cloud application platform. With Heroku, you
don’t need to think about servers at all. You can write apps using
modern development practices in the programming language of your
choice, back it with add-on resources such as SQL and NoSQL databases,
Memcached, and many others. You manage your app using the Heroku
command-line tool and you deploy code using the Git revision control
system, all running on the Heroku infrastructure.

https://www.heroku.com/about

真心难拥有 2024-07-13 06:13:44

您可能还想看看 AWS Elastic Beanstalk - 它与 GAE 功能更接近,因为它被设计为 PaaS,而不是 IaaS(即 EC2)

You may also want to take a look at AWS Elastic Beanstalk - it has a closer equivalence to GAE functionality, in that it is designed to be PaaS, rather than an IaaS (i.e. EC2)

幸福丶如此 2024-07-13 06:13:44

如果您对云感兴趣,并且可能想创建自己的云用于生产和/或测试,您必须查看 桉树。 据称它的代码与 EC2 兼容,但开源。

If you're interested in the cloud, and maybe want to create your own for production and/or testing you have to look at Eucalyptus. It's allegedly code compatible with EC2 but open source.

牵你的手,一向走下去 2024-07-13 06:13:44

我更感兴趣的是了解 App Engine 如何轻松地与用于 CPU 密集型请求的另一台服务器相结合。

I'd be more interested in seeing how App Engine can be easily coupled with another server used for CPU intensive requests.

七禾 2024-07-13 06:13:44

TyphoonAE 正在尝试执行此操作。 我还没有测试过它,但虽然它仍处于测试阶段,但看起来至少正在积极开发中。

TyphoonAE is trying to do this. I haven't tested it, but while it is still in beta, it looks like it's atleast in active development.

兔小萌 2024-07-13 06:13:44

向云计算的转变发生得如此之快,您没有时间浪费在测试不同的平台上。
如果您也对 Java 感兴趣,我建议您尝试 Jelastic

Jelastic 的最大优点之一是,除了应用程序功能的更改之外,您不需要对应用程序的代码进行任何更改,但这并不是因为所选平台需要这样做。 参考这一点,您实际上并没有浪费时间。部署过程非常完美,您可以将 .war 文件部署到任何其他地方。使用 GAE 需要您根据系统需求修改应用程序。 如果您碰巧开始使用 Java 并开始寻找更灵活的平台,Jelastic 是一个兼容的替代方案。

The shift to cloud computing is happening so rapidly that you have no time to waste for testing different platforms.
I suggest you trying out Jelastic if you are interested in Java as well.

One of the greatest things about Jelastic is that you do not need to make any changes in the code of your application, except the changes for your application functionality, but not for the reason the chosen platform demands this. With reference to this you do not actually waste your time.The deployment process is just flawless, and you can deploy your .war file anywhere further.Using GAE requires you to modify the app around their system needs. In case if you happen to get working with Java and start looking for a more flexible platform, Jelastic is a compatible alternative.

小伙你站住 2024-07-13 06:13:44

您还可以使用红帽的 Cape Dwarf 项目,在 Wildfly 应用程序服务器(以前的 JBoss)之上运行 GAE 应用程序,无需进行修改。

您可以在这里查看:

http://capedwarf.org/

You can also use Red Hat's Cape Dwarf project, to run GAE apps on top of the Wildfly appserver (previously JBoss) without modification.

You can check it out here:

http://capedwarf.org/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文