[Day 27] Jenkins (1) - iT 邦幫忙 | jenkins教學
前言官方文件一開始的WhatisJenkins?一節中是這麼介紹Jenkins的:Jenkinsisaself-contained,opensourceautomationserverwhichcanbeusedtoautomateallsortsoftasksrelatedtobuilding,testing,anddeliveringordeployingsoftware.Jenkins是個(提供)自動化的伺服器,可用來將各種關於building、測試、發佈、部署軟體的工作自動化。我自己覺得學習這類提供「自動化」的工具,例如Ansible、Jenkins,有一個困難的地方在於「要把什麼工作自動化」。我曾有一份工作的內容是維護PHP開發的網站,當時只有一台開發機和一台對外服務的機器,因為...
前言官方文件一開始的 What is Jenkins? 一節中是這麼介紹 Jenkins 的:
Jenkins is a self-contained, open source automation server which can be used to automate all sorts of tasks related to building, testing, and delivering or deploying software.
Jenkins 是個(提供)自動化的伺服器,可用來將各種關於 building、測試、發佈、部署軟體的工作自動化。
我自己覺得學習這類提供「自動化」的工具,例如 Ansible、Jenkins,有一個困難的地方在於「要把什麼工作自動化」。我曾有一份工作的內容是維護 PHP 開發的網站,當時只有一台開發機和一台對外服務的機器,因為是完完全全用 plain PHP 開發的,沒有框架也沒有樣板,甚至沒有進版控系統。每次修了 bug 或是開發了新功能之後,就是手動稍微測試一下,若要將修改的檔案部署到對外服務機器的流程,就是在開發機把修改過的檔案和一支 script 壓成一個 tar 檔,然後把 tar 檔丟到服務機器,解開之後執行 script 把修改過後的檔案複製到相對應的位置。在整個開發到部署的過程中,基本上沒有什麼能夠自動化的空間,而且會以為這整個就是一般應用服務系統的流程。
後來看的東西比較多了,才知道這個過程還有很多的可能性,會根據所用的語言框架、技術複雜度、開發團隊的人數規模、公司的文化習慣、應用程式服務使用者上線的量、開發團隊與維運團隊的友好程度……,各種因素都有可能影響開發到建置的過程中會出現那些步驟。當然也不是說採用 A 流程就一定比 B 流程好,但當整個部署流程的步驟愈複雜、參與的人數愈多,就愈需要自動化,因為它可以降低對人力的依賴,並減少出錯的機率。但剛才說採用 A 流程不一定就比 B 流程好,那麼有自動化一定會比自動化好嗎?雖然我很想說是,但實際上也是看狀況而定,之前有遇到上級指示說自動化後,沒有了人為判斷會有風險,但就是因...