亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 基礎常識 > 正文

Docker的集成部署攻略

2020-10-21 21:51:58
字體:
來源:轉載
供稿:網友

1. 背景

敏捷開發已經流行了很長時間,如今有越來越多的企業開始踐行敏捷開發所提倡的以人為中心、迭代、循序漸進的開發理念。在這樣的場景下引入Docker技術,首要目的就是使用Docker提供的虛擬化方式,給開發團隊建立一套可以復用的開發環境,讓開發環境可以通過Image的形式分享給項目的所有開發成員,以簡化開發環境的搭建。但是,在沒有Docker技術之前就已經有類如Vagrant的開發環境分發技術,軟件開發者一樣可以創建類似需求的環境配置流程。所以在開發環境方面,Docker技術的優勢并不能很好的發揮出來。筆者認為Docker的優點在于可以簡化CI(持續集成)、CD(持續交付)的構建流程,讓開發者把更多的精力用在開發上。

每家公司都有自己的開發技術棧,我們需要結合實際情況對其進行持續改進,優化自己的構建流程。當我們準備邁出第一步時,我們首先要確立一張構建藍圖,做到胸有成竹,這樣接下來的事情才會很快實現。
201577150042276.png (585×419)

這張時序圖概括了目前敏捷開發流程的所有環節。結合以上時序圖給出的藍圖框架,本文的重點是講解引入Docker技術到每個環節中的實踐經驗。
2. 創建持續發布的團隊

開發團隊在引入Docker技術的時候,最大的問題是沒有可遵循的業界標準。大家常常以最佳實踐為口號,引入多種工具鏈,導致在使用Docker的過程中沒有側重點。涉及到Docker選型,又在工具學習上花費大量時間,而不是選用合適的工具以組建可持續發布產品的開發團隊。基于這樣的場景,我們可以把“簡單易用”的原則作為評判標準,引入到Docker技術工具選型的參考中。開發團隊在引入Docker技術的過程中,首先需要解決的是讓團隊成員盡快掌握Docker命令行的使用。在熟悉了Docker命令行之后,團隊需要解決幾個關鍵問題具體如下:

1)Base Image的選擇, 比如phusion-baseimage

2)配置管理Docker鏡像的工具的選擇,比如Ansible、Chef、Puppet

3)Host主機系統的選擇,比如CoreOS、Atomic、Ubuntu

Base Image包括了操作系統命令行和類庫的最小集合,一旦啟用,所有應用都需要以它為基礎創建應用鏡像。Ubuntu作為官方使用的默認版本,是目前最易用的版本,但系統沒有經過優化,可以考慮使用第三方有劃過的版本,比如如phusion-baseimage。對于選擇RHEL、CentOS分支的Base Image,提供安全框架SELinux的使用、塊級存儲文件系統devicemapper等技術,這些特性是不能和Ubuntu分支通用的。另外需要注意的是,使用的操作系統分支不同,其裁剪系統的方法也完全不同,所以大家在選擇操作系統時一定要慎重。

配置管理Docker鏡像的工具主要用于基于Dockerfile創建Image的配置管理。我們需要結合開發團隊的現狀,選擇一款團隊熟悉的工具作為通用工具。配置工具有很多種選擇,其中Ansible作為后起之秀,在配置管理的使用中體驗非常簡單易用,推薦大家參考使用。

Host主機系統是Docker后臺進程的運行環境。從開發角度來看,它就是一臺普通的單機OS系統,我們僅部署Docker后臺進程以及集群工具,所以希望Host主機系統的開銷越小越好。這里推薦給大家的Host主機系統是CoreOS,它是目前開銷最小的主機系統。另外,還有紅帽的開源Atomic主機系統,有基于Fedora、CentOS、RHEL多個版本的分支選擇,也是不錯的候選對象。另外一種情況是選擇最小安裝操作系統,自己定制Host主機系統。如果你的團隊有這個實力,可以考慮自己定制這樣的系統。
3. 持續集成的構建系統

當開發團隊把代碼提交到Git應用倉庫的那一刻,我相信所有的開發者都希望有一個系統能幫助他們把這個應用程序部署到應用服務器上,以節省不必要的人工成本。但是,復雜的應用部署場景,讓這個想法實現起來并不簡單。

首先,我們需要有一個支持Docker的構建系統,這里推薦Jenkins。它的主要特點是項目開源、方便定制、使用簡單。Jenkins可以方便的安裝各種第三方插件,從而方便快捷的集成第三方的應用。
通過Jenkins系統的Job觸發機制,我們可以方便的創建各種類型的集成Job用例。但缺乏統一標準的Job用例使用方法,會導致項目Job用例使用的混亂,難于管理維護。這也讓開發團隊無法充分利用好集成系統的優勢,當然這也不是我們期望的結果。所以,敏捷實踐方法提出了一個可以持續交付的概念 DeploymentPipeline(管道部署)。通過Docker技術,我們可以很方便的理解并實施這個方法。

