Elastic BeanStalk相關概念
童話世界中存在着一種魔力beanstalk(豆莢),種在花盆里可以無限的向上生長,越長越高直達雲端。AWS Elastic Beanstalk也采用類似概念,用戶只需部署代碼即可自動處理包括容量預置、負載均衡、自動擴展和應用程序運行狀況監控在內的部署工作。同時能夠完全控制為應用程序提供支持的 AWS 資源,並可隨時訪問基礎資源。Elastic Beanstalk服務本身不收取任何費用,客戶只需支付業務所需的服務器和存儲資源所需的基礎費用。
引用AWS官網https://docs.aws.amazon.com對Elastic BeanStalk服務的優勢總結:
1.入門迅速,使用簡單
2.提升開發人員生產效率
3.無限擴展
4.完善的資源控制
無Elastic BeanStalk的傳統部署業務流程如下:
以簡單web服務+ELB負載均衡的典型應用舉例,需要運維和開發完成以下步驟:
- OPS部署一台服務器用於web服務。
- OPS在這台服務器內安裝web服務器和其他應用軟件比如php,jdk等。
- OPS修改配置文件,調試后將服務器完全啟動。
- OPS建立個ELB負載均衡器,與后端web服務器聯調好。
- OPS把業務服務器交付給DEV。
- DEV開始在服務器上部署代碼。
采用Elastic BeanStalk的DevOps環境部署業務流程如下:
以簡單web服務+ELB負載均衡的典型應用舉例,需要運維和開發完成以下步驟:
- DevOps在Elastic BeanStalk服務種選擇需要部署的服務架構后創建服務。
- DevOps在服務器上部署代碼。
可以看出,基於Elastic BeanStalk服務的DevOps部署方式比傳統部署方式方便靈活很多,擺脫了傳統環境下開發和運維按部就班涇渭分明的生產關系,Elastic Beanstack可以做到開發運維一體化,one shot for everything且業務無限彈性擴張。
Elastic BeanStalk入門使用介紹
上圖:點擊Elastic BeanStalk界面。然后點擊Create one now。
上圖:選擇建立個web server的開發使用環境。
上圖:輸入環境名稱。
上圖:應用code平台這里根據客戶需求進行選擇,本例這里選擇PHP平台。
上圖:本實例中上傳的代碼選擇sample application,用戶也可以選擇下方的upload your code選擇上傳自己已經有的代碼(zip包或者war包)。最后點擊Create environment創建。
上圖:基於PHP的web服務正在啟動中,一步到位的部署方式免去了傳統環境中啟動服務器,下載相關應用,配置應用等繁瑣工作。
上圖:Dashboard上可以看到應用已經部署成功。點擊URL即可訪問。
上圖:web服務已經可以訪問了,將來業務更新升級只需上傳更新代碼即可。
總結一下剛才的實驗中,AWS Elastic BeanStalk替用戶做了哪些工作:
- 創建SecurityGroup
- 創建EIP
- 創建EC2虛擬機
- 為EC2虛擬機部署PHP和web服務等應用
- 上傳PHP代碼到EC2虛擬機中
- 啟動EC2並提供公網訪問地址
補充: 基於AWS ElasticBeanStalk的業務的升級
上圖:點擊Dashboard頁面running version處的Upload and Deploy按鈕即可上傳新版本的代碼對服務進行升級改版。
上圖:Action按鈕下的選項中,clone Environment選項能對本環境進行克隆移植,保存配置或者是環境重構等操作,非常的方便。
總結:AWS ElasticBeanStalk對比傳統環境下應用服務平台部署最大的優勢便是簡單無腦,方便靈活。一鍵部署的方式比傳統環境下運維從創建服務器開始一步步的配置完成再交付給開發部署代碼流程省時省力,擴展和移植也便捷,是一種頗受歡迎的雲上DevOps工具。
by:白刃霜飛
多年海內外系統,網絡,信息安全從業經驗。參與並主導多個世界500強企業大型IT項目,現任職於Simba Innvation的雲計算專家。