亞馬遜AWS云平臺占全球公有云市場份額的1/3左右,現居云計算服務的龍頭企業。其優勢主要體現在是世界上第一個投入云服務領域的提供商,自身有其先發優勢,比如其基于自研芯片(Nitro架構)率先實現云服務器與物理設備的解耦,而不是依靠如Linux操作系統的特定模塊來實現虛擬化。
另外AWS的云產品與DevOps有著緊密的關聯關系。對DevOps的概念認知,亞馬遜與其他的云廠商是一致的。DevOps被認為是文化、工程實踐和支持服務快速交付模式以及工具的組合,可以提升應用DevOps的企業或組織以更高速率和更高質量交付應用程序和服務的能力。
通用的DevOps工程實踐包括,持續集成(Continue Integration)、持續交付(Continue Delivery)、基礎設施即代碼(Infrastructure as Code)和監控與日志記錄(Monitoring and Logging)。
以下是DevOps工程實踐的概略介紹:
1、持續集成:一種軟件開發實踐,開發人員定期將代碼的更改或新增代碼合并到中央存儲庫中,然后執行代碼的自動編譯和自動化測試;
2、持續交付:針對有更改代碼的軟件應用,以自動化的方式完成新代碼的編譯、測試,并把測試通過的軟件應用投入到生產環境;
3、基礎設施即代碼:通過腳本或代碼驅動云平臺資源的動態部署,尤其是針對云虛擬機、云網絡和云數據庫等云產品的自動化部署能力,即實現在云平臺上DevOps持續交付能力;
4、監控與日志記錄:通過即時監控和狀態日志的形式記錄應用程序或云基礎設施對使用用戶的直接影響和最終的用戶體驗。
在持續集成層面,AWS云平臺可以支持云用戶在其所購買的云服務器上實現持續集成的能力,也可以通過AWS的Lamda無服務器產品服務以目前比較流行的方式來幫用戶構建持續集成能力。并且,AWS同樣支持與Ansible和Chef這樣的經典的DevOps持續集成工具的整合。
在持續交付方面,AWS云平臺有一種叫CloudFormation的產品工具來實現云資源的配置管理和自動化部署。云用戶可以通過JavaScript Object Notation (JSON)或Yet Another Markup Language (YAML)格式的配置文件來提交各種云資源的組合部署需求,CloudFormation可以通過解析如上配置文件來實現多種云產品的聯合部署。目前可以支持自動化部署的云計算資源涵蓋多個方面,其中最為典型的是云虛擬機、安全組、彈性伸縮、云網絡和云數據庫等云基礎設施產品的自動化部署。而云用戶可以通過AWS提供的自動化部署軟件Elastic Beanstalk輕松實現其所屬應用的自動化部署。
在監控與日志記錄方面,AWS云平臺提供DevOps Guru的產品,該產品會持續分析異構數據的數據流并監控在云平臺上的數千個指標,以確定應用程序行為的正常界限,自動識別偏離正?;顒拥那闆r,并顯示嚴重程度較高的問題以快速提醒云用戶執行必要的操作。DevOps Guru通過利用機器學習等技術手段幫助縮短用戶在使用云產品的問題解決時間,結合問題上下文信息,協助識別問題的根本原因并生成解決的見解意見。
總之,類似于AWS的云平臺對DevOps提供了很好的技術支撐,而DevOps也被人們稱為是一種云原生的技術,即DevOps就是一種典型的云產品。