CI / CD gehoor, maar nie seker wat dit is nie?
Ideaal gesproke word sagteware-ingenieurs gehuur om kode te skryf wat na 'n produksie-omgewing gestuur moet word, sodat die onderneming wat die produk benodig, daarvan gebruik kan maak. Om die onderneming te bevredig (dikwels gebruikers / kliënte genoem), is dit noodsaaklik dat die produkte foutloos is.
Die tipiese benadering wat deur sagteware-ingenieurs gevolg word, is om in takke te werk en 'n trekversoek te skep wat die meestertak opdateer met die nuwe opdatering wat gemaak is. Ons het die praktyk van die skryf van toetse aangeneem om te verseker dat die nuwe veranderinge nie foute inbring nie. As ontwikkelaars in die meeste gevalle aan 'n funksie werk, skep hulle dikwels nie 'n trekversoek voordat hulle heeltemal klaar is met die funksie nie. Wat gebeur as hulle gereed is, is dit;
Hulle spandeer baie tyd om hul kodebasis op datum te bring met die veranderinge wat in die produksietak plaasgevind het terwyl hulle gewerk het.
Sodoende moet hulle 'n reeks samesmeltingskonflikte oplos.
Die moontlikheid bestaan ​​ook dat hulle die produksietak breek, wat diegene wat uit die tak trek voordat die probleem gesien en reggestel word, beïnvloed..
As u al ooit in hierdie situasie was, sal u saamstem dat dit pynlik kan wees – niemand hou gewillig daarvan om hul werksdag so te spandeer nie.
1 Deurlopende integrasie
1.1 Tipes toetse
1.2 Deurlopende integrasie-instrumente
2 Deurlopende ontplooiing
Om die scenario's wat ek hierbo gestel het, te voorkom; ingenieurspanne kan die praktyk wat genoem word, gebruik deurlopende integrasie – soos die naam aandui, behels dit die deurlopende integrasie van kodeveranderings wat deur ontwikkelaars in die gedeelde tak / bewaarplek aangebring is. Die kode wat geïntegreer moet word, moet 'n geverifieerde toets ondergaan om te verseker dat dit nie die toepassing verbreek nie. Dit is slegs wanneer die toets slaag, dit geïntegreer
Laat ons ons voorstel 'n lewenswerklike scenario waar daar 'n span van tien ontwikkelaars is. Hierdie ontwikkelaars skep 'n plaaslike tak waar hulle kode skryf vir die implementering van sekere funksies. In plaas daarvan om trekversoeke te stuur wanneer hulle heeltemal klaar is met die funksie, kies hulle om trekversoeke te stuur, aangesien dit min veranderings aanbring. 'N Voorbeeld van sodanige verandering is die skepping van 'n nuwe modaal, indien die ontwikkelaar aan 'n funksie werk wat gebruikers in staat stel om individuele take in die toepassing te bestuur. In plaas daarvan om te wag totdat die taakfunksie voltooi is, om aan 'n deurlopende integrasiepatroon te voldoen, druk die ontwikkelaar hierdie klein verandering (in vergelyking met dit waaraan sy werk) en skep 'n trekversoek om saam te smelt tot die kode.
Voordat hierdie nuwe verandering geïntegreer word, moet 'n reeks toetse uitgevoer word.
Sagteware-ingenieurspanne gebruik instrumente soos Travis CI om hierdie integrasieprosesse en -toetse te skep. Met instrumente soos hierdie word die toetse geoutomatiseer, sodat dit verloop sodra 'n trekversoek ingedien word by die teiken tak wat tydens die opstelling gekies is.
Die resultate van die toetse word gegenereer, en die ontwikkelaar wat die trekversoeke gemaak het, kan die resultate sien en die nodige wysigings aanbring. Die voordele daarvan om so min as moontlik by hierdie patroon van kode-integrasie te hou en om 'n geverifieerde toets uit te voer, is;
Dit is moontlik vir die betrokke span om te weet wat die bouproses of toets laat misluk het. Dit verminder die moontlikheid om 'n fout na produksie te stuur.
As die span die proses outomatiseer, sal hulle die luukse tyd hê om te fokus op produktief te wees.
Die belangrikste ding om in hierdie praktyk op te let, is dat dit die span aanmoedig om gereeld kode na die hooftak te stoot. Dit sal ondoeltreffend wees as ander lede van die span nie van die hoofvertakking af trek om hul plaaslike bewaarplek op te dateer nie..
By die skryf van toetse wat deel uitmaak van die integrasieproses, is die volgende wat in die proses geïmplementeer kan word:
Integrasie – dit kombineer individuele eenhede van die sagteware en toets dit as 'n groep.
Eenheid – dit toets vir individuele eenhede of komponente van die sagteware soos metodes of funksies.
UI – voer aan dat die sagteware vanuit die gebruiker se perspektief goed werk.
Aanvaarding – toetse dat die sagteware aan die sakevoorskrifte voldoen.
Dit is belangrik om daarop te let dat u nie al hierdie dinge hoef te toets nie, want 'n handjievol daarvan kan alreeds gedek word in die kode wat deur die ontwikkelaar geskryf is..
Sonder om in diepte te gaan, is hier gereedskap waarmee u kan begin gebruik in u huidige of nuwe projekte;
Travis CI – bekend in die open source wêreld en belowe dat u u kode binne enkele minute naatloos sal toets.
Sirkel CI – Voorsien u krag, buigsaamheid en beheer om u pyplyn van beheer tot ontplooiing te outomatiseer.
Jenkins – bied honderde plugins om die bou, implementering en outomatisering van enige projek te ondersteun.
As u nog nie Jenkins is nie, sal ek dit aanbeveel Udemy-kursus om CI te leer met Java en .NET.
Hoe goed sal dit wees as die funksie wat u bou weke of maande in die bewaarplek sit voordat dit na die produksieomgewing ontplooi word? Soveel as wat ingenieursspanne kan werk om klein veranderinge in die hoofvertakking te integreer soos dit gebeur, kan hulle ook hierdie veranderinge so gou as moontlik na die produksieomgewing stoot.
Die doel met die gebruik van deurlopende implementering is om die wysigings aan die gebruikers af te bring sodra die ontwikkelaars hierdie veranderinge in die hoofvertakking integreer..
Net soos in die geval van deurlopende integrasie, word outomatiese toetse en tjeks opgestel deur gebruik te maak van deurlopende implementering om te verseker dat die nuut geïntegreerde veranderinge geverifieer word. Die ontplooiing vind slegs plaas wanneer hierdie toetse slaag.
Vir 'n span om voordeel te trek uit die praktyk van deurlopende ontplooiing, moet hulle die volgende in plek hê;
Outomatiese toetsing is die belangrikste ruggraat van alle deurlopende ingenieurswese. In die geval van deurlopende ontplooiing, moet die kode wat ontplooi moet word, voldoen aan die standaard wat die span in plek het vir wat hulle beoog om aan eindgebruikers uit te stoot. Ideaal gesproke, as 'n nuwe verandering onder die drempel is, moet die toets druip en nie geïntegreerd raak nie. Andersins word dit geïntegreerd.
Ondanks die feit dat outomatiese toetse rug-aan-rug gedoen is, is dit moontlik dat sommige foute in die produksieomgewing gly. Hiervoor is dit nodig dat die span 'n verandering wat aangebring is, kan ongedaan maak – die ontplooiing kan ongedaan maak. Dit sou die produksiekode moet terugstel na wat dit was voordat die nuwe verandering aangebring is.
Moniteringstelsels is nodig om tred te hou met die veranderinge wat na die produksieomgewing gedwing is. Dit is hoe die span foute kan opspoor wat gebruikers teëkom wanneer hulle van die ontplooide veranderinge gebruik maak.
Die instrumente wat vir deurlopende integrasie genoem word, bied u ook die funksionaliteit om 'n deurlopende implementeringstelsel op te stel. Daar is baie van hulle waarop u ook kan lees.
Die produktiwiteit van 'n ontwikkelingspan is baie belangrik vir die sukses van die onderneming. Om te verseker dat hulle produktief is, moet praktyke wat dit aanmoedig, toegepas word. Deurlopende integrasie en ontplooiing is voorbeelde van sulke praktyke.
Met deurlopende integrasie kan spanne daagliks soveel kode inskryf. As dit bereik word, word dit maklik om die nuutgevoegde wysigings so gou as moontlik aan die gebruiker te ontplooi. Deur hierdie wysigings te implementeer, is dit moontlik om terugvoer van die gebruikers te kry. Uiteindelik sal die onderneming kan innoveer op grond van die terugvoer wat ontvang is, wat 'n wen-wen vir almal is.
As u 'n ontwikkelaar is en belangstel om CI / CD te leer, kyk dit dan briljante kursus.
spoor sekuriteit kwesbaarhede voordat iemand dit doen met 'n wolkgebaseerde webskandeerder. Cyber-aanvalle neem toe
'N Webwerf is 'n primêre hulpmiddel vir enige onderneming om sy teikengehoor te betrek
Een van die gereelde vrae oor Docker is hoe dit verskil van VM (virtuele
Omvattende oplossing vir die voorkoming van hakke en sekuriteit vir u webtoepassing. Volgens die Verslag