跳到主要內容

從 DevOps 到 Serverless:通過“不用做”的方式解決“如何更高效做”的問題

作者 | 徐進茂(羅離) JAVA 開發工程師 



導讀:近年來,Serverless 一詞越來越熱,它已經逐漸成為了一種新型的軟件設計架構。和 DevOps 概念提倡的是通過一系列工具和自動化的技術來降低運維的難度,促進研發運維一體化不同, Serverless 更像是一種 NoOps,即通過"不用做"的方式來解決"如何更高效做"的問題。



DevOps 概述


DevOps 是一組用於促進開發和運維人員之間協作的過程、方法和系統的統稱。


DevOps 提倡通過一系列的技術和工具降低開發和運維人員之間的隔閡,實現從開發到最終部署的全流程自動化,從而達到開發運維一體化。通過將 DevOps 的理念引入到整個系統的開發過程中,能夠顯著提升軟件的開發效率,縮短軟件交付的周期,更加適應當今快速發展的互聯網時代。


說到 DevOps ,就必然會提到持續集成。持續集成指的是在軟件開發過程中,軟件開發人員持續不斷地將開發出來的代碼和其他的開發人員的代碼進行合併,每次合併后自動地進行編譯、構建,並運行自動化測試進行驗證,而不是等到最後各自開發完成后才合併在一起。


持續集成能從根本上提高一個團隊的軟件開發效率。在軟件開發過程中引入持續集成,可以幫助團隊及時的發現系統中的問題,並快速做出修復,不僅可以縮短軟件開發的時間,而且可以交付更具質量的系統。


基於 Docker 實現一個 DevOps 開發環境


一個 DevOps 開發環境需要滿足以下 8 點需求。



  • 環境一致性:在本地開發出來的功能,無論在什麼環境下部署都應該能得到一致的結果;


  • 代碼自動檢查:為了儘早發現問題,每一次代碼提交后,系統都應該自動對代碼進行檢查,及早發現潛在的問題,並運行自動化測試;


  • 持續集成:每次代碼提交后系統可以自動進行代碼的編譯和打包,無需運維人員手動進行;


  • 持續部署:代碼集成完畢后,系統可以自動將運行環境中的舊版本應用更新成新版本的應用並且整個過程中不會讓系統不可用;


  • 持續反饋:在代碼自動檢查、持續集成、持續部署的過程中,一旦出現問題,要能及時將問題反饋給開發人員以及運維人員。開發和運維人員收到反饋后對問題及時進行修復;


  • 快速回滾:當發現本次部署的版本出現問題時,系統應能快速回退到上一個可用版本;


  • 彈性伸縮:當某個服務訪問量增大時,系統應可以對這個服務快速進行擴容,保證用戶的訪問。當訪問量回歸正常時,系統能將擴容的資源釋放回去,實現根據訪問情況對系統進行彈性伸縮;


  • 可視化運維:提供可視化的頁面,可實時監控應用、集群、硬件的各種狀態。



為了滿足以上 8 點要求,設計出的 DevOps 開發環境如下圖所示。



整個環境主要由 6 部分組成:



  • 代碼倉庫 Gitlab

  • 容器技術 Docker

  • 持續集成工具 Jenkins

  • 代碼質量檢測平台 SonarQube

  • 鏡像倉庫 Harbor

  • 容器集群管理系統 Kubernetes


整個環境的運行流程主要分為以下 6 步:



  • 開發人員在本地開發並驗證好功能后,將代碼提交到代碼倉庫;


  • 通過事先配置好的 Webhook 通知方式,當開發人員提交完代碼后,部署在雲端的持續集成工具 Jenkins 會實時感知,並從代碼倉庫中獲取最新的代碼;


  • 獲取到最新代碼后,Jenkins 會啟動測試平台 SonarQube 對最新的代碼進行代碼檢查以及執行單元測試,執行完成后在 SonarQube 平台上生成測試報告。如果測試沒通過,則以郵件的方式通知研發人員進行修改,終止整個流程。若測試通過,將結果反饋給 Jenkins 並進行下一步;


  • 代碼檢查以及單元測試通過後, Jenkins 會將代碼發送到持續集成服務器中,在服務器上對代碼進行編譯、構建然後打包成能在容器環境上運行的鏡像文件。如果中間有步驟出現問題,則通過郵件的方式通知開發人員和運維人員進行處理,並終止整個流程;


  • 將鏡像文件上傳到私有鏡像倉庫 Harbor 中保存;


  • 鏡像上傳完成后, Jenkins 會啟動持續交付服務器,對雲環境中運行的應用進行版本更新,整個更新過程會確保服務的訪問不中斷。持續交付服務器會將最新的鏡像文件拉取到 Kubernetes 集群中,並採用逐步替換容器的方式進行對應用進行更新,在服務不中斷的前提下完成更新。



通過上述幾步,我們就可以簡單實現一個 DevOps 開發環境,實現代碼從提交到最終部署的全流程自動化。


