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已經在美國東部、北弗吉尼亞提供了服務,并且在不久的將來服務會擴展到其它區域。