自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

什么是Docker?它是如何解決業(yè)務(wù)難題的?

企業(yè)動(dòng)態(tài)
Docker是一個(gè)開發(fā)人員容納和輕松發(fā)布軟件的平臺。它有助于消除配置環(huán)境以運(yùn)行軟件的開銷,實(shí)質(zhì)上是將環(huán)境與代碼一起運(yùn)送。

 Docker是一個(gè)開發(fā)人員容納和輕松發(fā)布軟件的平臺。它有助于消除配置環(huán)境以運(yùn)行軟件的開銷,實(shí)質(zhì)上是將環(huán)境與代碼一起運(yùn)送。

我們通常使用裝運(yùn)容器類比來解釋。貨運(yùn)公司負(fù)責(zé)將集裝箱從A運(yùn)輸?shù)紹,他們不關(guān)心您放入集裝箱的貨物,但他們確實(shí)關(guān)心您是否以正確的格式將貨物交給他們。

將您的開發(fā)人員視為將軟件打包到容器的創(chuàng)造者。他們構(gòu)建的內(nèi)容可能會因特殊庫、優(yōu)化或配置而變得復(fù)雜。一旦他們準(zhǔn)備好運(yùn)送的軟件,就該把它交給一家知道如何從A到B的貨運(yùn)公司。幸運(yùn)的是,現(xiàn)在它采用標(biāo)準(zhǔn)化格式,DevOps可以輕松地將其轉(zhuǎn)移到生產(chǎn)中。他們甚至可以自動(dòng)化這個(gè)過程,以便將來更容易。

在本文中,我們將舉例說明Docker的業(yè)務(wù)用例,概述如何構(gòu)建Docker化的微服務(wù),使用Amazon的彈性容器服務(wù)(ECS),并概述使用Docker能帶來的的商業(yè)利益。

 

Docker和微服務(wù)架構(gòu)的用例

假設(shè)您的Web應(yīng)用程序有一個(gè)資源密集型的用戶注冊頁面。在每月月初 新用戶會蜂擁而至。為了處理負(fù)載,您的服務(wù)器基礎(chǔ)結(jié)構(gòu)正在幾個(gè)大型負(fù)載平衡服務(wù)器上運(yùn)行(如下所示)。不幸的是,這種處理規(guī)模一年中只有12天。這意味著您的公司將為大部分時(shí)間都沒有使用的資源付費(fèi)。

 

現(xiàn)在,假如一個(gè)關(guān)鍵功能在注冊過程中發(fā)生了變化:出于法律原因,用戶需要被置于二級報(bào)告系統(tǒng)中。目前,您的注冊代碼隱藏在應(yīng)用程序的剩余部分中,將此修復(fù)程序移至生產(chǎn)意味著整個(gè)系統(tǒng)的完全重新部署。開發(fā)人員和基礎(chǔ)設(shè)施將在本周末加班工作,以執(zhí)行這一更新。最糟糕的是,這僅僅是一個(gè)相對較小的變化!

在Docker化的世界中,這是小case。注冊過程可以與主應(yīng)用程序分離,并使用滾動(dòng)更新推送到生產(chǎn)環(huán)境。你可以星期一做,甚至不需要把網(wǎng)站關(guān)閉。無人不為之喝彩,因?yàn)檫@意味著軟件可以快速安全地投入生產(chǎn)。

為了達(dá)到這一點(diǎn),開發(fā)人員可以通過構(gòu)建REST服務(wù)來啟動(dòng)解耦注冊過程。一旦Web前端和注冊服務(wù)的代碼分離,它們就可以進(jìn)行Docker化。開發(fā)人員可以將所有代碼、庫和配置打包到Docker Images中并移交給DevOps。 Docker Swarm,Amazon ECS或Red Hat的OpenShift等集群工具將使DevOps能夠托管Docker容器。他們可以用這些系統(tǒng)在需求高時(shí)擴(kuò)大規(guī)模,在需求低時(shí)縮小規(guī)模。以經(jīng)濟(jì)有效的方式利用資源又反過來解決了我們的***個(gè)問題。

使用Docker和微服務(wù)架構(gòu)

解決可擴(kuò)展性和解耦代碼

讓我們用我們的示例項(xiàng)目來說明這個(gè)容器化的基礎(chǔ)設(shè)施。此代碼包含Web前端和注冊后端。您可能會注意到這些被分成兩個(gè)單獨(dú)的代碼倉庫。沒關(guān)系,在面向服務(wù)的體系結(jié)構(gòu)中,這些服務(wù)相互了解的越少越好。

在下圖中,我們可以看到生活在Amazon ECS群集內(nèi)的Web和注冊容器。用戶注冊請求將到達(dá)Web前端,然后可以向任何注冊服務(wù)詢問進(jìn)行響應(yīng)。

 

讓我們開始克隆示例項(xiàng)目。

確保安裝了Docker和Gradle,以便我們可以構(gòu)建項(xiàng)目和圖像。

 

您可以運(yùn)行以下命令來查看Docker引擎中的圖像。

 

請注意,我們現(xiàn)在有兩個(gè)圖像加上它們構(gòu)建的基本圖像。只是為了好玩,讓我們啟動(dòng)網(wǎng)絡(luò)應(yīng)用程序并訪問。獲取Docker Web映像并將其作為在本地虛擬機(jī)上運(yùn)行的容器啟動(dòng)。

 

