Giya sa Dummies: Pagtukod og mga Kadena sa DevOps nga adunay Mga Tool sa Open Source

Giya sa Dummies: Pagtukod og mga Kadena sa DevOps nga adunay Mga Tool sa Open Source
Pagtukod sa imong una nga kadena sa DevOps sa lima ka mga lakang alang sa mga nagsugod.

Ang DevOps nahimong usa ka panacea alang sa hinay kaayo, wala’y koneksyon ug kung dili adunay problema nga mga proseso sa pag-uswag. Apan kinahanglan nimo ang gamay nga kahibalo sa DevOps. Sakup niini ang mga konsepto sama sa kadena sa DevOps ug kung giunsa paghimo ang usa sa lima ka mga lakang. Dili kini usa ka kompleto nga giya, apan usa lamang ka "isda" nga mahimong mapalapdan. Magsugod ta sa kasaysayan.

Ang akong pasiuna sa DevOps

Kaniadto nagtrabaho ako uban sa mga panganod sa Citi Group ug nag-develop og IaaS web application aron pagdumala sa cloud infrastructure sa Citi, apan kanunay kong interesado kon unsaon pag-optimize ang development chain ug pagpalambo sa kultura sa mga developers. Si Greg Lavender, ang among CTO alang sa Cloud Architecture ug Infrastructure, nagrekomenda niini nga libro kanako. Proyekto nga "Phoenix". Gipatin-aw niini ang mga prinsipyo sa DevOps nga matahum ug gibasa sama sa usa ka nobela.

Ang lamesa sa likod nagpakita kung unsa ka sagad ang mga kompanya naglunsad og mga bag-ong bersyon:

Giya sa Dummies: Pagtukod og mga Kadena sa DevOps nga adunay Mga Tool sa Open Source

Giunsa pagdumala sa Amazon, Google ug Netflix ang paglansad kaayo? Ug kini yano: nahibal-an nila kung giunsa paghimo ang usa ka hapit hingpit nga kadena sa DevOps.

Lahi kaayo ang mga butang alang kanamo sa Citi hangtod nga mibalhin kami sa DevOps. Unya ang akong team adunay lain-laing mga palibot, apan gibuhat namo ang delivery sa development server sa mano-mano. Ang tanang developers adunay access sa usa lang ka development server base sa IBM WebSphere Application Server Community Edition. Uban sa dungan nga pagsulay sa paghatud, ang server "nahulog", ug sa matag higayon nga kinahanglan namon nga "sakit" nga makigsabot sa among kaugalingon. Kami usab adunay dili igo nga pagsakup sa code nga adunay mga pagsulay, usa ka proseso sa paghatud sa manual nga naggugol sa oras, ug wala’y paagi aron masubay ang paghatud sa code sa tabang sa pipila nga buluhaton o kinahanglanon sa kliyente.

Klaro nga adunay dinalian nga kinahanglan buhaton, ug nakit-an nako ang usa ka kauban nga parehas og hunahuna. Nakahukom kami nga maghimo sa una nga kadena sa DevOps nga magkauban - nagtukod siya usa ka virtual nga makina ug usa ka server sa aplikasyon sa Tomcat, ug giatiman nako si Jenkins, panagsama sa Atlassian Jira ug BitBucket, ingon man ang pagsakup sa code sa mga pagsulay. Nagmalampuson ang proyekto: hingpit namong gi-automate ang development chain, nakab-ot ang hapit 100% nga uptime sa development server, nakahimo sa pagmonitor ug pagpalambo sa code coverage uban sa mga pagsulay, ug ang usa ka Git branch mahimong mahigot sa usa ka Jira delivery ug isyu. Ug hapit tanan nga mga himan nga among gigamit sa pagtukod sa kadena sa DevOps bukas nga gigikanan.

Sa tinuud, gipasimple ang kadena, tungod kay wala kami nag-aplay sa mga advanced nga pag-configure gamit ang Jenkins o Ansible. Apan milampos kami. Tingali kini usa ka sangputanan sa prinsipyo Pareto (aka ang 80/20 nga lagda).

Usa ka Mubo nga Deskripsyon sa DevOps ug CI/CD Chain

