持續交付的Mesos與Docker導入篇

2015100813410005937156.jpg

變革這個詞在當今的數字化時代司空見慣,IT技術每過一段時間就會有一起革新,從WEB2.0、虛擬化、云計算、大數據、微架構、DevOps再到今天的容器Docker與Mesos。

Docker的出現方便了應用的測試、部署、與升級,其將各種應用程序和它們所依賴的運行環境打包成標準的Container/Image,進而發布到不同的平臺上運行。Docker的輕量級、快速部署、遷移方便的特性促進了DevOps的落地,借用容器,開發人員可以很方便的融入到產品的交付流程當中。

Mesos是軟件定義數據中心的最佳實踐,其理念用最通俗的話來講就是,讓運維人員操作數據中心就算操作一臺服務器一樣去操作,將數據中心中的CPU、內存、存儲等資源統一在一臺服務器內進行調度與管理。聽起來非常的高大上,如果用技術化的語言來描述,Mesos是這樣定義的,統一的集群資源管理與調度平臺,將生產環境中的各種服務框架,部署在一個公共的集群中,共享集群中的資源,由Mesos對資源進行統一調度,提供給服務框架使用。Mesos的出現給IaaS、PaaS以及運維的管理提供了極大的便利。

在實踐中,Mesos與Docker是最佳的伴侶,前者提供了資源的統一管理,后者實現了資源的隔離使用,有合有分,在不同的層次發揮著不同的效能。同時,Mesos與Docker又都有自己的技術生態圈,兩者的生態圈又都相互的促進和推動。

§Marathon保證Mesos上的服務長期運行的框架,確保運行在Mesos上的服務一直運行,某臺Mesos主機發生故障時自動遷移到其他服務器。

§Chronos服務循環運行作業調度框架,可以設定反復在特定的時間觸發運行Mesos中的服務

§Mesos-DNS針對Mesos的基于DNS的服務發現機制,可以方便的發現容器運行位置,并進行管理調度

§Kubernetes集群級別的容器編排管理系統,能方便的管理跨集群運行的容器化應用,提供容器調度、部署、服務發現、擴展機制等功能

§Swarm用于創建Docker主機(運行Docker守護進程的服務器)集群的工具,使用Swarm操作集群,會使用戶感覺就像是在一臺主機上進行操作。

Mesos與Docker這對最佳伴侶為應用的持續交付帶來了極大的便利,為應用的運維管理提供了很大的方便,兩者在持續交付的解決方案中都起著至關重要的作用,如下圖展示了Mesos與Docker在應用持續交付中的實踐。其具體的過程可以描述如下:

o開發人員根據產品的需求進行代碼的實現,將實現的代碼提交到Git/SVN等代碼管理倉庫;

o測試人員通過Jenkins/Hudson等持續集成工具,對代碼進行編譯、打包、集成等,將代碼打包成DockerImage提交到Docker鏡像倉庫;

o測試人員通過Mesos資源調度和Marathon平臺,用新的DockerImage部署測試環境,測試人員在測試環境中對產品需求功能進行驗證。如果不符合驗證反饋給開發人員,由開發人員繼續修正,如果已經符合要求會通知運維人員將代碼部署到預發布或生產環境;

o運維人員接到測試已經驗證通過的通知后,會利用新發布的Docker Image,將其部署到由Mesos調度管理的生產環境中;

o在生產環境運行過程中,運維人員可以通過Marathon等平臺對環境進行一下業務的擴容及縮容操作,甚至一些故障的自動恢復等管理。

4.jpg

Mesos與Docker交付中應用案例

上述過程描述是基于比較傳統標準的組織架構型的公司來描述的,有清晰角色分工的開發、測試、運維等角色人員;有部分公司已經實踐DevOps的管理方式,開發運維合二為一,組織架構中的角色分工更簡單簡潔,其利用Mesos、Docker實現的持續交付過程會有一些大同小異,其具體的操作過程還是一樣的,只是操作的人可能不同。

Mesos與Docker的出現應用快、持續、自動化的交付的落地消除了很多的屏障,帶來了極大的便利。IT技術就是日新月異,我們能夠選擇的只有不斷積極的擁抱。明天會更好,本篇是我們應用持續交付系列文章的導入篇,在后續會根據實踐不斷更新此系列,和優云軟件(全棧運維解決方案服務商 https://uyun.cn)一起加速互聯網敏捷運維。

原創文章,作者:uyunops,如若轉載,請注明出處:http://www.www58058.com/21186

(1)
uyunopsuyunops
上一篇 2016-07-10 12:16
下一篇 2016-07-10 12:17

相關推薦

  • ansible——自動化運維工具

    Ansible SSH-based configuration management, deployment, and task execution system 運維工具的分類: agent:基于專用的agent程序完成管理功能,puppet, func, zabbix, … agentless:基于ssh服務完成管理,ansible, fab…

    Linux干貨 2016-11-06
  • 馬哥教育網絡班第19期+第9周課程練習

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; 2、寫一個腳本     (1) 獲取當前主機的主機名,保存于hostname變量中;     (2) 判斷此變量的值是否為localhost,如果是…

    Linux干貨 2016-09-19
  • Iptables基礎

       Firewall:防火墻,工作于主機或網絡的邊緣處,對于進出本主機或網絡的報文根據事先定義好的檢查規則左匹配檢測,對于能夠被規則所匹配到的報文進行相應的處理的組件。   防火墻可分為:硬件防火墻,在硬件級別實現部分功能的防火墻;軟件防火墻,應用軟件處理邏輯運行于通用硬件平臺之上的防火墻;主機防火墻,服務范圍為當前主機;網絡…

    2017-06-19
  • PXE原理詳解及實踐

    一、PXE簡介 PXE(preboot execute environment,預啟動執行環境)是由Intel公司開發的最新技術,工作于Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,并由支持通過網絡啟動操作系統,再啟動過程中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol…

    Linux干貨 2017-01-10
  • Linux目錄結構

    Linux目錄結構 查看目錄(/) 樹狀目錄結構: 常見目錄的解釋 Linux 下的文件類型 路徑 Linux目錄結構 查看目錄(/) 登錄系統后,在當前命令窗口下輸入命令: [root@localhost ~]# ls /bin   dev  home  lib64       media &nb…

    Linux干貨 2016-09-06
欧美性久久久久