現(xiàn)代化傳統(tǒng)應(yīng)用軟件的那些Docker工具
譯文【51CTO.com快譯】在過去兩年,Docker與客戶密切合作,利用Docker容器技術(shù)和行業(yè)領(lǐng)先的容器平臺Docker Enterprise現(xiàn)代化傳統(tǒng)應(yīng)用軟件組合。這類應(yīng)用軟件通常是整體式,在Windows Server 2008或Windows Server 2003之類的舊操作系統(tǒng)上運(yùn)行,很難從本地?cái)?shù)據(jù)中心遷移到公共云。
Docker平臺可以緩解每一個痛點(diǎn),只需將應(yīng)用軟件與特定操作系統(tǒng)分離開來,支持微服務(wù)架構(gòu)模式,以及促進(jìn)本地環(huán)境、云環(huán)境和混合環(huán)境之間的可移植性。
隨著現(xiàn)代化傳統(tǒng)應(yīng)用軟件(MTA)計(jì)劃趨于成熟,Docker投入資源開發(fā)了工具和方法,加快向容器轉(zhuǎn)型,并縮短從Docker Enterprise平臺獲得價值所需的時間。從最初的應(yīng)用軟件評估過程到集群上運(yùn)行容器化應(yīng)用軟件,Docker致力于為踏上MTA之旅的客戶改善體驗(yàn)。
應(yīng)用軟件發(fā)現(xiàn)和評估
企業(yè)開發(fā)和維護(hù)一大批的應(yīng)用軟件。這類應(yīng)用軟件采用由***方和第三方開發(fā)團(tuán)隊(duì)開發(fā)的無數(shù)種語言、框架和架構(gòu)。容器化過程的***步是確定哪些應(yīng)用軟件最適合容器、從哪里開始這個過程。
一種自然的本能是選擇最復(fù)雜的應(yīng)用軟件開始容器化;理由是,如果容器適用于最棘手的應(yīng)用軟件,就會適用于不太復(fù)雜的應(yīng)用軟件。對于剛接觸Docker生態(tài)系統(tǒng)的企業(yè)來說,這種方法可能充滿挑戰(zhàn)。如果從不太復(fù)雜,但仍代表整批應(yīng)用軟件,并與組織目標(biāo)相一致的某個應(yīng)用軟件開始踏上容器化之旅,可以在面對更棘手的應(yīng)用軟件之前提升容器方面的經(jīng)驗(yàn)和技能。
Docker已開發(fā)了一系列原型(archetype),有助于根據(jù)架構(gòu)特點(diǎn)和容器化的估計(jì)工作量將類似的應(yīng)用軟件分在一個組:
評估應(yīng)用軟件組合、將應(yīng)用軟件歸入每一個原型,有助于為某一批應(yīng)用軟件估計(jì)工作量,并有助于確定適合容器化項(xiàng)目的初始應(yīng)用軟件。有多種方可以執(zhí)行此類評估,包括:
- 手動發(fā)現(xiàn)和評估需要人員檢查應(yīng)用軟件組合中的每個應(yīng)用軟件。如果應(yīng)用軟件數(shù)量較少,這種方法常常易于管理,但很難適用于成百上千應(yīng)用軟件。
- 配置管理數(shù)據(jù)庫(CMDB)在企業(yè)內(nèi)使用時,可提供關(guān)于某個環(huán)境的現(xiàn)有詳細(xì)信息。回顧這類數(shù)據(jù)有助于確立應(yīng)用軟件特點(diǎn)和相關(guān)原型。
- 來自RISC Networks、Movere及BMC Helix Discovery等供應(yīng)商的自動化工具通過監(jiān)測服務(wù)器一段時間然后生成報告,以此提供對數(shù)據(jù)中心環(huán)境的詳細(xì)評估。這類報告可用于容器化項(xiàng)目,有助于了解工作負(fù)載之間的相互依賴。
- 可以請系統(tǒng)集成商進(jìn)行正式的應(yīng)用軟件組合評估。這類集成商通常有成熟的方法和專有工具來幫助評估應(yīng)用軟件。
自動化容器化
為傳統(tǒng)應(yīng)用軟件構(gòu)建容器可能會帶來幾個挑戰(zhàn)。應(yīng)用軟件的原始開發(fā)人員常常早已找不到,很難了解應(yīng)用軟件邏輯是如何構(gòu)建的。正式的源代碼又常常沒有,應(yīng)用軟件改而在虛擬機(jī)上運(yùn)行。跨數(shù)十個或數(shù)百個應(yīng)用軟件擴(kuò)展容器化項(xiàng)目耗時且復(fù)雜。
使用Docker開發(fā)的一款轉(zhuǎn)換工具可以緩解這些痛點(diǎn)。作為Docker Enterprise平臺的一部分,該工具旨在使這項(xiàng)任務(wù)實(shí)現(xiàn)自動化:為在虛擬機(jī)或裸機(jī)服務(wù)器上運(yùn)行的應(yīng)用軟件生成Dockerfile。掃描服務(wù)器以確定如何配置操作系統(tǒng)、如何設(shè)置Web服務(wù)器以及應(yīng)用軟件代碼如何運(yùn)行。然后將數(shù)據(jù)整合到Dockerfile中,并將應(yīng)用軟件代碼拉入到目錄中,為現(xiàn)代操作系統(tǒng)上的Docker Build作好準(zhǔn)備。比如說,可以掃描Windows Server 2003環(huán)境,為在不同IIS Application Pools中運(yùn)行的基于IIS的.NET應(yīng)用軟件生成Dockerfile。這種自動化將用戶由開發(fā)者變成Dockerfile的編輯者,大大減少了傳統(tǒng)應(yīng)用軟件容器化所需的時間和精力。
集群管理
在單臺服務(wù)器上運(yùn)行容器對于單個開發(fā)人員來說可能足夠了,但一群協(xié)同工作的服務(wù)器用于運(yùn)行基于容器的工作負(fù)載。過去,這種服務(wù)器集群的創(chuàng)建和管理完全由公共云提供商控制,用戶被某套基礎(chǔ)設(shè)施牢牢束縛。
Docker Enterprise 3.0平臺含有一個名為“Docker Cluster”的新Docker CLI插件。Docker Cluster通過使用聲明性YAML文件來自動供應(yīng)和配置基礎(chǔ)設(shè)施資源,簡化了Docker Enterprise集群的初始創(chuàng)建。集群可以跨眾多基礎(chǔ)設(shè)施供應(yīng)商(包括Azure、AWS和VMware)使用,以便在各大基礎(chǔ)設(shè)施目標(biāo)上構(gòu)建同樣的容器平臺。這種更高的靈活性降低了被某一家提供商鎖定的可能性,確??缍嘣坪突旌檄h(huán)境的一致性,并提供了通過Kubernetes或Swarm編排工具部署容器這個選項(xiàng)。
除了自動化工具外,Docker還為認(rèn)證基礎(chǔ)設(shè)施合作伙伴提供了詳細(xì)的、針對特定基礎(chǔ)設(shè)施的參考架構(gòu)(https://success.docker.com/architectures#certified-infra),列出了針對各家提供商的優(yōu)秀實(shí)踐。除了自動化CLI工具外,這些文檔還提供了實(shí)施Docker Enterprise方面的全面指導(dǎo)。Docker的Solution Briefs(https://success.docker.com/solutions)資料庫附有將Docker Enterprise與常見容器生態(tài)系統(tǒng)解決方案集成的額外指導(dǎo)。
有了Docker Cluster、Solution Briefs和參考架構(gòu),Docker Enterprise集群的配置和管理得到了顯著簡化。這些工具讓你可以專注于傳統(tǒng)應(yīng)用軟件的容器化,而不是將另外時間投入到容器集群的設(shè)置。
原文標(biāo)題:Docker Tools for Modernizing Traditional Applications,作者:Steven Follis
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】