破冰,培訓(xùn)整體介紹,團(tuán)隊(duì)分組 |
參訓(xùn)人員互相熟悉,并分成4個(gè)小組。講師對(duì)培訓(xùn)進(jìn)行整體介紹。 |
DevOps和持續(xù)交付概述 |
- DevOps的價(jià)值,知識(shí)體系;
- 通過(guò)案例分享了解實(shí)現(xiàn)DevOps的過(guò)程和收益。
- 持續(xù)交付所涉及的方法和實(shí)踐,增量式開發(fā),按故事交付,快速迭代,持續(xù)集成,持續(xù)部署。
|
| Docker技術(shù)概述 |
- Docker技術(shù)的背景和對(duì)DevOps的價(jià)值
|
演示:基于容器的DevOps發(fā)布流水線整體場(chǎng)景 |
- 使用Docker和容器技術(shù)構(gòu)建持續(xù)交付流水線
- 場(chǎng)景演示:容器化本地開發(fā)環(huán)境,容器化主機(jī),容器編排平臺(tái)Docker Swarm,私有鏡像倉(cāng)庫(kù),GitLab + Jenkins持續(xù)交付流水線;
- 并在以上環(huán)境中完成一個(gè)微服務(wù)架構(gòu)應(yīng)用從代碼到CI/CD,再到測(cè)試和生產(chǎn)環(huán)境的自動(dòng)化發(fā)布流程。
|
動(dòng)手實(shí)驗(yàn):搭建基礎(chǔ)環(huán)境并發(fā)布至測(cè)試環(huán)境 |
- 各學(xué)員按照講師提供的操作手冊(cè)對(duì)docker基本操作進(jìn)行熟悉。
- 同時(shí)使用docker搭建gitlab, jenkins和registry基礎(chǔ)環(huán)境,完成項(xiàng)目代碼初始化,jenkins節(jié)點(diǎn)配置和測(cè)試環(huán)境的自動(dòng)化部署。
|
容器編排平臺(tái)概述 |
容器編排平臺(tái)的特點(diǎn)和價(jià)值,如何選擇適合自己的編排平臺(tái)(Docker Swarm/k8s/Apache Mesos/Service Fabric) |
持續(xù)交付工具鏈介紹 |
構(gòu)建持續(xù)交付所需要的工具,以及如何使用這些工具支持迭代開發(fā),單元測(cè)試,代碼覆蓋率,自動(dòng)化構(gòu)建,自動(dòng)化部署,自動(dòng)化集成測(cè)試以及生產(chǎn)環(huán)境監(jiān)控 |
演示:Docker Swarm編排平臺(tái)的主要使用場(chǎng)景 |
- 容器編排平臺(tái)Docker Swarm的搭建,服務(wù)部署和擴(kuò)縮容;
- 將Docker Swarm環(huán)境集成到Jenkins發(fā)布流水線 。
|
動(dòng)手實(shí)驗(yàn):使用容器化DevOps流水線開發(fā),測(cè)試和發(fā)布容器化應(yīng)用 |
各學(xué)員在教師的指導(dǎo)下,按照操作手冊(cè),完成GitLab項(xiàng)目觸發(fā)器配置,Jenkins作業(yè)配置,Docker Swarm集群初始化和自動(dòng)化部署;從而完成整條DevOps發(fā)布流水線的配置。 |
動(dòng)手實(shí)驗(yàn):使用持續(xù)交付流水線快速發(fā)布產(chǎn)品 |
在以上環(huán)境中完成特性分支建立,代碼編寫和簽入,Pull Request提交,自動(dòng)化構(gòu)建,容器打包,容器上傳私有鏡像倉(cāng)庫(kù),發(fā)布容器到測(cè)試(docker machine)和生產(chǎn)環(huán)境(docker swarm集群) |
容器數(shù)據(jù)持久化 & 跨主機(jī)網(wǎng)絡(luò)解決方案 |
- 深入了解容器CoW機(jī)制及其影響,數(shù)據(jù)卷的主要使用技巧,以及使用共享數(shù)據(jù)卷實(shí)現(xiàn)跨主機(jī)容器遷移。
- 深入了解容器網(wǎng)絡(luò)工作機(jī)制,使用overlay網(wǎng)絡(luò)實(shí)現(xiàn)跨主機(jī)容器網(wǎng)絡(luò)。
|
容器日志機(jī)制和監(jiān)控解決方案 |
深入了解容器日志機(jī)制和監(jiān)控方式,使用ELK搭建企業(yè)級(jí)容器集群監(jiān)控平臺(tái),實(shí)現(xiàn)主機(jī),容器和應(yīng)用三層監(jiān)控機(jī)制。 |
演示:生產(chǎn)機(jī)容器運(yùn)行環(huán)境改造 |
- 在Docker Swarm環(huán)境中增加共享卷和overlay網(wǎng)絡(luò)支持,并實(shí)現(xiàn)集群環(huán)境下的容器在線遷移;
- 完成ELK監(jiān)控服務(wù)搭建并在Docker Swarm環(huán)境中部署監(jiān)控?cái)?shù)據(jù)采集器,配置Kibana儀表盤完成容器集群環(huán)境的監(jiān)控。
|
動(dòng)手實(shí)驗(yàn):改進(jìn)DevOps流水線,實(shí)現(xiàn)數(shù)據(jù)持久化(容器遷移),跨主機(jī)網(wǎng)絡(luò)(微服務(wù)集群),多主機(jī)監(jiān)控和Pipeline as Code. |
- 在講師的指導(dǎo)下,按照操作手冊(cè)在環(huán)境中添加數(shù)據(jù)持續(xù)久化,跨主機(jī)網(wǎng)絡(luò)和監(jiān)控系統(tǒng)。
- 莆趙諫?產(chǎn)環(huán)境中使用Docker作為容器化DevOps解決方案的能力。
- 改造當(dāng)前流水線使用Pipeline as Code方式。
|
| 動(dòng)手實(shí)驗(yàn)內(nèi)容 |
1.實(shí)驗(yàn)環(huán)境獲取:自助完成基于Azure云平臺(tái)的實(shí)驗(yàn)環(huán)境創(chuàng)建和獲取。
2. 基礎(chǔ)環(huán)境搭建:使用docker-compose 完成gitlab, jenkins, registry和cAdvisor的容器環(huán)境搭建。
3. 導(dǎo)入實(shí)驗(yàn)項(xiàng)目代碼到gitlab:完成gitlab初始化并從GitHub導(dǎo)入實(shí)驗(yàn)項(xiàng)目代碼。
4. 完成Jenkins初始化配置:完成訪問(wèn)憑據(jù),遠(yuǎn)程服務(wù)器ssh連接和Jenkins構(gòu)建代理節(jié)點(diǎn)等初始化配置。
在Jenkins中搭建CI/CD流水線完成到測(cè)試環(huán)境的部署:使用Jenkins Job的方式完成從獲取代碼,編譯代碼到測(cè)試環(huán)境部署的過(guò)程 |
| 動(dòng)手實(shí)驗(yàn)內(nèi)容 |
1. 完成Docker Swarm集群的搭建和初始化:使用ssh登錄個(gè)節(jié)點(diǎn)主機(jī)完成swarm join操作
2. 學(xué)習(xí)Docker Swarm的基本操作,管理節(jié)點(diǎn),管理服務(wù),服務(wù)擴(kuò)縮容等等。
3. 配置Jenkins通過(guò)遠(yuǎn)程方式控制Swarm集群
4. 配置Jenkins Job完成對(duì)Swarm集群的部署和持續(xù)更新 |
| 動(dòng)手實(shí)驗(yàn)內(nèi)容 |
1. 改造Jenkins使用Pipeline as Code的方式
2. 完成ELK環(huán)境搭建:使用docker-compose完成elastic search, logstash, kibana容器環(huán)境搭建
3. 在測(cè)試環(huán)境中部署logspout和dockbeat以便收集監(jiān)控?cái)?shù)據(jù)
4. 在Swarm集群中安裝共享數(shù)據(jù)卷驅(qū)動(dòng),并使用global方式啟動(dòng)dockbeat服務(wù)以便完成集群各節(jié)點(diǎn)的監(jiān)控?cái)?shù)據(jù)收集
5. 配置Kibana完成容器環(huán)境的統(tǒng)一監(jiān)控儀表盤配置 |