`
isiqi
  • 浏览: 16028930 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Google App Engine的“阿基里斯之踵”

阅读更多

虽然在Google App Engine在最近一两年独领云计算PaaS领域的大旗,但是我在经过长时间对Google App Engine的学习和实践之后,发觉其现有的实现存在很多不足,而这些瑕疵有可能成为其的“阿基里斯之踵”,下面将具体分析App Engine在哪些方面存在问题。

App Engine的不足

主要集中在下面这三个方面:

设计之累

虽然App Engine在很多设计方面有其出彩和领先的地方,但是在App Engine中也采用有一些不恰当的Google式设计,虽然Google式设计对于类似Google搜索这样需要的海量计算和存储能力的应用而言是非常适用的,但是对于追求反应速度,而不是海量能力的PaaS平台而言,不是特别适宜,就像Google院士Jeff Dean在一次演讲所说的那样:“为了增量做设计,但不为无限做设计”,而在App Engine中,却为了一些不存在的Google式的需求作了Google式的设计,这方面的例子主要有两个:

    1. 在数据存储方面,使用了主要以存储海量数据著称的BigTable,虽然这样能保证其应用能在App Engine上存储海量的数据,但是在反应速度(Response Time)方面有一定的牺牲,特别是不支持在内存中预D读取数据的情况下。可惜的是,对于大多数在App Engine上应用而言,它们更看重反应速度,而且类似这样抱怨在Google App Engine的官方邮件列表中比比皆是,其中也包括对Memcache速度的不满,国外一位博客作者在谈到App Engine的Memcache时,他有这样一句评价:“这个Memcache不是我们所熟悉的那个Memcache”。
    2. 支持跨洲多数据中心同步,虽然多数据中心同步是一个不错的实践,但是由于光速的原因,使得在大洲之间传输数据的速度非常慢,而且成本很高,更重要的是使得整个数据存储方面的架构的复杂性一下子提升了很大,而且有可能使本身已经非常缓慢的速度雪上加霜,对于这个用户不是特别关注的问题,耗费太多的精力。如果由我来设计的话,应该让用户选定具体应用所在数据中心位置,而且这也是大多数用户所推崇的,虽然这种设计不是Google所倾向的。

虽然对于有些应用而言,一些设计的缺失并不会形象到其整体的表现,但是由于PaaS平台本身复杂性,使其设计上不得不小心谨慎,任何失当都会造成非常严重的后果,希望App Engine的工程师们,能够多多思量。

远离标准

对于普通用户而言,应用的通用性和迁移性是非常关键的,用户希望应用能够在外部的云中和企业的数据中心之间进行迁移,所以应用如果能基于标准的话,那将会非常有益处,就好像,像父亲这样中老年股民在选择炒股软件,他们所关心的不是功能是否强大,而是快捷键是否熟悉。而在非常关键的标准方面,App Engine在本来能所作为的Java版中并没有做的非常好,主要有下面两个问题:

    1. 在数据存储方面,虽然App Engine对最新的JPA有所支持,但是App Engine重点提供对JDO支持,但JDO在整个业界的接受度非常有限,并且已经被官方抛弃,而且比较陈旧。
    2. 夹杂一些私有的API,这种现象在数据存储方面很常见,比如,对Key和事务处理就使用很多私有的API。

虽然对标准没有很好地支持,对于那些专注于App Engine平台的程序员而言,他们并不会受到极大的影响,但是对于那些希望能将应用在AppEngine和企业数据中心之间进行迁移的用户而言,是极为关键的,因为这将显著地增加迁移的成本。

不够重视

虽然App Engine现在还在不断的开发中,但是由于其潜在的利润和Google其它业务相比低很多,所以相对于搜索、Andorid和Chrome相比,其开发进度和另一个产品Chrome OS一样较缓慢,到现在为止还处于类似公测的阶段。

总的来说,App Engine还存在很多不足,个人希望App Engine不要像Google Wave那样陨落,而是能继续健康的发展下去,也不想看到类似Max Ross这样资深工程师,也像Google Wave之父Lars Rasmussen那样黯然离开。在文章的接下来的部分,将讨论YunEngine的一些潜在优势。

YunEngine的优势

虽然相对于App Engine而言,YunEngine起步晚了很多,但是YunEngine也有它一定的后发优势,就像当年Google并不是第一个做搜索的那样。下面其中最主要的三点:

为PaaS而设计

虽然YunEngine的后端也采用类似于BigTable的YunTable,但是由于YunTable在设计上考虑到反应速度的情况,而且在设计方面,我们有自主权,所以会让YunTable为更好支持PaaS平台而不断优化。

坚持标准

虽然在初期阶段,YunEngine并不会提供对很多标准的支持,但是在会确保不加入任何私有的API,这样能保证应用的迁移性。

极为专注

由于YunEngine对我而言,是一个核心的项目,我会尽全力把YunEngine给做好的,并且不断地优化。

最后,虽然在即将到来的公测期间,YunEngine还会存在很多Bug或者问题,但是只要经过这些关卡,我坚信YunEngine将会是超越Google App Engine的存在,就像《海贼王》中黑胡子所说的那样:“人的梦想是不会终结的!”。

分享到:
评论

相关推荐

    pirra:免费电子发票系统AFIP:Argentina:

    因此,他跑到色萨利,在那里,阿喀琉斯在老凯隆的监护下接受了阿基里斯的教育。 然后,他带着他,偷偷地把他穿上了女装,并把他交给了他的知己,命令他把他带到西科鲁斯岛,即莱科梅德斯国王的所在地,在那里,他以...

    achille:Haskell库,用于构建静态站点生成器

    阿基里斯achille是一个很小的Haskell库,用于构建静态站点生成器。 在精神上,它是的直接继任者。 它是独立的,几乎没有依赖关系,并且是用于构建构建规则的非常简单的抽象。 它还提供了快速细粒度的增量构建。 有关...

    满意度调查行·知dr.pptx

    满意度调查行·知dr.pptx

    基于B2C的网上拍卖系统_秒杀与竞价.zip

    基于B2C的网上拍卖系统主要用于帮助人们应用互联网方便快捷买到自己所中意的商品,并参与到秒杀与竞拍当中。 主要功能包括: 1.前台模块 (1)普通用户登录/注册。 (2)分类查看商品(普通商品与促销商品) (3)查看商品详细信息 (4)查看秒杀商品 (5)查看竞拍商品 (6)将商品加入购物车 (7)购买,结算功能 (8)留言 2.后台模块 (1)修改密码 (2)商品管理: -- 编辑/删除 -- 设置/取消促销 (3)秒杀商品:设置/取消秒杀 (4)竞拍商品:设置/取消竞拍 (5)订单管理:查看订单 (5)留言管理:查看/删除留言 项目访问路径: 前台:http://localhost:8080/sale 后台:http://localhost:8080/sale/user/adminlogin

    分布式系统中Java后端开发技术及其应用实践.pdf

    分布式系统的核心思想是复杂计算任务的拆分与并行计算,可有效减少计算时间、节约算力成本。以分布式系统中Java后端开发技术的应用为主题,分析分布式系统开发的需求,探讨Java技术栈、分布式监控与日志管理、云服务模型在分布式系统Java后端开发中的应用路径,旨在为分布式系统的设计与实现提供全面的理论分析和实践指导,以支持构建高效、稳定、可扩展的企业级Java应用。 随着云计算、大数据和人工智能技术的飞速发展, 分布式系统已成为支撑现代企业信息系统的基础架构。 Java 后端开发技术在构建分布式系统中扮演着至关重要的 角色,其应用价值和研究重点主要集中在微服务架构、容 器化技术、自动化部署、服务网格、无服务器计算、应用 程序编程接口(Application Programming Interface, API)管理、数据一致性解决方案、分布式缓存、负载均衡、 复杂事件处理和分布式事务管理等方面[1]。Java平台以 其成熟的生态系统、跨平台的移植性、丰富的开源框架 和库以及稳定的性能,为分布式系统的开发提供了坚实 的基础[2]。深入探讨Java后端开发技术在分布式系统中 的应用实践,旨在为企

    【微信小程序毕业设计】书店系统开发项目(源码+演示视频+说明).rar

    【微信小程序毕业设计】书店系统开发项目(源码+演示视频+说明).rar 【项目技术】 微信小程序开发工具+java后端+mysql 【演示视频-编号:246】 https://pan.quark.cn/s/cb634e7c02b5 【实现功能】 用户信息管理,图书信息管理,图书类型管理,图书留言管理,论坛信息管理等

    使用Spring in Guice和Guice in Spring的工具(高分项目).zip

    Java SSM项目是一种使用Java语言和SSM框架(Spring + Spring MVC + MyBatis)开发的Web应用程序。SSM是一种常用的Java开发框架组合,它结合了Spring框架、Spring MVC框架和MyBatis框架的优点,能够快速构建可靠、高效的企业级应用。 1. Spring框架:Spring是一个轻量级的Java开发框架,提供了丰富的功能和模块,用于开发企业级应用。它包括IoC(Inverse of Control,控制反转)容器、AOP(Aspect-Oriented Programming,面向切面编程)等特性,可以简化开发过程、提高代码的可维护性和可测试性。 2. Spring MVC框架:Spring MVC是基于Spring框架的Web框架,用于开发Web应用程序。它采用MVC(Model-View-Controller,模型-视图-控制器)的架构模式,将应用程序分为模型层、视图层和控制器层,提供了处理请求、渲染视图和管理流程的功能。 3. MyBatis框架:MyBatis是一个持久层框架,用于与数据库进行交互。它提供了一种将数据库操作与Java对象映射起来的方式,避免了手动编写繁琐的SQL语句,并提供了事务管理和缓存等功能,简化了数据库访问的过程

    小程序-61-微信小程序的学生选课系统--LW-源码.zip

    提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

    【前端素材】大数据-010电商物流.zip

    大数据技术指的是用于处理和分析大规模数据集的技术和工具。以下是一些常见的大数据技术和工具: Hadoop:Apache Hadoop是一个用于分布式存储和处理大规模数据的开源框架。它包括Hadoop Distributed File System(HDFS)用于数据存储和MapReduce用于数据处理。 Spark:Apache Spark是一个快速、通用的集群计算系统,提供了比MapReduce更快的数据处理能力。它支持内存计算和更多复杂的数据处理流程。 NoSQL数据库:NoSQL数据库(如MongoDB、Cassandra等)则更适用于处理这类数据。 数据仓库:数据仓库是一个用于集成和分析大规模数据的存储系统,一些知名的数据仓库包括Snowflake、Amazon Redshift等。 数据湖:数据湖是一个存储结构化和非结构化数据的存储池,用于支持数据分析和机器学习应用。 机器学习:大数据技术也广泛应用于机器学习领域,支持大规模数据的模型训练和预测分析。 流式处理:针对实时数据处理需求,流式处理技术(如Apache Kafka、Apache Flink)可以实时。

    微信小程序源码 拼音查询小程序 (源码下载 +内附使用说明)

    **微信小程序源码 —— 拼音查询小程序:轻松掌握汉字发音** 对于语言学习者和教育工作者来说,一个实用的拼音查询工具是不可或缺的。我们特别推出了一款微信小程序源码 —— 拼音查询小程序,它能够帮助用户快速查找汉字的拼音和声调,是学习和教学的好帮手。 **核心功能**: - **汉字转拼音**:输入汉字,即可获取准确的拼音和声调。 - **智能搜索**:支持模糊匹配,快速定位用户查询的汉字。 - **多音字识别**:为多音字提供所有正确的拼音选项,方便用户选择。 **源码特点**: - **易于集成**:源码下载后,可以轻松集成到您的微信小程序项目中。 - **高度可定制**:源码开放,允许开发者根据需求进行定制和功能扩展。 - **详细文档**:内附的使用说明文档,帮助您快速理解如何使用和修改源码。 **应用场景**: - **语言学习**:适合汉语学习者练习和纠正汉字发音。 - **教学辅助**:教师可以用于课堂教学,帮助学生掌握正确的拼音。 - **自主学习**:个人用户可以自主查找生僻字或多音字的准确拼音。

    毕业设计-使用 Github Actions 跟踪 Github 趋势项目.zip

    这里为你收集整理了关于毕业设计、课程设计可参考借鉴的资料一份,质量非常高,如果你投入时间去研究几天相信肯定对你有很大的帮助。到时候你会回来感谢我的。 本资源是经过本地编译测试、可打开、可运行的项目、文件或源码,可以用于毕业设计、课程设计的应用、参考和学习需求,请放心下载。 祝愿你在这个毕业设计项目中取得巨大进步,顺利毕业! 但还需强调一下,这些项目源码仅供学习和研究之用。在使用这些资源时,请务必遵守学术诚信原则和相关法律法规,不得将其用于任何商业目的或侵犯他人权益的行为。对于任何因使用本资源而导致的问题,包括但不限于数据丢失、系统崩溃或安全漏洞,风险自担哦!

    【前端素材】大数据-突发预警平台实时监控.zip

    大数据技术指的是用于处理和分析大规模数据集的技术和工具。以下是一些常见的大数据技术和工具: Hadoop:Apache Hadoop是一个用于分布式存储和处理大规模数据的开源框架。它包括Hadoop Distributed File System(HDFS)用于数据存储和MapReduce用于数据处理。 Spark:Apache Spark是一个快速、通用的集群计算系统,提供了比MapReduce更快的数据处理能力。它支持内存计算和更多复杂的数据处理流程。 NoSQL数据库:NoSQL数据库(如MongoDB、Cassandra等)则更适用于处理这类数据。 数据仓库:数据仓库是一个用于集成和分析大规模数据的存储系统,一些知名的数据仓库包括Snowflake、Amazon Redshift等。 数据湖:数据湖是一个存储结构化和非结构化数据的存储池,用于支持数据分析和机器学习应用。 机器学习:大数据技术也广泛应用于机器学习领域,支持大规模数据的模型训练和预测分析。 流式处理:针对实时数据处理需求,流式处理技术(如Apache Kafka、Apache Flink)可以实时。

    小程序-46-驾校报名小程序--LW-源码.zip

    提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

    基于STM32的Holocubic透明桌面站

    基于STM32的Holocubic透明桌面站 基于STM32的Holocubic透明桌面站

    015ssm-jsp-mysql文物管理系统.zip(可运行源码+数据库文件+文档)

    L文主要是对文物管理系统进行了介绍,包括研究的现状,还有涉及的开发背景,然后还对系统的设计目标进行了论述,还有系统的需求,以及整个的设计方案,对系统的设计以及实现,也都论述的比较细致,最后对文物管理系统进行了一些具体测试。 本文以JSP为开发技术,实现了一个文物管理系统。文物管理系统的主要使用者分为管理员;个人中心、用户管理、文物分类管理、文物信息管理、文物外借管理、文物维修管理、留言板管理、论坛交流、系统管理,用户前台;首页、文物信息、论坛交流、文物资讯、留言反馈、我的、跳转到后台等功能。通过这些功能模块的设计,基本上实现了整个文物管理系统的过程。 具体在系统设计上,采用了B/S的结构,同时,也使用JSP技术在动态页面上进行了设计,后台上采用Mysql数据库,是一个非常优秀的文物管理系统。 关键词 :文物管理系统;JSP技术;Mysql数据库;B/S结构

    【微信小程序毕业设计】课程答疑系统开发项目(源码+演示视频+说明).rar

    【微信小程序毕业设计】课程答疑系统开发项目(源码+演示视频+说明).rar 【项目技术】 微信小程序开发工具+java后端+mysql 【演示视频-编号:161】 https://pan.quark.cn/s/cb634e7c02b5 【实现功能】 本课程答疑微信小程序设计与实现有管理员,教师,学生。管理员功能有个人中心,学生管理,教师管理,课程类型管理,课程视频管理,作业信息管理,作业提交管理,提问信息管理,提问回答管理,系统管理等。教师可以发布课程,发布作业,学生可以提交作业,查看课程等。

    node-v12.22.12-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于python的-4-宾馆管理系统--LW-源码.zip

    提供的源码资源涵盖了python应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

    算法中的动态规划讲义.pptx

    数学模型算法

    AI设计工具-LOOKA:AI在线设计LOGO.txt

    AI设计工具-LOOKA:AI在线设计LOGO

Global site tag (gtag.js) - Google Analytics