云原生12因素應(yīng)用

12因素應(yīng)用是一系列云原生應(yīng)用架構(gòu)的模式集合,最初由Heroku提出。這些模式可以用來說明什么樣的應(yīng)用才是云原生應(yīng)用巩那。它們關(guān)注速度、安全此蜈、通過聲明式配置擴(kuò)展即横、可橫向擴(kuò)展的無狀態(tài)/無共享 進(jìn)程以及部署環(huán)境的整體松耦合。如Cloud Foundry裆赵、Heroku和Amazon ElasticBeanstalk都對部署12因素應(yīng)用進(jìn)行了專門的優(yōu)化东囚。

在12因素的背景下,應(yīng)用(或者叫app)指的是獨立可部署單元战授。組織中經(jīng)常把一些互相協(xié)作的可部 署單元稱作一個應(yīng)用页藻。

12因素應(yīng)用遵循以下模式:

代碼庫

每個可部署app在版本控制系統(tǒng)中都有一個獨立的代碼庫,可以在不同的環(huán)境中部署多個實例植兰。

依賴

App應(yīng)該使用適當(dāng)?shù)墓ぞ?如Maven份帐、Bundler、NPM)來對依賴進(jìn)行顯式的聲明楣导,而不該在部署環(huán) 境中隱式的實現(xiàn)依賴废境。

配置

配置或其他隨發(fā)布環(huán)境(如部署、staging、生產(chǎn))而變更的部分應(yīng)當(dāng)作為操作系統(tǒng)級的環(huán)境變量注 入噩凹。

后端服務(wù)

后端服務(wù)巴元,例如數(shù)據(jù)庫、消息代理應(yīng)視為附加資源驮宴,并在所有環(huán)境中同等看待逮刨。

編譯、發(fā)布堵泽、運(yùn)行

構(gòu)建一個可部署的app組件并將它與配置綁定修己,根據(jù)這個組件/配置的組合來啟動一個或者多個進(jìn)程, 這兩個階段是嚴(yán)格分離的迎罗。

進(jìn)程

該app執(zhí)行一個或者多個無狀態(tài)進(jìn)程(例如master/work)睬愤,它們之間不需要共享任何東西。任何需要的狀態(tài)都置于后端服務(wù)(例如cache佳谦、對象存儲等)戴涝。

端口綁定

該應(yīng)用程序是獨立的滋戳,并通過端口綁定(包括HTTP)導(dǎo)出任何/所有服務(wù)钻蔑。

并發(fā)

并發(fā)通常通過水平擴(kuò)展應(yīng)用程序進(jìn)程來實現(xiàn)(盡管如果需要的話進(jìn)程也可以通過內(nèi)部管理的線程多路復(fù)用來實現(xiàn))。

可任意處置性

通過快速迅速啟動和優(yōu)雅的終止進(jìn)程奸鸯,可以最大程度上的實現(xiàn)魯棒性咪笑。這些方面允許快速彈性縮放、部署更改和從崩潰中恢復(fù)娄涩。

開發(fā)/生產(chǎn)平等

通過保持開發(fā)窗怒、staging和生產(chǎn)環(huán)境盡可能的相同來實現(xiàn)持續(xù)交付和部署。

日志

不管理日志文件蓄拣,將日志視為事件流扬虚,允許執(zhí)行環(huán)境通過集中式服務(wù)收集、聚合球恤、索引和分析事件辜昵。

管理進(jìn)程

行政或管理類任務(wù)(如數(shù)據(jù)庫遷移),應(yīng)該在與app長期運(yùn)行的相同的環(huán)境中一次性完成咽斧。

這些特性很適合快速部署應(yīng)用程序堪置,因為它們不需要對將要部署的環(huán)境做任何假定。對環(huán)境假設(shè)能夠 允許底層云平臺使用簡單而一致的機(jī)制张惹,輕松實現(xiàn)自動化舀锨,快速配置新環(huán)境,并部署應(yīng)用宛逗。以這種方 式坎匿,十二因素應(yīng)用模式能夠幫我們優(yōu)化應(yīng)用的部署速度。

這些特性也很好地適用于突發(fā)需求,或者低成本地“丟棄”應(yīng)用程序碑诉。應(yīng)用程序環(huán)境本身是100%一次 性的彪腔,因為任何應(yīng)用程序狀態(tài),無論是內(nèi)存還是持久性进栽,都被提取到后端服務(wù)德挣。這允許應(yīng)用程序以易 于自動化的非常簡單和彈性的方式進(jìn)行伸縮。在大多數(shù)情況下快毛,底層平臺只需將現(xiàn)有環(huán)境復(fù)制到所需 的數(shù)目并啟動進(jìn)程格嗅。縮容是通過暫停正在運(yùn)行的進(jìn)程和刪除環(huán)境來完成唠帝,無需設(shè)法地實現(xiàn)備份或以其 他方式保存這些環(huán)境的狀態(tài)屯掖。就這樣,12因素應(yīng)用模式幫助我們實現(xiàn)規(guī)模優(yōu)化襟衰。

最后贴铜,應(yīng)用程序的可處理性使得底層平臺能夠非常快速地從故障事件中恢復(fù)瀑晒。

此外绍坝,將日志作為事件流處理能夠極大程度上的增強(qiáng)應(yīng)用程序運(yùn)行時底層行為的可見性。

強(qiáng)制環(huán)境之間的等同苔悦、配置機(jī)制的一致性和后端服務(wù)管理使云平臺能夠為應(yīng)用程序運(yùn)行時架構(gòu)的各個 方面提供豐富的可見性轩褐。以這種方式,十二因素應(yīng)用模式能夠優(yōu)化安全性玖详。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末把介,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蟋座,更是在濱河造成了極大的恐慌拗踢,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件向臀,死亡現(xiàn)場離奇詭異巢墅,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)飒硅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門砂缩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人三娩,你說我怎么就攤上這事庵芭。” “怎么了雀监?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵双吆,是天一觀的道長眨唬。 經(jīng)常有香客問我,道長好乐,這世上最難降的妖魔是什么匾竿? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮蔚万,結(jié)果婚禮上岭妖,老公的妹妹穿的比我還像新娘。我一直安慰自己反璃,他們只是感情好昵慌,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著淮蜈,像睡著了一般斋攀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上梧田,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天淳蔼,我揣著相機(jī)與錄音,去河邊找鬼裁眯。 笑死鹉梨,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的未状。 我是一名探鬼主播俯画,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼析桥,長吁一口氣:“原來是場噩夢啊……” “哼司草!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起泡仗,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤埋虹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后娩怎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體搔课,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年截亦,在試婚紗的時候發(fā)現(xiàn)自己被綠了爬泥。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡崩瓤,死狀恐怖袍啡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情却桶,我是刑警寧澤境输,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布蔗牡,位于F島的核電站,受9級特大地震影響嗅剖,放射性物質(zhì)發(fā)生泄漏辩越。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一信粮、第九天 我趴在偏房一處隱蔽的房頂上張望黔攒。 院中可真熱鬧,春花似錦强缘、人聲如沸亏钩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽姑丑。三九已至,卻和暖如春辞友,著一層夾襖步出監(jiān)牢的瞬間栅哀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工称龙, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留留拾,地道東北人。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓鲫尊,卻偏偏與公主長得像痴柔,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子疫向,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容