Referenca: kako funkcionira proces kontinuirane integracije

Danas ćemo pogledati povijest pojma, razgovarati o poteškoćama implementacije CI i ponuditi nekoliko popularnih alata koji će vam pomoći u radu s njim.

Referenca: kako funkcionira proces kontinuirane integracije
/flickr/ Altug Karakoč / CC BY / Fotografija modificirana

pojam

Kontinuirana integracija pristup je razvoju aplikacija koji uključuje česte izrade projekata i testiranje koda.

Cilj je učiniti proces integracije predvidljivim i otkriti potencijalne bugove i greške u ranoj fazi, tako da ima više vremena za njihovo popravljanje.

Pojam kontinuirane integracije prvi put se pojavio 1991. Uveo ga je tvorac jezika UML Grady Butch (Grady Booch). Inženjer je uveo koncept CI kao dio vlastite razvojne prakse - Booch metoda. To je podrazumijevalo postupno usavršavanje arhitekture pri projektiranju objektno orijentiranih sustava. Gradi nije opisao nikakve zahtjeve za kontinuiranu integraciju. Ali kasnije u svojoj knjizi "Objektno orijentirana analiza i dizajn s aplikacijama“Rekao je da je cilj metodologije ubrzati objavljivanje “internih izdanja”.

Priča

Godine 1996. CI su usvojili kreatori metodologije ekstremno programiranje (XP) - Kent Beck (Kent Beck) i Ron Jeffries (Ron Jeffries). Kontinuirana integracija postala je jedno od dvanaest ključnih načela njihova pristupa. Osnivači XP-a pojasnili su zahtjeve za CI metodologiju i primijetili potrebu da se projekt gradi nekoliko puta dnevno.

Početkom 2000-ih, jedan od osnivača Agile Alliance-a počeo je promovirati metodologiju kontinuirane integracije Martin Fowler (Martin Fowler). Njegovi eksperimenti s CI doveli su do prvog softverskog alata na ovom području - CruiseControl. Uslužni program kreirao je Martinov kolega, Matthew Foemmel.

Ciklus izgradnje u alatu implementiran je kao demon koji povremeno provjerava sustav kontrole verzija za promjene u bazi koda. Rješenje možete preuzeti već danas - it distribuira pod licencom sličnom BSD-u.

S pojavom softvera za CI, sve više i više tvrtki počelo je usvajati tu praksu. Prema istraživanju Forrestera [stranica 5 izvješće], 2009. godine 86% od pedeset tehnoloških tvrtki koje su ispitane koristilo je ili implementiralo CI metode.

Danas praksu kontinuirane integracije koriste organizacije iz raznih industrija. U 2018. veliki pružatelj usluga u oblaku proveo je anketu među IT stručnjacima iz tvrtki u sektoru usluga, obrazovanja i financija. Od šest tisuća ispitanika, njih 58% reklo je da koristi CI alate i principe u svom radu.

Kako ovo radi

Kontinuirana integracija temelji se na dva alata: sustav kontrole verzija i CI poslužitelj. Potonji može biti ili fizički uređaj ili virtualni stroj u okruženju oblaka. Programeri učitavaju novi kod jednom ili više puta dnevno. CI poslužitelj ga automatski kopira sa svim ovisnostima i gradi. Nakon toga izvodi integracijske i jedinične testove. Ako testovi prođu uspješno, CI sustav implementira kod.

Opći dijagram procesa može se prikazati na sljedeći način:

Referenca: kako funkcionira proces kontinuirane integracije

CI metodologija postavlja niz zahtjeva za programere:

  • Odmah riješite probleme. Ovaj princip došao je u CI iz ekstremnog programiranja. Ispravljanje pogrešaka najveći je prioritet programera.
  • Automatizirati procese. Programeri i menadžeri moraju stalno tražiti uska grla u procesu integracije i uklanjati ih. Na primjer, često postoji usko grlo u integraciji ispada testiranje.
  • Obavljajte skupove što je češće moguće. Jednom dnevno za sinkronizaciju rada tima.

Poteškoće u provedbi

Prvi problem su visoki operativni troškovi. Čak i ako tvrtka koristi otvorene CI alate (o čemu ćemo kasnije), svejedno će morati potrošiti novac na infrastrukturnu podršku. Međutim, tehnologije u oblaku mogu biti rješenje.

Pojednostavljuju sastavljanje računalnih konfiguracija različitih razmjera. Plus tvrtke platiti samo za korištene resurse, što pomaže u uštedi na infrastrukturi.

Prema anketama [stranica 14 Članak], kontinuirana integracija povećava opterećenje zaposlenika tvrtke (barem u početku). Moraju naučiti nove alate, a kolege ne pomažu uvijek u obuci. Stoga se s novim okvirima i uslugama morate nositi u pokretu.

Treća poteškoća su problemi s automatizacijom. Organizacije s velikom količinom naslijeđenog koda koji nije pokriven automatiziranim testovima suočavaju se s ovim problemom. To dovodi do činjenice da se kod jednostavno prepisuje prije pune implementacije CI-ja.

Referenca: kako funkcionira proces kontinuirane integracije
/flickr/ theilr / CC BY-SA

Tko koristi

Informatički divovi među prvima su procijenili prednosti ove metodologije. Google koristi kontinuirana integracija od sredine 2000-ih. CI je implementiran kako bi se riješio problem kašnjenja u tražilici. Stalna integracija pomogla je u brzom otkrivanju i rješavanju problema. Sada CI koriste svi odjeli IT diva.

Kontinuirana integracija također pomaže malim tvrtkama, a CI alate koriste i financijske i zdravstvene organizacije. Na primjer, u Morningstaru, kontinuirane integracijske usluge pomogle su u zakrpanju ranjivosti 70% brže. A medicinska platforma Philips Healthcare uspjela je udvostručiti brzinu ažuriranja testiranja.

Alat

Evo nekih popularnih alata za CI:

  • Jenkins je jedan od najpopularnijih CI sustava. Podržava više od tisuću dodataka za integraciju s raznim VCS-ovima, cloud platformama i drugim uslugama. Također koristimo alat Jenkins at 1cloud: uključeni u naš DevOps sustav. Redovito provjerava Git granu namijenjenu testiranju.
  • Buildbot — python okvir za pisanje vlastitih procesa kontinuirane integracije. Početno postavljanje alata prilično je komplicirano, ali to se kompenzira širokim mogućnostima prilagodbe. Među prednostima okvira, korisnici ističu njegovu nisku intenzivnost resursa.
  • Konkurs CI je poslužitelj tvrtke Pivotal koji koristi Docker spremnike. Concourse CI se integrira sa svim alatima i sustavima za kontrolu verzija. Programeri napominju da je sustav prikladan za rad u tvrtkama bilo koje veličine.
  • Gitlab CI je alat ugrađen u GitLab sustav kontrole verzija. Usluga radi u oblaku i koristi YAML datoteke za konfiguraciju. Kao Concourse, Gitlab CI primjenjuje se Docker spremnici koji pomažu izolirati različite procese jedan od drugog.
  • Šifriranje je cloud CI poslužitelj koji radi s GitHubom, GitLabom i BitBucketom. Platforma ne zahtijeva dugo početno postavljanje - standardni unaprijed instalirani CI procesi dostupni su u Codeshipu. Za male (do 100 nadogradnji mjesečno) i projekte otvorenog koda, Codeship je dostupan besplatno.

Materijali s našeg korporativnog bloga:

Izvor: www.habr.com

Dodajte komentar