但是自從 2014 年 AWS 發布 ASW Lambda 以來, Serverless 的概念開始逐漸火熱起來。各大雲廠商開始紛紛開始推出各自的 Serverless 產品,如 Google 的 Cloud Functions ,阿里雲的函數計算、Serverless應用引擎(SAE)等等。究竟什麼是Serverless 無服務計算呢?


什麼是 Serverless?


根據 CNCF (雲原生計算基金會)發布的 白皮書里的定義:



Serverless computing refers to the concept of building and running applications that do not require server management. It describes a finer-grained deployment model where applications, bundled as one or more functions, are uploaded to a platform and then executed, scaled, and billed in response to the exact demand needed at the moment.



首先需要強調一點的是無服務器計算並不意味着我們不再需要使用服務器來運行代碼,代碼仍需要運行在服務器上對外提供服務。


在無服務計算時代,研發人員無需對服務器進行監控、配置、更新、擴容等運維操作。只需要將代碼上傳到雲廠商提供的無服務器計算平台上即可,雲廠商會保證代碼能正常運行,當流量突增時,自動對服務器進行擴容,流量減少時,對服務器進行縮容。



這些運維操作對研發人員來說都是黑盒的,會將開發人員從繁瑣的運維工作中解放出來,只需要按運行時長對資源進行付費即可。


和 DevOps 概念提倡的是通過一系列工具和自動化的技術來降低運維的難度,促進研發運維一體化不同, Serverless 更像是一種 NoOps,即通過"不用做"的方式來解決"如何更高效做"的問題。


阿里雲在 Serverless 上的實踐


當前阿里雲上實現 Serverless 技術的產品有 Serverless 應用引擎和函數計算 FaaS。


Serverless 應用引擎


Serverless 應用引擎是面嚮應用的 Serverless PaaS 平台,它向上抽象了應用的概念,支持 Spring Cloud、Apache Dubbo、HSF 等流行的開發框架,並通過 WAR 包、JAR 包和鏡像等多種方式部署應用。它的使用可以通過下面這張圖來了解。



函數計算


FaaS 是 Serverless 所提供的服務的另一種形態。以阿里雲函數計算為例,阿里雲函數計算的流程大致如下圖所示。




  • 開發者在本地編寫代碼;


  • 代碼開發完成后通過命令行工具 fcli、fun 或者可視化界面控制台上傳到阿里雲函數計算平台;


  • 開發者上傳完代碼后,平台會自動啟動基於 Docker 的 DevOps 流程,對代碼進行編譯、打包成鏡像文件。並上傳到鏡像倉庫;


  • 開發者在平台是配置事件觸發器,當前阿里雲已經支持 OSS、HTTP、CDN、SLS、定時任務等多種形式的觸發器形式;


  • 當觸發器被觸發后,會到達事件調度器。平台會將鏡像快速啟動成容器並執行代碼,根據流量自動對服務進行彈性伸縮。保證代碼能正常並執行完成。



伯克利對 Serverless 未來的預測


儘管 Serverless 仍存在諸多的挑戰,但是我們相信隨着市場規模的不斷擴大,這些挑戰會逐漸被解決。UC 伯克利對 Serverless 未來十年的發展趨勢做了以下幾點預測。



  • 新型的 BaSS 存儲服務會被創造出來,這樣更多類型的應用可以遷移到 Serverless 平台上。這種存儲服務的性能會和本地存儲的性能相當,並提供長期和短期的存儲。更多適用於 Serverless 平台的硬件會被使用;


  • 由於更高級別的編程抽象以及更加細粒度的資源隔離,在無服務器計算平台上運行的代碼將會比傳統的方式更加安全可靠;


  • 隨着無服務器計算收費模式的不斷髮展,幾乎任何應用遷移到無服務器計算平台都會比原先的有服務器計算的方式的成本更低;


  • 有服務器計算在未來會促進 BaaS 的發展;


  • 雖然現有的有服務器計算不會消失,但是隨着 Serverless r技術的不斷髮展,有服務器計算在雲上所佔的比例會逐年下降;


  • 無服務器計算將會成為雲時代默認的編程方式,它將大規模取代傳統的基於服務器的編程方式,並終結傳統的 C/S 架構。



總結


當前數據中心的資源利用率仍處於一個較低水平,特別是對於在線業務而言,日均資源使用率僅在 10% 左右,主要是由於當今資源都是屬於獨享型的,不管你用不用,這些資源都需要保留。


一旦大規模使用 Serverless 之後,資源的使用由平台統一調度,按需使用,整體的資源利用率會大幅提升,整個雲計算資源的使用成本無疑也會大幅降低。


隨着 Serverless 的不斷髮展,未來編程方式將會有很大的不同。無論是從成本的角度還是使用的角度,我們有理由相信下一個時代是 Serverless 的時代,並應該朝着這個方向不斷探索。


作者簡介:徐進茂(羅離) Java 開發工程師。現就職於阿里雲智能基礎設施事業部,主要負責阿里巴巴數據中心運營平台的研發工作。



