iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0

什麼是DevOps?

DevOps是「開發」(Development)和「維運」(Operations)的縮寫,旨在消除「軟體開發人員」和「維運技術人員」之間的隔閡。

  • 軟體開發人員(Dev):編寫和測試程式
  • 維運技術人員(Ops):佈署和維護程式

傳統上,開發和維運是兩個不同的團隊,開發人員關注編寫程式、創新功能,而維運人員則專注於維護系統穩定性。這種模式可能導致「程式完成但無法快速佈署」的情況,開發和維運脫節,就會出現 "It Works On My Machine. (它在我的電腦上執行正常)" 的狀況QAQ


為什麼DevOps如此重要?

1. 加快軟體交付速度

傳統的開發和維運模式往往導致軟體交付週期過長,因為兩者之間的溝通通常較為緩慢。實施DevOps後,開發和維運可以實時同步進度,顯著提高軟體交付的速度。

2. 提高軟體品質

DevOps強調持續整合(CI)和持續交付(CD),這意味著每次提交的程式都會進行自動測試,並在所有測試通過後自動佈署到正式環境中,從而最大限度地降低錯誤發生的機率,確保交付的軟體品質。

3. 自動化維運工作

維運自動化是DevOps的核心之一。通過編寫自動化腳本來處理佈署、監控和測試等重複性工作,可以減少人為錯誤並提升效率,讓開發和維運人員能夠專注於更具價值的任務。

DevOps透過文化、流程和工具的整合,促進團隊之間的緊密合作,從而縮短軟體交付的週期,讓「程式開發 → 測試 → 上線」的過程更加快速、高效和穩定。它不僅僅是一套工具或技術,更是一種文化和方法論,強調團隊之間的協作、溝通和自動化。

通過實施DevOps,開發與維運之間的壁壘逐漸消失,這兩個團隊不再是獨立角色,而是 持續協作 的夥伴。這種協作不僅限於技術層面,更是一種團隊文化的轉變。


DevOps 的方法

常見的 DevOps 方法有 Scrum、Kanban 和 Agile,它們通過強化團隊協作與持續改進來加速開發流程。Scrum 透過短週期開發(如衝刺)來加速進度,而 Kanban 則專注於管理進行中的工作。這些方法與 DevOps 工具鏈相結合,有效簡化了從開發到佈署的每個步驟。

DevOps 工具鏈

DevOps 工具鏈涵蓋了從規劃到監控的每個階段,常見的相關工具有:

  • Plan 規劃:Jira, Trello
  • Code 程式碼管理:GitHub, GitLab
  • Build 構建:Docker, Maven, Artifactory
  • Test 測試:Selenium, JUnit
  • Deploy 佈署: Jenkins, Kubernetes, Docker, Jira
  • Operate 維運: Ansible, Puppet, Otter
  • Monitor 運行與監控:DataDog, Grafana, Splunk

以上這些分類是指在各階段可能會使用到的工具,所以相同階段的工具擁有的功用可能完全不同~

DevOps 實踐

DevOps 強調自動化與持續改進,常見的實踐包括:

  • 持續整合( Continuous Integration ):確保程式碼及時測試並整合到主分支
  • 持續交付( Continuous Delivery ):自動化將測試通過的程式碼佈署至正式環境
  • 基礎設施即程式碼(IaC):使用程式碼(而非手動程序和設定),來佈建和支援運算基礎設施的能力。將基礎設施管理自動化,提升系統的可擴展性和穩定性。

小結

今天我們簡單介紹了DevOps的基本概念,探討了它對軟體開發和維運之間協作的影響。DevOps不僅是一種技術,更多是一種文化,強調開發和維運團隊之間的協作與自動化。而接下來的日子裡,我們將從實作的角度,逐步掌握這些核心技能!


預告

明天,我們將開始進行具體的實作!首先,我會帶大家申請一個 Azure DevOps 帳號,並使用這個平台來建立我們的第一個專案。Azure DevOps 提供了包括 版本控制、CI/CD、自動化測試 等多種功能,能夠幫助我們快速交付高品質的應用軟體。敬請期待!


參考文件


上一篇
Day01 - DevOps 實踐挑戰:目標與計劃
下一篇
Day03 - 使用 Azure DevOps 加速交付
系列文
DevOps菜鳥的30天實踐挑戰:從 CI/CD Pipeline 到雲端佈署30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言