Amazon 正在进入 PaaS 领域,他们开始先是提供了 Java 平台,并且想要为所有开发者创建平台。
到现在为止,我们都知道 Amazon 是一家架构即服务(IaaS)提供商。如果一家公司想要在 Amazon 的云环境中部署应用程序,那么就需要创建或者使用预定义的 AMI,然后配置一系列运行应用程序所需要的附加服务,像负载均衡程序、伸缩服务、监控服务、数据存储服务等等。但是 Amazon 已经决定转向平台即服务(PaaS)领域,他们会提供 Elastic Beanstalk ,这是一种应用程序开发和部署容器,其中包含了平台以及运行客户的应用程序所需要的所有必要的服务。
当前 Elastic Beanstalk 还处于公共 beta 测试阶段,它支持构建在 Linux 上针对 Java 的容器、Apache、Tomcat、Java、负载均衡程序以及自动伸缩的组。开发者只需要把他们的程序上传到容器中,而不需要再做额外的配置,就能够正常运行。 Amazon 基本上是在一个步骤中提供了整个平台。
对于每个应用程序的版本,开发者都能够定义一个由 EC2 实例、负载均衡器和伸缩组所组成的环境。尽管开发者可能不会为应用程序的每个小版本都创建不同的环境,但是可能会创建不同的环境用于开发、测试和部署。这样的环境拥有附在其中的配置,它会详细描述定义整个堆栈的参数。Beanstalk 是由应用程序、环境以及相关的配置所组成的(在这里可以获得更多细节)。
Amazon 提供的产品很有意思,因为开发者仍然能够掌控整个堆栈,他们可以根据需要来调整这个平台。其中有很多可以设定的参数,像已经使用的 AMI、可用区域、已用的数据库、JVM 设定——堆的大小以及垃圾回收、环境变量、监控时间间隔、用于负载均衡器、通知和记录日志的 HTTP 监听端口等等。
Elastic Beanstalk 提供了 API 和可访问的控制台,我们可以使用它们与平台交互。 它还为开发者提供了插件,让他们可以直接通过 Eclipse 定义 Beanstalk 并把应用程序部署到云中。
当前 Amazon 只提供了针对 Java 的 Beanstalk 配置,但是他们正在与合作伙伴一起创建更加广泛的平台,据 Amazon 的 CTO,Werner Vogels 所说:
AWS Elastic Beanstalk 的开发方式决定,创建其他编程平台会相对简单。这非常重要,因为 AWS 开发者生态系统非常丰富,并且我们想保持那样的形势。我们的目标是要确保在 AWS 上为每个开发者都提供最喜欢的平台,从而他们不必为部署和操作可伸缩且容错的应用程序而担心,从而把精力集中在应用程序的开发上。简而言之,我们想要让 AWS 上存在上千种平台。
他们甚至可能会创建针对.NET 开发者的.NET 平台,尽管那些开发者通常会被 Microsoft 的 Azure 所吸引。
使用 Elastic Beanstalk 不会像使用 EC2、S3 等产品那样还需要额外的成本。当前 Amazon 已经在美国东部、北弗吉尼亚提供了服务,并且在不久的将来服务会扩展到其它区域。
评论