Rêbernameya Dummies: Bi Amûrên Çavkaniya Vekirî re Zincîrên DevOps ava dikin

Rêbernameya Dummies: Bi Amûrên Çavkaniya Vekirî re Zincîrên DevOps ava dikin
Avakirina zincîra xweya yekem DevOps di pênc gavan de ji bo destpêk.

DevOps ji bo pêvajoyên pêşkeftina pir hêdî, veqetandî û wekî din pirsgirêk bûye dermanek. Lê hûn hewceyê zanîna hindiktirîn di DevOps de ne. Ew ê têgehên wekî zincîra DevOps û meriv çawa di pênc gavan de yek biafirîne vedigire. Ev ne rêbernameyek bêkêmasî ye, lê tenê "masî" ye ku dikare were berfireh kirin. Ka em ji dîrokê dest pê bikin.

Danasîna min a DevOps

Min berê li Citi Group bi ewran re dixebitî û serîlêdanek webê ya IaaS pêşve dixist da ku binesaziya cloudê ya Citi birêve bibe, lê ez her gav bala xwe didim ka meriv çawa zincîra pêşkeftinê xweşbîn bikim û çandê di nav pêşdebiran de baştir bikim. Greg Lavender, CTO-ya me ji bo Mîmarî û Binesaziya Cloud, ev pirtûk ji min re pêşniyar kir. Projeya "Phoenix". Ew prensîbên DevOps xweş rave dike û wekî romanek dixwîne.

Tabloya li piştê destnîşan dike ka çend caran pargîdan guhertoyên nû derdixin:

Rêbernameya Dummies: Bi Amûrên Çavkaniya Vekirî re Zincîrên DevOps ava dikin

Amazon, Google û Netflix çawa ew qas bi rê ve dibin? Û ew hêsan e: wan fêhm kir ku meriv çawa zincîrek DevOps hema hema bêkêmasî biafirîne.

Tişt ji bo me li Citi pir cûda bûn heya ku em veguheztin DevOps. Dûv re tîmê min hawîrdorên cihêreng hebûn, lê me radestkirina servera pêşkeftinê bi destan kir. Hemî pêşdebiran gihîştina tenê serverek pêşkeftinê ya ku li ser bingeha IBM WebSphere Application Server Çapa Civakî ye. Bi hewildanek hemwext a radestkirinê, server "kêt" bû, û her carê me neçar ma ku di nav xwe de "bi êş" danûstandinan bikin. Di heman demê de me bi ceribandinan re vegirtina kodê ya têr nedikir, pêvajoyek radestkirina destan a dem-dixwe, û rê tune ku em bi alîkariya hin peywir an hewcedariya xerîdar radestkirina kodê bişopînin.

Eşkere bû ku tiştek bi lezgînî hewce bû ku were kirin, û min hevkarek hemfikir dît. Me biryar da ku em zincîra yekem a DevOps bi hev re biafirînin - wî makîneyek virtual û serverek serîlêdana Tomcat saz kir, û min bala xwe da Jenkins, entegrasyona bi Atlassian Jira û BitBucket, û her weha vegirtina kodê bi ceribandinan. Proje serketî bû: me zincîra pêşkeftinê bi tevahî otomatîk kir, me hema hema% 100-ê li ser servera pêşkeftinê bi dest xist, karîbû bi ceribandinan vegirtina kodê bişopînin û baştir bikin, û şaxek Git dikare bi radestkirin û pirsgirêkek Jira ve were girêdan. Hema hema hemî amûrên ku me ji bo avakirina zincîra DevOps bikar anîn çavkaniya vekirî bûn.

Bi rastî, zincîre hêsan bû, ji ber ku me konfigurasyonên pêşkeftî jî bi karanîna Jenkins an Ansible bicîh neanîn. Lê em bi ser ketin. Dibe ku ev encama prensîbê ye Pareto (aka qaîdeya 80/20).

Danasînek kurt a DevOps û Zincîra CI/CD

