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