Jenkins的管道部署把部署的流程形象化成為一個長長的管道,每間隔一小段會有一個節點,也就是Job,完成這個Job工作后才可以進入下一個環節。形式如下
201577150111397.png (1393×995)

大家看到上圖中的每一塊面板在引入Docker技術之后,就可以使用Docker把任務模塊化,然后做成有針對性的Image用來跑需要的任務。每一個任務Image的創建工作又可以在開發者自己的環境中完成,類似的場景可以參考下圖:

所以,使用Docker之后,任務的模塊化很自然地被定義出來。通過管道圖,可以查看每一步的執行時間。開發者也可以針對任務的需要,為每一個任務定義嚴格的性能標準,已作為之后測試工作的參考基礎。
4.最佳的發布環境

應用經過測試,接下來我們需要把它發布到測試環境和生產環境。這個階段中如何更合理地使用Docker也是一個難點,開發團隊需要考慮如何打造一個可伸縮擴展的分發環境。其實,這個環境就是基于Docker的私有云,更進一步我們可能期望的是提供API接口的PaaS云服務。為了構建此PaaS服務,這里推薦幾款非常熱門的工具方便大家參考,通過這些工具可以定制出企業私有的PaaS服務。
1) Apache Mesos + marathon

Apache Mesos系統是一套資源管理調度集群系統,生產環境使用它可以實現應用集群。此系統是由Twitter發起的Apache開源項目。在這個集群系統里,我們可以使用Zookeeper開啟3個Mesos master服務,當3個Mesos master通過zookeeper交換信息后會選出Leader服務,這時發給其它兩臺Slave Messos Master上的請求會轉發到Messos master Leader服務。Mesos slave服務器在開啟后會把內存、存儲空間和CPU 資源信息發給Messos master。Mesos是一個框架,在設計它的時候只是為了用它執行Job來做數據分析。它并不能運行一個比如Web服務Nginx這樣長時間運行的服務,所以我們需要借助marathon來支持這個需求。marathon有自己的REST API,我們可以創建如下的配置文件Docker.json:

JavaScript Code復制內容到剪貼板
  1. {   
  2.   "container": {   
  3.     "type""DOCKER",   
  4.     "docker": {   
  5.       "image""libmesos/ubuntu"  
  6.     }   
  7.   },   
  8.   "id""ubuntu",   
  9.   "instances""1",   
  10.   "cpus""0.5",   
  11.   "mem""512",   
  12.   "uris": [],   
  13.   "cmd""while sleep 10; do date -u +%T; done"  
  14. }  

然后調用

curl -X POST -H "Content-Type: application/json" http://<master>:8080/v2/apps -d@Docker.json

我們就可以創建出一個Web服務在Mesos集群上。對于Marathon的具體案例,可以參考官方案例。
201577150236633.png (582×414)

2) Google Kubernetes

Google的一個容器集群管理工具,它提出兩個概念:

    Pods,每個Pod是一個容器的集合并部署在同一臺主機上,共享IP地址和存儲空間,比如Apache,Redis之類分為一組容器集合。
    Labels,提供服務標簽,方便Pod容器之間的調用協作。

通過官方架構設計文檔的介紹,可以詳細的了解每個組件的設計思想。這是目前業界唯一在生產環境部署經驗的基礎上推出的開源容器方案,可以預見到未來會成為容器管理系統的行業參考標準。
201577150257184.png (1600×1240)

3) Panamax

在琳瑯滿目的集群管理工具面前,如何管理單機的Docker容器也是一個需要解決問題。因為Docker占用內存小,在單機服務器上部署成百上千個容器也不足為奇。Panamax提供人性化的Web管理界面用來安裝軟件讓部署變得更簡單。并且,Panamax還提供豐富的容器模板,讓在線創建服務成為可能。比如到DigitalOcean申請一臺主機,安裝一套Panamax啟動為后臺服務。然后通過Panamax Web界面安裝Nginx、Mysql、Redis等服務鏡像,這樣可以快速搭建生產環境的應用場景。所有的操作都是在Web界面上完成,開發者只需要關注開發本身即可。
201577150318952.png (800×800)

5. 結論

