直播回顧 | 傳統單體與微服務架構混合發佈方法與實踐

隨着信息技術深入應用,企業的IT組織效能提升與數字化轉型需求越發迫切。9月起,嘉爲藍鯨《研效一體,價值釋放》線上課程直播,針對企業IT部門DevOps落地實踐分六期詳解項目管理、製品分發、持續交付、測試管理、研發效能洞察、價值流管理場景

在企業數字化轉型進程中,業務系統架構將逐步經歷由單體系統向微服務架構的整體性轉變。這種轉變的背後,是企業對於快速響應市場變化、提升業務靈活性和可擴展性的迫切需求。但在架構轉型過程中,不可避免地會遇到傳統服務及微服務並行的狀況。本次直播針對如何做好混合架構發佈編排的問題,系統介紹了一套混合發佈編排的可行思路及最佳實踐,爲混合架構發佈設計提供參考。

01

傳統單體架構與微服務架構

傳統單體系統架構通常將所有功能集成在一個單一的、大型的應用程序中,這種架構雖然在初期階段有其便利性和效率性,但隨着業務的不斷擴展和複雜化,其缺點也逐漸顯現出來。比如,任何一個小的修改都可能需要對整個系統進行測試和部署,這無疑大大限制了企業的敏捷性和靈活性。

相比之下,微服務架構將系統拆分爲一組小的、獨立的、互相通信的服務,每個服務都有自己的數據庫和業務邏輯,可以獨立進行開發、部署和擴展。這種架構使得企業可以按需快速部署新的服務,也可以更靈活地對現有服務進行優化和升級,大大提升了系統的可擴展性和可維護性。同時,通過服務之間的解耦,也可以降低系統的複雜性,提升系統的穩定性。

因此,單體架構向微服務架構轉變,是大多數業務的整體趨勢。但一個系統是否採用微服務架構設計或改造,仍需要綜合考慮各種因素,例如系統變更頻繁度、變更安全性要求等。實際上,單體架構對於特定業務系統(如銀行核心系統)仍具有實用價值,採用單體架構可保障其穩定性和變更可控性,不會被完全替代;亦或是系統過於老舊,難以進行微服務改造,從而必須繼續採用單體架構。無論是何種原因,混合架構在大部分行業將會不可避免地產生,並長期存在。

 

02

不同架構發佈方式存在差異

傳統單體架構與微服務架構,在發佈方式上也具有顯著區別。

對於傳統單體架構,應用程序通常是單體應用,所有的組件都打包在一起,形成一個單獨的部署包。部署時,需要將整個應用程序部署到服務器上,這意味着對應用程序的任何部分進行更新,都需要重新打包整個應用程序並重新部署。由於這種發佈方式的特性,整個應用程序的停機時間較長,這可能對用戶體驗產生負面影響。

然而,在微服務架構中,發佈方式則有所不同。開發人員首先編寫代碼並進行測試然後將代碼打包成一個單獨的部署包。接下來,部署人員將部署包上傳到服務器上,並在服務器上進行部署和配置。最後,運維人員會對部署的服務進行監控和維護。由於每個服務都是獨立的,因此在更新或者修改某一服務時,只需要重新部署對應的服務,而不是整個應用程序,這大大減少了停機時間,提高了系統的可用性和用戶體驗。

傳統單體和微服務架構在發佈方式上的差異,意味着難以採用傳統的手工發佈方式,對混合了兩種架構的系統進行逐步、逐級操作,這種方式將面臨巨大的不確定性和發佈風險,例如發佈版本、製品的錯配,發佈出現錯誤後難以回滾等。

03

混合發佈的定義及必要性

當前我們在與衆多客戶的交流中,總結了混合架構發佈面臨的多種問題和痛點,例如,如何在混合雲環境下適配部署在不同環境應用的協同發佈,如何有效關聯發佈資產,如何保障發佈過程有序高效的同時還能夠儘可能地降低發佈風險,如何有效地建設完整的混合發佈管理體系等。

總體來說,需要一種相對統一的混合發佈實踐,整合複雜混合架構發佈過程,在保障發佈高效性的同時,還能儘可能地保證多次發佈一致性和穩定性,實現混合發佈編排的標準化、自動化和一體化。

04

混合發佈最佳實踐

本次直播介紹的混合發佈最佳實踐,將爲上述問題痛點提供一種解決的思路和框架。

