亚马逊web服务(AWS)团队刚刚为其Elastic Beanstalk服务添加了对Ruby的支持,从而成为支持最多语言的云平台之一。另外,他们还为Elastic Beanstalk引入了在虚拟私有云(Virtual Private Cloud,VPC)中的支持,这样客户可以对其web应用程序进行私有版本的部署和管理。
AWS Elastic Beanstalk是一种应用程序容器服务,开发人员可以将web应用程序部署到这个平台上,平台会自动地提供服务器、处理负载均衡、弹性伸缩以及监控。与其他传统的PaaS(Platform-as-a-Service)产品所提供的功能不同,免费的AWS Elastic Beanstalk其实还包含了一种IaaS(Infrastructure-as-a-Service)产品。开发人员和管理员可以直接访问应用程序后面的AWS基础设施,这意味着他们可以修改服务器配置或访问服务端的日志文件。用户负责各种基础设施相关的任务,包括选择(及更新)服务器的操作系统和应用程序栈。AWS Elastic Beanstalk确实也自动化了很多管理任务,包括通过一条命令重新启动所有的web服务器、通过中心位置访问所有的服务器日志文件以及监控所有节点的性能。
在宣布支持Ruby的博客文章回复中,AWS团队指出Ruby应用程序运行在Passenger应用服务器上,“这意味着你可以在本地开发和测试,然后无缝部署到Elastic Beanstalk上,而不需要修改应用程序代码”。除了Ruby,AWS Elastic Beanstalk现在支持五种主要的开发语言/平台。AWS Elastic Beanstalk不是一种传统的PaaS,AWS拒绝将其称为PaaS,因为在那其中基础设施的管理是需要用户进行的。但是,在对领先的PaaS提供者进行的评估中,很明显AWS为开发人员和应用程序提供了最广泛的支持,应用程序可以使用最流行的编程框架。尽管VMware的开源Cloud Foundry支持了最多的语言,但这得益于其社区的贡献。Cloud Foundry.com支持Java、Ruby和Node,而ActiveState添加了对Python的支持,Tier 3添加了对.NET的支持,AppFog添加了对PHP的支持。
Elastic Beanstalk的应用程序以前只能用在公共AWS云中,但是现在可以部署在私有的Amazon VPC中。AWS团队描述了这一变化。
现在你可以在云中定义和提供私有的虚拟网络,并使用VPN将其连接到你公司的网络中。这就允许你在Elastic Beanstalk中运行很多新型的应用程序。例如,你可以在Elastic Beanstalk中运行你内网的应用程序,如故障报告应用或报表的站点。
…
一旦建立了VPC,你只需要简单地为Elastic Beanstalk提供VPC ID以及子网ID,你的应用程序就能自动部署在VPC中。
AWS Elastic Beanstalk以这样的方式构建,这样就可以在将来添加新的语言和平台。对于试图扩展云产品用户案例的云提供者来说,模糊IaaS和PaaS的边界以及私有云和公有云的边界看来是一种趋势。