背景
大的互联网公司在走向更加的开发,很多互联网公司的内部很多个内部应用系统,并且存在大量的第三方的应用和其内部系统交互;
建设App Engine可以让内部和外部的应用都接入进去,进行完整的应用托管和数据管理,并且可以充分的利用现有的软硬件资源。目前国内的互联网公司经过这么多年来的发展,已经积累了大量的可重复使用的技术,这些都可以利用起来。
国内的互联网公司腾讯,新浪都有自己的APP ENGING服务,而国外的GOOGLE,亚马逊等更是做的很好。
适用场景
现在而言,App Engne主要适用于下面这几个场景:
• 内部应用托管:企业内部的所有应用都可以采用这种方式进行托管
• 外部应用托管:提供给第三方,在App Engine上可以部署外部的应用,还可以按照一定的标准可以尝试收费服务。
• REST服务:这也是在App Engine平台上很常见的场景,最出名的例子就是BuddyPoke,BuddyPoke的客户端就是一个Flash应用,在用户的浏览器上运行,而它 的服务器端则是以REST服务的形式放置在App Engine上,每当Flash客户端需要读取和存储数据的时候,它都会发请求给后端的REST服务,来让其执行相关的Datastore操作。
主要架构图
应用场景:
功能
在功能上,主要有六个方面:
• 动态网络服务,并提供对常用网络技术的支持,比如SSL等 。
• 持久存储空间,并支持简单的查询和本地事务。
• 能对应用进行自动扩展和负载平衡。
• 一套功能完整的本地开发环境,可以让用户在本机上对App Engine进行开发和调试。
• 支持包括Email和用户认证,内部的基础功能接入接入等多种服务。
• 提供能在指定时间和定期触发事件的计划任务和能实现后台处理的任务队列。
•
App Engine的主要组成部分
主要可分为五部分:
• 应用服务器:主要是用于接收来自于外部的Web请求。
• 数据托管服务Datastore:主要用于对信息进行持久化,可以基于bigtable等技术。
• 企业基础服务:除了必备的应用服务器和Datastore之外,AE还能带很多服务来帮助开发者,比如:消息邮件系统,认证系统,广告系统,文件/图片存储服务,CDN,缓存系统等
• 管理界面:主要用于管理应用并监控应用的运行状态,比如,消耗了多少资源,发送了多少邮件和应用运行的日志等。
• 本地开发环境:主要是帮助用户在本地开发和调试基于AE的应用,包括用于安全调试的沙盒,SDK和IDE插件等工具。
支持的语言
• JAVA
• PHP
• 。。。。
项目的风险
• 涉及到的部门很多,需要的资源较多,前提投入巨大
• 如果支持外部托管,那么意味着其软硬件资源会成倍增长,这个可能会影响公司的利润
• 数据托管可能存在一定的法律风险
• 数据托管在公司内部,如果AE出现故障将会是灾难性的 |
|