You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
有一間公司 SoftwareCo Inc., 裡面員工有 Alice, Bob, Charlie, David 和 Elizabeth, 公司產品是一個應用程式, 叫 SuperBigProject. Alice, Bob 和 Charlie 是 developer. David 是 test engineer. Elizabeth 則是團隊的 project manager.
Continuous Integration(CI, 持續整合)
和Continuous Delivery(CD, 持續交付)
相關資訊. 很多 blog 發文嘗試要以技術層面去解釋這些methodology(方法論)
是做甚麼, 以及如何協助你. 不幸的是, 大部分情況, 這兩種 methodology 通常都與特定工具或供應商有關. 公司內常見對談的情境可能是:development approach(開發方式)
. 不會與特定的工具或供應商有關連. 雖然這些工具和 solution 能協助你完成 CI/CD, 但其實只靠 bash script 和 Perl one-liner 就夠.(聽起來不實際, 但卻是可行的)軟體 integration 的黑暗時代
single integration
. 這是流程中的 paint point, 應該避免, 並想辦法要讓團隊 release 能毫無壓力完成.將 "continuous" 加進 integration
Integration(整合)
的意思, 那就很容易理解何謂Continuous Integration(持續整合)
. 有一句諺語說, "如果有件事只做一次很痛苦, 那就經常做淡化它." CI 本質上就是重複做 integration 階段所做的事情, 以頻繁 integration 來緩和痛苦. 最顯而易見的方式就是每次 feature merge 完, 都做一次 integration(而不是等到要 release 才做).軟體 delivery 的黑暗時代
integration
的歷史, 以及Continuous Integration
的運作模式, 可以往下一層Continuous Delivery
邁進.waterfall design approach(瀑布式設計方法)
).將 "continuous" 加進 delivery
candidate(候選者)
. 但不是所有 candidate 都會進 production. 會依據團隊內的考量, 人為介入決定是否 deploy. 我們只要決定 release 該不該進 production 即可(但不用做 prepare release). release 早已 package, test 並且 deploy 到測試環境了.repeatable(可重複)
與deterministic(決定性)
.雲端
能協助我們達成所有需求, 但在軟體團隊裡(包含 developer 與 operation) 都還是要某種程度的紀律才能真正擁抱 CD.加碼: Continuout Deployment
D
也可代表成 deployment. development approach 會建立在 Continuous Delivery 之上, 而且完全移除掉所有人為介入. 任何準備好的 release candidate(通過所有品質測試關卡) 立刻就會推到 production.The text was updated successfully, but these errors were encountered: