如何从网络/云启动应用程序

Posted

技术标签:

【中文标题】如何从网络/云启动应用程序【英文标题】:How to launch app from the web/cloud 【发布时间】:2014-10-24 17:48:59 【问题描述】:

我在 Twilio 中开发了一个应用程序,我想从云端运行它。我尝试学习 AWS 和 Google App Engine,但在这个阶段很困惑:

我有 2 个问题希望得到您的帮助:

1) 如何将我的脚本和数据库存储在云中?现在,一切都在我的本地机器上用完了,但我想将脚本和数据库传输到另一台服务器,并在一天中的预定时间运行我的应用程序。最好的方法是什么?

2) 如何编写批处理文件以在一天中的预定时间在云中运行我的应用程序?

我知道这没有代码,但我真的希望有人能指出我正确的方向。我花了很多时间试图自己理解这一点,但仍然不确定。 Tks in adv.

更新:该应用程序是一个 Twilio 应用程序,它可以呼叫人,脚本只是应用一种算法以某种方式进行呼叫,数据库是一个 mysql 数据库,提供被呼叫人的详细信息。

【问题讨论】:

您用什么语言编写了您的应用程序?它在哪个容器中运行? 【参考方案1】:

如果不了解什么是应用程序、什么是数据库或您希望运行的脚本是什么,这很难提供准确的答案。

我可以给你一些在这种情况下可能有用的想法。

OpsWorks (http://aws.amazon.com/opsworks/) 是用于管理应用程序的托管服务。您可以定义您的堆栈(多个层,如 web、workers、DB ......)以及应该在每一层的实例生命周期的各个点(启动、关闭、应用程序部署或堆栈修改)中运行的主厨食谱是什么。 .)。然后,您可以使用在特定日期和时间向每个层添加实例的能力,以实现按您的要求在预定时间运行的功能。

在这样的解决方案中,您可以让您的一些实例(如 DB)始终开启,甚至可以每天使用厨师食谱引导它们,在启动时从快照恢复并在关闭时创建快照。

您使用的另一项 AWS 服务是 Data Pipeline (http://aws.amazon.com/datapipeline/)。它旨在定期在数据源之间移动数据,例如从 MySQL 数据库到数据仓库服务 Amazon Redshift。但是您可以使用它来触发脚本并运行您希望的随机 shell 脚本 (http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-shellcommandactivity.html),并安排它在各种条件下运行,例如每小时/每天或特定时间 (http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-concepts-schedules.html)。

【讨论】:

谢谢你。我正在检查这些。似乎在 AWS/Google App Engine 上需要做很多工作(或者会吗?)。似乎 Heroku 可以更快地做事(***.com/questions/9802259/…)。但是,我对它不太熟悉。 顺便说一句,我已经用更多细节更新了我的问题,以防你重新查看它【参考方案2】:

这里的一个简单路径是在 AWS 中创建一个 EC2 实例,并将运行您的应用程序所需的组件放在那里。在这里进行彻底的演练:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html

基本上,您将创建一个 EC2 虚拟机,在大多数情况下,您可以像对待任何其他 Linux 服务器一样对待它。你可以在上面安装 MySQL,复制你的脚本,然后运行它。当然,您的代码需要的任何容器或支持库也需要安装。

您没有说明您在本地使用的是什么操作系统,但如果是 Mac 或 Linux,您应该能够按照几乎相同的流程让您的脚本在您在本地机器上使用的 EC2 实例上运行。

随着您对 AWS 的了解,您可以将一些复杂的服务用于部署、基础架构编排、数据库服务等。但刚开始从虚拟机运行脚本应该非常简单。

【讨论】:

【参考方案3】:

我最近使用 Ruby on Rails 作为后端开发了一个 Twilio 应用程序,发现 Heroku 的设置和启动非常简单。虽然 Heroku 的成本确实高于 AWS,但我发现使用 Heroku 节省的时间远远超过了这一点。作为一家早期创业公司,我们希望将时间花在开发重要功能上,而不是“浪费”时间优化我们的 AWS 云。

但是,虽然我认为 Heroku 是早期网站/初创公司的理想选择,但我确实认为,一旦公司达到一定规模,就应该重新评估托管服务。在某些时候,投入资源来优化 AWS 云解决方案在经济上是可行的,因为从长远来看它会比 Heroku 更便宜。

【讨论】:

以上是关于如何从网络/云启动应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何从我的应用程序启动 iPhone 设置应用程序?

在Google云上托管红宝石网络

如何提高阿里云上应用的可用性

云计算应该如何学习?

传统环境虚拟化/云环境中分别如何部署网络镜像

启动配置扩容伸缩存储,开普勒云平台之使用指南