您的位置:首頁>科技>正文

當我們談到 DevOps,我們在談論什麼?

作者|王延炯

編輯|Emily

作者介紹:王延炯, EAII-企業架構創新研究院 專家委員, 現任普元資訊主任架構師。

當我們談到 DevOps 時, 可能討論的是:流程和管理,

運維和自動化, 架構和服務, 以及文化和組織等等概念。 那麼, 到底什麼是"DevOps"呢?

誰在用 DevOps ?

目前在國外, 互聯網巨頭如Google、Facebook、Amazon、LinkedIn、Netflix、Airbnb, 傳統軟體公司如Adobe、IBM、Microsoft、SAP等, 亦或是網路業務非核心企業如蘋果、沃爾瑪、索尼影視娛樂、星巴克等都在採用DevOps或提供相關支援產品。

其他對實施DevOps有想法的公司, 多半都是業務發展還不錯, 在研發和運維上都比較大的壓力的公司, 希望通過引入 DevOps 來提升公司IT部門的總體運作效率, 來支撐業務的發展速度。

隨著軟體發佈反覆運算的頻率越來越高, 傳統的「瀑布型」(開發—測試—發佈)模式已經不能滿足快速交付的需求。 DevOps於是應運而生, 簡單地來說, 就是更好的優化開發(DEV)、測試(QA)、運維(OPS)的流程, 開發運維一體化, 通過高度自動化工具與流程來使得軟體構建、測試、發佈更加快捷、頻繁和可靠。

DevOps 對於企業IT的價值

談到企業IT, 就沒有辦法回避兩種迥然不同的企業, 一種是以傳統製造業或者服務業為基礎的, 對生產資料進行加工的「傳統企業」; 另一種是以「資訊互聯」為基礎的, 對「人與人關係、人與物關係、物與物關係」進行資訊加工的「互聯網企業」。

這是兩類極端的企業, 一類企業的日常運行, 可以沒有資訊系統;另一類企業, 完全離不開資訊系統。 對於互聯網企業, 資訊系統是企業產品的命脈, 企業對於軟體的價值觀以及投資組合, 對於其他企業要高出很多。

DevOps 的核心價值, 是能夠幫助企業快速交付變更, 以便於快速回應企業對於市場的變化、用戶的需求。

代碼

構建

測試

打包

發佈

配置

監控

以上7個過程, 是 DevOps 站在軟體生命週期平臺化運營的視角, 為企業IT所建立的一個「IT for IT / IT4IT[4] 」的業務平臺。

如果說, 軟體發展、交付、運維是一個傳統行業, 那麼 DevOps 就是映射了這個傳統行業的一個軟體平臺。

通過 DevOps 可以助力企業軟體交付的效率提升, 幫助企業IT實現數位化運營。

可以用一句話定位以下三者在價值鏈上的關係:「資訊」(資料)「資訊系統」(處理資料的工具)「DevOps」(製造與維護處理資料的工具的工具)

在「資訊」(資料)成為企業「生產資料」一部分的條件下, 資訊系統快速演進的業務驅動力、DevOps的價值, 才能夠清晰地得以體現。

企業IT系統的從「業務支撐型」走向「業務驅動型」的轉捩點, 是由企業產品的最終使用者, 直接以低成本為企業提供生產資料——資訊(資料)——並使之成為企業產品的一部分 。

如果資訊是企業產品的全部, 那麼這種類型的企業就是第三類——互聯網企業。

DevOps在企業中的實踐

和眾多源於互聯網的理念一樣, 在 DevOps 的概念被炒熱之前, 眾多互聯網公司其實已經實踐了 DevOps 。 其中的原因也正是因為資訊系統, 是這些公司的生產工具, 沒有人比互聯網公司的人更明白提高自身的辦公效率, 提高團隊、企業的生產力, 就是為提高企業產品的生產力進行有效的保障。

除了上面提的 DevOps 覆蓋企業軟體生命週期中的7個過程, DevOps 在企業落地過程中, 傳統企業或多或少都已經建設了一部分配套系統, 尤其是AAAA與監控系統, 其他的代碼管理、持續集成工具也或多或少的有所積累。

DevOps 更多的是把IT服務產品化的平臺, 企業中的任何一個IT能力, 都應當能夠在 DevOps 中面向其使用者提供自服務的能力。

例如, 系統的開發者, 能夠自主地在 DevOps 上連線分析生產環境的日誌, 而不必經過層層壁壘, 一台台登錄生產環境的主機, 檢索日誌。 再例如, 項目組的快速變更、員工的快速入職、離職, 都應當能夠在 DevOps 中實現自動化的帳號開通和註銷。

需要注意的是, 相比傳統企業尤其是製造業的產品製造工藝和製造流程, 軟體產品的製造, IT服務的交付, 更多的是交付一些無形的軟體產品和知識工作。 正因為這些無形產品受制於不同的人認知所產生的多變, 其管理複雜度遠比製造業來的複雜, 企業軟體的設計、開發、發佈、上線, 缺乏標準化的管理過程。

