IV. Prateće usluge
Info
Sadržaj u nastavku je prijevod stranice IV. Backing services na web sjedištu The Twelve-Factor App.
IV. Potporne usluge
Tretirajte potporne usluge kao priložene resurse
Potporna usluga je svaka usluga koju aplikacija koristi putem mreže kao dio svog normalnog rada. Primjeri uključuju spremišta podataka (kao što je MariaDB ili CouchDB), sustave za slanje poruka/upravljanje redovima čekanja (kao što je RabbitMQ ili Beanstalkd), SMTP usluge za odlaznu e-poštu (kao što je Postfix) i sustavi za predmemoriju (kao što je Memcached).
Potpornim uslugama poput baze podataka tradicionalno upravljaju isti administratori sustava koji implementiraju aplikaciju u izvršnom okruženju. Osim ovih usluga kojima se upravlja lokalno, aplikacija također može imati usluge koje pružaju i kojima upravljaju treće strane. Primjeri uključuju SMTP usluge (kao što je Postmark), usluge prikupljanja metrike (kao što je New Relic ili Loggly), usluge pohrane binarne imovine (kao što je Amazon S3), pa čak i korisničke usluge dostupne putem API-ja (kao što je Twitter, Google karte ili Last.fm).
Kôd za dvanestofaktorsku aplikaciju ne pravi razliku između lokalnih usluga i usluga treće strane. Aplikaciji su obje vrste priloženi resursi, kojima se pristupa putem URL-a ili drugog lokatora/vjerodajnica pohranjenih u konfiguraciji. Implementacija dvanaestofaktorske aplikacije trebala bi moći zamijeniti lokalnu MariaDB bazu podataka onom kojom upravlja treća strana (kao što je Amazon RDS) bez ikakvih promjena kôda aplikacije. Isto tako, lokalni SMTP poslužitelj mogao bi se zamijeniti SMTP uslugom treće strane (kao što je Postmark) bez promjene kôda. U oba slučaja potrebno je promijeniti samo dršku resursa u konfiguraciji.
Svaka posebna potporna usluga je resurs. Na primjer, MariaDB baza podataka je resurs; dvije MariaDB baze podataka (koriste se za usitnjavanje na aplikacijskom sloju) karakteriziraju se kao dva različita resursa. Dvanaestofaktorska aplikacija tretira te baze podataka kao priložene resurse, što ukazuje na njihovu labavu povezanost s implementacijom na koju su pripojene.
Resursi se mogu po volji priključiti i odvojiti od implementacija. Na primjer, ako se baza podataka aplikacije loše ponaša zbog hardverskog problema, administrator aplikacije može pokrenuti novi poslužitelj baze podataka vraćen iz nedavne sigurnosne kopije. Trenutna produkcijska baza podataka mogla bi se odvojiti, a nova priključiti -- sve bez ikakvih promjena kôda.
Author: Adam Wiggins