我需要一个后端服务器为我的移动应用 - 我需要能够编写服务器端逻辑,所以我并不需要下载整个数据库。 我使用JavaScript + HTML5的移动应用程序。
是亚马逊EC2和谷歌应用程序引擎能够做到这一点? 是否还有其他选择吗?
我需要一个后端服务器为我的移动应用 - 我需要能够编写服务器端逻辑,所以我并不需要下载整个数据库。 我使用JavaScript + HTML5的移动应用程序。
是亚马逊EC2和谷歌应用程序引擎能够做到这一点? 是否还有其他选择吗?
披露: 我为谷歌工作的AppEngine上,但我想是公正的。 我还要指出(总是)是我给我自己的意见,而不是公司的。
从理论上说,没有理由你真的需要使用任何类型的后端服务提供商。 您可以连接一台服务器使用静态IP地址,你想要一个域名的任何地方。 在实践中,没有人愿意处理自己做这些东西的麻烦。
在另一方面,你还有一个问题来回答:什么是麻烦消除成本? 经验告诉我,费用通常是缺乏控制。 为了让麻烦最少的费用,你要救的人作出的选择。 有更少的选择意味着你有较少的控制。
因此,要回答的问题是:有多少控制你需要,多少麻烦你愿意应对?
如果你需要控制的高水平,并愿意应对大量的麻烦,你可能想“盒子静态IP”选项。
AWS降低一些习惯设置Boxen有的麻烦,但是降低了你的软件在运行的硬件的控制,这是几乎可以肯定接受你,除非你有非常多的硬件要求。
谷歌应用程序引擎移除具有配置软件的麻烦,但降低了软件栈的软件将与运行控制。 你有什么特殊的软件的要求吗? 例如,你特别需要对某个版本的Linux上运行? 你需要必须使用一个特殊的要求说Redis的,而不仅仅是一个内存缓存/数据库组合? 如果没有,那么这可能是可以接受你。
大多数后端即服务提供商删除干脆写一个后端的麻烦,但超过后台删除你的成本控制能力。 是支持的认证方法对你不够好? 请问后端允许您精确地访问您的数据,你需要什么? 如果是这样,这可能是您可以接受。
现在,这里就是我的公正结束 。 就个人而言,我觉得App Engine是在一个最佳平衡点。 它可以让你没有让你管理你的应用程序的每一个细节足够的控制。 如果您需要更多的控制,我建议在看AWS。 如果你希望你的后端为你自动地写,并能处理具有较少的控制,我建议看着巴斯。
阮经天,
StackMob有一个免费的包,你可以试试。 您可以使用JS SDK来写你的HTML5应用,并保存的东西到StackMob服务器。 同时,您可以上传自定义代码片段(Java /斯卡拉/ Clojure)都以StackMob写后端服务器端逻辑。 它的设计使该代码会自动成为一个REST API,让你可以从任何地方打到它来执行逻辑服务器端和得到的回报JSON。 您可以承载你的HTML5上StackMob自由和指向你自己的域名,以它为好。
埃里克 - StackMob工程师
大安的答案有关(+1)明确命名的两家供应商是正确的。
如果你想保存自己的一些麻烦和/或得到沿途的一些指导,你可能想看看进入专用的一个平台即服务(PaaS)供应商专门针对移动应用的后端部分。 有可能在此期间,一打多,但是从我的头顶我现在还记得这三个(所有的商业,但通常是某种自由层得到的,你甚至用于开发目的开始和/或永久) - 在没有特定的顺序:
您会通过这种方法实现的主要优点是处理的平台,而不是基础设施本身,它抽象了许多(如果不是全部)需要专门的系统管理技能(通常不伤害对团队的知识主题不管了,看的DevOps )。
主要缺点看出来的是避免在最终供应商锁定,即取决于你可能希望能够将您的应用程序后端迁移到另一个供应商,这是目前并不总是简单的你的需求,如果在所有可能的。 在另一方面,这很可能不是你的关心,现在,如果你只是想开始快速和/或开发,例如一个原型。
大多数这些会使用一些基础设施即服务(IaaS),像供应商AWS和Joyent公司作为他们又后端BTW。
祝好运!
STEFFAN的答案击中核心点,并有使用后端作为一种服务(巴斯)平台超越了简单的为你处理事情的基础设施/ DevOps的侧一些额外的好处。 (全面披露:我是一名工程师Kinvey ,后端作为一种服务提供者)。
许多这些服务的提供的RESTful API直接访问您的数据。 而不是花时间推出自己的(并且再一次推倒重来),你通常得到你自己的数据API中烘烤,并准备去。
巴斯提供商通常提供代码库来简化连接到您的API。
这往往不仅仅是应用数据更多。 例如,在Kinvey,我们提供大文件(BLOB)存储。 如果您有任何图片,视频等,可以用零安装它们存储。
一些供应商也提供您的API使用分析 - 另一轮,你并不需要彻底改造
与其他提供者的合作伙伴关系:例如,Kinvey提供经由城市飞艇推送通知
总之,它可能是有意义的看看巴斯,看它是否能够满足您的需求。
无论亚马逊网络服务(AWS)和谷歌的App Engine(GAE)可通过免费使用起初,AWS AWS免费梯队和GAE只是默认。 无论你的后端服务,只要保持尽可能的轻最初是作为云提供商更大的计算成本较高(或更快地去了免费的使用限制)。 我会考虑Rackspace公司云(RS)了。 这里 RS他们的服务AWS比较。
一个重要的区别 。 在AWS和RS你必须控制你的实例,因为你“自己”(支付),并控制了一个完整实例。 在另一方面GAE是一个云应用平台 ,因此,在的情况下Heroku的 ,你必须写你的代码这样的应用平台的协同工作。 有几个优点和缺点,以云应用平台 。
例如,为GAE的优势,你会得到最的DevOps是免费的。 例如,更新您的应用程序在GAE这是非常容易的,而在AWS上,你会写自己的部署脚本。 在另一方面(因为我遇到了一个问题),在GAE你不能有相同的实例自己的数据库服务器,因为你不拥有完全控制权; 你会去一个专有的解决方案,谷歌云SQL或GAE的高复制数据存储 。
如果你正在寻找一个完全开源的解决方案后端我建议你Deployd在Amazon EC2或Deployd.com服务或任何其他的node.js提供商。 也有DeploydKit或RestKit作为与它的工作原理机iOS客户端库。
还有如Adobe EC2这样的事情,除非你指的是你可以设置在EC2中的Adobe媒体服务器。 但我假设你只是指的是亚马逊网络服务EC2云计算服务。 在这种情况下:是的,你可以在EC2上的移动应用程序运行的后端服务器(和谷歌应用程序引擎,太)。 所有你需要做的就是编写从您的移动应用程序接受请求,查询数据库并应用任何逻辑,你需要申请一个Web服务,并且将数据发送回您的移动应用。 但是,这听起来像你可能想在Web服务和云计算宣读了第一个,或者这将是一个相当艰巨的任务:)
如果你不希望太多的用户则干脆把PHP脚本什么的“传统”的共享服务器上的网站托管服务提供商可能比运行一个专门的EC2实例为您的应用程序更有价值,虽然。
作为斯特芬和戴夫说,后端的一个作为服务提供者可能是你的胡同。 如果不是所有的这些平台具有相当强大的查询系统,所以你不应该需要担心通过从DB无关信息进行筛选。 我想解析特别是通过用例完全像你提到拉只从DB最高分的X号的一个散步。
如果你确实需要服务器端代码,StackMob允许自定义代码托管和我相信Kinvey是处于测试阶段做同样的。 我认为StackMob只支持Java和Clojure的服务器代码不过,如果该事项。
总有关闭的灵活性和易用性之间的平衡,但是这取决于你有多少控制需要在您的数据,这些服务可以为您节省大量的时间并没有真正降低您的应用程序的功能。