使用WebLogic共享库连续交付ADF应用程序
介紹
當(dāng)ADF應(yīng)用程序建立在共享庫之上時(shí),有一種非常流行的架構(gòu)模式。 因此,主應(yīng)用程序被部署為EAR,并且所有子系統(tǒng)都在共享庫中實(shí)現(xiàn),這些共享庫可以在“熱”模式下獨(dú)立構(gòu)建并作為JAR部署到WebLogic,而無需停機(jī)。 這種方法的優(yōu)點(diǎn)似乎很明顯:
- 它分解了實(shí)現(xiàn)模塊化和重用概念的應(yīng)用程序
- CI / CD流程可能會更快,因?yàn)閷⒅恢亟?重新部署一個(gè)庫
- 重新部署共享庫沒有停機(jī)時(shí)間
看起來太酷了,人們可以在新項(xiàng)目中選擇這種架構(gòu)模式,并且對實(shí)現(xiàn)應(yīng)用程序時(shí)所做出的決定感到非常滿意。 當(dāng)他們投入生產(chǎn)時(shí),他們會變得更加高興,因?yàn)樗麄兛梢暂p松地修復(fù)大多數(shù)錯(cuò)誤并實(shí)施新的要求,從而避免完全重新部署且沒有任何停機(jī)時(shí)間。
毫無疑問,在投入生產(chǎn)之前,任何更改(以及相應(yīng)的共享庫)都應(yīng)在以前的環(huán)境(例如QA,UAT等)中進(jìn)行部署和測試。
一段時(shí)間內(nèi),沒有人確切知道每種環(huán)境中部署了什么版本的共享庫。 支持這種應(yīng)用程序并在這種情況下實(shí)現(xiàn)新的更改有些棘手,因?yàn)榧词顾谶@種環(huán)境下也可以工作,但由于共享庫的組合可能有所不同,因此無法保證它將在下一個(gè)環(huán)境中正常工作。 如果它是一個(gè)大型應(yīng)用程序,并且有許多共享庫,那么這可能會成為一場噩夢,而且很多時(shí)候人們只是放棄重新部署所有內(nèi)容,最終回到整體EAR。 并不是很酷,但是至少他們現(xiàn)在可以再次入睡了。
解
在這篇文章中,我將展示如何整理事物,并建立一個(gè)使用FlexDeploy在共享庫之上構(gòu)建的ADF應(yīng)用程序的連續(xù)交付過程。 FlexDeploy是一個(gè)快速增長的自動化和DevOps解決方案,如果您想了解所有內(nèi)容,請隨時(shí)訪問該網(wǎng)站 。 在這里,我將專注于FlexDeploy如何通過引入快照和管線的概念,共享庫幫助。
快照是代表整個(gè)系統(tǒng)的一組可部署工件。 如果要重建其中任何一個(gè)工件,那么將創(chuàng)建一個(gè)新快照,其中包含該工件的新版本以及其余工件的先前版本。 在我們的情況下,快照將包含用于主ADF應(yīng)用程序的EAR和用于共享庫的JAR。
為了為我們的應(yīng)用程序創(chuàng)建快照,FlexDeploy應(yīng)該知道它的全部內(nèi)容和組成的項(xiàng)目。 FlexDeploy中有一個(gè)“ 發(fā)布”概念,它是一堆項(xiàng)目,應(yīng)將其內(nèi)置到快照中,并在整個(gè)環(huán)境中作為一個(gè)單元一起部署。
在我們的示例中,有3個(gè)項(xiàng)目-一個(gè)作為主應(yīng)用程序,兩個(gè)針對部門和員工任務(wù)流,部署為共享庫。 每個(gè)項(xiàng)目都在FlexDeploy中單獨(dú)配置,每個(gè)項(xiàng)目“知道”如何獲取其源代碼,如何構(gòu)建和部署(FlexDeploy使用工作流進(jìn)行構(gòu)建和部署,但這是另一個(gè)重要的故事,遠(yuǎn)遠(yuǎn)超出了本文)。
完成所有定義后,只要開發(fā)人員為版本中包含的任何項(xiàng)目推動代碼更改,FlexDeploy都會構(gòu)建一個(gè)新快照。 它僅重建那些已更改的項(xiàng)目(生產(chǎn)耳朵和罐子),其余工件原樣包含在新快照中。
好的,現(xiàn)在我們可以構(gòu)建快照并將其部署到整個(gè)環(huán)境中。 版本定義是指管道。
管道是一種確保嚴(yán)格按照預(yù)定順序在整個(gè)環(huán)境中部署整個(gè)快照的方法。 這意味著只能以Dev-> QA-> Prod的順序(如果以此方式定義了管道)來部署此快照(換句話說,ear / jar版本的這種組合)。 如果在Dev和QA上不成功,那就無法進(jìn)入Prod。 管道由涉及環(huán)境的各個(gè)階段組成,每個(gè)階段均由多個(gè)門(批準(zhǔn),測試結(jié)果等)組成,這意味著快照在此環(huán)境下進(jìn)行處理之前應(yīng)先通過所有門)和步驟(部署,運(yùn)行自動測試,通知,手動步驟) ,…)。
因此,基本上,部署只是管道階段(環(huán)境)中的一個(gè)管道步驟。 此步驟足夠聰明,可以僅重新部署已更改的工件(除非將該步驟配置為執(zhí)行“強(qiáng)制”部署)。 FlexDeploy跟蹤在每個(gè)環(huán)境中已部署了哪些工件版本。
總結(jié)一下,我想說的是,當(dāng)將FlexDeploy用作具有共享庫的ADF應(yīng)用程序的DevOps解決方案時(shí),我們一方面獲得了該架構(gòu)模式的所有好處,另一方面我們可以使事情井井有條,確切知道已部署了哪種組合跨環(huán)境,什么已經(jīng)過測試,可以投入使用,什么失敗了。
而已!
翻譯自: https://www.javacodegeeks.com/2017/12/continuous-delivery-adf-applications-weblogic-shared-libraries.html
總結(jié)
以上是生活随笔為你收集整理的使用WebLogic共享库连续交付ADF应用程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎样合理使用手机
- 下一篇: 为什么手机一打电话就断网