Ang DevOps adunay lainlaing mga kahulugan. Ang DevOps, sama sa Agile, naglakip sa lainlaing mga disiplina. Apan ang kadaghanan mouyon sa mosunod nga kahulugan: Ang DevOps usa ka pamaagi, o siklo sa kinabuhi, sa pagpalambo sa software, ang nag-unang prinsipyo niini mao ang paghimo og kultura diin ang mga developers ug ubang mga empleyado "sa samang wavelength", ang manual labor automated, ang tanan nagabuhat sa ilang labing maayo, ang kasubsob sa mga paghatod nagdugang, ang pagka-produktibo sa trabaho nagdugang, ang pagka-flexible nagdugang.

Samtang ang mga himan nga nag-inusara dili igo aron makahimo usa ka palibot sa DevOps, kini kinahanglanon. Ang labing importante niini mao ang padayon nga paghiusa ug padayon nga paghatod (CI/CD). Adunay lain-laing mga yugto sa kadena alang sa matag palibot (e.g. DEV (kauswagan), INT (integrasyon), TST (pagsulay), QA (kalidad nga kasiguruhan), UAT (pagsulay sa pagdawat sa tiggamit), STG (pag-andam), PROD (paggamit)) , ang mga manual nga buluhaton awtomatiko, ang mga developer makahimo sa kalidad nga code, ihatud kini, ug dali nga matukod pag-usab.

Gihubit niini nga nota kung giunsa paghimo ang usa ka kadena sa DevOps sa lima ka mga lakang, sama sa gipakita sa litrato sa ubos, gamit ang mga himan nga bukas nga gigikanan.

Giya sa Dummies: Pagtukod og mga Kadena sa DevOps nga adunay Mga Tool sa Open Source

Manaug ta sa negosyo.

Lakang 1: Platform sa CI/CD

Una sa tanan, kinahanglan nimo ang usa ka himan sa CI / CD. Ang Jenkins usa ka MIT-licensed, open-source nga CI/CD tool nga gisulat sa Java nga nagpasikat sa DevOps nga kalihukan ug nahimong de facto nga standard para sa CICD.

Unsa ang Jenkins? Hunahunaa nga ikaw adunay usa ka magical control panel alang sa lain-laing mga serbisyo ug mga himan. Sa iyang kaugalingon, ang usa ka himan sa CI / CD sama sa Jenkins wala’y kapuslanan, apan sa lainlaing mga himan ug serbisyo, kini mahimong labing kusgan.

Gawas pa sa Jenkins, adunay daghang uban pang mga himan nga bukas nga gigikanan, pagpili bisan unsa.

Giya sa Dummies: Pagtukod og mga Kadena sa DevOps nga adunay Mga Tool sa Open Source

Ania kung unsa ang hitsura sa usa ka proseso sa DevOps sa usa ka himan sa CI / CD

Giya sa Dummies: Pagtukod og mga Kadena sa DevOps nga adunay Mga Tool sa Open Source

Naa kay CI/CD tool sa localhost, pero wala pa kaayoy mahimo. Mopadayon kita sa sunod nga lakang.

Lakang 2: Pagkontrol sa Bersyon

Ang labing maayo (ug mahimo nga labing kadali) nga paagi aron masulayan ang salamangka sa usa ka himan sa CI / CD mao ang paghiusa niini sa usa ka himan sa pagdumala sa gigikanan (SCM). Ngano nga kinahanglan nimo ang pagkontrol sa bersyon? Ingnon ta nga naghimo ka og aplikasyon. Gisulat nimo kini sa Java, Python, C++, Go, Ruby, JavaScript, o bisan unsang pinulongan nga usa ka karomata ug gamay nga kariton. Ang imong gisulat gitawag nga source code. Sa sinugdan, labi na kung nag-inusara ka nga nagtrabaho, mahimo nimong i-save ang tanan sa usa ka lokal nga direktoryo. Apan samtang nagkadako ang proyekto ug daghang mga tawo ang miapil, kinahanglan nimo ang usa ka paagi sa pagpaambit sa mga pagbag-o sa code apan likayan ang mga panagbangi kung maghiusa sa mga pagbag-o. Ug kinahanglan nimo usab nga ibalik ang nangaging mga bersyon nga wala gigamit ang mga backup ug gigamit ang pamaagi sa pagkopya-paste alang sa mga file sa code.