我們讓托管機(jī)器訪問8080端口上的容器。使用以下命令,我們現(xiàn)在可以看到它正在運(yùn)行。

 

使用亞馬遜的彈性容器服務(wù)

要真正了解這些Docker圖像的優(yōu)勢,我們需要一個(gè)可擴(kuò)展的基礎(chǔ)架構(gòu)來運(yùn)行它們。出于本演示的目的,Amazon ECS會做得很好。要將圖像輸出到Amazon云,您需要安裝AWS命令行界面。

亞馬遜提供了一個(gè)很棒的向?qū)韼椭喕@個(gè)過程。在其中,您將執(zhí)行以下操作

  • 創(chuàng)建一個(gè)Docker存儲庫來托管您的圖像
  • 將圖像上傳到云端(見下文)
  • 創(chuàng)建運(yùn)行映像的EC2實(shí)例集群
  • 將您的圖像分組到服務(wù)Service中

要將Docker圖像推送到云端,您需要先登錄。

 

上面的命令生成一個(gè)“docker login”,它將Docker主機(jī)指向遠(yuǎn)程倉庫。這將授予對每個(gè)AWS賬戶附帶的默認(rèn)AWS注冊表的訪問權(quán)限。

 

請注意,上述注冊表可以包含許多存儲庫。存儲庫包含圖像的版本。對于此項(xiàng)目,您將需要兩個(gè)存儲庫。一個(gè)用于我們的Web圖像,一個(gè)用于注冊圖像。

為了將圖像發(fā)送到遠(yuǎn)程倉庫,需要對其進(jìn)行適當(dāng)標(biāo)記。像這樣使用您的AWS倉庫的URL。

 

現(xiàn)在讓我們將它們推送到AWS。

 

使用Docker容器擴(kuò)展ECS

在上一節(jié)中,您使用向?qū)?chuàng)建了一個(gè)EC2實(shí)例群集。我們創(chuàng)建了兩個(gè)代碼倉庫來保存我們的圖像并將其上傳到那里。我們來看一下。

 

您還可以看到我的群集在其已完成狀態(tài)下有3臺服務(wù)器,其上運(yùn)行4個(gè)Docker鏡像(參見上圖)。

 

上面還列出了我們從群集配置的服務(wù)。服務(wù)允許您對Docker容器進(jìn)行分組并指定選項(xiàng),例如您想要多少個(gè)選項(xiàng),以及如何平衡它們之間的流量。

 

如果您正確配置了Load Balancer,則可以在瀏覽器中訪問它。請求將分發(fā)到群集中的活動(dòng)容器數(shù)。

這是我們建立的注冊服務(wù)的手動(dòng)請求。回想一下,該服務(wù)在端口8081上運(yùn)行,以免與端口8080上的注冊服務(wù)沖突。Load Balancer負(fù)責(zé)將所有這些隱藏起來。我們可以通過端口80從注冊服務(wù)獲得結(jié)果。

使用Docker之后

這個(gè)快速概述僅涉及Docker和微服務(wù)架構(gòu)如何用于為您的團(tuán)隊(duì)和產(chǎn)品進(jìn)行重大改進(jìn)。以下是采用此架構(gòu)時(shí)可以看到的一些明顯的好處。

  • 降低成本
  • 加快發(fā)展
  • 更快,更一致的部署
  • 松散耦合的代碼和團(tuán)隊(duì)
  • 更易于維護(hù)和擴(kuò)展
  • 更可靠的基礎(chǔ)設(shè)施

如果您希望在更大的環(huán)境中利用Docker,那么我們建議您考慮使用Spring Netflix和OpenShift等解決方案。這些解決方案適用于更大的Docker生態(tài)系統(tǒng),可以使部署和開發(fā)更加輕松。

【本文是51CTO專欄作者數(shù)據(jù)星河的原創(chuàng)文章,作者微信公眾號數(shù)據(jù)星河(ID:BDG-store)】

 

戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2017-02-06 19:26:10

開發(fā)業(yè)務(wù)應(yīng)用

2020-09-11 08:41:50

域名系統(tǒng)DNS網(wǎng)絡(luò)

2024-08-19 00:25:00

2015-07-01 09:47:38

2024-04-08 14:29:45

AI工廠數(shù)據(jù)中心

2024-09-03 10:15:21

2025-04-25 08:25:00

DNS污染網(wǎng)絡(luò)攻擊IP地址

2024-09-09 09:41:03

內(nèi)存溢出golang開發(fā)者

2022-04-28 08:46:26

異步任務(wù)系統(tǒng)高并發(fā)

2023-07-03 14:36:07

物聯(lián)網(wǎng)IoT

2018-11-14 18:00:18

自動(dòng)駕駛安全人工智能

2022-09-07 07:05:25

跨域問題安全架構(gòu)

2010-05-11 16:29:40

軟件代理難題軟件渠道大會

2022-11-22 11:30:53

2023-03-16 09:27:07

PUE電力數(shù)據(jù)

2022-12-23 08:00:00

2021-03-04 17:21:49

內(nèi)存檢測泄漏

2023-02-15 07:03:41

跨域問題面試安全

2025-03-07 08:40:00

WAL數(shù)據(jù)庫分布式系統(tǒng)

2022-05-13 16:05:03

區(qū)塊鏈比特幣可擴(kuò)展性
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號