久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

軟件架構(gòu)和Docker

 新用戶0175WbuX 2022-02-08

  軟件架構(gòu)和Docker

  軟件體系結(jié)構(gòu)對于用戶而言并不可見,,并且使其不引人注意。 但是糟糕的軟件體系結(jié)構(gòu)可能導致程序的繁瑣程度增加,,并使程序難以修改,。 較高的內(nèi)部質(zhì)量(在這種情況下為可靠的軟件體系結(jié)構(gòu))可以更快地交付新功能。

  什么是軟件架構(gòu),?

  程序的軟件體系結(jié)構(gòu)是程序系統(tǒng)的結(jié)構(gòu),,它由軟件元素,這些軟件元素的屬性以及兩者之間的關(guān)系組成,。 因此,,可以說程序的軟件體系結(jié)構(gòu)定義了程序的結(jié)構(gòu)和行為。

  但是,,它與定義所有結(jié)構(gòu)和所有行為無關(guān),。 它僅與那些被認為是重要的元素有關(guān)。 重要的元素是具有長久影響的元素,例如主要的結(jié)構(gòu)元素,,與基本行為相關(guān)的那些元素以及具有重要意義的元素,,例如可靠性和可伸縮性。 通常,,體系結(jié)構(gòu)不關(guān)心這些軟件元素的細節(jié),。

  有多種軟件架構(gòu):

  · 客戶端-服務(wù)器架構(gòu)

  · 面向?qū)ο蟮募軜?gòu)

  · 域驅(qū)動程序體系結(jié)構(gòu)

  · 洋蔥架構(gòu)

  · 面向方面的架構(gòu)

  · 面向服務(wù)的架構(gòu)

  · 微服務(wù)架構(gòu)

  · Lambda架構(gòu)

  · 基于組件的架構(gòu)

  · 事件驅(qū)動架構(gòu)

  軟件架構(gòu)和Docker

  > Kinds of architecture software (src: cazton/consulting/enterprise/software-architectur

  兩層和三層架構(gòu)兩層架構(gòu)

  在這里,您可以直接在客戶端和服務(wù)器之間進行通信,,而無需中介,。 它分為兩部分,客戶端應(yīng)用程序和數(shù)據(jù)庫,。 客戶端向服務(wù)器發(fā)送請求,,然后服務(wù)器在服務(wù)器上處理該請求并發(fā)回數(shù)據(jù)。 意思是,,客戶端處理Presentation層(應(yīng)用程序接口)和Application層(邏輯操作),,而服務(wù)器系統(tǒng)處理數(shù)據(jù)庫層。

  三層架構(gòu)

  三層體系結(jié)構(gòu)分為三個部分: 表示層(客戶端層),,應(yīng)用程序?qū)樱I(yè)務(wù)層)和數(shù)據(jù)庫層(數(shù)據(jù)層),。 表示層

  表示層是應(yīng)用程序的最頂層。 這是使用軟件時看到的層,,或稱為接口,。 該層將用戶根據(jù)鍵盤操作和鼠標單擊提供的信息傳遞給應(yīng)用程序?qū)印?/p>

  應(yīng)用層稱為業(yè)務(wù)層,因為在這里我們發(fā)現(xiàn)邏輯控件和功能來處理從表示層和數(shù)據(jù)庫層接收的數(shù)據(jù),。

  最后,,數(shù)據(jù)庫層是存儲數(shù)據(jù)的層。 它包含連接到數(shù)據(jù)庫并執(zhí)行所需的所需操作的方法,。

  那么,,現(xiàn)實生活中的兩層和三層架構(gòu)的例子是什么?

  您在網(wǎng)絡(luò)上訪問的電子商務(wù)是兩層體系結(jié)構(gòu)的一個示例,。 當您訪問Web上的電子商務(wù)時,,您將請求直接發(fā)送到服務(wù)器,然后服務(wù)器發(fā)回數(shù)據(jù),。 您在網(wǎng)絡(luò)上訪問的電子商務(wù)是兩層體系結(jié)構(gòu)的一個示例,。

  另一方面,三層體系結(jié)構(gòu)是您可以在智能手機上訪問的電子商務(wù),。 訪問它時,,您正在處理表示層。 然后,,當您用鼠標單擊進行操作時,,它將傳遞到應(yīng)用程序?qū)印?存儲您的操作數(shù)據(jù)的是數(shù)據(jù)庫層。

  什么是Docker?

  Docker是供開發(fā)人員使用容器構(gòu)建,,部署和運行應(yīng)用程序的開源,。 Docker被用作操作系統(tǒng)的虛擬化,服務(wù)器,,甚至是Web服務(wù)器。

  Docker包裝了應(yīng)用程序及其庫以及對容器的依賴關(guān)系,。 然后,,將容器內(nèi)置到可以復(fù)制并共享到任何地方的圖像中。 這使得可以在所有PC上打開應(yīng)用程序/網(wǎng)站,。

  Docker與虛擬機

  但是首先,,什么是虛擬機? 虛擬機是一個完全類似于計算機的系統(tǒng),。 這樣就可以運行其他計算機上的內(nèi)容以及一臺計算機上的硬件,。 它必須具有底層操作系統(tǒng)。

  由于它們都是系統(tǒng)的虛擬化,,因此Docker和Virtual Machine有何不同,?

  如上所述,Docker只能使用容器來存儲許多應(yīng)用程序,,這使其更有效,,更快速地訪問。 與Docker不同,,虛擬機將變得笨重且難以維護,。

  這解釋了為什么開發(fā)人員通常在其開發(fā)過程中使用Docker。 然后,,我們可以在生產(chǎn)階段在每個應(yīng)用程序上實現(xiàn)服務(wù)器,。 雖然…..實際上只使用Docker也足夠了!

  這是兩者之間的其他區(qū)別:操作系統(tǒng)支持,,安全性,,可移植性和性能。

  · 操作系統(tǒng)支持

  軟件架構(gòu)和Docker

  > Docker vs VM (src: geekflare/docker-vs-virtual-machine/)

  如上圖所示,,虛擬機具有其來賓操作系統(tǒng),,而Docker共享主機操作系統(tǒng)。 它使虛擬機比Docker重,。

  · 安全

  由于虛擬機不共享操作系統(tǒng),,因此它在主機內(nèi)核中具有很強的隔離性。 與Docker相比,,它更安全,。 當攻擊者訪問Docker上的一個容器時,這意味著他已經(jīng)克服了所有容器。

  · 可移植性

  Docker容器沒有任何獨立的操作系統(tǒng),,因此可以輕松移植,。 當容器移植到其他操作系統(tǒng)時,它可以立即啟動,。

  另一方面,,虛擬機具有獨立的操作系統(tǒng),因此由于其大小,,將很難移植并且要花費大量時間,。

  · 性能

  Docker的重量更輕,使其運行速度比虛擬機快,。

  那為什么要使用Docker,?

  · Docker可以更有效地利用系統(tǒng)資源。 Docker使用的內(nèi)存少于虛擬機,。

  · Docker可以加快軟件交付周期,。 Docker使開發(fā)人員可以輕松實現(xiàn)新版本的軟件,甚至回滾到以前的版本,。

  · Docker輕巧,,可移植且自成體系。

  · Docker作為微服務(wù)架構(gòu)非常出色,。 容器非常適合微服務(wù)方法和敏捷開發(fā)過程,。

  Docker架構(gòu)軟件架構(gòu)和Docker

  > Visualization of Docker's architecture (src: nickjanetakis/blog/understanding-how-the-

  Docker守護程序是在我們的主機操作系統(tǒng)上運行的瘦身服務(wù)。 Docker守護程序本身公開了REST API,。 許多不同的工具都可以通過此API與守護程序?qū)υ挕?我們使用Docker CLI作為命令行工具來與Docker守護進程進行對話,。

  Docker上的條款

  要了解Docker,您應(yīng)該首先了解以下術(shù)語:

  · Docker守護程序

  Docker守護程序是操作系統(tǒng)主機中的一項服務(wù),。 它用于構(gòu)建,,部署和運行Docker的容器。 用戶無法立即使用Docker守護程序,。 要使用Docker守護程序,,用戶請使用Docker客戶端作為中間人或CLI。

  1. Docker鏡像

  Docker映像是一個只讀模板,。 該模板實際上是一個操作系統(tǒng)或許多應(yīng)用程序中已安裝的操作系統(tǒng),。 我們只需要使用一個Docker鏡像就可以創(chuàng)建許多Docker容器。

  2. Docker容器

  Docker容器可以視為一個文件夾,。 它是由Docker守護程序制成的,。 以后可以構(gòu)建此容器,以便生成可用于創(chuàng)建新Docker容器的Docker映像,。

  3. Docker注冊表

  Docker注冊表是一組私有或公共的Docker映像,。 我們可以在Docker Hub中訪問Docker注冊表,。我們可以在此處推送或拉出自己的映像。

  4. Docker /容器編排

  Docker / Container Orchestration是容器生命周期的一項活動,,尤其是在一個更大且動態(tài)的環(huán)境中,。 開發(fā)人員可以使用許多容器編排來控制和自動化許多活動,例如

  · 容器的啟動和停止過程,。

  · 將功能從容器公開給用戶或其他容器,。

  · 零停機時間部署新版本的容器。

  · 自動或手動清潔,。

  Docker是一個客戶端-服務(wù)器架構(gòu)

  我們可以說Docker是一個客戶端-服務(wù)器應(yīng)用程序,。 守護程序是服務(wù)器,CLI是許多客戶端之一,。 也有許多第三方客戶。 我們可以使用客戶端來管理守護程序的許多不同組件,,例如映像,,容器,網(wǎng)絡(luò)和數(shù)據(jù)量,。

  了解Docker的術(shù)語后,,我們現(xiàn)在可以看看客戶端如何與Docker主機進行對話

  軟件架構(gòu)和Docker

  > Visualization of how client talks to the Docker host (src: nickjanetakis/blog/understa

  · 左側(cè)的客戶端是我們運行各種Docker命令的地方。 可以將其安裝在我們的操作系統(tǒng)上,。

  · Docker主機是運行Docker守護程序的服務(wù)器,。 客戶端和守護程序不必位于同一操作系統(tǒng)上。

  · Docker注冊表以查找和下載Docker映像

  容器編排

  容器編排是基于多個集群上微服務(wù)的自動管理和調(diào)度應(yīng)用程序個人工作的過程,。 它專注于管理容器及其動態(tài)環(huán)境的生命周期,。

  為什么我們需要容器編排?

  容器編排用于自動執(zhí)行以下任務(wù):

  · 配置和計劃容器,。

  · 容器的部署,。

  · 容器的可用性。

  · 根據(jù)運行它們的容器來配置應(yīng)用程序,。

  · 擴展容器以平均平衡整個基礎(chǔ)架構(gòu)中的應(yīng)用程序工作負載,。

  · 容器之間的資源分配。

  · 容器的負載平衡,,流量路由和服務(wù)發(fā)現(xiàn),。

  · 容器的健康監(jiān)控。

  · 確保容器之間的交互,。

  容器編排如何工作,?

  首先,配置文件告訴容器編排工具如何在容器之間聯(lián)網(wǎng)以及將日志存儲在何處,。

  然后,,編排工具將容器部署調(diào)度到群集中,,并確定該容器的最佳主機。 確定主機后,,編排工具將管理容器的生命周期,。 容器編排工具可以在運行容器的任何環(huán)境中工作。

  用于管理,,擴展和維護容器化應(yīng)用程序的工具稱為協(xié)調(diào)器,。 最常見的協(xié)調(diào)器是Kubernetes和Docker Swarm。

  Docker Swarm與Kubernetes

  Docker Swarm可以在容器從其他容器中找到現(xiàn)有容器映像時運行應(yīng)用程序,,并將容器部署在筆記本電腦,,服務(wù)器或云(公共云或私有云)上。

  另一方面,,Kubernetes允許通過容器編排引擎進行容器集群,。 Kubernetes具有聲明式管理,因此一點也不復(fù)雜,。 它也是開源的,,因此可以在任何地方運行。

  我們什么時候使用Docker Orchestration,?

  少量用戶使用的簡單的容器化應(yīng)用/網(wǎng)絡(luò)并不需要編排,。 但是,如果您擁有具有許多功能的復(fù)雜應(yīng)用程序,,那么編排就可以解決,。 這是我們使用編排的時間:

  · 當我們的應(yīng)用程序很復(fù)雜時。 如果我們的應(yīng)用程序涉及兩個以上的容器,,則最好使用編排,。

  · 當我們的應(yīng)用程序?qū)ι炜s性和彈性有很高的要求時。 協(xié)調(diào)器讓我們平衡負載并旋轉(zhuǎn)容器以滿足需求,。 它確定系統(tǒng)的狀態(tài),,而不是手動編碼對變化的條件的所有反應(yīng)。

  · 當您想充分利用現(xiàn)代CI / CD技術(shù)時,。 編排系統(tǒng)支持使用藍/綠部署或滾動升級的應(yīng)用程序的部署模式,。

  如何設(shè)置Docker

  · 下載并安裝Docker Desktop

  · 為Mac安裝Docker

  · 為Windows安裝Docker

  2.測試Docker版本

  打開終端并運行

  docker --version

  軟件架構(gòu)和Docker

  > Check Docker version. src: docs.docker/get-started/

  3.測試您好世界Docker映像

  軟件架構(gòu)和Docker

  > Run hello-world. src: docs.docker/get-started/

  4.列出您下載到計算機上的hello-world映像

  docker image ls

  5.列出hello-world容器

  軟件架構(gòu)和Docker

  > List of hello-world container. src: docs.docker/get-started/

  以下是一些您可以使用的Docker命令:

  軟件架構(gòu)和Docker

  > Docker commands (src: guru99/docker-tutorial.html#8)

  結(jié)論

  Docker是一個用于開發(fā),交付和運行應(yīng)用程序的開放平臺,。 Docker使您能夠?qū)?yīng)用程序與基礎(chǔ)架構(gòu)分開,,從而可以快速交付軟件。 通過使用Docker,,您可以大大減少編寫代碼和在生產(chǎn)環(huán)境中運行代碼之間的延遲,。

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多