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