Előző fejezet: 3. Beállítások, konfigurációkezelés
Következő fejezet: 5. Előállítás, telepítés, futtatás.
4. Háttérszolgáltatások
Kezeljük a háttérszolgáltatásokat csatolt erőforrásokként.
Háttérszolgáltatás minden, amit az alkalmazás a normál működése közben hálózaton keresztül használ. Például idetartoznak az adatokat tároló rendszerek (Mint az MSSQL, MySQL vagy a CouchDB), az üzeneteket kezelő/sorbaállító rendszerek (mint a RabbitMQ vagy a Beanstalkd), SMTP szolgáltatások a kimenő email kezeléséhez (mint a Postfix) és a gyorsítótárak (mint a Memcached).
A háttérszolgáltatásokat mint például az adatbázisokat általában ugyanazok az adminisztrátorok üzemeltetik, mint az alkalmazás telepített változatát. Az ilyen helyben kezelt és üzemeltetett szolgáltatásokon túlmenően az alkalmazás használhat harmadik fél által üzemeltetett szolgáltatásokat. Ilyenek például: SMTP (SendGrid, Mandrill, Postmark), telemetriát gyüjtő (New Relic, Loggly), bináris eszközöket biztosító (Azure, Amazon S3), vagy akár API-n keresztül elérhető fogyasztói (Twitter, Google Maps, or Last.fm) szolgáltatók.
A 12 tényezős alkalmazásfejlesztési alapelveknek megfelelő alkalmazás nem tesz semmilyen különbséget saját, helyi vagy 3 személy által üzemeltetett szolgáltatások között. Az alkalmazás számára mindegyik csatolt erőforrás, URL-en vagy másmilyen elérésen keresztül elérhető, amit a konfigurációban tárolunk. A 12 faktoros alkalmazás telepítése képes arra, hogy a helyi MySQL adatbázisunkról átváltsunk egy külső szolgáltató által üzemeltetett szolgáltatásra (például: Amazon RDS) anélkül, hogy az alkalmazás kódján változtatni kéne. Hasonlóan, a saját SMTP szervert le kell tudnunk cserélni külső szolgáltatóra (mint például a Postmark) forráskód változtatás nélkül. Mindkét esetben egyedül konfigurációban az erőforrás kezelésének a beállításán kell változtatni.
Minden egyes háttérszolgáltatás egy erőforrás. Például, egy MySQL adatbázis az egy erőforrás, két MySQL adatbázis (horizontális skálázáshoz használva az alkalmazás rétegben) két különböző erőforrásnak minősül. A 12 tényezős alkalmazás ezeket csatolt erőforrásként használja, ez gyenge csatolást jelent az alkalmazás telepítései felöl, amik csatlakoznak az erőforráshoz.
Az erőforrásokat csatolhatjuk és eltávolíthatjuk az alkalmazás telepített példányától később, ha akarjuk. Például, ha az adatbázis működésképtelenné válik fizikai meghibásodás miatt, akkor az alkalmazás rendszergazdája fel tud húzni egy új adatbázist a korábbi mentésből. Az aktuális éles adatbázist le tudja választani, és az új adatbázist csatlakoztatni tudja, anélkül, hogy a kódbázison változtatni kéne.