Ug dinhi nga walay SCM bisan asa. Ang SCM nagtipig sa code sa mga repository, nagdumala sa mga bersyon niini, ug nag-coordinate niini sa mga developer.

Adunay daghang mga himan sa SCM, apan ang Git angayan nga mahimong de facto nga sumbanan. Gitambagan ko ikaw nga gamiton kini, apan adunay ubang mga kapilian.

Giya sa Dummies: Pagtukod og mga Kadena sa DevOps nga adunay Mga Tool sa Open Source

Ania kung unsa ang hitsura sa pipeline sa DevOps pagkahuman idugang ang SCM.

Giya sa Dummies: Pagtukod og mga Kadena sa DevOps nga adunay Mga Tool sa Open Source

Ang himan sa CI/CD mahimong mag-automate sa pag-upload ug pag-download sa source code ug pagtinabangay sa team. Dili daotan? Apan karon kung giunsa paghimo ang usa ka nagtrabaho nga aplikasyon gikan niini, gihigugma sa binilyon nga mga tiggamit?

Lakang 3: Paghimo Automation Tool

Ang tanan nagpadayon sa angay. Mahimo nimong i-upload ang code ug maghimo mga pagbag-o sa pagkontrol sa gigikanan, ug pagdapit sa mga higala sa pagtrabaho uban kanimo. Apan wala ka pa usa ka app. Aron kini mahimong usa ka web application, kini kinahanglan nga gihugpong ug giputos alang sa pag-apod-apod o pagdagan isip usa ka executable. (Ang usa ka gihubad nga programming language sama sa JavaScript o PHP dili kinahanglan nga i-compile.)

Gamit ug build automation tool. Bisan unsa nga himan ang imong pilion, kini mag-assemble sa code sa husto nga format ug mag-automate sa paglimpyo, pag-compile, pagsulay, ug paghatud. Ang mga himan sa paghimo magkalainlain sa lengguwahe, apan ang mosunod nga mga kapilian sa open source sagad gigamit.

Giya sa Dummies: Pagtukod og mga Kadena sa DevOps nga adunay Mga Tool sa Open Source

Hingpit! Karon atong isulod ang build automation tool configuration files ngadto sa source control aron ang CI/CD tool maoy magtukod niini.

Giya sa Dummies: Pagtukod og mga Kadena sa DevOps nga adunay Mga Tool sa Open Source

Nindot sa pamati. Apan asa na kining tanan nga ipagawas karon?

Lakang 4: Web Application Server

Busa, ikaw adunay usa ka packaged file nga mahimong ipatuman o i-roll out. Alang sa usa ka aplikasyon nga mahimong mapuslanon, kini kinahanglan nga adunay usa ka matang sa serbisyo o interface, apan kinahanglan nimo nga ibutang kini tanan bisan diin.

Ang usa ka web application mahimong i-host sa usa ka web application server. Ang server sa aplikasyon naghatag usa ka palibot diin mahimo nimong ipatuman ang naka-pack nga lohika, pag-render sa mga interface, ug ibutyag ang mga serbisyo sa web sa usa ka socket. Kinahanglan nimo ang usa ka HTTP server ug pipila ka ubang mga palibot (usa ka virtual machine, pananglitan) aron ma-install ang aplikasyon server. Sa pagkakaron, magpakaaron-ingnon ta nga nag-atubang ka niining tanan samtang naglakaw ka (bisan pa maghisgot ako bahin sa mga sudlanan sa ubos).

Adunay daghang mga bukas nga web application server.

Giya sa Dummies: Pagtukod og mga Kadena sa DevOps nga adunay Mga Tool sa Open Source

Naa na kami hapit nagtrabaho nga kadena sa DevOps. Nindot nga trabaho!

Giya sa Dummies: Pagtukod og mga Kadena sa DevOps nga adunay Mga Tool sa Open Source

Sa prinsipyo, mahimo ka nga mohunong dinhi, unya mahimo nimo kini sa imong kaugalingon, apan takus nga hisgutan ang kalidad sa code.

Lakang 5: Test coverage

