免費報名:http://www.genshuixue.com/teacher/classCourseDetail/171117794648docker
.Net Core來了,帶給咱們的是什麼?跨平臺,無疑是最大的亮點!網絡
Docker橫空出世,讓開發者和運維者都嚐到了甜頭!運維
Jenkins持續集成,功能包括了持續的軟件版本發佈與測試,讓開發人員專心關注本身的代碼開發,讓運維人員專心寫部署代碼,一次性工做,歷來不要反覆的作一件事!微服務
雲時代來了,容器時代了,面向應用的微服務也來了,麻煩也就跟着來了,我應該如何去找到你,應用A,你被部署到了容器裏,你的IP不真的不清楚,由於你是那麼的善變。由於出現了這些問題,因此在解決問題的道路上出現了「服務發現」,「服務熔斷」,「服務註冊」等。測試
想像一下,把一個大系統拆分紅多個小服務,這些小服務在分別去部署,或者它們之間又能夠相互通訊,這對於開發來講是清晰了,對部署來講是麻煩了,對開發來講是職責分離了,應用與應用之間解耦了,之後的A應用的升級不會影響到B應用了,這大概就是微服務設計的初衷吧!ui
1 微服務項目圖spa
2 Dockerfile的使用設計
對於容器化部署來講,咱們只要關心Dockerfle和YML文件便可,其中Dockerfile用來生成應用的鏡像;YML用來部署這個系統裏全部的應用。code
應用C裏的Dockerfile,它以aspnetcore爲基礎,而後將本身的發佈的代碼複製到了鏡像裏,最後使用dotnet命令啓動這個應用!blog
3 docker-compose.yml進行服務的部署
YML裏會有這個系統的服務名稱和每一個小應用的服務名及它們使用的Dockerfile的地址,生成的鏡像名,鏡像運行後的容器名,監聽的端口,使用的網絡,運行的環境等不少配置的信息
version: '3'
services:
a:
image: a
build:
context: ./應用A
dockerfile: Dockerfile
b:
image: b
build:
context: ./應用B
dockerfile: Dockerfile
c:
image: c
build:
context: ./應用C
dockerfile: Dockerfile
version: '3'
services:
a:
environment:
- ASPNETCORE_ENVIRONMENT=Development
ports:
- "80"
事實上,對於服務的部署可能要說的還不少,這裏篇幅有限,就到這吧!
Jenkins以前我也寫着一些文件,在個人自動化部署分類上,你們能夠進行閱讀!自動化部署&持續集成系列
感謝各位的閱讀!