25.應(yīng)用系統(tǒng)部署-分布式與容器技術(shù)的應(yīng)用_第1頁
25.應(yīng)用系統(tǒng)部署-分布式與容器技術(shù)的應(yīng)用_第2頁
25.應(yīng)用系統(tǒng)部署-分布式與容器技術(shù)的應(yīng)用_第3頁
25.應(yīng)用系統(tǒng)部署-分布式與容器技術(shù)的應(yīng)用_第4頁
25.應(yīng)用系統(tǒng)部署-分布式與容器技術(shù)的應(yīng)用_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

03分布式與容器技術(shù)的應(yīng)用分布式系統(tǒng)與架構(gòu)分布式系統(tǒng)定義:

是一個硬件或軟件組件分布在不同的網(wǎng)絡(luò)計算機上,彼此之間僅僅通過消息傳遞進行通信和協(xié)調(diào)的系統(tǒng)。分布式系統(tǒng)通常具有以下特點:分布式:在空間上隨意分布,對等性:組成分布式系統(tǒng)的所有節(jié)點都是對等的。并發(fā)性缺乏全局時鐘。在分布式系統(tǒng)很難確定多個時間的順序,原因就是分布式系統(tǒng)缺乏一個全局的時鐘。故障總是會發(fā)生。分布式系統(tǒng)體系機構(gòu)面對著諸多的難題和挑戰(zhàn):通信異常:分布式系統(tǒng)需要在各個節(jié)點之間進行網(wǎng)絡(luò)通信,而網(wǎng)絡(luò)本身是不可靠的。網(wǎng)絡(luò)分區(qū):當(dāng)網(wǎng)絡(luò)由于發(fā)生異常情況,最終導(dǎo)致組成分布式系統(tǒng)的所有節(jié)點,只有部分節(jié)點之間能夠進行通信,另一些節(jié)點則不能。這種現(xiàn)象稱為網(wǎng)絡(luò)分區(qū),俗稱腦裂。三態(tài):分布式系統(tǒng)的每一次請求與響應(yīng)存在特有的三態(tài)概念,即成功、失敗、超時。節(jié)點故障:指組成分布式系統(tǒng)的服務(wù)器節(jié)點出現(xiàn)的宕機或“僵死”現(xiàn)象。分布式架構(gòu)簡介在討論分布式之前,先說明集群是什么,下面提供了一個案例:小張開了一家小飯店,剛開始的時候店里只有一個廚師,切菜洗菜備料炒菜全干。后來由于飯香甜可口,人流量越來越多了,一個廚師忙不過來了,小張又請了兩個廚師,那么這時候三個廚師炒一樣的菜,做相同的切菜洗菜備料炒菜等工作,那這三個廚師的關(guān)系是集群。也就意味著來一個顧客,只有其中的一個廚師會為這個顧客服務(wù)。滿意分布式架構(gòu)簡介又經(jīng)過一段時間,店里的生意更加火爆了,小張為了讓廚師們能專心炒菜,把菜做到極致,又請了個配菜師負責(zé)切菜、備菜、備料,那么廚師和配菜師的關(guān)系是分布式,后來一個配菜師也忙不過來了,小張就又請了兩個配菜師,三個配菜師關(guān)系也是集群。滿意微服務(wù)架構(gòu)簡介微服務(wù)架構(gòu)是一種架構(gòu)概念,旨在通過將功能分解到各個離散的服務(wù)中以實現(xiàn)對解決方案的解耦。你可以將其看作是在架構(gòu)層次而非獲取服務(wù)的類上應(yīng)用很多SOLID原則。微服務(wù)架構(gòu)的主要作用是將功能分解到離散的各個服務(wù)當(dāng)中,從而降低系統(tǒng)的耦合性,并提供更加靈活的服務(wù)支持。傳統(tǒng)的架構(gòu)微服務(wù)架構(gòu)微服務(wù)架構(gòu)簡介每個服務(wù)之間的通信:所有的微服務(wù)都是獨立的Java進程跑在獨立的虛擬機上,所以服務(wù)間的通信就是IPC(interprocesscommunication)進程間通信,已經(jīng)有很多成熟的方案?,F(xiàn)在基本最通用的有兩種方式:①REST:操作包括獲取、創(chuàng)建、修改和刪除資源的操作正好對應(yīng)HTTP協(xié)議提供的GET、POST、PUT和DELETE方法②RPC:遠程方法調(diào)用,就是像調(diào)用本地方法一樣調(diào)用遠程方法異步消息調(diào)用(Kafka,Notify,MetaQ)Docker簡介Docker是一個基于LXC技術(shù)之上搭建的Container容器引擎,源代碼托管在Github上,基于Go語言并遵從Apache2.0協(xié)議開源。Docker將應(yīng)用程序與該程序的依賴,打包在一個文件里面。運行這個文件,就會生成一個虛擬容器。程序在這個虛擬容器里運行,就好像在真實的物理機上運行一樣。Docker簡介Docker和傳統(tǒng)虛擬化方式的不同之處虛擬機容器Docker簡介為什么要使用Docker作為一種新興的虛擬化方式,Docker跟傳統(tǒng)的虛擬化方式相比具有眾多的優(yōu)勢更高效的利用系統(tǒng)資源由于容器不需要進行硬件虛擬以及運行完整操作系統(tǒng)等額外開銷,Docker對系統(tǒng)資源的利用率更高。無論是應(yīng)用執(zhí)行速度、內(nèi)存損耗或者文件存儲速度,都要比傳統(tǒng)虛擬機技術(shù)更高效。因此,相比虛擬機技術(shù),一個相同配置的主機,往往可以運行更多數(shù)量的應(yīng)用。Docker簡介更快速的啟動時間傳統(tǒng)的虛擬機技術(shù)啟動應(yīng)用服務(wù)往往需要數(shù)分鐘,而Docker容器應(yīng)用,由于直接運行于宿主內(nèi)核,無需啟動完整的操作系統(tǒng),因此可以做到秒級、甚至毫秒級的啟動時間。大大的節(jié)約了開發(fā)、測試、部署的時間。一致的運行環(huán)境開發(fā)過程中一個常見的問題是環(huán)境一致性問題。由于開發(fā)環(huán)境、測試環(huán)境、生產(chǎn)環(huán)境不一致,導(dǎo)致有些bug并未在開發(fā)過程中被發(fā)現(xiàn)。而Docker的鏡像提供了除內(nèi)核外完整的運行時環(huán)境,確保了應(yīng)用運行環(huán)境一致性,從而不會再出現(xiàn)「這段代碼在我機器上沒問題啊」這類問題。Docker簡介更輕松的維護和擴展Docker使用的分層存儲以及鏡像的技術(shù),使得應(yīng)用重復(fù)部分的復(fù)用更為容易,也使得應(yīng)用的維護更新更加簡單,基于基礎(chǔ)鏡像進一步擴展鏡像也變得非常簡單。此外,Docker團隊同各個開源項目團隊一起維護了一大批高質(zhì)量的官方鏡像,既可以直接在生產(chǎn)環(huán)境使用,又可以作為基礎(chǔ)進一步定制,大大的降低了應(yīng)用服務(wù)的鏡像制作成本更輕松的遷移由于Docker確保了執(zhí)行環(huán)境的一致性,使得應(yīng)用的遷移更加容易。Docker可以在很多平臺上運行,無論是物理機、虛擬機、公有云、私有云,甚至是筆記本,其運行結(jié)果是一致的。因此用戶可以很輕易的將在一個平臺上運行的應(yīng)用,遷移到另一個平臺上,而不用擔(dān)心運行環(huán)境的變化導(dǎo)致應(yīng)用無法正常運行的情況Docker架構(gòu)Docker的核心組件:

