隨著信息技術(shù)深入應(yīng)用,企業(yè)的IT組織效能提升與數(shù)字化轉(zhuǎn)型需求越發(fā)迫切。9月起,嘉為藍(lán)鯨《研效一體,價值釋放》線上課程直播,針對企業(yè)IT部門DevOps落地實踐分六期詳解項目管理、制品分發(fā)、持續(xù)交付、測試管理、研發(fā)效能洞察、價值流管理場景。
在企業(yè)數(shù)字化轉(zhuǎn)型進(jìn)程中,業(yè)務(wù)系統(tǒng)架構(gòu)將逐步經(jīng)歷由單體系統(tǒng)向微服務(wù)架構(gòu)的整體性轉(zhuǎn)變。這種轉(zhuǎn)變的背后,是企業(yè)對于快速響應(yīng)市場變化、提升業(yè)務(wù)靈活性和可擴(kuò)展性的迫切需求。但在架構(gòu)轉(zhuǎn)型過程中,不可避免地會遇到傳統(tǒng)服務(wù)及微服務(wù)并行的狀況。本次直播針對如何做好混合架構(gòu)發(fā)布編排的問題,系統(tǒng)介紹了一套混合發(fā)布編排的可行思路及最佳實踐,為混合架構(gòu)發(fā)布設(shè)計提供參考。
01. 傳統(tǒng)單體架構(gòu)與微服務(wù)架構(gòu)
傳統(tǒng)單體系統(tǒng)架構(gòu)通常將所有功能集成在一個單一的、大型的應(yīng)用程序中,這種架構(gòu)雖然在初期階段有其便利性和效率性,但隨著業(yè)務(wù)的不斷擴(kuò)展和復(fù)雜化,其缺點也逐漸顯現(xiàn)出來。比如,任何一個小的修改都可能需要對整個系統(tǒng)進(jìn)行測試和部署,這無疑大大限制了企業(yè)的敏捷性和靈活性。
相比之下,微服務(wù)架構(gòu)將系統(tǒng)拆分為一組小的、獨立的、互相通信的服務(wù),每個服務(wù)都有自己的數(shù)據(jù)庫和業(yè)務(wù)邏輯,可以獨立進(jìn)行開發(fā)、部署和擴(kuò)展。這種架構(gòu)使得企業(yè)可以按需快速部署新的服務(wù),也可以更靈活地對現(xiàn)有服務(wù)進(jìn)行優(yōu)化和升級,大大提升了系統(tǒng)的可擴(kuò)展性和可維護(hù)性。同時,通過服務(wù)之間的解耦,也可以降低系統(tǒng)的復(fù)雜性,提升系統(tǒng)的穩(wěn)定性。
因此,單體架構(gòu)向微服務(wù)架構(gòu)轉(zhuǎn)變,是大多數(shù)業(yè)務(wù)的整體趨勢。但一個系統(tǒng)是否采用微服務(wù)架構(gòu)設(shè)計或改造,仍需要綜合考慮各種因素,例如系統(tǒng)變更頻繁度、變更安全性要求等。實際上,單體架構(gòu)對于特定業(yè)務(wù)系統(tǒng)(如銀行核心系統(tǒng))仍具有實用價值,采用單體架構(gòu)可保障其穩(wěn)定性和變更可控性,不會被完全替代;亦或是系統(tǒng)過于老舊,難以進(jìn)行微服務(wù)改造,從而必須繼續(xù)采用單體架構(gòu)。無論是何種原因,混合架構(gòu)在大部分行業(yè)將會不可避免地產(chǎn)生,并長期存在。
02. 不同架構(gòu)發(fā)布方式存在差異
傳統(tǒng)單體架構(gòu)與微服務(wù)架構(gòu),在發(fā)布方式上也具有顯著區(qū)別。
對于傳統(tǒng)單體架構(gòu),應(yīng)用程序通常是單體應(yīng)用,所有的組件都打包在一起,形成一個單獨的部署包。部署時,需要將整個應(yīng)用程序部署到服務(wù)器上,這意味著對應(yīng)用程序的任何部分進(jìn)行更新,都需要重新打包整個應(yīng)用程序并重新部署。由于這種發(fā)布方式的特性,整個應(yīng)用程序的停機(jī)時間較長,這可能對用戶體驗產(chǎn)生負(fù)面影響。
然而,在微服務(wù)架構(gòu)中,發(fā)布方式則有所不同。開發(fā)人員首先編寫代碼并進(jìn)行測試,然后將代碼打包成一個單獨的部署包。接下來,部署人員將部署包上傳到服務(wù)器上,并在服務(wù)器上進(jìn)行部署和配置。最后,運維人員會對部署的服務(wù)進(jìn)行監(jiān)控和維護(hù)。由于每個服務(wù)都是獨立的,因此在更新或者修改某一服務(wù)時,只需要重新部署對應(yīng)的服務(wù),而不是整個應(yīng)用程序,這大大減少了停機(jī)時間,提高了系統(tǒng)的可用性和用戶體驗。
傳統(tǒng)單體和微服務(wù)架構(gòu)在發(fā)布方式上的差異,意味著難以采用傳統(tǒng)的手工發(fā)布方式,對混合了兩種架構(gòu)的系統(tǒng)進(jìn)行逐步、逐級操作,這種方式將面臨巨大的不確定性和發(fā)布風(fēng)險,例如發(fā)布版本、制品的錯配,發(fā)布出現(xiàn)錯誤后難以回滾等。
03. 混合發(fā)布的定義及必要性
當(dāng)前我們在與眾多客戶的交流中,總結(jié)了混合架構(gòu)發(fā)布面臨的多種問題和痛點,例如,如何在混合云環(huán)境下適配部署在不同環(huán)境應(yīng)用的協(xié)同發(fā)布,如何有效關(guān)聯(lián)發(fā)布資產(chǎn),如何保障發(fā)布過程有序高效的同時還能夠盡可能地降低發(fā)布風(fēng)險,如何有效地建設(shè)完整的混合發(fā)布管理體系等。
總體來說,需要一種相對統(tǒng)一的混合發(fā)布實踐,整合復(fù)雜混合架構(gòu)發(fā)布過程,在保障發(fā)布高效性的同時,還能盡可能地保證多次發(fā)布一致性和穩(wěn)定性,實現(xiàn)混合發(fā)布編排的標(biāo)準(zhǔn)化、自動化和一體化。
04. 混合發(fā)布最佳實踐
本次直播介紹的混合發(fā)布最佳實踐,將為上述問題痛點提供一種解決的思路和框架。
混合發(fā)布實踐主要由雙模工程域、發(fā)布單、多級工程流水線編排三大子實踐組成,需要通過研發(fā)團(tuán)隊、組織級流程規(guī)范以及一體化研發(fā)工具的相互配合實現(xiàn)。
1)雙模工程域分解
對于單體架構(gòu),更適合采用傳統(tǒng)的瀑布式研發(fā)模式。在單體架構(gòu)中,由于所有的功能模塊都集成在一個大的應(yīng)用中,修改和更新都需要對整個系統(tǒng)進(jìn)行,因此,預(yù)先進(jìn)行詳細(xì)的需求分析和設(shè)計,然后按部就班地進(jìn)行開發(fā)和測試,這種方式更符合單體架構(gòu)的特性。
對于微服務(wù)架構(gòu),更適合采用敏捷開發(fā)模式。在微服務(wù)架構(gòu)中,系統(tǒng)被拆分成許多獨立的服務(wù),每個服務(wù)都可以獨立進(jìn)行開發(fā)、部署和更新。這種架構(gòu)讓團(tuán)隊有更多的靈活性,可以快速響應(yīng)業(yè)務(wù)需求的變化,迭代更新服務(wù),因此,敏捷開發(fā)模式與微服務(wù)架構(gòu)更為相配。
在這兩種模式中,工程部分并非是完全不同的,其中的開發(fā)任務(wù)拆分、編碼、構(gòu)建、測試、制品分發(fā)、部署執(zhí)行等動作,本質(zhì)上仍是一致的。因此,即使是傳統(tǒng)的單體架構(gòu),依舊可以通過流水線編排,對發(fā)布工程進(jìn)行線上化和自動化,并可加入原本手工操作中需要花費大量時間完成的工作,如需求代碼比對和文檔清單校驗等。通過對雙模主流程的區(qū)分和抽象,可以準(zhǔn)確識別出各自工程域中的關(guān)鍵節(jié)點,以及節(jié)點所需關(guān)聯(lián)的發(fā)布資產(chǎn),進(jìn)而為后續(xù)環(huán)節(jié)打好基礎(chǔ)。
2)統(tǒng)一發(fā)布調(diào)度
在多模主流程節(jié)點及資產(chǎn)被清晰識別的基礎(chǔ)上,使用統(tǒng)一發(fā)布單對發(fā)布資產(chǎn)進(jìn)行標(biāo)注,從而便于后續(xù)通過工程流水線,按照既定配置,對各節(jié)點資產(chǎn)進(jìn)行統(tǒng)一匯聚。
3)工程編排實踐
在發(fā)布單關(guān)聯(lián)了相應(yīng)的發(fā)布資產(chǎn)后,需要按照最小化發(fā)布單元(如單個微服務(wù)),建設(shè)互相獨立自動化發(fā)布流水線,并通過多級流水線的方式依次組裝,形成自動化發(fā)布工程流水線組,按照固定的規(guī)則逐級匯聚,并按照系統(tǒng)間關(guān)聯(lián),以靈活的調(diào)度方式進(jìn)行發(fā)布。
05. 混合發(fā)布最佳實踐收益
上述混合發(fā)布最佳實踐的核心收益在于,對于復(fù)雜混合系統(tǒng)的復(fù)雜業(yè)務(wù)需求,即能夠提高整體交付效率,降低交付成本,同時保障交付過程質(zhì)量,并增強(qiáng)了問題追溯能力。
首先,通過采用“一包到底”的制品晉級方式,可以確保數(shù)據(jù)源(制品)的可信度,避免了生產(chǎn)與測試制品版本不一致的問題。這種做法可以確?!八鶞y即所構(gòu)”、“所發(fā)即所測”。
其次,基于統(tǒng)一發(fā)布單,可以實現(xiàn)發(fā)布資產(chǎn)關(guān)聯(lián),快速確認(rèn)發(fā)布資產(chǎn)范圍,提升發(fā)布效率。這一做法避免了反復(fù)確認(rèn)發(fā)布范圍的需求,減少了審批流程,提高了工作效率。
再次,依托一體化研發(fā)平臺和自動化流水線,能夠實現(xiàn)混合發(fā)布編排的自動化和可視化,降低了混合發(fā)布編排的工程門檻,避免了人工操作導(dǎo)致的發(fā)布問題。這一做法可以解決因缺乏統(tǒng)一發(fā)布工具而導(dǎo)致的發(fā)布編排困難,提升發(fā)布過程的效率。
最后,通過編排緊急回滾流水線和基于發(fā)布資產(chǎn)鏈路的溯源方式,可以快速向上游制品、配置和代碼溯源,提升缺陷修復(fù)效率和準(zhǔn)確性。這一做法提供了一種有效的問題追溯機(jī)制,一旦業(yè)務(wù)系統(tǒng)出現(xiàn)問題,能夠迅速回滾并找出問題源頭。
總的來說,本次介紹混合發(fā)布最佳實踐在提升整體發(fā)布效率、確保發(fā)布資產(chǎn)準(zhǔn)確性和增強(qiáng)問題追溯能力等方面能夠為研發(fā)和運維發(fā)布團(tuán)隊帶來多種正面影響,為企業(yè)數(shù)字化轉(zhuǎn)型提供有效支持。
06. 發(fā)布管理體系建設(shè)
如果您希望參考上述實踐,構(gòu)建自己的混合發(fā)布體系,那么一個良好的組織架構(gòu)、合適的管理規(guī)范及成熟的一體化研發(fā)工具平臺,將是不可或缺的。若您在建設(shè)研發(fā)體系的過程中存在困惑,歡迎聯(lián)系嘉為藍(lán)鯨產(chǎn)品及咨詢團(tuán)隊,我們將為您提供一站式、全方位的研發(fā)體系轉(zhuǎn)型服務(wù),助力您解決混合架構(gòu)發(fā)布的多重痛點,實現(xiàn)混合發(fā)布質(zhì)效的共同飛躍。
SRE轉(zhuǎn)型:銀行SRE模式推廣策略
查看詳細(xì)
從設(shè)備到數(shù)據(jù):存儲監(jiān)控的關(guān)鍵與實踐
查看詳細(xì)
AI破圈爆火!殊不知運維才是幕后“定海神針”!
查看詳細(xì)
AI賦能DevOps:智能排錯、代碼修復(fù)與需求生成,打造高效開發(fā)新范式!
查看詳細(xì)
LLMOps+DeepSeek:大模型升級一體化運維
查看詳細(xì)
DeepSeek賦能企業(yè)研發(fā):DevOps+AI 新時代再升級!
查看詳細(xì)
申請演示