Salesforce CEO:Ruby是下一代云计算的语言
美国时间12月8日,著名企业云计算平台厂商Salesforce宣布以近2.12亿美元现金收购Heroku。这是一个有些惊人的消息,显示了Salesforce CEO Marc Benioff对云计算的远见和决心。
Heroku由三位资深程序员James Lindenbaum, Adam Wiggins和Orion Henry创办于2007年,是较早的云计算公司之一,以专门为Ruby应用软件提供支持著称(最近也开始支持Node.js)。他们的理念是让开发人员专注于11月刚与Facebook达成合作协议。目前有10万以上的移动和社会化应用使用他们的平台,包括大公司和创业公司,而且每月都有数千新用户。Heroku位于旧金山,员工只有约30人。
3年,30人,价值2亿多美金,凭什么呢?听听Marc Benioff的解释吧:“云计算的下一个时代,我称之为Cloud 2,将属于移动、社会化和实时。而Ruby是Cloud 2的语言,Heroku是领先的Cloud 2 Ruby PaaS平台。这一并购将使Salesforce成为下一代应用程序员的基石。”
而Heroku创始人James Lindenbaum则在名为“The Next Level”(更上一层楼)的博客中显示了更大的雄心:“如果企业级软件的开发能像敏捷的Ruby应用一样,世界将会怎样?如果大公司也能接受Heroku和Ruby社区的理念,世界将会怎样?” 显然,他希望将互联网的敏捷通过Salesforce带入企业级开发。此外,他在文中也确认Heroku被收购后运作仍然独立,而且与Amazon Web Services的合作关系不会受到影响。
该公司网站今年4月曾给出流量的增长图,的确惊人。看来在美国云计算的采用非常迅速。
Heroku的平台架构和用户体验都做得比较出色。用户体验方面,在工作流程、界面的很多细节都考虑得非常周到,实践了他们自己宣称的“让用户的开发人员100%精力都放在自己的应用代码上”的理念。而架构方面各种组件都经过了精心选择或者设计,从下图(推荐看该公司网站原图,设计非常精致)中可以看到:
- 1. HTTP反向代理使用Nginx
- 2. HTTP缓存使用Varnish
- 3. 路由网(Routing Mesh)用Erlang编写
- 4. Dyno网格提供了很好的扩展性(dyno是运行Ruby代码的单一进程,运行在网格中的某个服务器上,每个dyno都是独立的,包含所有层次的资源)
- 5. SQL数据库选用PostgreSQL,也可以通过add-on方式选择其他方案,包括用Amazon RDS支持MySQL, 也支持MongoDB、Redis、CouchDB等
- 6. 当然,也少不了memcached
下面这幅Dyno架构图给出了系统的更多细节:
- 1. 操作系统用的是Debian
- 2. Ruby虚拟机用MRI
- 3. 应用服务器是基于Mongrel改写的Thin
- 4. Web服务器接口用Rack
- 5. 中间件是可选的,可以用Rack中间件,也可以用Rails Metal
- 6. 框架方面,应用推荐选择Rails,轻量服务用Sinatra
最后,代码的部署与Git完全相同。用户push代码时,平台会将代码编译成独立的包含所有依赖关系的只读版本(成为slug),可以随时发布。编译过程还会检查程序是否可以启动,如果不行将拒绝通过。对应用的管理选项非常完整,提供REST接口。