自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

12-Factor 應(yīng)用方法論的開源開發(fā)者指南

開源 開發(fā)
這 12 項基本原則能夠幫助團(tuán)隊快速高效地構(gòu)建高度可擴(kuò)展的應(yīng)用程序。

12-Factor 應(yīng)用方法論 為在短時間內(nèi)構(gòu)建應(yīng)用程序并使其具有可擴(kuò)展性提供了指導(dǎo)。它由 Heroku 的開發(fā)人員創(chuàng)建,用于軟件即服務(wù)(SaaS)應(yīng)用程序、網(wǎng)絡(luò)應(yīng)用程序以及可能的通信平臺即服務(wù)(CPaaS)。在有效組織項目和管理可擴(kuò)展應(yīng)用程序方面,12 要素應(yīng)用程序方法論對開源開發(fā)具有強(qiáng)大的優(yōu)勢。

12-Factor 應(yīng)用方法論的原則

12-Factor 應(yīng)用方法論的規(guī)則非常嚴(yán)格,也是開發(fā)和部署 SaaS 應(yīng)用程序的基石,并且不受任何編程語言或數(shù)據(jù)庫的限制。

1:一份基準(zhǔn)代碼,多份部署

一個說明圖表:顯示了一個由左邊的綠線代表的代碼庫,引導(dǎo)到右邊由綠色方塊代表的四個部署。橙色方塊代表暫存環(huán)境,而紅色方塊代表生產(chǎn)環(huán)境。一個說明圖表:顯示了一個由左邊的綠線代表的代碼庫,引導(dǎo)到右邊由綠色方塊代表的四個部署。橙色方塊代表暫存環(huán)境,而紅色方塊代表生產(chǎn)環(huán)境。

一個說明圖表:顯示了一個由左邊的綠線代表的代碼庫,引導(dǎo)到右邊由綠色方塊代表的四個部署。橙色方塊代表暫存環(huán)境,而紅色方塊代表生產(chǎn)環(huán)境。

每個應(yīng)用程序都應(yīng)該有一個具有多個不同環(huán)境/部署的代碼庫。

開發(fā)人員不應(yīng)僅僅為了在不同環(huán)境中設(shè)置而開發(fā)另一個代碼庫。不同的環(huán)境代表不同的狀態(tài),但這些不同的環(huán)境應(yīng)該共享同一個代碼庫。

在許多開源項目都存儲在 GitLab 這樣的版本控制系統(tǒng)中的情況下,一個環(huán)境可以被視為一個分支。例如,你可以在任何中央版本控制系統(tǒng)中為名為 VoIP-app 的云 VoIP 應(yīng)用程序創(chuàng)建一個單獨的存儲庫,然后創(chuàng)建兩個分支:開發(fā)分支(development)和暫存分支(staging),并將主分支(master)作為發(fā)布分支。

2:明確聲明和隔離依賴關(guān)系

應(yīng)聲明所有依賴關(guān)系。你的應(yīng)用程序可能會依賴外部系統(tǒng)工具或庫,但不應(yīng)對系統(tǒng)工具或庫有任何 隱含的

在代碼庫中包含依賴關(guān)系可能會產(chǎn)生問題,特別是在開源項目中,外部庫的更改可能會將錯誤引入代碼庫。例如,代碼庫可能會使用一個外部庫,但沒有明確聲明該依賴關(guān)系或版本。如果外部庫更新到更新的、未經(jīng)測試的版本,這可能會與你的代碼產(chǎn)生兼容性問題。如果明確聲明了依賴關(guān)系及其正確版本,你的代碼庫就不會出現(xiàn)這種問題。

根據(jù)技術(shù)棧的不同,最好使用軟件包管理器,通過讀取代表依賴庫名稱和版本的依賴庫聲明清單,在各自的系統(tǒng)上下載依賴庫。

3:在環(huán)境中存儲配置

當(dāng)需要支持多個環(huán)境或客戶端時,配置就成了應(yīng)用程序的重要組成部分。不同部署之間的配置應(yīng)存儲在環(huán)境變量中。這樣就可以在部署之間輕松更改配置,而無需更改代碼。

