Amazon正在進入PaaS領域,他們開始先是提供了Java平臺,并且想要為所有開發(fā)者創(chuàng)建平臺。
到現在為止,我們都知道Amazon是一家架構即服務(IaaS)提供商。如果一家公司想要在Amazon的云環(huán)境中部署應用程序,那么就需要創(chuàng)建或者使用預定義的AMI,然后配置一系列運行應用程序所需要的附加服務,像負載均衡程序、伸縮服務、監(jiān)控服務、數據存儲服務等等。但是Amazon已經決定轉向平臺即服務(PaaS)領域,他們會提供Elastic Beanstalk,這是一種應用程序開發(fā)和部署容器,其中包含了平臺以及運行客戶的應用程序所需要的所有必要的服務。
當前Elastic Beanstalk還處于公共beta測試階段,它支持構建在Linux上針對Java的容器、Apache、Tomcat、Java、負載均衡程序以及自動伸縮的組。開發(fā)者只需要把他們的程序上傳到容器中,而不需要再做額外的配置,就能夠正常運行。 Amazon基本上是在一個步驟中提供了整個平臺。
對于每個應用程序的版本,開發(fā)者都能夠定義一個由EC2實例、負載均衡器和伸縮組所組成的環(huán)境。盡管開發(fā)者可能不會為應用程序的每個小版本都創(chuàng)建不同的環(huán)境,但是可能會創(chuàng)建不同的環(huán)境用于開發(fā)、測試和部署。這樣的環(huán)境擁有附在其中的配置,它會詳細描述定義整個堆棧的參數。Beanstalk是由應用程序、環(huán)境以及相關的配置所組成的(在這里可以獲得更多細節(jié))。
Amazon提供的產品很有意思,因為開發(fā)者仍然能夠掌控整個堆棧,他們可以根據需要來調整這個平臺。其中有很多可以設定的參數,像已經使用的AMI、可用區(qū)域、已用的數據庫、JVM設定堆的大小以及垃圾回收、環(huán)境變量、監(jiān)控時間間隔、用于負載均衡器、通知和記錄日志的HTTP監(jiān)聽端口等等。
Elastic Beanstalk提供了API和可訪問的控制臺,我們可以使用它們與平臺交互。 它還為開發(fā)者提供了插件,讓他們可以直接通過Eclipse定義Beanstalk并把應用程序部署到云中。
當前Amazon只提供了針對Java的Beanstalk配置,但是他們正在與合作伙伴一起創(chuàng)建更加廣泛的平臺,據Amazon的CTO,Werner Vogels所說:
AWS Elastic Beanstalk的開發(fā)方式決定,創(chuàng)建其他編程平臺會相對簡單。這非常重要,因為AWS開發(fā)者生態(tài)系統(tǒng)非常豐富,并且我們想保持那樣的形勢。我們的目標是要確保在AWS上為每個開發(fā)者都提供最喜歡的平臺,從而他們不必為部署和操作可伸縮且容錯的應用程序而擔心,從而把精力集中在應用程序的開發(fā)上。簡而言之,我們想要讓AWS上存在上千種平臺。
他們甚至可能會創(chuàng)建針對.NET開發(fā)者的.NET平臺,盡管那些開發(fā)者通常會被Microsoft的Azure所吸引。
使用Elastic Beanstalk不會像使用EC2、S3等產品那樣還需要額外的成本。當前Amazon已經在美國東部、北弗吉尼亞提供了服務,并且在不久的將來服務會擴展到其它區(qū)域。