從持續集成到持續交付——Docker Cloud 概覽

zmkl1000 8年前發布 | 9K 次閱讀 Docker 持續交付 持續集成

本文介紹了Docker Cloud的概況,以及如何使用Docker Cloud改進我們的持續集成和持續發布的流程。也指出了目前Docker Cloud還存在的功能方面的問題。

容器化(Docker容器),持續集成(CI),持續部署或持續交付(CD)是簡化DevOps工作的終極方案。這展示了一個未來的場景:當代碼被提交到代碼庫之后,所有的后續工作包括編譯、配置、交付和部署,甚至是高可用性都是完全標準化和自動化的。從這個角度我們可以看到一個美好的未來,將開發人員和運維人員從繁復的工作中解放出來,節省出來的人力資源可以更專注在更加創造性的開發工作。

官方的Docker鏡像倉庫和CI服務

從Docker的第一版本發布以來,這個公司持續行進在一個正確的方向上前進,雖然前進的有點慢。盡管如此,在Docker收購Tutum一年之后,Docker最終發布了正式的云服務Docker Cloud(cloud.docker.com)。現在圍繞Docker的生態系統已經接近完備了。

在深入到Docker Cloud的技術細節之前,讓我們看一下Docker的鏡像倉庫和自動構建服務——Docker Hub(hub.docker.com)。作為我使用了將近一年的CI工具,我覺得它還是非常好用的。它的工作方式也是很簡單的,你只需要寫好一個Dockefile并把它放在GitHub或者Bitbucket上,Docker Hub就會在每次代碼提交之后自動構建Docker鏡像并將其放置到Docker Hub鏡像倉庫上提供下載。

例如,https://hub.docker.com/r/tomasen/frontd/builds/ 就是這樣一個在Docker Hub上自動構建的Docker鏡像。我可以指定鏡像的分支并分配不同的標簽。這個流程有助于區分版本,使其更適用于開發或者生產環境。

當然,這個構建過程會在每次代碼提交時被執行。

Docker Cloud!

2016年3月,Docker發布了Docker Cloud的第一個版本。現在,在Docker Cloud上,我們可以添加我們數據中心或者AWS中的服務器添加到Docker Cloud中讓Docker Cloud來控制它。因此無論是AWS或者Google或者Linode的虛機,甚至是裸機都可以通過一個簡單的shell腳本命令將其添加到Docker Cloud中,這個shell腳本會在服務器中安裝一個代理程序并將服務器轉給Docker Cloud。

Docker Cloud跟傳統的云服務提供商的主要區別是Docker Cloud本身不提供任何的服務器或者虛機,只是提供某種服務器/服務的管理系統。因此Docker公司可以通過提供持續部署的方案來產生利潤。

將服務器添加到Docker Cloud的命令是非常簡單的,如下所示:

curl -Ls https://get.cloud.docker.com/ | sudo -H sh -s <token>

這個腳本安裝和配置Docker守護進程并設置這個節點到Docker Cloud的通信隧道,因此Docker Cloud就可以管理這個節點上的服務了。

當這些節點配置完成后,我們就可以添加服務了,這意味著我們可以利用策略來部署Docker鏡像到節點上運行。

如果Docker鏡像是來自我們前面提到的Docker Hub,整個設置過程就會非常容易了。

從用戶界面上,我們可以設置部署策略是到所有節點,到最空閑的節點或者高可用。

除了最基本的端口發布、網絡和存儲配置功能外,Docker Cloud提供了高級的概念例如Stack和服務關聯,這使得平臺越來越成熟和完備。

未完待續

Docker Cloud依然還有一些問題可以被修復,以使得其持續交付服務能變得完美:

  • 缺少服務監控,或者測試驅動部署策略。

  • 缺少對持久存儲的管理。

  • 在每個Docker Cloud節點上都需要安裝高權限的代理程序,在企業環境中將會造成嚴重的安全問題。

未來

每次我都在思考徹底擺脫命令行終端和ssh,只需要簡單的將代碼提交到某個分支,然后服務就會被部署到合適的服務器上去。在任何時候都會有一個進程去去監控并在合適的時候重新部署或者彈性擴展。這樣將會極大的提高迭代的速度和效率,還有一個好處是我們將無需再擔心運維人員可能會犯的錯誤。想到這里,我是非常興奮的。

 

 

 

 

來自:https://mp.weixin.qq.com/s?__biz=MzA5OTAyNzQ2OA==&mid=2649691641&idx=1&sn=55c2c70c327bdaaa7b6defb06f677281&chksm=88932a9abfe4a38cfe9d05f25c51c6ef852d13482ac2d00066be56274e2184a1dc8f86043702&scene=1&srcid=0914SVvAhCRNjabHepSDdx4S&pass_ticket=20a9aKqTE9fcvL5SLFFZjeaHGVEdrb%2FNV%2FCqMuFATdM%3D#rd

 

 本文由用戶 zmkl1000 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!