摘要:因子是一種構建應用的方法用聲明式的格式設置自動化,最小化新開發(fā)者加入項目的時間和成本。代碼庫一份被版本控制追蹤的代碼,多份部署因子應用會一直放在版本控制中,如,或者。每個分布式系統(tǒng)中的組件是一個應用,每一個都可以獨立遵守因子。
原文地址: https://12factor.net/12factor...介紹
現(xiàn)在軟件通常交付為一個服務:可以叫web應用,或軟件即服務(SaaS)。12因子是一種構建SaaS應用的方法:
用聲明式的格式設置自動化,最小化新開發(fā)者加入項目的時間和成本。
與下層操作系統(tǒng)有清晰的契約,其與執(zhí)行環(huán)境間提供最大的可移植性。
適合在現(xiàn)代云平臺部署,消除對服務器與系統(tǒng)管理的需求。
減少開發(fā)與生產(chǎn)的區(qū)別,為最大的敏捷性支持持續(xù)部署。
可以在無任何明顯對工具,架構或開發(fā)實踐上的變更的情況下進行伸縮。
12因子方法可以應用在任何語言編寫的應用,可以應用在任意后端服務(數(shù)據(jù)庫,隊列,內(nèi)存緩存等)。
背景這篇文檔的內(nèi)容在我們使用Heroku平臺的工作中直接使用在上百個應用的開發(fā)與部署上,間接影響了數(shù)千應用的研發(fā),運維,伸縮。
文檔綜合了我們所有的經(jīng)驗與對大量的軟件即服務應用的觀測。它綜合了以下三點:理想的應用開發(fā)實踐,關注應用的動態(tài)增長,開發(fā)者在應用代碼庫上的動態(tài)協(xié)作, 避免了軟件被削弱的成本。
我們的目標是提出我們在現(xiàn)在應用開發(fā)中看到的系統(tǒng)性問題,提供一種討論問題的共享詞匯,提供一組廣泛對此種問題使用的概念解決方案。這個格式是由Martin Fowler的書《企業(yè)應用架構模式》與《重構》激發(fā)的靈感。
I 代碼庫 一份被版本控制追蹤的代碼,多份部署12因子應用會一直放在版本控制中,如Git,Mercurial或者Subversion。 一份版本追蹤數(shù)據(jù)庫即為眾所周知的代碼庫(code repository),經(jīng)常簡寫為code repo或者repo。
代碼庫是一個多帶帶的倉庫(在中央式的版本控制系統(tǒng)如Subversion),或一些共享一個根路徑提交的倉庫集(在一個去中心化的版本控制系統(tǒng)如Git)。
一份代碼庫映射到多次部署。
代碼庫與應用總是一一對應的:
如果有多個代碼庫,那不是一個應用 -- 那是一個分布式系統(tǒng)。每個分布式系統(tǒng)中的組件是一個應用,每一個都可以獨立遵守12因子。
多個應用共享相同的代碼是違反12因子的。這里解決的方案是將代碼用庫的形式共享,這樣可以在依賴管理中被引入。
每個代碼庫只有一個應用,但每個應用會有多份部署。一個部署是應用的一個運行實例。一般會有一個生產(chǎn)環(huán)境,一個或多個開發(fā)環(huán)境。 并且,每個開發(fā)都有一份應用運行在他們的本地環(huán)境中,每一份這樣的應用也都是一份部署。
代碼庫在所有的部署中都是相同的,不過每個部署都會有不同的版本生效。比如,一個開發(fā)有一些提交還沒有部署到開發(fā)環(huán)境,開發(fā)環(huán)境還有一些提交沒有部署到生產(chǎn)環(huán)境。但他們都共享同一份代碼庫,所以他們可以標識為是同一個應用的不同部署。
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/71430.html
摘要:一個因子應用決不依賴隱式的系統(tǒng)級包。顯式聲明的依賴規(guī)范會被無差別的應用到開發(fā)環(huán)境與生產(chǎn)環(huán)境。一個顯式聲明依賴的好處是能簡化開發(fā)人員對新應用的設置工作。 II. 依賴 顯式聲明與隔離依賴 大部分編程語言提供一套分發(fā)支持庫的打包系統(tǒng), 比如Perl的CPAN或Ruby的Rubygems。從打包系統(tǒng)安裝的二方庫可以在系統(tǒng)層面(眾所周知的site packages)或包含應用的目錄區(qū)域(眾所周...
摘要:因子應用是由提供商的提出的。作為云平臺廠商,該公司創(chuàng)始人根據(jù)經(jīng)驗總結(jié)出來的軟件開發(fā)的方法論因子無疑值得同行學習。因子的大綱已經(jīng)有中文翻譯,可以直接參考每個因子的解釋,可以在該網(wǎng)站下載英文電子版了解。 12因子應用是由PaaS提供商Heroku的Adam Wiggins提出的。Heroku已經(jīng)被SaaS行業(yè)領軍廠商Salesforce收購,根據(jù)維基百科的記載,同年2011年松本行弘也加盟...
摘要:后端服務將后端服務視為可拔插的資源后端服務是一種在應用在網(wǎng)絡上正常運行時消費的任意一種服務。一份因子應用的部署可以不經(jīng)過任何代碼修改將本地數(shù)據(jù)庫替換成第三方的服務如。因子應用將這些數(shù)據(jù)庫看做可拔插資源,在部署時是松耦合的。 IV 后端服務 將后端服務視為可拔插的資源 后端服務是一種在應用在網(wǎng)絡上正常運行時消費的任意一種服務。包括數(shù)據(jù)庫(如MySQL或CouchDB),消息/隊列系統(tǒng)(如...
閱讀 1388·2021-10-11 10:57
閱讀 2103·2021-09-02 15:15
閱讀 1710·2019-08-30 15:56
閱讀 1258·2019-08-30 15:55
閱讀 1216·2019-08-30 15:44
閱讀 1035·2019-08-29 12:20
閱讀 1409·2019-08-29 11:12
閱讀 1128·2019-08-28 18:29