隨著信息技術深入應用,企業的IT組織效能提升與數字化轉型需求越發迫切。9月起,嘉為藍鯨《研效一體,價值釋放》線上課程直播,針對企業IT部門DevOps落地實踐分六期詳解項目管理、制品分發、持續交付、測試管理、研發效能洞察、價值流管理場景。
在企業數字化轉型進程中,業務系統架構將逐步經歷由單體系統向微服務架構的整體性轉變。這種轉變的背后,是企業對于快速響應市場變化、提升業務靈活性和可擴展性的迫切需求。但在架構轉型過程中,不可避免地會遇到傳統服務及微服務并行的狀況。本次直播針對如何做好混合架構發布編排的問題,系統介紹了一套混合發布編排的可行思路及最佳實踐,為混合架構發布設計提供參考。
01. 傳統單體架構與微服務架構
傳統單體系統架構通常將所有功能集成在一個單一的、大型的應用程序中,這種架構雖然在初期階段有其便利性和效率性,但隨著業務的不斷擴展和復雜化,其缺點也逐漸顯現出來。比如,任何一個小的修改都可能需要對整個系統進行測試和部署,這無疑大大限制了企業的敏捷性和靈活性。
相比之下,微服務架構將系統拆分為一組小的、獨立的、互相通信的服務,每個服務都有自己的數據庫和業務邏輯,可以獨立進行開發、部署和擴展。這種架構使得企業可以按需快速部署新的服務,也可以更靈活地對現有服務進行優化和升級,大大提升了系統的可擴展性和可維護性。同時,通過服務之間的解耦,也可以降低系統的復雜性,提升系統的穩定性。
因此,單體架構向微服務架構轉變,是大多數業務的整體趨勢。但一個系統是否采用微服務架構設計或改造,仍需要綜合考慮各種因素,例如系統變更頻繁度、變更安全性要求等。實際上,單體架構對于特定業務系統(如銀行核心系統)仍具有實用價值,采用單體架構可保障其穩定性和變更可控性,不會被完全替代;亦或是系統過于老舊,難以進行微服務改造,從而必須繼續采用單體架構。無論是何種原因,混合架構在大部分行業將會不可避免地產生,并長期存在。
02. 不同架構發布方式存在差異
傳統單體架構與微服務架構,在發布方式上也具有顯著區別。
對于傳統單體架構,應用程序通常是單體應用,所有的組件都打包在一起,形成一個單獨的部署包。部署時,需要將整個應用程序部署到服務器上,這意味著對應用程序的任何部分進行更新,都需要重新打包整個應用程序并重新部署。由于這種發布方式的特性,整個應用程序的停機時間較長,這可能對用戶體驗產生負面影響。
然而,在微服務架構中,發布方式則有所不同。開發人員首先編寫代碼并進行測試,然后將代碼打包成一個單獨的部署包。接下來,部署人員將部署包上傳到服務器上,并在服務器上進行部署和配置。最后,運維人員會對部署的服務進行監控和維護。由于每個服務都是獨立的,因此在更新或者修改某一服務時,只需要重新部署對應的服務,而不是整個應用程序,這大大減少了停機時間,提高了系統的可用性和用戶體驗。
傳統單體和微服務架構在發布方式上的差異,意味著難以采用傳統的手工發布方式,對混合了兩種架構的系統進行逐步、逐級操作,這種方式將面臨巨大的不確定性和發布風險,例如發布版本、制品的錯配,發布出現錯誤后難以回滾等。
03. 混合發布的定義及必要性
當前我們在與眾多客戶的交流中,總結了混合架構發布面臨的多種問題和痛點,例如,如何在混合云環境下適配部署在不同環境應用的協同發布,如何有效關聯發布資產,如何保障發布過程有序高效的同時還能夠盡可能地降低發布風險,如何有效地建設完整的混合發布管理體系等。
總體來說,需要一種相對統一的混合發布實踐,整合復雜混合架構發布過程,在保障發布高效性的同時,還能盡可能地保證多次發布一致性和穩定性,實現混合發布編排的標準化、自動化和一體化。
04. 混合發布最佳實踐
本次直播介紹的混合發布最佳實踐,將為上述問題痛點提供一種解決的思路和框架。
混合發布實踐主要由雙模工程域、發布單、多級工程流水線編排三大子實踐組成,需要通過研發團隊、組織級流程規范以及一體化研發工具的相互配合實現。
1)雙模工程域分解
對于單體架構,更適合采用傳統的瀑布式研發模式。在單體架構中,由于所有的功能模塊都集成在一個大的應用中,修改和更新都需要對整個系統進行,因此,預先進行詳細的需求分析和設計,然后按部就班地進行開發和測試,這種方式更符合單體架構的特性。
對于微服務架構,更適合采用敏捷開發模式。在微服務架構中,系統被拆分成許多獨立的服務,每個服務都可以獨立進行開發、部署和更新。這種架構讓團隊有更多的靈活性,可以快速響應業務需求的變化,迭代更新服務,因此,敏捷開發模式與微服務架構更為相配。
在這兩種模式中,工程部分并非是完全不同的,其中的開發任務拆分、編碼、構建、測試、制品分發、部署執行等動作,本質上仍是一致的。因此,即使是傳統的單體架構,依舊可以通過流水線編排,對發布工程進行線上化和自動化,并可加入原本手工操作中需要花費大量時間完成的工作,如需求代碼比對和文檔清單校驗等。通過對雙模主流程的區分和抽象,可以準確識別出各自工程域中的關鍵節點,以及節點所需關聯的發布資產,進而為后續環節打好基礎。
2)統一發布調度
在多模主流程節點及資產被清晰識別的基礎上,使用統一發布單對發布資產進行標注,從而便于后續通過工程流水線,按照既定配置,對各節點資產進行統一匯聚。
3)工程編排實踐
在發布單關聯了相應的發布資產后,需要按照最小化發布單元(如單個微服務),建設互相獨立自動化發布流水線,并通過多級流水線的方式依次組裝,形成自動化發布工程流水線組,按照固定的規則逐級匯聚,并按照系統間關聯,以靈活的調度方式進行發布。
05. 混合發布最佳實踐收益
上述混合發布最佳實踐的核心收益在于,對于復雜混合系統的復雜業務需求,即能夠提高整體交付效率,降低交付成本,同時保障交付過程質量,并增強了問題追溯能力。
首先,通過采用“一包到底”的制品晉級方式,可以確保數據源(制品)的可信度,避免了生產與測試制品版本不一致的問題。這種做法可以確?!八鶞y即所構”、“所發即所測”。
其次,基于統一發布單,可以實現發布資產關聯,快速確認發布資產范圍,提升發布效率。這一做法避免了反復確認發布范圍的需求,減少了審批流程,提高了工作效率。
再次,依托一體化研發平臺和自動化流水線,能夠實現混合發布編排的自動化和可視化,降低了混合發布編排的工程門檻,避免了人工操作導致的發布問題。這一做法可以解決因缺乏統一發布工具而導致的發布編排困難,提升發布過程的效率。
最后,通過編排緊急回滾流水線和基于發布資產鏈路的溯源方式,可以快速向上游制品、配置和代碼溯源,提升缺陷修復效率和準確性。這一做法提供了一種有效的問題追溯機制,一旦業務系統出現問題,能夠迅速回滾并找出問題源頭。
總的來說,本次介紹混合發布最佳實踐在提升整體發布效率、確保發布資產準確性和增強問題追溯能力等方面能夠為研發和運維發布團隊帶來多種正面影響,為企業數字化轉型提供有效支持。
06. 發布管理體系建設
如果您希望參考上述實踐,構建自己的混合發布體系,那么一個良好的組織架構、合適的管理規范及成熟的一體化研發工具平臺,將是不可或缺的。若您在建設研發體系的過程中存在困惑,歡迎聯系嘉為藍鯨產品及咨詢團隊,我們將為您提供一站式、全方位的研發體系轉型服務,助力您解決混合架構發布的多重痛點,實現混合發布質效的共同飛躍。
申請演示
主站蜘蛛池模板: 河西区| 瓦房店市| 建始县| 蒙自县| 威信县| 东阳市| 新野县| 唐河县| 康马县| 西充县| 盈江县| 正宁县| 万载县| 宁强县| 彭山县| 鲁甸县| 桓仁| 台山市| 松桃| 开原市| 宾阳县| 治多县| 淳安县| 黎平县| 洮南市| 福建省| 樟树市| 武定县| 宜兴市| 侯马市| 乡城县| 西城区| 梁河县| 贵州省| 安康市| 阆中市| 乐清市| 天全县| 正蓝旗| 乡宁县| 南郑县|