混合發佈實踐主要由雙模工程域、發佈單、多級工程流水線編排三大子實踐組成,需要通過研發團隊、組織級流程規範以及一體化研發工具的相互配合實現。

 

1、雙模工程域分解

對於單體架構,更適合採用傳統的瀑布式研發模式。在單體架構中,由於所有的功能模塊都集成在一個大的應用中,修改和更新都需要對整個系統進行,因此,預先進行詳細的需求分析和設計,然後按部就班地進行開發和測試,這種方式更符合單體架構的特性。

對於微服務架構,更適合採用敏捷開發模式。在微服務架構中,系統被拆分成許多獨立的服務,每個服務都可以獨立進行開發、部署和更新。這種架構讓團隊有更多的靈活性,可以快速響應業務需求的變化,迭代更新服務,因此,敏捷開發模式與微服務架構更爲相配。

在這兩種模式中,工程部分並非是完全不同的,其中的開發任務拆分、編碼、構建、測試、製品分發、部署執行等動作,本質上仍是一致的。因此,即使是傳統的單體架構,依舊可以通過流水線編排,對發佈工程進行線上化和自動化,並可加入原本手工操作中需要花費大量時間完成的工作,如需求代碼比對和文檔清單校驗等。通過對雙模主流程的區分和抽象,可以準確識別出各自工程域中的關鍵節點,以及節點所需關聯的發佈資產,進而爲後續環節打好基礎。

2、統一發布調度

在多模主流程節點及資產被清晰識別的基礎上,使用統一發布單對發佈資產進行標註,從而便於後續通過工程流水線,按照既定配置,對各節點資產進行統一匯聚

3、工程編排實踐

在發佈單關聯了相應的發佈資產後,需要按照最小化發佈單元(如單個微服務),建設互相獨立自動化發佈流水線,並通過多級流水線的方式依次組裝,形成自動化發佈工程流水線組,按照固定的規則逐級匯聚,並按照系統間關聯,以靈活的調度方式進行發佈。

05

混合發佈最佳實踐收益

上述混合發佈最佳實踐的核心收益在於,對於複雜混合系統的複雜業務需求,即能夠提高整體交付效率,降低交付成本,同時保障交付過程質量,增強了問題追溯能力。

首先,通過採用“一包到底”的製品晉級方式,可以確保數據源(製品)的可信度,避免了生產與測試製品版本不一致的問題。這種做法可以確保“所測即所構”、“所發即所測”。

其次,基於統一發布單,可以實現發佈資產關聯,快速確認發佈資產範圍,提升發佈效率。這一做法避免了反覆確認發佈範圍的需求,減少了審批流程,提高了工作效率。

再次,依託一體化研發平臺和自動化流水線,能夠實現混合發佈編排的自動化和可視化,降低了混合發佈編排的工程門檻,避免了人工操作導致的發佈問題。這一做法可以解決因缺乏統一發布工具而導致的發佈編排困難,提升發佈過程的效率。

最後,通過編排緊急回滾流水線和基於發佈資產鏈路的溯源方式,可以快速向上遊製品、配置和代碼溯源,提升缺陷修復效率和準確性。這一做法提供了一種有效的問題追溯機制,一旦業務系統出現問題,能夠迅速回滾並找出問題源頭。

總的來說,本次介紹混合發佈最佳實踐在提升整體發佈效率、確保發佈資產準確性和增強問題追溯能力等方面能夠爲研發和運維發佈團隊帶來多種正面影響,爲企業數字化轉型提供有效支持。

06

發佈管理體系建設

如果您希望參考上述實踐,構建自己的混合發佈體系,那麼一個良好的組織架構、合適的管理規範及成熟的一體化研發工具平臺,將是不可或缺的。若您在建設研發體系的過程中存在困惑,歡迎聯繫嘉爲藍鯨產品及諮詢團隊,我們將爲您提供一站式、全方位的研發體系轉型服務,助力您解決混合架構發佈的多重痛點,實現混合發佈質效的共同飛躍。

直播回看:https://app.ma.scrmtech.com/resources/ResourcePc/ResourcePcInfo?pf_uid=23880_1986&id=50511&source=1&pf_type=3&channel_id=28626&channel_name=%E3%80%90%E5%BC%80%E6%BA%90%E4%B8%AD%E5%9B%BD%E3%80%91&tag_id=e2266e1a10473392

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章