
內(nèi)容來(lái)源:2017年7月8日,亞馬遜AWS解決方案架構(gòu)師毛鄲榕在“不止云計(jì)算,云時(shí)代還有哪些寶典?”進(jìn)行《公有云-基于公有云的開(kāi)發(fā)運(yùn)維DevOps實(shí)踐》演講分享。IT 大咖說(shuō)(ID:itdakashuo)作為獨(dú)家視頻合作方,經(jīng)主辦方和講者審閱授權(quán)發(fā)布。
閱讀字?jǐn)?shù):2157?| 5分鐘閱讀
獲取嘉賓演講視頻回放及PPT,請(qǐng)點(diǎn)擊:http://t.cn/Evm12zj
摘要
在DevOps的領(lǐng)域上,只要有想法,把想法寫(xiě)成代碼。后續(xù)一系列的部署構(gòu)建,包括代碼的迭代和發(fā)布這些過(guò)程全部可以變成自動(dòng)化。讓您真正可以聚焦在業(yè)務(wù)創(chuàng)新層面上,所有底層需要用到的基礎(chǔ)設(shè)施全部可以交給亞馬遜AWS。
客戶分享
musical.ly公司成立于2013年,是一家互聯(lián)網(wǎng)創(chuàng)業(yè)公司致力于打造全球化的娛樂(lè)社交平臺(tái)。其開(kāi)發(fā)和運(yùn)營(yíng)的音短視頻musical.ly和視頻直播平臺(tái)live.ly已經(jīng)成為歐美國(guó)家的主流移動(dòng)社交網(wǎng)絡(luò),在全球超過(guò) 20 多個(gè)國(guó)家和地區(qū)的App Store總榜上排名第一,其用戶規(guī)模僅次于Snapchat、Instagram、Twitter和Facebook等老牌社交應(yīng)用,成為歐美 13~20 歲年輕人最喜愛(ài)的移動(dòng)社交應(yīng)用之一。目前, musical.ly的音樂(lè)短視頻社交平臺(tái)的日活用戶數(shù)已經(jīng)超千萬(wàn),用戶總數(shù)過(guò)1.5億。
從一臺(tái)Amazon EC2 、幾百位用戶起步,經(jīng)過(guò)短短的三年, musical.ly的日活用戶數(shù)就超過(guò)了千萬(wàn),同時(shí)使用的Amazon EC2數(shù)量也超過(guò)了2000臺(tái)。在尋找業(yè)務(wù)方向、嘗試在不同領(lǐng)域開(kāi)展業(yè)務(wù)的過(guò)程中, AWS云平臺(tái)給 musical.ly提供了充足的靈活性。
在運(yùn)營(yíng)系統(tǒng)中, musical.ly采用:
(1)Amazon EC2作為主要的計(jì)算資源以支撐前端應(yīng)用;
(2)Amazon S3作為統(tǒng)一的存儲(chǔ)以放多媒體資料及系日志信息;
(3)Amazon CloudFront用來(lái)進(jìn)行全球化的內(nèi)容分發(fā),降低訪問(wèn)時(shí)延以提升用戶的使用體驗(yàn);
(4)Amazon EMR作為靈活開(kāi)關(guān)的大數(shù)據(jù)處理平臺(tái)來(lái)完成必要分析任務(wù);
(5)AWS Lambda、用于完成對(duì)新戶的推送服務(wù)。
這些產(chǎn)品的使用極大地降低了musical.ly自己的應(yīng)用開(kāi)發(fā)工作量,在系統(tǒng)可靠性、穩(wěn)定方面也遠(yuǎn)超過(guò)自己搭建的系統(tǒng)。
目前,musical.ly所使用的AWS云平臺(tái)產(chǎn)品包括Amazon EC2、Amazon S3、Elastic Load Balancing、Amazon CloudFront、Amazon Route53、Amazon Kinesis 、Amazon ElastiCache、Amazon EMR、Amazon VPC等,打造出一個(gè)穩(wěn)定、可靠、響應(yīng)迅速的全球化娛樂(lè)社交平臺(tái)。
選擇AWS云平臺(tái)帶來(lái)的好處主要體現(xiàn)在三個(gè)方面。首先AWS云平臺(tái)提供的各項(xiàng)服務(wù)穩(wěn)定性和可靠非常高,在系統(tǒng)運(yùn)行的三年多來(lái),從未出現(xiàn)過(guò)因云服務(wù)不穩(wěn)定而導(dǎo)致的系統(tǒng)中斷。其次是 AWS云平臺(tái)提供了非常全面的云服務(wù),這使得 musical.ly可以隨著業(yè)務(wù)的增長(zhǎng)隨時(shí)調(diào)用新服務(wù)來(lái)添功能和擴(kuò)展系統(tǒng)。例如, musical.ly平臺(tái)最初并不具備大數(shù)據(jù)分析和處理能力,但隨著用戶量的激增海信息,為用戶提供更有針對(duì)性的就成musical.ly的緊要任務(wù)。有了AWS云平臺(tái)提供的Amazon EMR、Amazon Lambda等服務(wù),musical.ly就能夠快速地完成產(chǎn)品的迭代更新和功能擴(kuò)展,節(jié)省了大量時(shí)間成本。還有就是AWS優(yōu)異的技術(shù)支持服務(wù)幫助musical.ly節(jié)省了大量的人力成本。
一天內(nèi)代碼發(fā)布多次,迭代創(chuàng)新。我們希望用戶聚焦業(yè)務(wù)創(chuàng)新,不用把時(shí)間浪費(fèi)在搭建環(huán)境上。所以我們需要基于公有云方式的開(kāi)發(fā)運(yùn)維工具。
怎么樣實(shí)現(xiàn)DevOps
如上圖所示,最下面已經(jīng)提供了平臺(tái)層Platform,再往上就有了API,它的API全面程度非常廣。AWS還提供了各種各樣版本語(yǔ)言的SDK,然后是一些框架,最上面是核心的code代碼。
針對(duì)每一個(gè)層面,亞馬遜都提供了一些列甚至是托管的服務(wù),可以幫用戶直接解決一些問(wèn)題。
亞馬遜電商怎么做DevOps?
最早期我們也是一個(gè)單體的架構(gòu),現(xiàn)在演變到如何更好地去做微服務(wù)化,甚至都不用使用服務(wù)器進(jìn)行管理。
AWS Code Services
上圖在基本所有的互聯(lián)網(wǎng)公司都是通用的。從最開(kāi)始的開(kāi)發(fā)、代碼的托管,到代碼的構(gòu)建、測(cè)試,再到部署、搭建、監(jiān)控,從而實(shí)現(xiàn)整個(gè)過(guò)程的自動(dòng)化。
自動(dòng)化部署服務(wù)——AWS CodeDeploy
作為DevOps和微服務(wù)的深入踐行者,Amazon在內(nèi)部積累了許多持續(xù)集成、交付和部署的自動(dòng)化工具和平臺(tái)。其中, Apollo作為代碼部署的自動(dòng)化平臺(tái),每年進(jìn)行超過(guò)5000萬(wàn)次部署。
為了能夠讓廣大開(kāi)發(fā)者和企業(yè)用戶使用到功能豐富且久經(jīng)考驗(yàn)的代碼部署平臺(tái),在Apollo的經(jīng)驗(yàn)基礎(chǔ)上,AWS發(fā)布了自動(dòng)化部署服務(wù)——CodeDeploy。
AWSCodeDeploy旨在幫助用戶完成應(yīng)用的快速部署,按照用戶指定的策略將代碼部署在一組EC2服務(wù)器上。用戶策略可以包括集群部署速度、部署事件通知、警報(bào)處理策略等。此外,CodeDeploy還可以和彈性負(fù)載均衡(Elastic Load Balancer)、自動(dòng)擴(kuò)展組(Auto Scaling Group)等服務(wù)結(jié)合,完成無(wú)縫升級(jí)和動(dòng)態(tài)部署。
AWS CodeDeploy——代碼部署
CodeDeploy這個(gè)服務(wù)與我們的開(kāi)發(fā)人員和運(yùn)維人員比較貼近,目前,這個(gè)服務(wù)在由光環(huán)新網(wǎng)運(yùn)營(yíng),亞馬遜AWS中國(guó)(北京)區(qū)域也是可用的。它有兩個(gè)重要的概念,一個(gè)是application,另一個(gè)是deployment groups。在deployment groups可以定義成多個(gè)環(huán)境,比如有開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境,還有生產(chǎn)環(huán)境。
怎么使用CodeDeploy服務(wù)進(jìn)行部署——此處用tomcat舉例
準(zhǔn)備代碼,此處用 tomcat應(yīng)用舉例。解壓代碼,在工程目錄里添加scripts目錄和一個(gè)appspec.yml。例如上圖這樣的目錄結(jié)構(gòu),scripts里面放部署時(shí)使用的腳本,appspec.yml文件定義代碼部署到哪個(gè),用什么用戶在什么階段執(zhí)行什么腳本。
首次部署,需要安裝依賴軟件和環(huán)境,之后做代碼更新時(shí)就不需要了。
AWS基礎(chǔ)設(shè)施DevOps Services
我們有一些基礎(chǔ)設(shè)施層面的服務(wù)。ElasticBeanstalk是一個(gè)類似于容器概念的服務(wù),要起一個(gè)環(huán)境的時(shí)候可以直接用ElasticBeanstalk進(jìn)行托管。
CloudFormation——一鍵部署所有云端資源
CloudFormation是一個(gè)JSON的文件,把模版定義好后放到CloudFormation做一次部署,所有需要的資源可以一鍵創(chuàng)建好。
初創(chuàng)企業(yè)支持計(jì)劃
AWS為初創(chuàng)企業(yè)提供支持上云的云創(chuàng)計(jì)劃到后續(xù)為云創(chuàng)成員專設(shè)的GTM全方位支持。
GTM(go-to -market)支持計(jì)劃:
幫助硬件類初創(chuàng)企業(yè)在全球市場(chǎng)快速部署渠道;
獨(dú)享推廣頁(yè)面,支持影音視頻內(nèi)容播放;
享受亞馬遜物流、客服及支付等全方位支持;
云創(chuàng)計(jì)劃成員可獲得2,500美元Facebook廣告 credits,以及AlexaFund投資的優(yōu)先推薦資格;
AlexaFund是亞馬遜旗下專注于聲音科技的早期投資基金(基金規(guī)模1億)
今天的分享就到這里,謝謝大家!