Onion Information
X. Paritet razvoja/produkcije - GASERI
X. Paritet razvoja/produkcije - Info - Sadržaj u nastavku je prijevod stranice X. Dev/prod parity na web sjedištu The Twelve-Factor App . Održavajte razvoj, uprizorenje i produkciju što sličnijim - Povijesno gledano, postojale su značajne p...
Onion Details
Page Clicks: 0
First Seen: 03/15/2024
Last Indexed: 09/18/2024
Onion Content
X. Paritet razvoja/produkcije - Info - Sadržaj u nastavku je prijevod stranice X. Dev/prod parity na web sjedištu The Twelve-Factor App . Održavajte razvoj, uprizorenje i produkciju što sličnijim - Povijesno gledano, postojale su značajne praznine između razvoja (razvijatelj koji uživo uređuje lokalnu implementaciju aplikacije) i produkcije (pokrenuta implementacija aplikacije kojoj pristupaju krajnji korisnici). Te se praznine manifestiraju u tri područja: Dvanaestofaktorska aplikacija dizajnirana je za kontinuiranu implementaciju tako da je jaz između razvoja i produkcije malen. Gledajući tri opisane praznine iznad: Sumirajući gore navedeno u tablicu: Potporne usluge , kao što su baza podataka aplikacije, sustav za upravljanje redovima čekanja ili predmemorija, jedno je područje u kojem je važan paritet razvoja/produkcije. Mnogi jezici nude knjižnice koje pojednostavljuju pristup potpornoj usluzi, uključujući adaptere za različite vrste usluga. Neki primjeri su u donjoj tablici. razvijatelji ponekad pronalaze veliku privlačnost u korištenju lagane pozadinske usluge u svojim lokalnim okruženjima, dok će se ozbiljnija i robusnija pomoćna usluga koristiti u produkciji. Na primjer, korištenje SQLitea lokalno i PostgreSQL-a u produkciji; ili lokalnu procesnu memoriju za predmemoriju u razvoju i Memcached u produkciji. Dvanaestofaktorski razvijatelj odolijeva porivu za korištenjem različitih potpornih usluga između razvoja i produkcije , čak i kada adapteri teoretski apstrahiraju sve razlike u potpornim uslugama. Razlike između potpornih usluga znače da se pojavljuju male nekompatibilnosti, što uzrokuje neuspjeh u produkciji kôda koji je radio i prošao testove u razvoju ili uprizorenju. Ove vrste pogrešaka stvaraju trenje koje destimulira kontinuiranu implementaciju. Trošak ovog trenja i naknadnog prigušenja kontinuirane implementacije iznimno je visok kada se promatra u zbroju tijekom životnog vijeka aplikacije. Lagane lokalne usluge manje su uvjerljive nego što su nekada bile. Moderne potporne usluge kao što su Memcached, PostgreSQL i RabbitMQ nije teško instalirati i pokrenuti zahvaljujući modernim sustavima pakiranja, kao što su Homebrew i apt-get . Alternativno, deklarativni alati za osiguravanje resursa kao što su Chef i Puppet u kombinaciji s laganim virtualnim okruženjima kao što su Docker i Vagrant omogućuju razvijateljima pokretanje lokalnih okruženja koja su usko približna produkcijskim okruženjima. Troškovi instaliranja i korištenja ovih sustava su niski u usporedbi s prednostima pariteta razvoja/produkcije i kontinuirane implementacije. Adapteri za različite potporne usluge i dalje su korisni jer čine prijenos na nove potporne usluge relativno bezbolnim. No, sve implementacije aplikacije (okruženja razvijatelja, uprizorenje, produkcija) trebaju koristiti istu vrstu i verziju svake od potpornih usluga. Author: Adam Wiggins