DevOps pênaseyên cûda hene. DevOps, mîna Agile, dîsîplînên cihêreng vedihewîne. Lê pir dê bi pênaseya jêrîn razî bibin: DevOps rêbazek, an çerxa jiyanê ye, ya pêşkeftina nermalavê, prensîba wê ya sereke afirandina çandek e ku pêşdebir û xebatkarên din "li ser heman dirêjahiya pêlê" bin, keda destan bixweber e, her kes tiştê ku jê re çêtirîn dike dike, frekansa radestkirinê zêde dibe, hilberîna xebatê zêde dibe, nermbûn zêde dibe.

Dema ku amûr tenê ne bes in ku hawîrdorek DevOps biafirînin, ew neçar in. Ya herî girîng yekbûna domdar û radestkirina domdar (CI/CD) e. Di zincîrê de ji bo her hawîrdorê qonaxên cûda hene (mînak DEV (pêşveçûn), INT (entegrasyon), TST (ceribandin), QA (temînkirina kalîteyê), UAT (ceribandina pejirandina bikarhêner), STG (amadekirin), PROD (bikaranîna)) , karên destan otomatîk in, pêşdebir dikarin koda kalîteyê hilberînin, wê radest bikin, û dikarin bi hêsanî ji nû ve ava bikin.

Ev not diyar dike ka meriv çawa di pênc gavan de zincîreyek DevOps-ê biafirîne, wekî ku di wêneya jêrîn de tê xuyang kirin, bi karanîna amûrên çavkaniya vekirî.

Rêbernameya Dummies: Bi Amûrên Çavkaniya Vekirî re Zincîrên DevOps ava dikin

Werin em dest bi karê xwe bikin.

Gav 1: Platforma CI/CD

Berî her tiştî, hûn amûrek CI / CD hewce ne. Jenkins amûrek CI/CD-a bi lîsansa MIT-ê ye ku bi Java-yê hatî nivîsandin ku tevgera DevOps populer kir û ji bo CICD-ê bûye standarda de facto.

Jenkins çi ye? Bifikirin ku we panelek kontrolê ya efsûnî ya ji bo cûrbecûr karûbar û amûran heye. Bi serê xwe, amûrek CI/CD-ê mîna Jenkins bêkêr e, lê bi amûr û karûbarên cihêreng, ew hemî hêzdar dibe.

Ji bilî Jenkins, gelek amûrên din ên çavkaniya vekirî hene, yek hilbijêrin.

Rêbernameya Dummies: Bi Amûrên Çavkaniya Vekirî re Zincîrên DevOps ava dikin

Li vir pêvajoyek DevOps bi amûrek CI/CD-ê re çawa xuya dike

Rêbernameya Dummies: Bi Amûrên Çavkaniya Vekirî re Zincîrên DevOps ava dikin

We di localhost de amûrek CI/CD heye, lê hîn pir tişt tune ku bikin. Werin em herin ser gava pêş.

Gav 2: Versiyonkirin

Awayê çêtirîn (û bê guman herî hêsan) ceribandina sêrbaziya amûrek CI / CD ev e ku meriv wê bi amûrek rêveberiya kontrolê ya çavkaniyê (SCM) re yek bike. Çima hûn hewceyê kontrola guhertoyê ne? Em bêjin ku hûn serîlêdanê dikin. Hûn wê bi Java, Python, C++, Go, Ruby, JavaScript, an zimanek din ku wagon û selikek piçûk e, dinivîsin. Ya ku hûn dinivîsin jê re koda çavkaniyê tê gotin. Di destpêkê de, nemaze heke hûn bi tenê dixebitin, hûn dikarin her tiştî li pelrêçek herêmî hilînin. Lê her ku proje mezin dibe û bêtir kes tevlî dibin, hûn hewceyê rêyek ji bo parvekirina guheztinên kodê ne, lê dema ku guhartinan li hev bikin ji pevçûnan dûr bisekinin. Her weha hûn hewce ne ku bi rengekî guhertoyên berê bêyî karanîna paşgiran û karanîna rêbaza kopî-paste ji bo pelên kodê vegerînin.

