Kas ir Dženkinss? Nepārtrauktas integrācijas (KI) rīks

Satura rādītājs:

Anonim

Kas ir Dženkinss?

Jenkins ir atvērtā koda nepārtrauktas integrācijas serveris, kas spēj organizēt darbību virkni, kas palīdz nepārtrauktas integrācijas procesu (un ne tikai) sasniegt automatizētā veidā.

Jenkins ir bezmaksas un pilnībā rakstīts Java valodā. Jenkins ir plaši izmantota lietojumprogramma visā pasaulē, kurai ir aptuveni 300 000 instalācijas un kuras katru dienu pieaug.

Tā ir uz servera balstīta lietojumprogramma, un tai ir nepieciešams tīmekļa serveris, piemēram, Apache Tomcat. Iemesls, kāpēc Jenkins kļuva tik populārs, ir tas, ka tiek uzraudzīti atkārtoti uzdevumi, kas rodas projekta izstrādes laikā. Piemēram, ja jūsu komanda izstrādā projektu, Jenkins nepārtraukti pārbaudīs jūsu projekta uzbūvi un parādīs kļūdas jūsu attīstības sākumposmā.

Izmantojot Jenkins, programmatūras uzņēmumi var paātrināt programmatūras izstrādes procesu, jo Jenkins var ātri automatizēt būvēšanu un testēšanu. Jenkins atbalsta pilnu programmatūras izstrādes dzīves ciklu, sākot no programmatūras izveides, testēšanas, dokumentēšanas, izvietošanas un citiem programmatūras izstrādes dzīves cikla posmiem.

Šajā apmācībā jūs uzzināsiet

  • Kas ir Dženkinss?
  • Kas ir nepārtraukta integrācija?
  • Jenkin vēsture
  • Kāpēc izmantot nepārtrauktu integrāciju ar Jenkins?
  • Nepārtrauktas integrācijas reālā situācijas izpēte
  • Jenkins lietošanas priekšrocības
  • Jenkins lietošanas trūkumi

Kas ir nepārtraukta integrācija?

Nepārtrauktā integrācijā pēc koda piešķiršanas programmatūra tiek nekavējoties izveidota un pārbaudīta. Lielā projektā ar daudziem izstrādātājiem apņemšanās tiek veiktas daudzas reizes dienas laikā. Ar katru apņemšanās kodu tiek izveidots un pārbaudīts. Ja tests ir izturēts, tiek testēts būvējums izvietošanai. Ja izvietošana ir veiksmīga, kods tiek virzīts uz ražošanu. Šī apņemšanās, veidošana, pārbaude un izvietošana ir nepārtraukts process, un tāpēc nosaukums ir nepārtraukta integrācija / izvietošana.

Nepārtrauktu Integrācija Cauruļvadu ir spēcīgs instruments, kas sastāv no rīku kopu, kas paredzēti uzņēmējas , monitoru , apkopot un testa kodu vai kodu izmaiņām, piemēram:

  • Nepārtrauktas integrācijas serveris (Jenkins, Bamboo, CruiseControl, TeamCity un citi)
  • Avota vadības rīks (piemēram, CVS, SVN, GIT, Mercurial, Perforce, ClearCase un citi)
  • Veidošanas rīks (Make, ANT, Maven, Ivy, Gradle un citi)
  • Automatizācijas testēšanas sistēma (Selēns, Appijs, TestComplete, UFT un citi)

Jenkin vēsture

  • Kohsuke Kawaguchi, Java izstrādātājs, kurš strādā SUN Microsystems, bija noguris no koda veidošanas un kļūdu atkārtotas novēršanas. 2004. gadā izveidoja automatizācijas serveri ar nosaukumu Hudsons, kas automatizē būvēšanas un testēšanas uzdevumu.
  • 2011. gadā Oracle, kam piederēja Sun Microsystems, bija strīds ar Hadsona atvērtā pirmkoda kopienu, tāpēc viņi izveidoja Hudsonu un pārdēvēja par Jenkins.
  • Gan Hadsons, gan Dženkinss turpināja darboties neatkarīgi. Bet īsā laika posmā Jenkins ieguva daudz projektu un līdzautoru, savukārt Hadsons palika tikai ar 32 projektiem. Ar laiku Dženkinss kļuva arvien populārāks, un Hadsons vairs netiek uzturēts.

Kāpēc izmantot nepārtrauktu integrāciju ar Jenkins?

Daži cilvēki varētu domāt, ka vecmodīgs programmatūras izstrādes veids ir labāks veids. Sapratīsim CI ar Jenkins priekšrocības ar šādu piemēru

Iedomāsimies, ka ir aptuveni 10 izstrādātāji, kas strādā pie koplietojamas krātuves. Daži izstrādātāji izpilda savu uzdevumu 25 dienu laikā, bet citi prasa 30 dienas.