Docker的集成部署方案,是一套靈活簡單的工具集解決方案。它克服了之前集群工具復雜、難用的困境,使用統一的Docker應用容器的概念部署軟件應用。通過引入Docker技術,開發團隊在面對復雜的生產環境中,可以結合自己團隊的實際情況,定制出適合自己基礎架構的配套軟件發布方案。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人综合一区二区三区| 日本高清视频一区| 成人激情免费在线| 亚洲国产精品大全| 日韩av网站在线| 久久天天躁夜夜躁狠狠躁2022| 亚洲精品美女视频| 久久男人资源视频| 国产精品久久久久久久av电影| 国产精品久久久久99| 日韩欧亚中文在线| 亚洲欧洲黄色网| 国产一区二区三区免费视频| 法国裸体一区二区| 欧美男插女视频| 国产成人亚洲综合91精品| 国产成人一区二区在线| 中文字幕亚洲国产| 中文字幕日韩免费视频| 精品电影在线观看| 亚洲天堂开心观看| 中文亚洲视频在线| 久久国产精品久久国产精品| 66m—66摸成人免费视频| 欧美超级免费视 在线| 国产精品视频公开费视频| 国产成人精品免费视频| 亚洲free性xxxx护士hd| 久久精品国产91精品亚洲| 亚洲国产一区自拍| 另类视频在线观看| 成人午夜两性视频| 亚洲精品免费av| 国产精品老牛影院在线观看| 日韩欧美国产骚| 久久人人爽人人| 日韩中文在线中文网三级| 国产精品爱啪在线线免费观看| 欧美极品少妇与黑人| 中文字幕欧美精品在线| 日韩美女视频在线观看| 亚洲色图欧美制服丝袜另类第一页| 91视频-88av| 亚洲视频在线观看| 国产成人高潮免费观看精品| 欧美大片免费观看| 欧美国产欧美亚洲国产日韩mv天天看完整| 日韩欧美国产中文字幕| 91夜夜未满十八勿入爽爽影院| www高清在线视频日韩欧美| 日韩欧美精品在线观看| 欧美国产日韩xxxxx| 精品国产区一区二区三区在线观看| 国产91av在线| 日韩中文在线不卡| 国产一区二区三区高清在线观看| 91日本在线视频| 91免费在线视频网站| 琪琪亚洲精品午夜在线| 欧美日本黄视频| www.99久久热国产日韩欧美.com| 欧美激情中文字幕在线| 国产精品劲爆视频| 性欧美在线看片a免费观看| 成人午夜激情网| 性金发美女69hd大尺寸| 亚洲大胆人体视频| 亚洲精品一区二区在线| 国产精品国语对白| 久久精品国产成人精品| 亚洲国产日韩欧美在线99| 亚洲精品免费网站| 国产精品pans私拍| 亚洲视频axxx| 亚洲精品免费av| 亚洲精品国产精品久久清纯直播| 91av视频导航| 91在线看www| 亚洲性无码av在线| 亚洲成人黄色网| 岛国视频午夜一区免费在线观看| 亚洲色图美腿丝袜| 高清欧美电影在线| 97国产精品人人爽人人做| 亚洲欧美在线看| 在线播放国产一区中文字幕剧情欧美| 亚洲最大在线视频| 亚洲黄色成人网| 国产精品v片在线观看不卡| 国产精品一二区| 精品国产视频在线| 川上优av一区二区线观看| 夜色77av精品影院| 亚洲天堂男人天堂| 国产精品大陆在线观看| 亚洲电影av在线| 国产精品91久久久| 中文字幕欧美日韩va免费视频| 97香蕉超级碰碰久久免费的优势| 一本色道久久综合狠狠躁篇怎么玩| 国产成人精品免高潮费视频| 欧美电影《睫毛膏》| 欧美大肥婆大肥bbbbb| 国产欧美va欧美va香蕉在| 久久香蕉精品香蕉| 亚洲精品美女免费| 久久天天躁狠狠躁老女人| 久久久久久久久久久久久久久久久久av| 国产精品69av| www国产91| 久久久久久久久91| 国产精品美女主播在线观看纯欲| 97香蕉久久超级碰碰高清版| 国产精品福利在线观看网址| 精品国产一区二区三区久久狼5月| 亚洲黄一区二区| 日韩精品视频免费| 中文字幕国产精品久久| 久久在精品线影院精品国产| 日韩中文字幕在线免费观看| 亚洲人成亚洲人成在线观看| 7m第一福利500精品视频| 国产噜噜噜噜久久久久久久久| 亚洲欧美一区二区三区四区| 欧美激情第6页| 黄色成人在线播放| 日韩日本欧美亚洲| 亚洲直播在线一区| 国产欧美日韩丝袜精品一区| 国产亚洲视频在线观看| 久久99热精品| 欧美日韩国产精品一区二区不卡中文| 日韩av资源在线播放| 性欧美xxxx视频在线观看| 91日韩在线视频| 在线精品视频视频中文字幕| 国产精品一久久香蕉国产线看观看| 久久久999国产精品| 4p变态网欧美系列| 狠狠爱在线视频一区| 亚洲www永久成人夜色| 久久av红桃一区二区小说| 欧美性猛交99久久久久99按摩| 91亚洲精品视频| 国模视频一区二区| 亚洲伊人久久综合| 亚洲国产日韩一区| 久久中文字幕国产| 精品国产乱码久久久久久天美| 久久亚洲精品小早川怜子66| 久久精品99久久久香蕉| 欧美激情国产日韩精品一区18| 欧美高清不卡在线| 午夜精品视频在线| 亚洲天堂免费在线| 97在线精品国自产拍中文| 久久精品中文字幕电影| 久久久精品中文字幕| 精品久久久久久中文字幕大豆网| 日韩在线中文字| 精品欧美国产一区二区三区| 国产大片精品免费永久看nba| 国产精品久久久久久婷婷天堂| 亚洲欧美国产精品专区久久|