Ang pagsulay nanginahanglan daghang oras ug paningkamot, apan mas maayo nga makit-an dayon ang mga bug ug pauswagon ang code aron malipay ang mga tiggamit. Alang niini nga katuyoan, adunay daghang mga bukas nga himan nga dili lamang magsulay sa code, apan magtambag usab kung giunsa kini mapaayo. Kadaghanan sa mga gamit sa CI/CD mahimong ma-plug sa kini nga mga himan ug ma-automate ang proseso.

Ang pagsulay gibahin sa duha ka bahin: mga balangkas sa pagsulay alang sa pagsulat ug pagpatuman sa mga pagsulay, ug mga himan nga adunay mga pahiwatig aron mapaayo ang kalidad sa code.

Mga Balangkas sa Pagsulay

Giya sa Dummies: Pagtukod og mga Kadena sa DevOps nga adunay Mga Tool sa Open Source

Mga himan nga adunay mga tip sa kalidad

Giya sa Dummies: Pagtukod og mga Kadena sa DevOps nga adunay Mga Tool sa Open Source

Kadaghanan niini nga mga himan ug mga gambalay gisulat alang sa Java, Python, ug JavaScript tungod kay ang C++ ug C# kay proprietary (bisan tuod ang GCC kay open source).

Gi-apply namon ang mga himan sa pagsakup sa pagsulay, ug karon ang pipeline sa DevOps kinahanglan nga tan-awon sama sa litrato sa sinugdanan sa tutorial.

Dugang nga mga lakang

Mga sudlanan

Sama sa akong giingon kaniadto, ang usa ka server sa aplikasyon mahimong ma-host sa usa ka virtual machine o usa ka server, apan ang mga sulud labi ka sikat.

Unsa ang mga sudlanan? Sa laktod nga pagkasulti, sa usa ka virtual nga makina, ang operating system kanunay nga mokuha ug daghang espasyo kaysa sa aplikasyon, ug ang usa ka sudlanan kasagaran igo na sa pipila ka mga librarya ug pag-configure. Sa pipila ka mga kaso, ang mga virtual nga makina kinahanglanon, apan ang sudlanan mahimong ma-accommodate ang aplikasyon kauban ang server nga wala’y dugang nga gasto.

Alang sa mga sudlanan, kasagarang gikuha ang Docker ug Kubernetes, bisan kung adunay ubang mga kapilian.

Giya sa Dummies: Pagtukod og mga Kadena sa DevOps nga adunay Mga Tool sa Open Source

Basaha ang mga artikulo bahin sa Docker ug Kubernetes sa opensource.com:

Mga gamit sa automation sa middleware

Ang among kadena sa DevOps naka-focus sa kolaborasyon nga pagtukod ug paghatud sa usa ka aplikasyon, apan adunay uban pang makapaikag nga mga butang nga mahimo nimo gamit ang mga himan sa DevOps. Pananglitan, gamita ang Infrastructure as Code (IaC) nga mga himan, nailhan usab nga middleware automation tools. Kini nga mga himan makatabang sa pag-automate sa pag-instalar, pagdumala, ug uban pang mga buluhaton alang sa middleware. Pananglitan, ang usa ka himan sa automation mahimong makakuha og mga aplikasyon (web application server, database, monitoring tools) uban ang hustong mga configuration ug iduso kini ngadto sa application server.

Ania ang pipila ka mga kapilian alang sa bukas nga middleware automation nga mga himan:

Giya sa Dummies: Pagtukod og mga Kadena sa DevOps nga adunay Mga Tool sa Open Source

Mga detalye sa mga artikulo opensource.com:

Ug karon unsa?

Kini mao lamang ang tumoy sa iceberg. Daghan pa ang mahimo sa kadena sa DevOps. Pagsugod sa usa ka himan sa CI / CD ug tan-awa kung unsa pa ang mahimo nimong awtomatiko aron mapadali ang imong trabaho. Ayaw kalimti ang bahin sa bukas nga mga himan sa komunikasyon para sa epektibong kolaborasyon.

Ania ang pipila ka mas maayo nga mga artikulo sa DevOps alang sa mga nagsugod:

Mahimo usab nimo nga i-integrate ang DevOps sa bukas nga agile nga mga himan:

Source: www.habr.com

Idugang sa usa ka comment