微信邦

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

掃一掃,訪問微社區

返回列表 發新帖
查看: 6342|回復: 0
打印 上一主題 下一主題

淺談微服務的CI/CD

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2019-3-21 09:36:11 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
生活圈制作
近幾年微服務架構與容器化技術飛速發展,隨之而來的是持續集成與持續交付的概念又重新不斷被提及,越來越多的公司開始使用持續集成系統來解決頻繁發布帶來的質量問題,使用持續交付工具實現代碼的自動部署。

持續交付

持續交付(Continuous Delivery,CD)是一種軟件工程方法,開發團隊以快速、自動化和可重復的方式從源代碼生成軟件發布版本,確保軟件可以隨時可靠地發布,它更加注重給最終用戶提供應用的能力。
隨著微服務和云原生架構的廣泛采用,對持續交付工具和實踐的需求越來越大。微服務帶來了許多優點,比如通過把復雜的業務拆分為若干小業務,每個業務寫成一個服務,服務足夠內聚、足夠小,服務的邊界也明確,代碼會容易理解、開發效率得以提高;每個微服務可以獨立部署,讓持續部署成為可能;可以提高系統的容錯性,不會因為某一個服務的錯誤導致整個系統癱瘓……
但是系統中微服務不斷增多,需要大量的協調工作才能同步地集成和部署一組微服務,這使得持續交付也變得復雜起來,而脫胎于微服務架構思想的容器技術正是解決這一問題的良藥。

簡單來說,通過將一個微服務封裝在一個容器中,開發者可以在這樣一個獨立的環境中進行開發,隨后測試與運維人員可以直接使用這個容器進行部署并測試與發布,大大簡化了軟件交付過程。

持續集成

說到持續交付就離不開持續集成,持續集成也就是 Continuous Integration,CI,它與持續交付是什么關系呢?
持續交付是在持續集成的基礎上,將集成后的代碼進行發布,供用戶使用,它強調的是“給最終用戶一個交待”;而持續集成是指開發團隊成員經常集成他們的工作,每次集成都通過自動化的構建來驗證,包括編譯、發布與自動化測試等過程,從而盡快發現集成錯誤。
持續集成的基本思想是使用一個自動化過程監測源碼倉庫是否有變更,當變更被推送到倉庫時,它會監測到更改、下載副本、構建、部署、運行相關單元測試并發布。
隨著公司業務流量、用戶數不斷增長,無論傳統的測試團隊如何增加人力,也無法解決軟件重構、系統增加新功能等測試需求,持續集成變得困難重重。前邊說到微服務架構使得持續交付變復雜,其實這樣的復雜性也體現在持續集成中,比如它會帶來一些問題:

  • 服務交付周期變短,自動化測試開發速度跟不上交付的速度
  • 多個服務同時開發,聯調耗時日益增長
  • 自測時需要部署和維護多個依賴方服務
  • 由于服務數量增多,鏈路變長,調用依賴增多,整個環境的搭建會十分吃力
  • 多人共用一套環境,互相影響,容易影響測試結果
  • 一次提測服務增多,提測了多個倉庫,使得 CI 工作爆炸性增加
  • ……


然而團隊可以基于微服務框架與持續集成系統,打造自動化和流程標準化的持續集成平臺,反過來讓持續集成為微服務架構強有力的基礎設施支持,充分利用微服務的優勢。
但是具體怎樣去落地呢?當前業內已經有不少團隊分享過他們打造微服務持續集成工具鏈的實踐方案,一般情況下,根據不同業務性質與團隊特性,每家都有自己面臨的問題,并且基于具體問題設計出不同的持續集成方案。
雖然方案不同,但是在傳播通用經驗方面還是起了不小的作用。在本周末開源中國源創會上,來自閱文集團的后臺開發專家與用戶中心架構負責人俞慧濤也將為大家分享如何利用微服務框架 Tars 結合 CI/CD 系統 Jenkins 打造持續集成開發測試環境。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友 微信微信
收藏收藏
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

微信邦網聯系QQ|Archiver|手機版|小黑屋|魯公網安備 37082802000167號|微信邦 ( 魯ICP備13013993號-5

GMT+8, 2019-8-27 08:27 , Processed in 0.161925 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Wxuse Inc. | Style by ytl QQ:1400069288

快速回復 返回頂部 返回列表
海南七星彩开奖