使用Docker容器和Java EE进行持续交付
組織需要一種使應(yīng)用程序交付快速,可預(yù)測(cè)和安全的方法,而諸如docker之類的容器所提供的敏捷性則可以幫助開(kāi)發(fā)人員實(shí)現(xiàn)這一目標(biāo)。 對(duì)于Java EE應(yīng)用程序,這可以在容器中打包應(yīng)用程序,應(yīng)用程序服務(wù)器和其他依賴項(xiàng),這些容器可以在構(gòu)建,測(cè)試和生產(chǎn)環(huán)境中復(fù)制。 這使您更接近實(shí)現(xiàn)連續(xù)交付。 至少這是托馬斯網(wǎng)絡(luò)研討會(huì)上的摘要,我?guī)滋烨耙恢痹诎l(fā)表 。 這是一篇支持博客的文章,其中包含有關(guān)設(shè)置的更多詳細(xì)信息,包括所有指向源代碼和演示的鏈接。 在下面嵌入的開(kāi)發(fā)人員訪談中找到更詳細(xì)的技術(shù)演練。 非常感謝我
合著者Thomas幫助我撰寫了這篇博文。
我們涵蓋了什么?
首先,我們要談一些為什么如今每個(gè)人都熱衷于優(yōu)化應(yīng)用程序交付。 越來(lái)越復(fù)雜的應(yīng)用程序給基礎(chǔ)架構(gòu),團(tuán)隊(duì)和流程帶來(lái)了更大的壓力。 容器承諾通過(guò)將應(yīng)用程序及其運(yùn)行時(shí)組件保持在一起來(lái)提供解決方案。
但是,我們不要止步于此,再往前看,這似乎是操作的理想選擇。 它越來(lái)越多地泄漏到開(kāi)發(fā)人員空間中。 作為開(kāi)發(fā)人員,只需專注于我們最擅長(zhǎng)的工作即可輕松忽略最新的炒作:提供功能正常的應(yīng)用程序。 但說(shuō)實(shí)話,還有更多。 特別是Java EE不僅需要代碼。 因此,容器有望使我們的生活更輕松。
僅僅談?wù)撊萜鬟€不是全部。 它們必須是可用的,并且必須在生產(chǎn)環(huán)境中供開(kāi)發(fā)人員最終使用。 在這里,我們將簡(jiǎn)要介紹一下OpenShift v3即將發(fā)布的內(nèi)容以及它如何適應(yīng)更大的前景。
在簡(jiǎn)短介紹之后,Thomas將帶您詳細(xì)了解所有細(xì)節(jié),從Docker容器開(kāi)始,以及它們?nèi)绾螌?shí)現(xiàn)完整的持續(xù)交付鏈,該鏈完全支持DevOps。
為什么現(xiàn)在呢?
最重要的是,諸如微服務(wù)之類的新架構(gòu)方法使我們脫離了運(yùn)行單片應(yīng)用程序的大型VM和物理服務(wù)器。 單獨(dú)引導(dǎo)的服務(wù)很自然地適合基于容器的部署,因?yàn)檫\(yùn)行它們所需的一切都已完全封裝。 此外,對(duì)優(yōu)化運(yùn)營(yíng)的追求正將越來(lái)越多的基礎(chǔ)架構(gòu)帶入云模型。 我們將把容器作為一種服務(wù)來(lái)提供,與VM相比,容器將更快地部署,運(yùn)行更便宜并且更易于管理。 企業(yè)將使用容器作為目標(biāo)來(lái)運(yùn)行專注于企業(yè)級(jí)操作的PaaS產(chǎn)品。 以容器包裝而不是虛擬機(jī)的形式分發(fā)軟件要更加完善,并且容器也更加標(biāo)準(zhǔn)化。 更容易適應(yīng)不同的供應(yīng)商和供應(yīng)商。 無(wú)論產(chǎn)品使用哪種語(yǔ)言或運(yùn)行時(shí)。 企業(yè)不必再專注于單個(gè)平臺(tái)來(lái)實(shí)現(xiàn)優(yōu)化的運(yùn)營(yíng)和成本。 容器基礎(chǔ)架構(gòu)通過(guò)保持標(biāo)準(zhǔn)化的操作模型并具有未來(lái)的優(yōu)化和附加功能(例如圍繞安全性)的潛力,可以提供更多樣化的技術(shù)基礎(chǔ)。容器及其管理系統(tǒng)是開(kāi)發(fā)人員和操作人員之間的粘合劑,并且是支持的技術(shù)層DevOps運(yùn)動(dòng)。 簡(jiǎn)而言之:容器已準(zhǔn)備就緒。
作為一名Java EE開(kāi)發(fā)人員,我從中獲得什么?
容器是關(guān)于容器內(nèi)部而不是容器外部的內(nèi)容。 將此與PaaS產(chǎn)品進(jìn)行比較很容易。 開(kāi)發(fā)人員不想關(guān)心配置或托管。 他們只想為其應(yīng)用程序提供可靠的運(yùn)行時(shí)。 除了Containers,您所需的東西并不多。 標(biāo)準(zhǔn)格式,標(biāo)準(zhǔn)圖像,甚至可以選擇使用公司范圍內(nèi)的集線器,這將使開(kāi)發(fā)團(tuán)隊(duì)更加高效。 這也與我們?nèi)绾卧O(shè)置本地環(huán)境并將其推廣到我們的團(tuán)隊(duì)有關(guān)。 配置不同的實(shí)例可以在幾秒鐘內(nèi)旋轉(zhuǎn)和拆除。 無(wú)需維護(hù)中間件或數(shù)據(jù)庫(kù)的不同版本,也無(wú)需弄亂路徑或配置。 預(yù)先配置的容器將大大減少團(tuán)隊(duì)的設(shè)置時(shí)間,并允許更輕松地使用不同的配置進(jìn)行測(cè)試。 圖像可以集中開(kāi)發(fā),配置和維護(hù)。 根據(jù)公司標(biāo)準(zhǔn),包括特定的框架或集成庫(kù)。 責(zé)任和教育是激勵(lì)的關(guān)鍵部分。 今天的全棧開(kāi)發(fā)人員希望對(duì)自己的藝術(shù)作品負(fù)責(zé)–端到端。 日復(fù)一日使用相同的la腳API進(jìn)行編程不再是一項(xiàng)繁瑣的工作。 實(shí)際上,容器允許從構(gòu)建到打包以及將您的應(yīng)用程序通過(guò)不同的環(huán)境交付生產(chǎn)的完整往返過(guò)程。 而且由于所有內(nèi)容都可以進(jìn)行版本控制和集中維護(hù),并且在任何環(huán)境中都依賴于相同的操作系統(tǒng)和配置,因此使用Containers可以更完整地預(yù)測(cè)完整的軟件交付鏈。
OpenShift如何適合所有這些?
市場(chǎng)向容器轉(zhuǎn)變的完美例子是OpenShift。 它有不同的版本:
- OpenShift Origin是Red Hat云產(chǎn)品的開(kāi)源項(xiàng)目
- OpenShift Online是Red Hat的公共云應(yīng)用程序開(kāi)發(fā)和托管平臺(tái),可自動(dòng)配置,管理和擴(kuò)展應(yīng)用程序,以便您專注于為業(yè)務(wù),啟動(dòng)或下一個(gè)大創(chuàng)意編寫代碼。 在openshift.com上注冊(cè)以嘗試一下自己
- OpenShift Enterprise是一種內(nèi)部部署的私有平臺(tái)即服務(wù)(PaaS)解決方案,可讓您更快地交付應(yīng)用程序并滿足企業(yè)不斷增長(zhǎng)的應(yīng)用程序需求。
根據(jù)您的需求,您可以自由選擇最適合您需求的解決方案。 從使用Origin來(lái)構(gòu)建自己的PaaS到自己運(yùn)行完全受支持的本地PaaS。
而且,我們將在下一版本的OpenShift上大放異彩! Origin的每個(gè)里程碑都伴隨著OpenShift的新版本。 現(xiàn)在,OpenShift 3的Origin源代碼存儲(chǔ)庫(kù)已可用。 它正在朝著完全重新設(shè)計(jì)的全新架構(gòu)的方向發(fā)展。 這種新架構(gòu)集成了Docker和Kubernetes容器編排和管理系統(tǒng),可在針對(duì)運(yùn)行容器化應(yīng)用程序而優(yōu)化的Atomic主機(jī)上使用。 最重要的是,OpenShift將整合有效且高效的DevOps工作流,這些工作流在平臺(tái)即服務(wù)中為加速應(yīng)用交付發(fā)揮了關(guān)鍵作用。
OpenShift v3的外觀如何?
OpenShift在Kubernetes的基礎(chǔ)上增加了以開(kāi)發(fā)人員和操作為中心的工具,以實(shí)現(xiàn)快速的應(yīng)用程序開(kāi)發(fā),輕松的部署和擴(kuò)展以及對(duì)大小團(tuán)隊(duì)和應(yīng)用程序的長(zhǎng)期生命周期維護(hù)。
從一切開(kāi)始,紅帽一直與Docker社區(qū)合作,以發(fā)展我們現(xiàn)有的容器技術(shù),并通過(guò)libcontainer項(xiàng)目推動(dòng)容器化的新標(biāo)準(zhǔn)。 這項(xiàng)工作導(dǎo)致宣布RHEL 7中對(duì)Docker的支持,并啟動(dòng)Project Atomic以開(kāi)發(fā)新的容器優(yōu)化的Linux主機(jī)。 這種新的容器架構(gòu)是OpenShift v3的核心。
OpenShift v3彈藥筒格式將采用Docker打包模型,并使用戶能夠利用打包為Docker映像打包的任何應(yīng)用程序組件。 這將使開(kāi)發(fā)人員能夠利用Docker Hub社區(qū)來(lái)訪問(wèn)和共享要在OpenShift中使用的容器映像
在OpenShift v3中,我們將Kubernetes集成到OpenShift Broker中以驅(qū)動(dòng)容器編排。
OpenShift v3將帶來(lái)新的功能,以供應(yīng),修補(bǔ)和管理應(yīng)用程序容器,路由和網(wǎng)絡(luò)增強(qiáng)功能以??及供應(yīng)和管理OpenShift平臺(tái)本身。 目標(biāo)是為OpenShift開(kāi)發(fā)人員提供最佳的用戶體驗(yàn)。
- 為即將發(fā)布的版本感到興奮!
完整的演示
網(wǎng)絡(luò)廣播重播已經(jīng)完成,現(xiàn)在是時(shí)候接觸源代碼并獲取#coffee +++,然后坐下來(lái)放松演示,而不是10分鐘即可完成。 托馬斯(Thomas)將介紹所有細(xì)節(jié),我很高興在這兩者之間提出一些令人討厭的問(wèn)題。
別忘了,您隨時(shí)可以重新觀看原始的網(wǎng)絡(luò)研討會(huì) 。
這是prezi演示的體系結(jié)構(gòu)概述,Thomas在網(wǎng)絡(luò)廣播中展示了該概述。
鏈接和進(jìn)一步閱讀
一些思考和家庭作業(yè)的食物。 網(wǎng)絡(luò)研討會(huì)中的鏈接集合以及其他一些資源可供您深入研究。
- “ 使用docker容器和Java EE進(jìn)行持續(xù)交付 ”(網(wǎng)絡(luò)研討會(huì)重播,28日或4月)
- TicketMonster –一個(gè)JBoss示例 (演示中使用的示例Java EE應(yīng)用程序)
- 該示例的完整源代碼
- 編寫您的Docker容器
- 托馬斯的博客
- Arun Gupta關(guān)于Docker的博客
- OpenShift v3的功能
- 原子項(xiàng)目
翻譯自: https://www.javacodegeeks.com/2015/05/continuous-delivery-with-docker-containers-and-java-ee.html
總結(jié)
以上是生活随笔為你收集整理的使用Docker容器和Java EE进行持续交付的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 花生属于什么类食物 花生属于啥类食物
- 下一篇: JUnit:使用Java 8和Asser