Tolv-Factor App metodik
Del av en serie om |
mjukvaruutveckling |
---|
Tolvfaktorsappmetoden är en metod för att bygga mjukvara som en tjänst- applikationer . Dessa bästa metoder är utformade för att göra det möjligt att bygga applikationer med portabilitet och motståndskraft när de distribueras till webben .
Historia
Metodiken utarbetades av utvecklare på Heroku , ett plattform-som-en-tjänst- företag, och presenterades först av Adam Wiggins cirka 2011.
De tolv faktorerna
# | Faktor | Beskrivning |
---|---|---|
jag | Kodbas | Det bör finnas exakt en kodbas för en distribuerad tjänst med kodbasen som används för många distributioner. |
II | Beroenden | Alla beroenden bör deklareras, utan implicit beroende av systemverktyg eller bibliotek. |
III | Konfig | Konfiguration som varierar mellan distributioner bör lagras i miljön. |
IV | Uppbackningstjänster | Alla stödtjänster behandlas som bifogade resurser och bifogas och frikopplas av exekveringsmiljön. |
V | Bygg, släpp, spring | Leveranspipelinen bör strikt bestå av build, release, run. |
VI | Processer | Applikationer bör distribueras som en eller flera tillståndslösa processer med bevarade data lagrade på en stödtjänst. |
VII | Portbindning | Fristående tjänster bör göra sig tillgängliga för andra tjänster av specificerade hamnar. |
VIII | Samtidighet | Samtidighet förespråkas genom att skala individuella processer. |
IX | Disponibilitet | Snabb start och avstängning förespråkas för ett mer robust och motståndskraftigt system. |
X | Dev/Prod paritet | Alla miljöer ska vara så lika som möjligt. |
XI | Loggar | Applikationer bör producera loggar som händelseströmmar och låta exekveringsmiljön aggregeras. |
XII | Administratörsprocesser | Alla nödvändiga administratörsuppgifter bör hållas i källkontroll och paketeras med programmet. |
Kritik och anpassning
En Nginx -arkitekt hävdade att relevansen av Twelve-Factor-appkonceptet är något specifik för Heroku, samtidigt som de introducerade sin egen (Nginx) föreslagna arkitektur för mikrotjänster. De tolv faktorerna anges dock som en baslinje för anpassning eller förlängning.