鏡像(Image)、容器(Container)與倉庫(Repository)客戶端(DockerClient)、守護進程(Dockerdaemon)Docker架構(gòu)Dockerdaemon

是服務(wù)器組件,以

Linux

后臺服務(wù)的方式運行,是

Docker

最核心的后臺進程,我們也把它稱為守護進程。它負責(zé)響應(yīng)來自

DockerClient

的請求,然后將這些請求翻譯成系統(tǒng)調(diào)用完成容器管理操作。該進程會在后臺啟動一個

APIServer

,負責(zé)接收由

DockerClient

發(fā)送的請求,接收到的請求將通過Dockerdaemon

內(nèi)部的一個路由分發(fā)調(diào)度,由具體的函數(shù)來執(zhí)行請求

DockerClient是Docker

客戶端。它其實就是

Docker

提供命令行界面

(CLI)

工具,是許多Docker用戶與

Docker進行交互的主要方式??蛻舳丝梢詷?gòu)建,運行和停止應(yīng)用程序,還可以遠程與Docker_Host進行交互。最常用的

Docker

客戶端就是docker

命令,我們可以通過

docker

命令很方便地在

host

上構(gòu)建和運行

docker

容器

Docker架構(gòu)DockerImage:Docker

鏡像可以看作是一個特殊的文件系統(tǒng),除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準(zhǔn)備的一些配置參數(shù)(如匿名卷、環(huán)境變量、用戶等)。鏡像不包含任何動態(tài)數(shù)據(jù),其內(nèi)容在構(gòu)建之后也不會被改變??蓪?/p>

Docker

鏡像看成只讀模板,通過它可以創(chuàng)建

Docker

容器DockerRegistry:是存儲

dockerimage

的倉庫DockerContainer:Docker

容器就是

Docker

鏡像的運行實例,是真正運行項目程序、消耗系統(tǒng)資源、提供服務(wù)的地方。提供了系統(tǒng)硬件環(huán)境,可以使用

DockerImages

這些制作好的系統(tǒng)盤,再加上所編寫好的項目代碼,

run

一下就可以提供服務(wù)Docker與其他產(chǎn)品集成Docker使用C/S架構(gòu),Docker引擎(DockerDaemon)作為服務(wù)器端,主要用來構(gòu)建、發(fā)布、分發(fā)和運行Docker容器;而Docker客戶端,目前提供CLI和RemoteAPI兩種方式,通過對DockerDaemon的通信,來控制管理遠程服務(wù)器的進程。其中Docker客戶端和Server可以運行在同一系統(tǒng)上,也可以通過Docker客戶端連接遠程的DockerDaemon,他們之間主要通過Socket和RESTfulAPI進行通信Docker容器安裝安裝Docker容器,使用命令:sudoapt-getupdate訪問源列表里的每個網(wǎng)址,讀取列表信息,進行軟件列表更新Docker容器安裝Docker容器安裝使用命令:sudoapt-getinstall安裝Docker容器Docker容器安裝啟動Docker服務(wù)DockerCompose簡介使用Docker的時候,定義Dockerfile文件,然后使用dockerbuild、dockerrun等命令操作容器。然而微服務(wù)架構(gòu)的應(yīng)用系統(tǒng)一般包含若干個微服務(wù),每個微服務(wù)一般都會部署多個實例,如果每個微服務(wù)都要手動啟停,那么效率之低,維護量之大可想而知。使用DockerCompose可以輕松、高效的管理容器,它是一個用于定義和運行多容器Docker的應(yīng)用程序工具DockerCompose簡介安裝DockerCompose可以通過下面命令自動下載適應(yīng)版本的Compose,并為安裝腳本添加執(zhí)行權(quán)限sudocurl-Lhttps:///docker/compose/release

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論