對于閉源應(yīng)用程序來說,這一原則是有益的,因為你不會希望數(shù)據(jù)庫連接信息或其他秘密數(shù)據(jù)等敏感信息被公開。然而,在開放源代碼開發(fā)中,這些細(xì)節(jié)都是公開的。在這種情況下,好處是你不需要反復(fù)修改代碼。你只需這樣設(shè)置變量,只需改變環(huán)境,就能讓代碼完美運行。

4:把后端服務(wù)當(dāng)作附加資源

所有后備服務(wù)(如數(shù)據(jù)庫、外部存儲或消息隊列)都被視為附加資源,由執(zhí)行環(huán)境附加或分離。根據(jù)這一原則,如果這些服務(wù)的位置或連接細(xì)節(jié)發(fā)生變化,仍無需更改代碼。這些細(xì)節(jié)可以在配置中找到。

備份服務(wù)可以從部署中快速附加或分離。例如,如果基于云的電子表格的數(shù)據(jù)庫無法正常工作,開發(fā)人員應(yīng)該能夠創(chuàng)建一個從最近備份恢復(fù)的新數(shù)據(jù)庫服務(wù)器,而無需對代碼庫進(jìn)行任何更改。

5:嚴(yán)格分離構(gòu)建和運行

12-Factor 應(yīng)用方法論要求嚴(yán)格區(qū)分構(gòu)建、發(fā)布和運行階段。

  • 第一階段是 構(gòu)建
  • 第二階段是 發(fā)布
  • 第三個階段是 運行

通過嚴(yán)格區(qū)分這些階段,我們可以避免代碼中斷,使系統(tǒng)維護(hù)更加易于管理。

6:以一個或多個無狀態(tài)進(jìn)程運行應(yīng)用

應(yīng)用程序作為一個或多個進(jìn)程的集合在執(zhí)行環(huán)境中執(zhí)行。這些進(jìn)程是無狀態(tài)的,其持久化數(shù)據(jù)存儲在數(shù)據(jù)庫等后臺服務(wù)中。

這對開源非常有用,因為使用某版本應(yīng)用程序的開發(fā)人員可以在其云平臺上創(chuàng)建多節(jié)點部署,以實現(xiàn)可擴(kuò)展性。數(shù)據(jù)不會在其中持久化,因為如果其中任何一個節(jié)點崩潰,數(shù)據(jù)就會丟失。

7:通過端口綁定提供服務(wù)

你的應(yīng)用程序應(yīng)作為獨立的服務(wù),獨立于其他應(yīng)用程序。它它應(yīng)該能通過URL供其他服務(wù)訪問,以服務(wù)形式存在。這樣,你的應(yīng)用程序就可以在需要時作為其他應(yīng)用程序的資源。利用這一概念,你可以構(gòu)建 REST API

8:通過進(jìn)程模型進(jìn)行擴(kuò)展

該原則也稱為并發(fā)原則,它表明應(yīng)用程序中的每個進(jìn)程都應(yīng)能夠自我擴(kuò)展、重啟或克隆。

開發(fā)人員可以創(chuàng)建多個進(jìn)程,并將應(yīng)用程序的負(fù)載分配給這些進(jìn)程,而不是將一個進(jìn)程變大。通過這種方法,你可以將每種工作負(fù)載分配給一個進(jìn)程類型,從而構(gòu)建能處理不同工作負(fù)載的應(yīng)用程序。

9:快速啟動和優(yōu)雅終止以增強(qiáng)健壯性

你的應(yīng)用應(yīng)當(dāng)基于簡單的進(jìn)程構(gòu)建,因此開發(fā)者可以放大進(jìn)程的同時還能在發(fā)生問題時重啟它們。這使得應(yīng)用的進(jìn)程易于丟棄。

根據(jù)這一原則構(gòu)建應(yīng)用程序意味著代碼的快速部署、快速彈性擴(kuò)展、更靈活的發(fā)布流程以及穩(wěn)健的生產(chǎn)部署。所有這些在開源開發(fā)環(huán)境中都非常有用。

