近年由於敏捷式開發日益普及,連帶 DevOps 也跟著開始流行了起來,在經常有人提及 DevOps 的情況下,卻似乎越來越難有人講得清楚什麼是 DevOps。曾有人說 DevOps 是一種文化;也有人說 DevOps 是敏捷的子項目;還有人說 DevOps 是一套關於自動化的做法...各式說法。那究竟 DevOps 到底是什麼呢?
本篇系列文章就是作者自己在一系列的探索後,整理出來的內容,由於作者工作上使用 GitLab 與 GCP,因此以 GitLab + GCP 為題與各位一起揭開 DevOps 的神秘面紗,並找出可執行的方案與工具。
此系列文章目錄:
DevOps 系列
GitLab 系列
Google Cloud Platform 系列
DevOps Lab 系列
DevOps 可以視為是開發 (Dev)、維運 (Ops) 與品質保障 (QA) 三者的交集
在近年來敏捷式 (agile) 開發逐步崛起,如大家而熟能詳的 Scrum 和看板就是其中的成員,軟體交付的速度更快、質量更高的同時成本也更低。然而一個主要的缺點是傳統的維運到佈署開始難以有效的配合,敏捷開發所提倡的速度、溝通和協作文化與傳統維運模式的文化不一致,其產生的結果是開發團隊能快速產生企業所需的軟體,但軟體卻無法快速佈署到生產環境。
在起源中被指出的問題已被 DevOps 所解決,這是一種通過將開發和維運兩個團隊,合併成為一個全新的團隊,使知識和技能得以被共享問題得以被解決的一種模式,這種模式是沒有固定的方案,而藉由此模式從而解決 Dev 與 Ops 之間種種問題的文化、行為、合作...等,就被稱之為 DevOps。
由於 DevOps 並沒有統一的定義,但從各家所提出的 DevOps 是可以找出共通的特性,而這些特性則描述了 DevOps 是如何被使用。
人員 (People)
文化、行為、開發、合作、可擴展性和親和力是 DevOps 的主要內容。
方法 (Method)
DevOps 的一個重要方面是敏捷化的思考和作法,無論是 Scrum、看板還是其他形式的開發模式中,精益求精的思想和持續改善的實作是不可缺少的特點。
資源 (Resource)
資源方面強調產品的生產方式,如版本控制、集成、佈署和交付等方面會被經常的討論,而最主要側重這方面的就是所謂的「自動化」。
DevOps 不是一套工具,也不是一種噱頭。DevOps 更多的是基於一些行動原則,以便能更好的使得團隊是有效的被運作,以及更好的滿足客戶對於時間及附加價值的需求,而其原則包括文化思想方面、合作溝通方面和通過工具來實現自動化,從而解決 Dev 到 Ops 之間的種種問題。