DevOps on AWS之Elastic BeanStalk
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的雲端計算專家。