10:盡可能的保持開發(fā)、預(yù)發(fā)布、生產(chǎn)環(huán)境相同

同一項目的團(tuán)隊?wèi)?yīng)使用相同的操作系統(tǒng)、支持服務(wù)和依賴關(guān)系。這樣可以降低出現(xiàn)錯誤的可能性,減少開發(fā)所需的時間。

由于開源項目的開發(fā)人員分散在各地,他們可能無法就所使用的系統(tǒng)、服務(wù)和依賴關(guān)系進(jìn)行 溝通 ,因此將這一原則付諸實踐對于開源項目來說可能是一個挑戰(zhàn)。減少這些差異的一種可能性是制定開發(fā)指南,建議使用何種操作系統(tǒng)、服務(wù)和依賴關(guān)系。

11:把日志當(dāng)作事件流

日志對于排除生產(chǎn)問題或了解用戶行為至關(guān)重要。但是,12-Factor 應(yīng)用方法論并不適合處理日志的管理。

相反,應(yīng)將日志條目作為事件流,寫入標(biāo)準(zhǔn)輸出,并將其發(fā)送到單獨的服務(wù)進(jìn)行分析和存檔。機(jī)器人流程自動化(RPA)技術(shù)可作為處理和分析日志的第三方服務(wù)。執(zhí)行環(huán)境將決定如何處理該數(shù)據(jù)流。這為反省應(yīng)用程序的行為提供了更大的靈活性和能力。

12:后臺管理任務(wù)當(dāng)作一次性進(jìn)程運行

這一原則實際上與開發(fā)無關(guān),而是與應(yīng)用程序管理有關(guān)。管理進(jìn)程應(yīng)在與應(yīng)用程序常規(guī)長期運行進(jìn)程相同的環(huán)境中運行。在本地部署中,開發(fā)人員可以直接使用應(yīng)用程序簽出目錄內(nèi)的 Shell 命令來執(zhí)行一次性管理進(jìn)程。

結(jié)論

使用 12-Factor 應(yīng)用方法論開發(fā)應(yīng)用程序,可以提高效率,加快發(fā)布速度。在開源開發(fā)中,偏離某些指導(dǎo)原則可能是有意義的,但最好還是盡可能嚴(yán)格遵守這些指導(dǎo)原則。

開源的 12-Factor 應(yīng)用是可能的。一個很好的例子是 Jitsi, (一個開源視頻會議平臺), 在疫情期間擴(kuò)展了 100 倍的規(guī)模,取得了巨大成功,它就是采用 12-Factor 應(yīng)用方法論構(gòu)建的。

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2023-09-25 12:18:48

2013-12-25 09:50:27

華為馬悅企業(yè)業(yè)務(wù)

2025-04-01 02:22:00

2011-04-13 13:38:57

選項APIBlackBerry

2011-04-13 09:55:16

Mail APIBlackBerry

2011-07-19 09:51:32

性能優(yōu)化Designing FAndroid

2011-04-13 11:31:06

PIM APIBlackBerry

2020-07-15 07:00:00

移動應(yīng)用開發(fā)者指南

2022-06-27 08:47:29

BEM修飾符元素

2011-04-02 13:44:08

2024-05-07 08:45:16

OpenAILlamaIndex大語言模型

2024-02-01 09:37:42

Kubernetes服務(wù)網(wǎng)格? 命令

2018-03-27 23:25:40

Paddle

2013-08-29 13:41:42

Windows 8.1

2011-04-13 14:10:27

.alx文件BlackBerry

2011-04-14 10:34:08

BlackBerry

2012-01-04 09:18:32

iPhone開發(fā)者聯(lián)盟iDP中國開發(fā)者

2025-02-13 00:42:58

2019-08-16 10:55:37

開發(fā)者技能AI

2014-02-01 21:31:10

JavaScriptJS框架
點贊
收藏

51CTO技術(shù)棧公眾號