Google App Engine(GAE)的最新升级已经开始支持Java,并且添加了一系列专门瞄准企业业务的新功能;此后,Google还发布了一款Eclipse插件,可以对Google App Engine的Java开发提供强力支持。这再次证明了Google对云计算企业应用市场的浓厚兴趣。我们来看一下GAE有什么新的功能,还有哪些地方没有做到?
虽然互联网巨头Google已经提供了一系列企业软件产品,从搜索到SaaS服务,但企业软件市场依然对Google的产品不太买账,而另外几家大公司,比如微软、IBM、Oracle和SAP早已在市场中站稳了脚跟。例如微软,在2008年末接受51CTO.com独家专访时,微软互连系统部门全球副总裁Robert Wahbe表示,云计算是未来推动微软发展最大的动力之一,微软也将其新推出的云平台Azure视作微软最重要的产品之一。而对IBM,据51CTO.com报道,就在上周,IBM宣布计划今年推出数项云计算服务。
但是,随着人们对云计算的兴趣日益提高,Google可能会迎来一个理想的开端。如果他们能够成功的把自己独有的技术优势和强大的网络计算能力转换为企业业务模式,为企业降低成本,提高敏捷度,并成功地过度到下一代计算。
对于Google来说,好消息是上面说的四大企业中只有微软一家已经发布了可靠的云平台Azure,尽管IBM和Oracle也肯定会很快推出自己的云产品,但是,如果Google能够抢在他们之前向企业提供出真正需要的云计算服务,那么它的前景将会很好。
原先的GAE主要是一个以消费者网络应用为重点的云计算产品,相比较功能的多少,Google更关注于它的性能是否稳定,以及高扩展性。它将云计算精简到一个新的水平,同时保持了运行的迅速。以前的GAE需要使用Python语言,专有的数据库,以及请求/响应的应用模型。
Google在保持优点的同时,为GAE做了最新的升级,带来了许多企业需要的新功能和新技术,使新的云计算平台得到更广泛的用途。我们将看到这些新举措将让Google比以前更贴近企业,但是还有些很明显的工作要做。
接下来,让我们从企业的角度来看看新的GAE具体提供了哪些新功能,以及作为一个真正的完整企业级产品,GAE有哪些地方还并不完善。
GAE的新功能
支持Java虚拟机。现在,你可以在GAE中运行Java 5和Java 6的代码,只要它不破坏Google的服务器。鉴于大多数企业都已经应用了标准化的.NET或Java环境,这个升级是条大新闻,因为以前GAE只支持Python。这大大减少了企业进入GAE的障碍,因为代码不用完全重写了。另一个关键的新区别是Google决定直接支持Java字节码,而不只在源代码级做到兼容。这等于为GAE带来了无穷的新功能,例如依赖注入dependency injection,面向方面编程(AOP),和表达式语言运行时(expression language runtimes)等许多现在流行的Java平台上的实用功能。这也意味着几乎任何编程语言都能够在GAE的Java虚拟机上运行。Google已经为GAE测试过Groovy、JavaScript、Python、Ruby、Scala和Scheme等几乎全部时下流行的开发语言。
访问企业内部资源。GAE提供了新的安全数据连接器(Secure Data Connector,SDC),为企业在GAE中使用自己的数据、网络服务和SOA提供了一个安全的隧道,而不需要将数据移动到云中。SDC要求Google Apps Premier版本,在防火墙内为GAE应用和企业数据之间提供了一个完全加密保障。通过SDC,GAE可以比以前更直接更安全的广泛访问企业数据。
数据库导入。某些类型特别是高性能的应用要求企业数据转移到Google的云中。新的GAE数据库导入工具可以使企业将数据大量从本地导入GAE。这将使企业能够在需要时更容易更迅速的将产品数据集迁移到GAE。
支持批量工作。GAE原先只提供单独的请求/响应模型,就像Web本身的HTTP GET/POST方法等。这使GAE的计算平台只是在网络出现外部访问要求时才会工作,而后台处理工作则受到限制。因此在之前企业必须在GAE之外自己建立批量工作。而现在,GAE内置了Cron支持,可以同时支持请求/响应模型和后台处理,满足了强大的企业级应用需要,因为后台处理常用于完成比如备份、生成报告、异步处理等重要的任务。
GAE依然缺乏的功能
GAE新增加的功能非常重要,当然也会收到企业的欢迎。但我们认为,在许多企业已经发展出许多自己的具体技术需求下,GAE尚未能提供足够的功能满足他们的需要。
消息队列。当处理大量数据或众多事件时,应用程序需要拥有在无法全部处理时存储信息的消息队列方法。虽然云计算平台在理论上具有足够的弹性来处理所有消息,但现实的物理情况(也许有成本考虑)是在处理大量信息和重型任务时,应用程序会出现问题。Amazon提供的云服务已经通过SQS具有了消息队列功能,建议GAE也考虑一下。
服务器端push和实时事件。许多类型的商业应用都不能经济有效地使用polling来查看数据是否发生了变化,或者重要事件的发生。虽然Google将服务器端的超时反应时间缩短到30秒,但在关键事件发生时GAE仍然缺乏有效的方式快速通知外部系统。而实时事件的处理也是非常重要的,尤其是对于呼叫中心、财政系统、医疗系统这样的需要快速将业务数据传输到网络客户端的应用。
SQL数据库支持。GAE内置的Datastore据说是基于BigTable的,而不是SQL。虽然它为Petabyte级海量数据设计,但具有局限性,无法发挥高性能。SQL数据库是今天的企业支柱,可以说如果不支持SQL,将使许多应用无法移到Google的云中。同样的,在对SQL的支持方面Amazon又提前了一步。Google坚持使用其独特的数据库可能会提高GAE的性能和可扩展性,但不应该建立在牺牲通用的应用模型和开发者的习惯的基础之上。
企业友好的管理和监测工具。Tivoli、Patrol和其他一些IT管理工具是如今企业管理本地IT资源和数据中心的主要手段,企业也需要一个统一的管理方法来管理云计算资源。GAE将原始的数据以XML的形式显示出来,但把集成工作留给了企业。这似乎是在帮助第三方管理工具供应商,而Google本应自己解决这一问题,如果真心想打动企业们,Google应该更深入的了解他们的需求和资源,抓住机会做得更好。