太多指令碼將會毀掉持續交付
Electric Cloud的產品經理Avantika Mathur在上個月的倫敦Continuous Lifecycle大會上呈現了演講,談到了與持續交付管道中越來越多的指令碼相關的成本。除了維護成本,在將變更部署到生產環境之前,正在進行的活動缺乏可見性和可審計性也是另一個主要成本,但很多組織都沒有意識到這一點。
\\要解決這個問題,首先需要識別問題,併為管道編配製定指導原則。Mathur推薦了這些原則:
\\- 確保部署之間的可重複性和一致性\
- 將應用程式的定義與環境分開\
- 專注於環境之間的可移植性\
- 避免鎖定某些工具和技術(換句話說,確保通過實踐來指導工作,而不是工具)\
在避免指令碼蔓延方面,Mathur建議的方法是首先將指令碼重構為引數化的通用函式,然後在可能的情況下用可以完成相同甚至更好工作的工具替換它們。
\\不過,同時處理大量指令碼可能具有一定挑戰性(從技術和人員的角度來看),並且效率低下(低投資回報率)。Mathur推薦了一種迭代方法。首先,通過價值流對映來識別那些減緩交付或混淆交付流程的中間瓶頸和依賴。這將有助於優先考慮哪些指令碼需要首先重構。Mathur還建議對現有指令碼進行分桶(配置、部署、測試自動化等)以便識別出重複任務,根據複雜性對它們進行分類以評估工作量,測算指令碼執行的頻率以估計潛在收益,最後再看看是否存在更好的替代方案可以降低成本。
\\Mathur最先注意到這種“指令碼噩夢”的影響,80%的團隊工程時間用在了維護(而不是用於演進)或低效自動化的指令碼以及緩慢的流程上,而不是用於更快更安全地進行交付。工程師忙於維護指令碼,害怕更改脆弱的指令碼,執行內容缺乏可見性,冗長的審計準備流程,這些都是指令碼失去控制或管道編配工作不夠細緻的典型現象。
\\總之,Mathur建議“將管道作為一種產品對待”,確保管道上的每一次變更都經過測試,並在進入“生產”環境之前經過全面評審(即可供所有人使用)。這也意味著要讓每個人都能看到管道,通過度量和基準來改進效能,並儘可能重用已有的部分。
\\相關文章
- 持續整合、持續交付與持續部署
- 持續整合、持續部署、持續交付、持續釋出
- 持續交付會如何影響測試
- 你真的懂持續整合、持續交付、持續部署嗎?!
- 淺談持續整合(CI)、持續交付(CD)、持續部署(CD)
- 對持續整合、 持續交付、持續部署和持續釋出的介紹
- 3分鐘瞭解清楚持續整合、持續交付、持續部署
- GitLab將會持續支援FluxCDGitlabUX
- 如何將 InfoSec、Compliance 整合到持續交付流水線中
- 持續整合持續部署持續交付_持續整合與持續部署之間的真正區別
- SAP開源的持續整合-持續交付的解決方案
- 雲原生下的DevOps與持續交付dev
- 聊聊持續交付與軟體架構架構
- 持續整合、持續交付和持續部署有什麼區別?0基礎學習linux技能Linux
- 持續交付探索與實踐(一):交付流水線的設計
- 快速指南:在DevOps中實現持續交付dev
- eBay透過事件溯源實現持續交付事件
- GitOps | 一種雲原生的持續交付模型Git模型
- 持續交付中的分支管理與版本控制
- Git 常用命令總結,將會持續更新Git
- 喬樑專訪——讓持續交付變為可能
- 你的DevOps中有完善的持續交付體系麼?dev
- 雲原生入門第六章:持續交付
- 兩個技術小錯誤會毀掉一場風暴事件事件
- Jenkins實現持續整合 使用Ant指令碼構建ios專案Jenkins指令碼iOS
- 基於Jenkins + Argo 實現多叢集的持續交付JenkinsGo
- 持續交付體系在高德的實踐歷程
- 關於 K8S 的持續化交付構建K8S
- Git-flow作者稱其不適用於持續交付?Git
- 一次推送,毀掉一個公司
- 《轉載》Jenkins持續整合-自動化部署指令碼的實現《python》Jenkins指令碼Python
- 移動APP持續交付系列之雲構建價值分析APP
- [譯] 不使用 fastlane 實現持續交付的 5 種選項AST
- 使用 KubeSphere 和極狐GitLab 打造雲原生持續交付系統Gitlab
- 持續交付探索與實踐(三):指標度量體系搭建指標
- Java致命傷:持續交付使JVM JIT成為反模式 - astradotJavaJVM模式AST
- 學習前端遇到瓶頸了?這些‘好’習慣都會毀掉你前端
- if else 太多?看我用 Java 8 輕鬆幹掉!Java