Û li vir bêyî SCM li her derê. SCM kodê di depoyan de hilîne, guhertoyên wê îdare dike, û di nav pêşdebiran de hevrêz dike.

Gelek amûrên SCM hene, lê Git bi layiqî bûye standarda de facto. Ez ji we re şîret dikim ku hûn wê bikar bînin, lê vebijarkên din hene.

Rêbernameya Dummies: Bi Amûrên Çavkaniya Vekirî re Zincîrên DevOps ava dikin

Li vir ev e ku lûleya DevOps piştî lê zêdekirina SCM-ê çawa xuya dike.

Rêbernameya Dummies: Bi Amûrên Çavkaniya Vekirî re Zincîrên DevOps ava dikin

Amûra CI/CD dikare barkirin û dakêşana koda çavkaniyê û hevkariya tîmê otomatîk bike. Xerab nîne? Lê naha meriv çawa ji vê yekê, ku ji hêla mîlyaran bikarhêneran ve tê hezkirin, serîlêdanek xebitandinê çêbike?

Gav 3: Amûra Xweseriyê ava bikin

Her tişt wekî ku divê diçe. Hûn dikarin kodê barkirin û guheztinan di kontrola çavkaniyê de bikin, û hevalên xwe vexwînin ku bi we re bixebitin. Lê hîna sepaneke we tuneye. Ji bo ku ev bibe serîlêdana malperê, pêdivî ye ku ew ji bo belavkirinê were berhev kirin û pakkirin an wekî darveker were xebitandin. (Zimanek bernamesaziya şirovekirî mîna JavaScript an PHP ne hewce ye ku were berhev kirin.)

Amûrek otomasyona avakirinê bikar bînin. Kîjan amûrê ku hûn hilbijêrin, ew ê kodê di forma rast de bicivîne û paqijkirin, berhevkirin, ceribandin û radestkirinê bixweber bike. Amûrên çêkirinê li gorî ziman diguhezin, lê vebijarkên çavkaniya vekirî ya jêrîn bi gelemperî têne bikar anîn.

Rêbernameya Dummies: Bi Amûrên Çavkaniya Vekirî re Zincîrên DevOps ava dikin

Lhevderketî! Naha em pelên veavakirina amûra xweseriya avakirinê têxin nav kontrola çavkaniyê da ku amûra CI/CD wan ava bike.

Rêbernameya Dummies: Bi Amûrên Çavkaniya Vekirî re Zincîrên DevOps ava dikin

Xwe baş hîs dike. Lê niha ev hemû li ku derê ne?

Gav 4: Pêşkêşkara Serlêdana Webê

Ji ber vê yekê, we pelek pakkirî heye ku dikare were darve kirin an were derxistin. Ji bo ku serîlêdanek bi rastî bikêr be, pêdivî ye ku ew xwedan celebek karûbar an navbeynkar be, lê hûn hewce ne ku wê hemî li cîhek bidin.

Serlêdanek malperê dikare li ser serverek serîlêdana malperê were mêvandar kirin. Pêşkêşkara serîlêdanê hawîrdorek peyda dike ku hûn dikarin mantiqa pakkirî bicîh bikin, navbeynkaran raber bikin, û karûbarên malperê li ser soketek eşkere bikin. Ji we re serverek HTTP û çend hawîrdorên din (mînakek makîneyek virtual) hewce ye ku servera serîlêdanê saz bikin. Heya nuha, em îdia bikin ku hûn her ku diçin bi van tiştan re mijûl dibin (her çend ez ê li jêr li ser konteyneran biaxivim).

Gelek serverên serîlêdana malperê yên vekirî hene.

Rêbernameya Dummies: Bi Amûrên Çavkaniya Vekirî re Zincîrên DevOps ava dikin

Jixwe me zincîreyek DevOps-ê hema bêje heye. Karê mezin!

Rêbernameya Dummies: Bi Amûrên Çavkaniya Vekirî re Zincîrên DevOps ava dikin

Di prensîbê de, hûn dikarin li vir rawestin, wê hingê hûn dikarin wê bi xwe bi rê ve bibin, lê hêja ye ku meriv li ser kalîteya kodê biaxive.

