摘要:社區(qū)團(tuán)隊(duì)高級(jí)軟件工程師補(bǔ)充說這產(chǎn)生了大量浪費(fèi)的資源。和大會(huì)日期會(huì)議日程通告日期年月日會(huì)議活動(dòng)舉辦日期年月至日和贊助方案和多元化獎(jiǎng)學(xué)金現(xiàn)正接受申請(qǐng)和即將首次合體落地中國(guó)
VSCO:移動(dòng)應(yīng)用如何通過云原生節(jié)省70%的EC2賬單
公司:VSCO
地點(diǎn):加州奧克蘭
行業(yè):照片移動(dòng)應(yīng)用程序
在2015年從Rackspace遷移到AWS之后,除了運(yùn)行PHP單體應(yīng)用外,VSCO開始構(gòu)建Node.js和Go微服務(wù)。該團(tuán)隊(duì)使用Docker將微服務(wù)容器化,但“它們都是在每個(gè)服務(wù)專用的EC2實(shí)例的獨(dú)立組中?!睓C(jī)器學(xué)習(xí)團(tuán)隊(duì)工程經(jīng)理Melinda Lu說。社區(qū)團(tuán)隊(duì)高級(jí)軟件工程師Naveen Gattu補(bǔ)充:“這產(chǎn)生了大量浪費(fèi)的資源。我們開始尋找一種在AWS EC2實(shí)例中整合,并提高效率的方法?!?/p> 解決方法
團(tuán)隊(duì)開始探索編排系統(tǒng),并在決定采用Kubernetes之前查看了包括Mesos和Swarm在內(nèi)的幾種解決方案。VSCO也在他們的云原生堆棧中使用gRPC和Envoy。
影響在之前,部署需要“大量的手動(dòng)調(diào)整,我們編寫的內(nèi)部腳本,以及由于我們不同的EC2實(shí)例,操作必須從始至終照顧整個(gè)事情?!备呒?jí)軟件工程師Brendan Ryan說?!拔覀儾]有真正有條理進(jìn)行測(cè)試的故事,可重復(fù)使用的容器或以標(biāo)準(zhǔn)化的方式構(gòu)建?!爆F(xiàn)在有更快的上線流程。之前,首次部署的時(shí)間是兩天的動(dòng)手設(shè)置,現(xiàn)在是兩個(gè)小時(shí)。通過持續(xù)集成、容器化和Kubernetes,速度顯著提高。典型服務(wù)從代碼完成到生產(chǎn)部署到基礎(chǔ)設(shè)施的時(shí)間從一到兩周減少到兩到四個(gè)小時(shí)。Gattu補(bǔ)充:“在工時(shí)來說,這是一個(gè)人比較起在同時(shí)需要開發(fā)者和DevOps?!痹谏a(chǎn)中單個(gè)部署的時(shí)間減少了80%,部署的數(shù)量也增加了,從每年1200到每年3200。實(shí)際上也節(jié)省了成本:憑借Kubernetes,VSCO的EC2效率提高了2倍至20倍,具體取決于服務(wù),使公司的EC2賬單總體節(jié)省約70%。Ryan指出,該公司能夠從管理一個(gè)大型單體應(yīng)用程序到50多個(gè)微服務(wù),使用“或多或少同等規(guī)模的開發(fā)團(tuán)隊(duì)。我們之所以能夠做到這一點(diǎn),是因?yàn)槲覀儗?duì)工具的信任度更高和靈活性更高,因此我們不需要聘請(qǐng)DevOps工程師來調(diào)整每項(xiàng)服務(wù)。”隨著Kubernetes、gRPC和Envoy到位,VSCO的中斷時(shí)間減少了88%,這主要是由于消除了JSON模式錯(cuò)誤和特定于服務(wù)的基礎(chǔ)設(shè)施配置錯(cuò)誤,以及加快修復(fù)停機(jī)的速度。
“看到我們的工程師通過結(jié)合大量的Kubernetes基元來提出創(chuàng)造性的解決方案,讓我一直留下了非常深刻的印象。將Kubernetes構(gòu)造作為服務(wù)暴露給我們的工程師,而不是暴露高階構(gòu)造對(duì)我們來說效果很好。它可以讓你熟悉這項(xiàng)技術(shù),并用它做更多有趣的事情。” - Melinda Lu,VSCO機(jī)器學(xué)習(xí)團(tuán)隊(duì)工程經(jīng)理
作為移動(dòng)攝影應(yīng)用程序,VSCO于2011年誕生于云端。最初,“我們使用Rackspace并使用PHP單體應(yīng)用程序與MySQL數(shù)據(jù)庫(kù)通信,使用FTP部署,沒有容器化,沒有編排?!避浖こ處烞rendan Ryan說,“當(dāng)時(shí)足夠了?!?
在VSCO于2015年遷至AWS并且其用戶群超過3000萬(wàn)大關(guān)之后,該團(tuán)隊(duì)很快意識(shí)到現(xiàn)有設(shè)置將不夠用。開發(fā)者開始構(gòu)建一些Node和Go微服務(wù),團(tuán)隊(duì)嘗試用Docker進(jìn)行容器化。但是“它們都是在每個(gè)服務(wù)專用的EC2實(shí)例的不同組中?!睓C(jī)器學(xué)習(xí)團(tuán)隊(duì)工程經(jīng)理Melinda Lu說。社區(qū)團(tuán)隊(duì)高級(jí)軟件工程師Naveen Gattu補(bǔ)充說:“這產(chǎn)生了大量浪費(fèi)的資源。我們開始尋找一種在EC2實(shí)例中整合并提高效率的方法?!?/p>
通過一個(gè)包括易用性和實(shí)現(xiàn)、支持級(jí)別以及是否是開源的清單,團(tuán)隊(duì)在決定使用Kubernetes之前評(píng)估了一些調(diào)度解決方案,包括Mesos和Swarm。“Kubernetes似乎擁有最強(qiáng)大的開源社區(qū)?!盠u說。此外,“我們已經(jīng)開始標(biāo)準(zhǔn)化大量的Google堆棧,Go作為編寫語(yǔ)言,gRPC用于我們?cè)跀?shù)據(jù)中心內(nèi)部服務(wù)之間的幾乎所有通信。所以我們似乎很自然地選擇了Kubernetes?!?/p>
“Kubernetes似乎擁有最強(qiáng)大的開源社區(qū),而且,我們已經(jīng)開始標(biāo)準(zhǔn)化很多Google堆棧,Go作為編寫語(yǔ)言,gRPC用于我們?cè)跀?shù)據(jù)中心內(nèi)部服務(wù)之間的幾乎所有通信。所以我們似乎很自然地選擇了Kubernetes。” - Melinda Lu,VSCO機(jī)器學(xué)習(xí)團(tuán)隊(duì)工程經(jīng)理
當(dāng)時(shí),生態(tài)系統(tǒng)中很少有托管的Kubernetes產(chǎn)品和較少的工具,因此團(tuán)隊(duì)建立了自己的集群,并為其特定的部署需求構(gòu)建了一些自定義組件,例如自動(dòng)入口控制器和灰度部署的政策構(gòu)造?!拔覀円呀?jīng)開始拆除單體了,所以我們一個(gè)接一個(gè)地搬東西,從相當(dāng)小的低風(fēng)險(xiǎn)服務(wù)開始?!盠u說?!懊恳豁?xiàng)新服務(wù)都部署在那里。”第一項(xiàng)服務(wù)于2016年底遷移,一年后,整個(gè)堆棧的80%在Kubernetes上跑,包括其余的單體。
帶來的影響很大。在過去,部署需要“大量的手動(dòng)調(diào)整,我們編寫的內(nèi)部腳本,以及由于我們不同的EC2實(shí)例,操作必須從始至終照顧整個(gè)事情?!盧yan說?!拔覀儾]有真正有條理進(jìn)行測(cè)試的故事,可重復(fù)使用的容器或以標(biāo)準(zhǔn)化的方式構(gòu)建?!爆F(xiàn)在有更快的上線流程。之前,首次部署的時(shí)間是兩天的動(dòng)手設(shè)置時(shí)間,現(xiàn)在是兩個(gè)小時(shí)。
通過持續(xù)集成、容器化和Kubernetes,速度顯著提高。典型服務(wù)從代碼完成到生產(chǎn)部署到基礎(chǔ)設(shè)施的時(shí)間從一到兩周減少到兩到四個(gè)小時(shí)。另外,Gattu說,“在工時(shí)來說,這是一個(gè)人比較起在同時(shí)需要開發(fā)者和DevOps。”在生產(chǎn)中單個(gè)部署的時(shí)間減少了80%,部署的數(shù)量也增加了,從每年1200到每年3200。
“看到我們的工程師通過結(jié)合大量的Kubernetes基元來提出創(chuàng)造性的解決方案,讓我一直留下了非常深刻的印象。將Kubernetes構(gòu)造作為服務(wù)暴露給我們的工程師,而不是暴露高階構(gòu)造對(duì)我們來說效果很好。它可以讓你熟悉這項(xiàng)技術(shù),并用它做更多有趣的事情?!?- Melinda Lu,VSCO機(jī)器學(xué)習(xí)團(tuán)隊(duì)工程經(jīng)理
實(shí)際上也節(jié)省了成本:憑借Kubernetes,VSCO的EC2效率提高了2倍至20倍,具體取決于服務(wù),使公司的EC2賬單總體節(jié)省約70%。
Ryan指出,該公司能夠從管理一個(gè)大型單體應(yīng)用程序到50多個(gè)微服務(wù),使用“或多或少同等規(guī)模的開發(fā)團(tuán)隊(duì)。我們之所以能夠做到這一點(diǎn),是因?yàn)槲覀兡軌蛟黾訉?duì)工具的信任,并且當(dāng)系統(tǒng)存在壓力點(diǎn)時(shí)更加靈活。你可以增加服務(wù)的CPU內(nèi)存需求,而無需啟動(dòng)和拆除實(shí)例,閱讀AWS頁(yè)面只是為了熟悉許多行話,這對(duì)于我們規(guī)模的公司而言并不適合?!?/p>
Envoy和gRPC也對(duì)VSCO產(chǎn)生了積極影響。“我們從開箱即用的gRPC中獲得了許多好處:跨多種語(yǔ)言輸入安全性、使用gRPC IDL輕松定義服務(wù)、內(nèi)置架構(gòu)如攔截器,以及通過HTTP/1.1和JSON的性能改進(jìn)。”Lu說。
VSCO是Envoy的首批用戶之一,在它開源五天后將其投入生產(chǎn)?!拔覀兿Mㄟ^我們的邊緣負(fù)載平衡器直接向移動(dòng)客戶端提供gRPC和HTTP/2,而Envoy是我們唯一合理的解決方案?!盠u說?!霸谒蟹?wù)中默認(rèn)發(fā)送一致且詳細(xì)的統(tǒng)計(jì)數(shù)據(jù)的能力,使得儀表板的可觀察性和標(biāo)準(zhǔn)化變得更加容易?!盓nvoy內(nèi)置的指標(biāo)也“極大地幫助了調(diào)試”,DevOps工程師Ryan Nguyen說。
“因?yàn)楝F(xiàn)在有一個(gè)支持Kubernetes的組織,這會(huì)增強(qiáng)信心嗎?答案是響亮的。” - Naveen Gattu,VSCO社區(qū)團(tuán)隊(duì)高級(jí)軟件工程師
隨著Kubernetes、gRPC和Envoy的到位,VSCO的中斷時(shí)間減少了88%,這主要是由于消除了JSON模式錯(cuò)誤和特定于服務(wù)的基礎(chǔ)架構(gòu)配置錯(cuò)誤,以及加快修復(fù)停機(jī)的速度。
鑒于其使用CNCF項(xiàng)目的成功,VSCO開始嘗試其,包括CNI和Prometheus?!皳碛幸粋€(gè)大型組織支持這些技術(shù),我們更有信心嘗試這個(gè)軟件并部署到生產(chǎn)中。”Nguyen說。
該團(tuán)隊(duì)為gRPC和Envoy做出了貢獻(xiàn),并希望在CNCF社區(qū)中更加活躍。“看到我們的工程師通過結(jié)合大量的Kubernetes基元來提出創(chuàng)造性的解決方案,讓我一直留下了非常深刻的印象?!盠u說?!皩ubernetes構(gòu)造作為服務(wù)暴露給我們的工程師,而不是暴露高階構(gòu)造對(duì)我們來說效果很好。它可以讓你熟悉這項(xiàng)技術(shù),并用它做更多有趣的事情。”
KubeCon + CloudNativeCon和Open Source Summit大會(huì)日期:
會(huì)議日程通告日期:2019 年 4 月 10 日
會(huì)議活動(dòng)舉辦日期:2019 年 6 月 24 至 26 日
KubeCon + CloudNativeCon和Open Source Summit贊助方案
KubeCon + CloudNativeCon和Open Source Summit多元化獎(jiǎng)學(xué)金現(xiàn)正接受申請(qǐng)
KubeCon + CloudNativeCon和Open Source Summit即將首次合體落地中國(guó)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/25479.html
摘要:社區(qū)團(tuán)隊(duì)高級(jí)軟件工程師補(bǔ)充說這產(chǎn)生了大量浪費(fèi)的資源。和大會(huì)日期會(huì)議日程通告日期年月日會(huì)議活動(dòng)舉辦日期年月至日和贊助方案和多元化獎(jiǎng)學(xué)金現(xiàn)正接受申請(qǐng)和即將首次合體落地中國(guó) VSCO:移動(dòng)應(yīng)用如何通過云原生節(jié)省70%的EC2賬單 showImg(https://segmentfault.com/img/bVboP4E?w=721&h=440); 公司:VSCO地點(diǎn):加州奧克蘭行業(yè):照片移動(dòng)應(yīng)...
摘要:分布式文件系統(tǒng)和數(shù)據(jù)庫(kù),由于性能和成本,是持久性本地存儲(chǔ)的主要用例。在裸機(jī)上,除了性能之外,本地存儲(chǔ)通常更便宜,并且使用它是配置分布式文件系統(tǒng)的必要條件。 作者:1.14發(fā)布團(tuán)隊(duì) 我們很高興地宣布推出Kubernetes 1.14,這是我們2019年的首次發(fā)布! showImg(https://segmentfault.com/img/bVbqrJZ?w=300&h=293); Kub...
摘要:分布式文件系統(tǒng)和數(shù)據(jù)庫(kù),由于性能和成本,是持久性本地存儲(chǔ)的主要用例。在裸機(jī)上,除了性能之外,本地存儲(chǔ)通常更便宜,并且使用它是配置分布式文件系統(tǒng)的必要條件。 作者:1.14發(fā)布團(tuán)隊(duì) 我們很高興地宣布推出Kubernetes 1.14,這是我們2019年的首次發(fā)布! showImg(https://segmentfault.com/img/bVbqrJZ?w=300&h=293); Kub...
摘要:和網(wǎng)站不時(shí)發(fā)布來之全世界的博客文章和案例研究。提交案例研究案例研究強(qiáng)調(diào)組織如何使用解決實(shí)際問題。看看現(xiàn)有案例研究材料。 showImg(https://segmentfault.com/img/bVbp45W?w=1280&h=545); CNCF和Kubernetes網(wǎng)站不時(shí)發(fā)布來之全世界的博客文章和案例研究。 近期的博客文章有: 使用Ansible和Vagrant設(shè)置Kubern...
摘要:和網(wǎng)站不時(shí)發(fā)布來之全世界的博客文章和案例研究。提交案例研究案例研究強(qiáng)調(diào)組織如何使用解決實(shí)際問題??纯船F(xiàn)有案例研究材料。 showImg(https://segmentfault.com/img/bVbp45W?w=1280&h=545); CNCF和Kubernetes網(wǎng)站不時(shí)發(fā)布來之全世界的博客文章和案例研究。 近期的博客文章有: 使用Ansible和Vagrant設(shè)置Kubern...
閱讀 2754·2019-08-30 15:53
閱讀 521·2019-08-29 17:22
閱讀 1038·2019-08-29 13:10
閱讀 2307·2019-08-26 13:45
閱讀 2751·2019-08-26 10:46
閱讀 3201·2019-08-26 10:45
閱讀 2503·2019-08-26 10:14
閱讀 466·2019-08-23 18:23