DevOps落地實踐:BAT系列:CICD:iPipe vs CCI
百度效率雲,將自身定位為研發工具的SaaS解決方面,三大看點程式碼託管/CICD/敏捷看板非常清晰,對應icode/ipipe/icafe三大自研工具。而騰訊的DevOps解決方案聚焦於程式碼託管/CICD/測試管理/運維監控/專案管理五大領域,具體則依託於騰雲TGit/CCI/COC/TAPD四大開發者工具。因為功能和做法較為相近,這篇文章中我們將會通過其官方的介紹來看一下CICD的具體做法和各自的亮點。
CCI持續整合
為開發者提供支援多種程式語言的編譯構建服務,包含定時/手動啟動構建、檢視構建結果及日誌、支援快速分發交付、可擴充套件的自動化測試等功能,為專案的持續整合體系提供上游基礎服務,提升專案研發效率。
Why CCI
優勢 | 詳細說明 |
---|---|
接入門檻低 | 通過認證的騰訊雲帳號,CCI 可直接同步 TGit 的程式碼庫進行構建任務的建立;並提供了多臺標準編譯機,基礎構建任務無需進行編譯機購買及環境搭建工作。 |
配置靈活 | CCI 提供豐富的自定義編譯引數,滿足各種複雜編譯任務需求;支援接入私有編譯機,滿足使用者特殊編譯環境的任務需求;支援接入第三方程式碼源,可從 Github 或其他 SVN 程式碼源拉取程式碼完成構建。 |
流水線對接 | 在同步 TGit 程式碼的同時,CCI也能獲取到 TGit 的提交日誌,關聯變更與構建結果;可自動或手工將構建結果同步至織雲檔案管理模組,對構建結果進行版本管理,進而完成批量機器自動化部署工作。 |
可擴充套件性強 | 可配置定時觸發構建或程式碼提交觸發構建,快速迭代更新;構建下游提供開放介面,可接入各類自動化檢測工具(如程式碼靜態掃描、安裝包檢測),快速診斷程式碼問題,提升測試質量。 |
產品功能
功能 | 詳細說明 |
---|---|
構建任務管理 | 靈活的構建任務配置,可針對不同專案配置一到多個構建任務,獨立產出構建結果。 |
編譯引數場景 | 系統支援預設構建引數,允許自定義配置構建引數及構建指令碼,滿足個性化構建需求。 |
編譯機管理 | 提供了多臺標準編譯機,支援接入私有編譯機,支援使用者特殊編譯環境的任務。 |
自動觸發機制 | 使用者可手動觸發構建以外,可定時或程式碼提交時觸發構建,滿足每日基線及實時基線結果訴求。 |
關聯提交行為 | CI可拉取tGit或其他程式碼源的提交日誌,為每次構建結果關聯上程式碼提交日誌,方便跟蹤程式碼提交產出。 |
無需人工介入 | 通過後臺的構建叢集,CI可保證編譯的安全及穩定;構建完成後通過各類通知方式進行結果同步,無需值守或干預。 |
程式碼託管 | 通過認證的騰訊雲帳號,CCI 可直接拉取同一個開發者(或企業)的 TGit 專案,降低專案接入開銷。 |
釋出部署 | CCI 結果可一鍵或自動將構建結果同步至織雲檔案管理模組,對構建結果進行版本管理,協助完成批量機器自動化部署工作。 |
iPipe:持續交付工具
Why iPipe
優勢 | 詳細說明 |
---|---|
高效 | 分散式構建,併發不排隊;序列、並行、定時多種模式支援;自動日誌分析,快速定位異常 |
強大 | 整合多種應用測試服務,開箱即用;一鍵部署主流雲商;灰度釋出、A/B驗證多種部署支援;監控、反饋,實時瞭解系統執行情況 |
產品功能
- Check-in編譯
- 持續整合
- 產品倉庫
- 一鍵部署到雲端
- 移動應用測試
使用方式
以下一iPipe為例,簡單瞭解一下平臺如何使用。
iPipe + Jenkins
與Jenkins的整合方式,提供iPipe的Jenkins外掛:iPipe-Agent
在iPipe上建立job
自動化構建
程式碼評審
整體設定的yaml檔案
Image:
type : default
BeforeBuild:
script : ./before_build.sh
Build:
script : ./build.sh
AfterBuild:
script : ./after_build.sh
Package:
script : ./check_artifact.sh
artifacts:
name : waimai_fe
version : $COMMIT_ID-$BUILD_ID
files : [./ci.yml, ./build.sh]
格式說明
Image:
type : 指定編譯環境標籤, 必填欄位。預設標籤是default, 任何企業均可指定使用。企業還可以擁有專有的編譯環境標籤,專有標籤為企業專屬所有。
BeforeBuild: // 編譯前
script : 指定編譯前要執行指令碼, 可選欄位。該指令碼的路徑以程式碼根目錄為起始的相對路徑
Build: // 編譯中
script : 指定編譯階段要執行指令碼, 可選欄位。該指令碼的路徑以程式碼根目錄為起始的相對路徑
AfterBuild: // 編譯後
script : 指定編譯完成後要執行指令碼, 可選欄位。該指令碼的路徑以程式碼根目錄為起始的相對路徑
Package:
script : 指定將編譯結果打包時要執行指令碼, 可選欄位。該指令碼的路徑以程式碼根目錄為起始的相對路徑. 具體的打包動作由編譯系統自動完成,該指令碼不負責具體的打包工作。
artifacts:
name : 指定編譯結果壓縮包的名稱
version : 指定編譯結果壓縮包的版本,支援$COMMIT_ID, $BUILD_ID兩者的任意組合, 並用'-'連線. COMMMIT_ID 表示git 倉庫commit id, $BUILD_ID 表示構建ID.
支援格式: $BUILD_ID, $COMMIT_ID, $BUILD_ID-$COMMIT_ID, $COMMIT_ID-$BUILD_ID
files : 指定具體的產出檔案路徑,多個檔案逗號分割。每個路徑均以程式碼根路徑起始的相對路徑
情況說明:
name 和version 全部為空時,表示只編譯,不打包。
name 和version 只要有一個不為空,則進行打包操作。
version 欄位只支援$BUILD_ID, $COMMIT_ID兩個內建變數,必須以$開頭, 兩個都存在時必須以'-'連線,不支援其他符號進行連線
files 中多個檔案路徑必須以逗號分割, 不分割預設是一個檔案路徑
持續交付
總結
無論是百度還是騰訊,都很好的利用了自身的體量和平臺的優勢,使得雲平臺的使用者使用起來更加順暢,更能夠集中精力與業務開發。除了一鍵部署,而iPipe也明確的提出了持續部署中的灰度釋出和A/B驗證部署方式的支援。但是CI/CD可能遇到的情況非常複雜,比如雲和非雲,公有云和私有云的混合構成,然後多種程式語言,多種作業系統,不同的中介軟體,是否依然能夠支援,或者能夠支援到什麼程度,沒有得到詳細的驗證,如果自動編譯以Maven為中心的構成,則很有可能集中於java系的應用程式開發,具體在使用的時候這些都需要進一步的進行考察。
相關推薦
DevOps落地實踐:BAT系列:CICD:iPipe vs CCI
百度效率雲,將自身定位為研發工具的SaaS解決方面,三大看點程式碼託管/CICD/敏捷看板非常清晰,對應icode/ipipe/icafe三大自研工具。而騰訊的DevOps解決方案聚焦於程式碼託管/CICD/測試管理/運維監控/專案管理五大領域,具體則依託於
DevOps落地實踐:BAT系列:敏捷看板:iCafe vs Tapd
百度效率雲,將自身定位為研發工具的SaaS解決方面,三大看點程式碼託管/CICD/敏捷看板非常清晰,對應icode/ipipe/icafe三大自研工具。而騰訊的DevOps解決方案聚焦於程式碼託管/CICD/測試管理/運維監控/專案管理五大領域,具體則依託於
DevOps落地實踐:BAT系列:程式碼託管:iCode vs TGit
百度效率雲 百度效率雲是專業、好用的網際網路軟體研發平臺。內嵌產品規劃、開發計劃、執行跟蹤、回顧分析、持續改進等眾多優秀管理實踐,以及Git程式碼管理、程式碼評審、程式碼掃描、編譯加速、持續整合、自動部署、自動測試等豐富優秀開發實踐,為網際網路軟
DevOps落地實踐 BAT系列 CICD iPipe vs CCI
百度效率雲,將自身定位為研發工具的SaaS解決方面,三大看點程式碼託管/CICD/敏捷看板非常清晰,對應icode/ipipe/icafe三大自研工具。而騰訊的DevOps解決方案聚焦於程式碼託管/CICD/測試管理/運維監控/專案管理五大領域,具體則依託於騰雲TGit/CCI/COC/TAPD四大
千億美元金融組織的DevOps落地實踐:從內憂外患說起
作者介紹 黃博文 ThoughtWorks 首席諮詢顧問 個人簡介:ThoughtWorks 首席諮詢師,擔任過開發、測試、運維、技術經理等角色,在國內外多家大型企業做過技術教練以及技術諮詢,熟悉敏捷流程。目前專注於DevOps技術及雲端架構,在搭建持續整合及部署平臺、自動化構建基礎設施、虛擬化
DevOps企業實踐指南(4): 第二條原則:反饋
DevOps的第二條原則名為反饋,它存在於價值流的各個階段的逆向過程中,通過反饋而使得工作更加安全和可控。而反饋的重要性在大型複雜系統中顯現的更加重要,在故障出現最初端倪的時候就能檢測到的能力對於一個不能中斷和降低服務標準的關鍵性功能來說是無比重要的。 高
DevOps企業實踐指南(3): 第一條原則:流動
DevOps的三條基本原則:流動/反饋/文化。第一條原則(流動)需要達成快速平穩地從開發向運維的價值流動,從而更快的進行價值交付。在這個過程中,作為開發或者運維的區域性目標被弱化,而開發和運維等協同所產生的整體的共同目標在這條原則中得到強化。 從業務需求到交付
移動研發 DevOps 落地實踐
摘要: 本文將圍繞支付寶如何隨著移動市場的高速發展,逐步沉澱優化出適用業務發展需求的研發效能實踐。 作者:姚蘭天
優維DevOps系列沙龍全回顧:DevOps+SRE落地實踐+DevOps最後一棒
devops sre 優維科技 5月6日,優維科技和數人雲聯合主辦的DevOps&SRE系列活動《DevOps&SRE 超越傳統運維之道》在深圳順利舉行。優維科技CEO王津銀、數人雲CEO王璞、騰訊SNG運維負責人梁定安分別分享了《DevOps與傳統的融合落地實踐及案例分享》《SR
DevOps落地三部曲:如何歸責?用啥工具?往哪裡去?
講師介紹 任發科,網名常新居士,曾任職唯品會、會唐網、亞馬遜、ThoughtWorks,有十餘年軟體開發、架構和管理經驗。曾參與多個電商相關係統的研發工作,近年主要關注DevOps工具鏈的設計與實現,以及高效研發團隊的組建與管理。 今天我主要是從兩個方面去探討DevOps,由於大部分的同學可能更多
docker容器自動化部署落地實踐之四:jenkins安裝與配置
接下來安裝我們的jenkins jenkins在這裡起到了一個非常重要的作用 為我們從git上邊拉取工程後做的所有工作 可以為我們把工程一次性部署到多臺伺服器 這裡由於沒有太多機器 筆者就以單機做示範 多機用ssh部署過去就可以了 下載並安裝 wget https:/
支撐企業IT精益運營:普元DevOps平臺實踐之路
一、普元 DevOps 平臺建設歷程 普元從 2008 年開始研發持續整合平臺(CIP)、自動化測試平臺(UTP),2009 年內部的所有產品都實現了持續整合、自動化測試、自動化部署。 隨著 DevOps 理念的興起,企業的數字化轉型的需求也愈發強烈,於是開始著手研發 DevOps 平臺,並在
EasyOps創始人王津銀:什麼是DevOps”最佳實踐”?
在IT中,有很多令人喜歡的框架,無論敏捷,ITIL,精益,COBIT,六西格瑪或其他,其實這些背後都是透著對“最佳實踐”指導的渴望,這種渴望不可替代。 “最佳實踐”的概念本身是一種謎。 誰能決定一個實踐是否真的是最好的? 最適合誰? 儘管在大多數框架中都倡導“採納和適應性”,但依然存在著針對已釋出的
Docker系列(十一):kubernetes叢集叢集部署實踐
Kubernetes分散式叢集架構 服務註冊和服務發現問題怎麼解決的? 分散式通訊的核心就是ip加埠 每個服務分配一個不變的虛擬IP+埠 系統env環境變數裡有每個服務的服務名稱到IP的對映 如下: client = new redis\Client([ 'scheme'
OPEN(SAP) UI5 學習入門系列之二: 最佳實踐練習(上)
我們暫時不用Component來做模組化,我們先用最快最簡單的方法讓程式可以跑出個樣子來,然後再慢慢的新增功能。 所以,我們先直接加入MVC。 簡單介紹下,MVC就是模型、檢視和控制器的簡稱,一般的Web開發都會用到這種架構用來把前端的UI和業務邏輯分離。具體先不多介紹,直接做吧。 我們先大致規劃一下,我
微服務架構設計實踐系列之十:技術架構
微服務架構設計實踐 目 次1 序言2 微服務4.4.4 技術架構4.4.4.1 技術架構定義 技術架構定義了實現整個系統所需的各種技術,包括開發類、過程管理類、執行環境類、運維支撐類、以及相關技術規範等。 更確切地說,技術架構描述了在一個
微服務架構設計實踐系列之五:架構準備階段
微服務架構設計實踐 目 次1 序言2 微服務4.2 架構準備階段 在架構準備階段,主要是分析使用者的需求,推薦採用“ADMEMS矩陣”矩陣方法進行需求結構化,即“需求層次-需求方面矩陣”。 通過業務級需求、使用者級需求、開發級需求三個層次,
DevOps企業實踐指南(5): 第三條原則:文化
第一條原則體現了價值流的從左向右的流動,第二條原則是快速和日常的行為帶來的從優向左的反饋。第三條原則聚焦於創造一個持續學習和持續實踐的企業文化。而這些原則使得組織中的成員能夠不斷地積累知識和經驗,而這些知識和經驗最終成為團隊乃至組織的巨大收穫。 製造業的實
windows bat系列5:檢視監聽埠&終止程序
1. netstat說明:顯示協議統計和當前 TCP/IP 網路連線。其相關命令列引數如下: -a 顯示所有連線和偵聽埠。 -b 顯示在建立每個連線或偵聽埠時涉及的可執行程式。 在某些情況下,已
OPEN(SAP) UI5 學習入門系列之二: 最佳實踐練習(下)
可以先把程式碼下載到本地並跑起來,這樣可以對這個最佳實踐的程式有一個直觀的瞭解。 頁面導航如下: 銷售訂單列表(Master) -> 銷售訂單明細(Detail) -> 行專案明細(LineItem),在每個明細頁面都可以返回到上一層。 具體頁面之間的導航是如何實現的呢? 我們從頁面的入口