Gav 5: Vegirtina testê

Ceribandin gelek dem û hewldan digire, lê çêtir e ku hûn tavilê xeletiyan bibînin û kodê baştir bikin da ku bikarhênerên dawîn xweş bikin. Ji bo vê armancê, gelek amûrên vekirî hene ku dê ne tenê kodê biceribînin, lê di heman demê de şîret dikin ka meriv çawa wê çawa baştir bike. Piraniya amûrên CI/CD-ê dikarin van amûran veşêrin û pêvajoyê otomatîk bikin.

Testkirin li du beşan tê dabeş kirin: çarçoveyên ceribandinê yên ji bo nivîsandin û pêkanîna ceribandinan, û amûrên bi şîretan ji bo baştirkirina kalîteya kodê.

Çarçoveyên ceribandinê

Rêbernameya Dummies: Bi Amûrên Çavkaniya Vekirî re Zincîrên DevOps ava dikin

Amûrên bi şîretên kalîteyê

Rêbernameya Dummies: Bi Amûrên Çavkaniya Vekirî re Zincîrên DevOps ava dikin

Piraniya van amûr û çarçoweyan ji bo Java, Python, û JavaScriptê têne nivîsandin ji ber ku C++ û C# xwedan in (her çend GCC çavkaniyek vekirî ye).

Me amûrên vegirtina ceribandinê sepandiye, û naha divê xeta boriyê DevOps mîna wêneya di destpêka dersê de xuya bike.

gavên Additional

Konser

Wekî ku min berê jî got, serverek serîlêdanê dikare di makîneyek virtual an serverek de were mêvandar kirin, lê konteynir populertir in.

konteynir çi ne? Bi kurtasî, di makîneyek virtual de, pergala xebitandinê bi gelemperî ji serîlêdanê bêtir cîh digire, û konteynerek bi gelemperî bi çend pirtûkxane û veavakirinê têr dike. Di hin rewşan de, makîneyên virtual neçar in, lê konteynir dikare bêyî lêçûnek zêde serîlêdanê bi serverê re bicîh bike.

Ji bo konteyneran, Docker û Kubernetes bi gelemperî têne girtin, her çend vebijarkên din jî hene.

Rêbernameya Dummies: Bi Amûrên Çavkaniya Vekirî re Zincîrên DevOps ava dikin

Gotarên li ser Docker û Kubernetes bixwînin opensource.com:

Amûrên otomasyona navîn

Zincîra meya DevOps li ser avakirina hevkarî û radestkirina serîlêdanê ye, lê tiştên din ên balkêş hene ku hûn dikarin bi amûrên DevOps bikin. Mînakî, amûrên Binesaziyê wekî Kodê (IaC) bikar bînin, ku wekî amûrên otomasyona navîn jî tê zanîn. Van amûran ji bo sazkirinê, rêvebirin, û karên din ên ji bo navgîniya otomatê dibin alîkar. Mînakî, amûrek otomasyonê dikare serîlêdanan (pêşkêşkera serîlêdana malperê, databas, amûrên çavdêriyê) bi veavakirinên rast bigire û wan berbi servera serîlêdanê bikişîne.

Li vir hin vebijarkên ji bo amûrên otomasyona navîn vekirî hene:

Rêbernameya Dummies: Bi Amûrên Çavkaniya Vekirî re Zincîrên DevOps ava dikin

Agahdariyên di gotaran de opensource.com:

Naha çi?

Ev tenê serê berfê ye. Zincîra DevOps dikare pir zêde bike. Bi amûrek CI/CD-ê dest pê bikin û bibînin ku hûn dikarin çi bixweber bikin da ku karê xwe hêsantir bikin. Ji bîr nekin amûrên ragihandinê vekirî ji bo hevkariya bi bandor.

Li vir çend gotarên DevOps yên baş ên ji bo destpêk hene:

Her weha hûn dikarin DevOps-ê bi amûrên guhezbar ên vekirî re yek bikin:

Source: www.habr.com

Add a comment