" 阿里巴巴雲原生微信公眾號(ID:Alicloudnative)關注微服務、Serverless、容器、Service Mesh等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的技術公眾號。"


本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!



網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!



※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師"嚨底家"!!



Orignal From: 從 DevOps 到 Serverless:通過"不用做"的方式解決"如何更高效做"的問題

留言

這個網誌中的熱門文章

掃地機器人可以隨身帶上飛機嗎?我想要拿去送給國外的朋友

掃地機器人如果要隨身戴上飛機需要滿足兩個條件: 一個是掃地機器人連同你的隨身行李,整體的體積和重量要符合上機條件,這個具體每家航空公司都不同,可以諮詢,簡單的說就是隨身行李不要超寬超重。 還有一個就是由於掃地機器人內置了鋰電池,所以內置電池的容量要符合相關規定,每個掃地機器人電池容量都不同,具體自行查詢。 根據民航的相關安全要求,凡帶有鋰電池的電子設備均不可以托運,但符合重量要求,尺寸要求以及電量要求的鋰電池及其設備是可以帶上飛機的。 《鋰電池航空運輸規範》中內含鋰離子電池的設備電池額定能量不應超過100Wh的規定,符合國標GB31241-2014,並通過UN38.3航空運輸認證等國際安全標準,所以可以帶上飛機。但是不能托運,只能隨身攜帶。 掃地機器人     掃地機器人     掃地機器人吸塵器 http://www.greenh3y.com/?p=400 Orignal From: 掃地機器人可以隨身帶上飛機嗎?我想要拿去送給國外的朋友

不滿國際規範斷財路 非洲多國擬退野生動保公約

摘錄自2019年09月01日中央通訊社非洲報導 非洲南部多國揚言退出「瀕臨絕種野生動植物國際貿易公約」,因為公約多數成員拒絕放寬象牙與犀牛角交易,並且幾乎全面禁止將野生捕獲的大象送到動物園。 這個公約嚴格規範全球野生動物交易,包括限制象牙與犀牛角交易。 本週在日內瓦召開修訂「瀕臨絕種野生動植物國際貿易公約」(CITES)的會議期間,由於區域集團非南開發共同體(SADC)的多項提案遭否決,這個集團與公約的關係惡化。 全球大象數量最多的區域波札那、納米比亞與辛巴威要求販售取自自然死亡、充公與汰除的大象象牙,這項提議被居多數的101票否決。 40多年前制訂的CITES規範約3萬6000種動植物交易,並設計有助於遏止非法交易和制裁違規國家的機制。 不過有16個成員國的非南開發共同體部分會員批評CITES對非洲國家的問題視若無睹。 坦尚尼亞環境部長西蒙巴徹恩(George Simbachawene)於日內瓦召開的會議中表示:「結果無法採取進步、公平、包容與基於科學的的保育策略。」 他說:「該是認真重新考慮我們加入CITES是否有任何實質益處的時候了。」 本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理 【搬家相關資訊指南】 台中搬家 , 彰化搬家 , 南投搬家 前需注意的眉眉角角,別等搬了再說! 避免吃悶虧無故遭抬價! 台中搬家公司 免費估價,有契約讓您安心有保障! 評比 彰化搬家公司費用 , 南投搬家公司費用 收費行情懶人包大公開 彰化搬家費用 , 南投搬家費用 ,距離,噸數怎麼算?達人教你簡易估價知識! Orignal From: 不滿國際規範斷財路 非洲多國擬退野生動保公約

全球第一國 帛琉立法禁用、禁售防曬乳

摘錄自2018年11月2日蘋果日報帛琉報導 為了保護珊瑚礁生態,帛琉政府昨(1)日表示已立法嚴禁販售並使用防曬乳,此法將於2020年1月1日起正式生效。帛琉也成為全球首個全面禁止防曬乳的國家。 帛琉國會上周通過此法案,全面禁止使用和販售含有10種有害化學物質的防曬乳,違者將被處以1000美元(約3萬783元台幣)罰款。若遊客被發現私帶防曬乳入境,也會遭到沒收。帛琉總統雷蒙傑索(Tommy Remengesau)說:「沒收(防曬乳)已經足夠讓人不進行商業使用,而這也是很聰明的一招,一方面教育觀光客,又不會把他們嚇跑。」 根據官方說法,帛琉的熱門潛水點每小時會有4艘載著觀光客的船隻造訪,他們身上的防曬乳化學物質相當可觀。總統府發言人說:「帛琉各潛水和浮潛地點每天都有好幾加崙的防曬乳入海。我們只是盡力要防止環境遭受污染。」 本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理 【其他文章推薦】 ※ 台中搬家 , 彰化搬家 , 南投搬家 前需注意的眉眉角角,別等搬了再說! ※在找尋 搬家 公司嗎? ※搬家不受騙不被宰 桃園搬家公司 , 桃園市搬家公司 公開報價讓你比價不吃虧! Orignal From: 全球第一國 帛琉立法禁用、禁售防曬乳