Pirms Dženkinsa Pēc Dženkinsa
Kad visi izstrādātāji bija izpildījuši piešķirtos kodēšanas uzdevumus, viņi vienlaikus izmantoja kodu. Vēlāk Build tiek pārbaudīts un izvietots. Kods apņemas uzbūvēt, un testa cikls bija ļoti reti, un pēc daudzām dienām tika veikts viens veidojums. Kods tiek izveidots un pārbaudīts, tiklīdz izstrādātājs apņemas to ievadīt. Dženkins dienas laikā izveidos un testēs daudzas reizes. Ja būvēšana ir veiksmīga, Dženkinss izvietos avotu testa serverī un paziņos par to izvietošanas komandai. Ja būvēšana neizdodas, Jenkins paziņos par kļūdām izstrādātāju komandai.
Tā kā kods tika izveidots uzreiz, dažiem izstrādātājiem būs jāgaida, kamēr citi izstrādātāji pabeigs kodēšanu, lai pārbaudītu viņu uzbūvi Kods tiek izveidots uzreiz pēc tam, kad kāds no izstrādātājiem ir apņēmies.
Izolēt, atklāt un labot kļūdas vairākām saistībām nav viegls uzdevums. Tā kā kods tiek veidots pēc katras atsevišķas izstrādātāja saistības, ir viegli noteikt, kura kods izraisīja būvētā kļūmi
Kodu veidošana un testēšana ir pilnībā manuāla, tāpēc ir daudz iespēju, ka neizdosies. Automatizēts būvniecības un testēšanas process, ietaupot laiku un samazinot defektus.
Kods tiek izvietots, tiklīdz visas kļūdas ir novērstas un pārbaudītas. Kods tiek izvietots pēc katras veiksmīgas būvēšanas un pārbaudes.
Attīstības cikls ir lēns Attīstības cikls ir ātrs. Jaunas funkcijas lietotājiem ir vieglāk pieejamas. Palielina peļņu.

Nepārtrauktas integrācijas reālā situācijas izpēte

Esmu pārliecināts, ka jums visiem ir zināms vecais Nokia tālrunis. Nokia izmantoja procedūru, ko sauc par nakts veidošanu. Pēc vairāku dienu laikā veikto dažādu izstrādātāju vairākkārtējas apņemšanās programmatūra tika veidota katru vakaru. Tā kā programmatūra tika veidota tikai vienu reizi dienā, ir milzīgas sāpes izolēt, identificēt un novērst kļūdas lielā kodu bāzē.

Vēlāk viņi pieņēma nepārtrauktas integrācijas pieeju. Programmatūra tika izveidota un pārbaudīta, tiklīdz izstrādātājs ir izveidojis kodu. Ja tiek atklāta kāda kļūda, attiecīgais izstrādātājs var ātri novērst defektu.

Dženkinss spraudņi

Pēc noklusējuma Jenkins piedāvā ierobežotu funkciju kopumu. Ja vēlaties integrēt Jenkins instalāciju ar tādu versiju vadības rīkiem kā Git, jums jāinstalē ar Git saistīti spraudņi. Faktiski, lai integrētu tādus rīkus kā Maven, Amazon EC2, Jenkins jāinstalē attiecīgi spraudņi.

Spraudņu integrācija Dženkinsā

Jenkins lietošanas priekšrocības

  • Dženkinsu pārvalda ļoti atvērta sabiedrība. Katru mēnesi viņi rīko publiskas sanāksmes un ņem no sabiedrības ieguldījumu Jenkins projekta izstrādē.
  • Līdz šim aptuveni 280 biļetes ir slēgtas, un projekts ik pēc trim mēnešiem publicē stabilu izlaidumu.
  • Pieaugot tehnoloģijai, aug arī Dženkinss. Līdz šim Jenkins savā spraudņu datubāzē ir publicējis aptuveni 320 spraudņus. Izmantojot spraudņus, Dženkinss kļūst vēl jaudīgāks un bagātīgāks par funkcijām.
  • Jenkins atbalsta arī mākoņa arhitektūru, lai jūs varētu izvietot Jenkins mākoņa platformās.
  • Jenkins kļuva populārs tāpēc, ka to izveidoja izstrādātājs izstrādātājiem.

Jenkins lietošanas trūkumi

Lai arī Jenkins ir ļoti spēcīgs rīks, tam ir trūkumi.

  • Tās saskarne ir novecojusi un nav lietotājam draudzīga, salīdzinot ar pašreizējām lietotāja saskarnes tendencēm.
  • Lai arī Jenkins ir iemīļots daudzos izstrādātājos, to uzturēt nav tik vienkārši, jo Jenkins darbojas serverī un tam ir nepieciešamas dažas servera administratora prasmes, lai uzraudzītu tā darbību.
  • Viens no iemesliem, kāpēc daudzi cilvēki neievieš Jenkins, ir saistīts ar grūtībām instalēt un konfigurēt Jenkins.
  • Nepārtraukta integrācija regulāri pārtrauc dažu nelielu iestatījumu izmaiņu dēļ. Nepārtraukta integrācija tiks pārtraukta, tāpēc tai jāpievērš īpaša uzmanība izstrādātājam.

Secinājums:

  • Nepārtrauktā integrācijā programmatūra tiek nekavējoties izveidota un pārbaudīta pēc koda saistīšanas
  • Jenkins ir atvērtā koda nepārtrauktas integrācijas serveris, kas spēj organizēt darbību ķēdi
  • Pirms Jenkins, kad visi izstrādātāji bija izpildījuši savus piešķirtos kodēšanas uzdevumus, viņi vienlaikus izmantoja kodu. Vēlāk Build tiek pārbaudīts un izvietots.
  • Pēc Jenkins koda izveides un pārbaudiet, tiklīdz izstrādātājs apņemas to ievadīt. Dženkins dienas laikā daudzas reizes izveidos un pārbaudīs kodu
  • Pēc noklusējuma Jenkins piedāvā ierobežotu funkciju kopumu. Ja vēlaties integrēt Jenkins instalāciju ar tādu versiju kontroles rīkiem kā Git, jums jāinstalē ar Git saistīti spraudņi
  • Lielākie Jenkins plusi ir tādi, ka to pārvalda kopiena, kas rīko publiskas sanāksmes un no sabiedrības ņem vērā Jenkins projektu attīstību
  • Lielākais Jenkin trūkums ir tas, ka tā saskarne ir novecojusi un nav lietotājam draudzīga, salīdzinot ar pašreizējām lietotāja saskarnes tendencēm.