原文:https://12factor.net/zh_cn/
簡介
如今,軟件通常會作為一種服務(wù)來交付,它們被稱為網(wǎng)絡(luò)應(yīng)用程序,或軟件即服務(wù)(SaaS)。12-Factor 為構(gòu)建如下的 SaaS 應(yīng)用提供了方法論:
- 使用標(biāo)準(zhǔn)化流程自動配置,從而使新的開發(fā)者花費最少的學(xué)習(xí)成本加入這個項目。
- 和操作系統(tǒng)之間盡可能的劃清界限,在各個系統(tǒng)中提供最大的可移植性。
- 適合部署在現(xiàn)代的云計算平臺,從而在服務(wù)器和系統(tǒng)管理方面節(jié)省資源。
- 將開發(fā)環(huán)境和生產(chǎn)環(huán)境的差異降至最低,并使用持續(xù)交付實施敏捷開發(fā)。
- 可以在工具、架構(gòu)和開發(fā)流程不發(fā)生明顯變化的前提下實現(xiàn)擴(kuò)展。
這套理論適用于任意語言和后端服務(wù)(數(shù)據(jù)庫、消息隊列、緩存等)開發(fā)的應(yīng)用程序。
背景
本文的貢獻(xiàn)者者參與過數(shù)以百計的應(yīng)用程序的開發(fā)和部署,并通過 Heroku 平臺間接見證了數(shù)十萬應(yīng)用程序的開發(fā),運作以及擴(kuò)展的過程。
本文綜合了我們關(guān)于 SaaS 應(yīng)用幾乎所有的經(jīng)驗和智慧,是開發(fā)此類應(yīng)用的理想實踐標(biāo)準(zhǔn),并特別關(guān)注于應(yīng)用程序如何保持良性成長,開發(fā)者之間如何進(jìn)行有效的代碼協(xié)作,以及如何 避免軟件污染 。
我們的初衷是分享在現(xiàn)代軟件開發(fā)過程中發(fā)現(xiàn)的一些系統(tǒng)性問題,并加深對這些問題的認(rèn)識。我們提供了討論這些問題時所需的共享詞匯,同時使用相關(guān)術(shù)語給出一套針對這些問題的廣義解決方案。本文格式的靈感來自于 Martin Fowler 的書籍: Patterns of Enterprise Application Architecture , Refactoring 。
讀者應(yīng)該是哪些人?
任何 SaaS 應(yīng)用的開發(fā)人員。部署和管理此類應(yīng)用的運維工程師。