對於如今的非互聯網企業而言,能夠快速見效的 DevOps實踐,應當從(環境)配置的管理,以及自動化部署。 在實施難度上,配置的管理要低於自動化部署。因為非互聯網企業的技術路線由於供應商的競爭(甚至是惡意競爭),變得極其多樣,架構離散化程度也很高。

對比互聯網企業,(環境)配置管理和自動化部署,由於IT技術從硬體到虛擬化/容器的自主可控,企業整體技術架構的收斂性就比較理想。

DevOps 不僅打通了開發、運維之間的部門牆,更實現了應用全生命週期的工具鏈路打通、跨團隊的線上協作能力,讓軟體衍生出簡單協作的生態之美。

那麼,如何快速部署同時提高IT穩定性,DevOps實踐中可能會遇到怎樣的障礙和挑戰?面對這些問題,StuQ 特別邀請 ThoughtWorks DevOps 技術諮詢師林帆老師帶領大家從頭認識『DevOps』文化的起源,和你一起編寫漂亮的持續交付流水線,動手聯通從代碼開發、測試到上線,以及運行回饋的完整過程,實實在在地體驗一把 DevOps 工程師的日常。讓你在一個多月的時間裡,快速點亮『DevOps』的核心技能樹。

課程名稱:《 DevOps 工程師速成班 》

講師介紹:

早鳥價:1499元(原價1899元,前100人享受預售優惠)

上課週期:4周共24課時(1課時=40分鐘)

上課時間:暫定每週一&週四21:00~23:00

學習形式:直播視頻講解 + QQ學員群交流答疑

課程大綱

第一課 情景模擬:DevOps 工程師的入職培訓(1.5 課時)

『DevOps』是怎樣的一種企業文化?為什麼說『DevOps工程師』這個職位本不應該出現?但是它又為何出現了?『萬能的開發運維工程師』『距離架構師最近的人』…職場圈裡對『DevOps工程師』的各種神話究竟有幾分真實性?這節課裡,讓我們來近距離還原『DevOps』的真相,了解職場『DevOps工程師』所需的知識結構。

第二課 Git 進階:基本生存技能(1.5 課時)

在工作中,你敢說自己熟悉使用Git嗎?這個隨著Linux內核共同發展起來的分散式版本管理工具,隱藏了哪些鮮為人知的秘密?這節課裡,我們將深入Git的存儲原理,展示Git的遠端倉庫、遠端分支、本地分支、緩存區等特性和進階Git命令。

第三課 Jenkins:交付流水線即代碼(3 課時)

持續交付流水線作為『DevOps』的交付主航道,起著承前啟後的關鍵作用,如今的持續交付流水線與它剛剛誕生時有了哪些不同呢?這節課裡,我們將講解的『流水線即代碼』方面最新發展,帶大家熟悉Jenkins工具的使用,並搭出一條定制化的流水線。

第四課 SonarQube:專案品質持續追蹤(3 課時)

軟體的代碼品質是一個無法量化衡量的指標,是否有方法能儘早發現代碼中常見的潛在問題,從而降低代碼持續腐化的風險?這節課裡,我們將介紹 SonarQube:一個集代碼靜態檢查和品質指標視覺化的開源工具,並將代碼品質門檻添加到交付流水線中。

第五課 Ansible:基礎設施即代碼(3 課時)

隨著許多企業基礎設施雲化,獲得大量低成本的硬體計算資源不再是什麼困難的事情,面對這些日新月異的平臺,我們如何進行管理呢?這節課裡,我們將介紹基礎設施自動化管理的常用方式,並編寫 Ansible 腳本來完成交付流水線的上線部署。

第六課 Docker:容器化運行環境(3 課時)

近年來,容器技術給整個軟體行業帶來了巨大的革命,它和傳統的虛擬機器式的交付過程有什麼差別?Docker 在近年來的發展有何趨勢?這節課裡,我們將深入容器技術的原理和 Docker 工具使用方法,並使用容器化的方式來改進軟體的發佈流程。

第七課 Prometheus:視覺化效率與性能(3 課時)

任何人都不希望在收到用戶投訴以後才發現自己運行的服務出現故障,但面對越來越多的伺服器和軟體,怎樣快速把它們統統監控起來呢?這節課裡,我們將介紹 Prometheus:一款新型的開源監控軟體,並搭建一套視覺化監控及自動指標告警的系統。

第八課 Fluentd:分散式日誌管理(3 課時)

除了有效的監控,軟體日誌同樣是發現和及時解決問題的重要途徑,但從分散在各個地方的日誌檔裡查找資訊並不容易,如何更有效的進行日誌管理呢?這節課裡,我們將介紹 Fluentd 和 Elastic Stack 系列工具,只要通過適當的組合就能得到一套稱手的日誌集中管理系統。

第九課 情景模擬:DevOps 工程師的一天(3 課時)

嘿,開始工作啦!在 DevOps 工程師的日常裡可能會發生些怎樣的故事呢? 作為此門課程的結業之旅,這次課實際上是一次課堂大練習,同樣的,依然會以動手為主。

點擊『閱讀原文』立即報名。

缺乏標準化的管理過程。

對於如今的非互聯網企業而言,能夠快速見效的 DevOps實踐,應當從(環境)配置的管理,以及自動化部署。 在實施難度上,配置的管理要低於自動化部署。因為非互聯網企業的技術路線由於供應商的競爭(甚至是惡意競爭),變得極其多樣,架構離散化程度也很高。

對比互聯網企業,(環境)配置管理和自動化部署,由於IT技術從硬體到虛擬化/容器的自主可控,企業整體技術架構的收斂性就比較理想。

DevOps 不僅打通了開發、運維之間的部門牆,更實現了應用全生命週期的工具鏈路打通、跨團隊的線上協作能力,讓軟體衍生出簡單協作的生態之美。

那麼,如何快速部署同時提高IT穩定性,DevOps實踐中可能會遇到怎樣的障礙和挑戰?面對這些問題,StuQ 特別邀請 ThoughtWorks DevOps 技術諮詢師林帆老師帶領大家從頭認識『DevOps』文化的起源,和你一起編寫漂亮的持續交付流水線,動手聯通從代碼開發、測試到上線,以及運行回饋的完整過程,實實在在地體驗一把 DevOps 工程師的日常。讓你在一個多月的時間裡,快速點亮『DevOps』的核心技能樹。

課程名稱:《 DevOps 工程師速成班 》

講師介紹:

早鳥價:1499元(原價1899元,前100人享受預售優惠)

上課週期:4周共24課時(1課時=40分鐘)

上課時間:暫定每週一&週四21:00~23:00

學習形式:直播視頻講解 + QQ學員群交流答疑

課程大綱

第一課 情景模擬:DevOps 工程師的入職培訓(1.5 課時)

『DevOps』是怎樣的一種企業文化?為什麼說『DevOps工程師』這個職位本不應該出現?但是它又為何出現了?『萬能的開發運維工程師』『距離架構師最近的人』…職場圈裡對『DevOps工程師』的各種神話究竟有幾分真實性?這節課裡,讓我們來近距離還原『DevOps』的真相,了解職場『DevOps工程師』所需的知識結構。

第二課 Git 進階:基本生存技能(1.5 課時)

在工作中,你敢說自己熟悉使用Git嗎?這個隨著Linux內核共同發展起來的分散式版本管理工具,隱藏了哪些鮮為人知的秘密?這節課裡,我們將深入Git的存儲原理,展示Git的遠端倉庫、遠端分支、本地分支、緩存區等特性和進階Git命令。

第三課 Jenkins:交付流水線即代碼(3 課時)

持續交付流水線作為『DevOps』的交付主航道,起著承前啟後的關鍵作用,如今的持續交付流水線與它剛剛誕生時有了哪些不同呢?這節課裡,我們將講解的『流水線即代碼』方面最新發展,帶大家熟悉Jenkins工具的使用,並搭出一條定制化的流水線。

第四課 SonarQube:專案品質持續追蹤(3 課時)

軟體的代碼品質是一個無法量化衡量的指標,是否有方法能儘早發現代碼中常見的潛在問題,從而降低代碼持續腐化的風險?這節課裡,我們將介紹 SonarQube:一個集代碼靜態檢查和品質指標視覺化的開源工具,並將代碼品質門檻添加到交付流水線中。

第五課 Ansible:基礎設施即代碼(3 課時)

隨著許多企業基礎設施雲化,獲得大量低成本的硬體計算資源不再是什麼困難的事情,面對這些日新月異的平臺,我們如何進行管理呢?這節課裡,我們將介紹基礎設施自動化管理的常用方式,並編寫 Ansible 腳本來完成交付流水線的上線部署。

第六課 Docker:容器化運行環境(3 課時)

近年來,容器技術給整個軟體行業帶來了巨大的革命,它和傳統的虛擬機器式的交付過程有什麼差別?Docker 在近年來的發展有何趨勢?這節課裡,我們將深入容器技術的原理和 Docker 工具使用方法,並使用容器化的方式來改進軟體的發佈流程。

第七課 Prometheus:視覺化效率與性能(3 課時)

任何人都不希望在收到用戶投訴以後才發現自己運行的服務出現故障,但面對越來越多的伺服器和軟體,怎樣快速把它們統統監控起來呢?這節課裡,我們將介紹 Prometheus:一款新型的開源監控軟體,並搭建一套視覺化監控及自動指標告警的系統。

第八課 Fluentd:分散式日誌管理(3 課時)

除了有效的監控,軟體日誌同樣是發現和及時解決問題的重要途徑,但從分散在各個地方的日誌檔裡查找資訊並不容易,如何更有效的進行日誌管理呢?這節課裡,我們將介紹 Fluentd 和 Elastic Stack 系列工具,只要通過適當的組合就能得到一套稱手的日誌集中管理系統。

第九課 情景模擬:DevOps 工程師的一天(3 課時)

嘿,開始工作啦!在 DevOps 工程師的日常裡可能會發生些怎樣的故事呢? 作為此門課程的結業之旅,這次課實際上是一次課堂大練習,同樣的,依然會以動手為主。

點擊『閱讀原文』立即報名。

Next Article
喜欢就按个赞吧!!!
点击关闭提示