當前位置:
首頁 > 最新 > Mesosphere–企業級容器持續交付 Based on DC/OS

Mesosphere–企業級容器持續交付 Based on DC/OS

關注世界領先 DevOps 平台 JFrog

在 JFrog SwampUp 2017 用戶大會上,Mesosphere 的持續交付團隊成員 Elizabeth K Joseph 為大家帶來了基於以容器為基礎架構平台的持續交付流水線最佳實踐,並介紹如何在 DC/OS 上簡單快速的創建容器交付流水線。

DC/OS 介紹

Elizabeth 是 Mesosphere 的 DC/OS 技術佈道師。DC/OS(Datacenter/Operating System)是一個容器雲管平台,DC/OC 在基礎設施和具體應用之間創建了一個抽象層,將整個數據中心抽象成一台電腦操作系統,集中管理分散式負載以及簡化運維操作,運維人員操作整個數據中心可以和操作一台電腦一樣簡單。DC/OS使得運維人員可以專註於快速有效的提供環境和計算資源,開發人員專註於具體業務的開發。

Mesosphere DC/OS 架構

DC/OS 基於 Apache Mesos 創建容器管理平台,向上提供計算資源、網路、存儲的抽象管理,並支持多元化計算資源、物理機、虛擬機、甚至是cloud 計算資源。

DC/OS 模塊介紹

DC/OS Dashboard - 實時監控數據中心資源使用以及運行情況

運維人員通過集群中各個 Agent 收集集群節點的各項性能指標、資源使用情況以及應用運行情況,進行可視化報表展示,提供多維度集中展示,通過 Dashboard 運維人員可以快速了解數據中心資源使用情況,進而靈活分配資源以及集群擴容操作。

DC/OS Service - 監控和管理數據中心現有服務和應用

DC/OS 同時也是一個 PaaS 平台,開發人員可以根據應用需要通過 Universe 模塊快速安裝基礎公共服務或中間件,為應用提供底層支持,在 Service 模塊中列出了平台所有基礎服務以及應用,並展示對應資源佔用情況,同時我們也可以根據應用負載情況動態地對服務進行橫向擴展或提高資源配置來提高服務能力。

DC/OS Universe - 應用程序倉庫

Universe 倉庫中的應用既可以是為 Mesos 開發的應用調度框架,也可以是任意標準的 Docker 容器鏡像,它們都遵循 Marathon 的應用程序定義,可以直接部署到 DC/OS 中。目前 Universe 倉庫中有近百種應用,還在持續不斷的增加。如 HDFS、Kfaka、Jenkins、以及 Artifactory 等,我們可以在倉庫中快速安裝基礎服務。

同時我們可以通過 Universe 規範自定義一個應用或服務, 通過 Json 格式文件描述如何安裝應用以及應用相關配置,包括應用需要的計算資源,CPU、內存、埠等,如下圖:

Mesosphere 容器化交付流水線

持續CI/CD流水線架構

Git Checkout 應用源代碼。

基於包含業務站點內容的 Jekyll 基礎鏡像,構建 Docker App 鏡像,並推送到 Artifactory 註冊中心。

運行最新創建的 Docker 鏡像並使用 LinkChecker 鏡像進行集成測試,LinkChecker 是針對容器運行基礎的集成測試,會檢查所有的鏈接有效,例如無 404 類型的鏈接。

觸發一個 Marathon Deployment 部署任務,將新創建的鏡像發布到 DC/OS 容器管理平台。如果該應用已存在,則進行升級操作。

使用 Marathon Load Balancer 暴露發布到應用到 80 埠,對外提供服務。

流水線工具鏈

1. GitHub

2. Jenkins

3. Artifactory

4. Mysql

5. Docker

6. DC/OS(容器化管理平台)

其中 Jenkins,Artifactory 和 Mysql 都可以以 Service 的形式快速安裝於 DC/OS上 ,另外 Jenkins 上安裝 Mesos Plugin,Artifactory Plugin,Marathon Deployment Plugin。

Mesos Plugin : 允許 Jenkins 在 Mesos 集群上動態啟動新的 Slave 節點,實現 Jenkins 集群自動擴容,並在使用完後自動銷毀,讓給其他服務,充分利用計算資源。

Artifactory Plugin:在 Jenkins Pipeline 中幫助我們將構建的鏡像上傳到 Artifactory 註冊中心。

Marathon Deployment Plugin : 通過 API 將鏡像發布到 DC/OS(Mesos 集群)上,對外提供服務。

流水線 Demo

Jenkins 上創建 Pipeline 類型項目,可以實現一鍵發布應用到生產環境,對外提供服務,大大提高應用交付速度以及穩定性。

總結

DC/OS 將數據中心的資源管理抽象為一個操作系統,可以幫助運維人員像操作一台電腦一樣管理整個數據中心,大大簡化日常運維操作的複雜度,讓軟體開發體系中不同角色專註於各自的職責;Jenkins 的 Pipeline As Code(CD as Code),可以幫助我們使用代碼描述一個流水線,幫助我們快速搭建軟體交付流水線,快速將代碼以及綁定的環境交付到生產環境;Artifactory 的 Docker Registry 提供高性能註冊中心,提供高效穩定的鏡像拉取推送,加速軟體交付速度。

關於JFrog

世界領先DevOps平台

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 JFrog傑蛙DevOps 的精彩文章:

每周運行30萬個容器實例-Netflix 的容器化實踐

TAG:JFrog傑蛙DevOps |