Kuvaka yako yekutanga DevOps cheni mumatanho mashanu evatangi.
DevOps yave panacea yekunonoka, kubviswa uye neimwe nzira inonetsa budiriro. Asi iwe unoda zvishoma ruzivo muDevOps. Ichavhara pfungwa dzakadai seDevOps cheni uye maitiro ekugadzira imwe mumatanho mashanu. Iyi haisi gwara rakazara, asi "hove" chete inogona kuwedzerwa. Ngatitange nenhoroondo.
Nhanganyaya yangu kuDevOps
Ini ndaigara ndichishanda nemakore kuCiti Group uye kugadzira IaaS webhu application kubata Citi's cloud infrastructure, asi ndagara ndichifarira maitiro ekugadzirisa cheni yekusimudzira uye kugadzirisa tsika pakati pevagadziri. Greg Lavender, CTO wedu weCloud Architecture uye Infrastructure, akandikurudzira bhuku iri.
Tafura iri kuseri inoratidza kuti kangani makambani anoburitsa shanduro itsva:
Amazon, Google neNetflix vanoita sei kuti vabudise zvakanyanya? Uye zviri nyore: vakafunga nzira yekugadzira inenge yakakwana DevOps cheni.
Zvinhu zvainge zvasiyana chaizvo kwatiri paCiti kusvika tachinja kuDevOps. Ipapo timu yangu yaive nenzvimbo dzakasiyana, asi isu takaendesa kune server yekuvandudza nemaoko. Vese vagadziri vaikwanisa kuwana imwe chete sevha yekusimudzira yakavakirwa paIBM WebSphere Application Server Community Edition. Nekuedza kumwe chete kununura, sevha "yakadonha", uye nguva imwe neimwe taifanira "kurwadza" kutaurirana pakati pedu. Isu takanga zvakare tisina kukwana kodhi yekuvhara nemiedzo, inopedza nguva-inopedza manyore maitiro, uye pasina nzira yekutevera kuendeswa kwekodhi nerubatsiro rwerimwe basa kana zvinodiwa nevatengi.
Zvaiva pachena kuti chimwe chinhu chaifanira kukurumidza kuitwa, uye ndakawana mumwe wandaishanda naye aiva nepfungwa dzakafanana. Takasarudza kugadzira ketani yekutanga yeDevOps pamwe chete - akagadzira muchina chaiwo uye Tomcat application server, uye ini ndakatarisira Jenkins, kubatanidzwa neAtlassian Jira uye BitBucket, pamwe nekuvhara kwekodhi nemiedzo. Iyo purojekiti yakabudirira: isu takanyatso otomatiki cheni yekusimudzira, yakawana ingangoita 100% uptime pane yekuvandudza server, takakwanisa kutarisa nekuvandudza kodhi yekuvhara nemiedzo, uye bazi reGit rinogona kusungirirwa kune Jira kuendesa uye nyaya. Uye anenge ese maturusi atakashandisa kuvaka iyo DevOps cheni aive akavhurika sosi.
Muchokwadi, cheni yakarerutswa, nekuti isu hatina kana kushandisa magadzirirwo epamberi tichishandisa Jenkins kana Ansible. Asi takabudirira. Zvichida izvi mhedzisiro yenheyo
Tsanangudzo Pfupi yeDevOps uye CI/CD Chain
DevOps ine tsananguro dzakasiyana. DevOps, seAgile, inosanganisira maitiro akasiyana. Asi vazhinji vanobvumirana netsanangudzo inotevera: DevOps inzira, kana kutenderera kwehupenyu, yekuvandudza software, musimboti mukuru wekugadzira tsika apo vanogadzira uye vamwe vashandi vari "pahumwe wavelength", basa remaoko rinoitwa otomatiki, munhu wese anoita zvaanogona paari, kuwanda kwekutakura kunowedzera, kugadzirwa kwebasa kunowedzera, kushanduka kunowedzera.
Nepo maturusi ega asina kukwana kugadzira DevOps nharaunda, iwo akakosha. Chinonyanya kukosha pane izvi ndechekuenderera mberi kwekubatanidzwa uye kuenderera mberi kwekutumira (CI / CD). Kune matanho akasiyana mumaketani kune yega yega nharaunda (semuenzaniso DEV (budiriro), INT (kubatanidzwa), TST (yekuyedza), QA (kusimbiswa kwemhando), UAT (yemushandisi yekugamuchira bvunzo), STG (kugadzirira), PROD (kushandisa)) , mabasa emaoko ari otomatiki, vagadziri vanogona kugadzira kodhi yemhando, kuiburitsa, uye inogona kuvaka zvakare nyore.
Ichi chinyorwa chinotsanangura maitiro ekugadzira cheni yeDevOps mumatanho mashanu, sezvakaratidzwa mumufananidzo uri pazasi, uchishandisa yakavhurika sosi maturusi.
Ngatidzikei kubhizinesi.
Danho 1: CI/CD Platform
Chekutanga pane zvese, unoda CI/CD chishandiso. Jenkins iMIT-ine rezinesi, yakavhurika-sosi CI/CD chishandiso chakanyorwa muJava icho chakaparidzira kufamba kweDevOps uye yave iyo de facto chiyero cheCICD.
Chii chinonzi Jenkins? Fungidzira kuti une mashiripiti ekudzora pani kune akasiyana masevhisi uye zvishandiso. Payo pachayo, CI/CD chishandiso chakaita seJenkins hachibatsiri, asi nemidziyo nemasevhisi akasiyana, chinova chine simba rose.
Pamusoro peJenkins, kune mamwe akawanda akavhurika sosi maturusi, sarudza chero.
Hezvino izvo maitiro eDevOps anotaridzika neCI/CD chishandiso
Iwe une CI/CD chishandiso mune localhost, asi hapana zvakawanda zvekuita parizvino. Ngatienderere mberi kune nhanho inotevera.
Danho 2: Kushandura
Iyo yakanakisa (uye ine nharo iri nyore) nzira yekuyedza mashiripiti eCI / CD chishandiso ndeyekubatanidza iyo neyekudzora kudzora manejimendi (SCM) chishandiso. Sei uchida shanduro control? Ngatiti uri kuita application. Iwe unoinyora muJava, Python, C++, Go, Ruby, JavaScript, kana chero mumwe mutauro uri ngoro uye ngoro diki. Zvaunonyora zvinonzi source code. Pakutanga, kunyanya kana uri kushanda wega, unogona kuchengetedza zvese kudhairekitori renzvimbo. Asi sezvo purojekiti ichikura uye vanhu vazhinji vanojoinha, iwe unoda nzira yekugovana shanduko yekodhi asi dzivirira kukakavara kana uchibatanidza shanduko. Uye iwe zvakare unofanirwa kudzoreredza zvekare mavhezheni pasina kushandisa backups uye kushandisa iyo kopi-namira nzira yekodhi mafaera.
Uye pano pasina SCM chero kupi. Iyo SCM inochengeta kodhi mumarepositori, inogadzirisa shanduro dzayo, uye inoironga pakati pevagadziri.
Kune akawanda maSCM maturusi, asi Git yakafanirwa kuve iyo de facto standard. Ndinokupa zano kuti uishandise, asi pane dzimwe sarudzo.
Hezvino izvo pombi yeDevOps inotaridzika mushure mekuwedzera iyo SCM.
Iyo CI/CD chishandiso chinogona kuita otomatiki kodhi kodhi kurodha uye kurodha uye kubatana kwechikwata. Kusaipa? Asi ikozvino maitiro ekuita basa rekushanda kubva pane izvi, rinodiwa nemabhiriyoni evashandisi?
Danho rechitatu: Vaka otomatiki Tool
Zvese zviri kufamba sezvazvinofanira. Iwe unogona kurodha kodhi uye kuita shanduko kune sosi kutonga, uye kukoka shamwari kuti dzishande newe. Asi iwe hausati wava neapp. Kuti iyi ive yewebhu application, inofanirwa kuunganidzwa uye kurongedzerwa kuti igovane kana kumhanya sechinhu chinoitwa. (Mutauro wakadudzirwa wechirongwa seJavaScript kana PHP haudi kuunganidzwa.)
Shandisa kuvaka otomatiki chishandiso. Chero chishandiso chaunosarudza, chinounganidza kodhi mufomati chaiyo uye otomatiki kuchenesa, kuunganidza, kuyedzwa, uye kutumira. Maturusi ekuvaka anosiyana nemutauro, asi anotevera akavhurwa sosi sarudzo anowanzo kushandiswa.
Yakakwana! Zvino ngatiisei iyo yekuvaka otomatiki chishandiso chekugadzirisa mafaera mune sosi yekutonga kuitira kuti CI/CD mudziyo uvavake.
Zvinonzwa zvakanaka. Asi zvese izvi zvichabuda kupi izvozvi?
Nhanho 4: Webhu Yekushandisa Server
Saka, une faira rakapetwa rinogona kuurayiwa kana kukungurutswa. Kuti application inyatso batsira, inofanirwa kunge iine imwe mhando yebasa kana interface, asi iwe unofanirwa kuiisa yese kumwe kumwe.
Webhu application inogona kuitirwa pawebhu application server. Iyo sevha yekushandisa inopa nharaunda kwaunogona kuita akaputirwa logic, kupa maficha, uye kufumura webhu masevhisi pamusoro pesokisi. Unoda sevha yeHTTP uye mamwe mashoma nharaunda (muchina chaiwo, semuenzaniso) kuisa server yekushandisa. Parizvino, ngatiite seuri kubata nazvo zvese izvi sezvaunoenda (kunyangwe ini ndichataura nezve midziyo pazasi).
Kune akati wandei akavhurika ewebhu application maseva.
Isu tatova neketani inenge ichishanda yeDevOps. Basa rakanaka!
Muchidimbu, iwe unogona kumira pano, ipapo iwe unogona kuzvibata iwe pachako, asi zvakakodzera kutaura nezvemhando yekodhi.
Nhanho yechishanu: Kuongororwa kwezve
Kuedza kunotora nguva yakawanda uye kushanda nesimba, asi zviri nani kuti uwane tsikidzi ipapo uye uvandudze kodhi kufadza vashandisi vekupedzisira. Nechinangwa ichi, kune akawanda maturusi akavhurika ayo asingangoyedze iyo kodhi chete, asi zvakare inopa zano kuti ungaivandudza sei. Maturusi mazhinji eCI/CD anogona kubaya mune aya maturusi uye otomatiki maitiro.
Muedzo wakakamurwa kuita zvikamu zviviri: mafomu ekuyedza ekunyora nekuita bvunzo, uye maturusi ane mazano ekuvandudza kodhi yemhando.
Testing Frameworks
Zvishandiso zvine mazano emhando
Zvizhinji zvezvishandiso izvi nemafuremu zvakanyorerwa Java, Python, uye JavaScript nekuti C++ neC# ndezvavo (kunyangwe GCC yakavhurika sosi).
Isu takashandisa maturusi ekuvhara bvunzo, uye ikozvino pombi yeDevOps inofanirwa kutaridzika semufananidzo uri pakutanga kwechidzidzo.
Mamwe Matanho
Containers
Sezvandambotaura, sevha yekushandisa inogona kubatwa mumushini chaiwo kana sevha, asi midziyo inonyanya kufarirwa.
Kune midziyo, Docker uye Kubernetes inowanzotorwa, kunyangwe paine dzimwe sarudzo.
Verenga zvinyorwa nezve Docker uye Kubernetes pa
Middleware otomatiki zvishandiso
Yedu DevOps cheni yakatarisana nekubatana kuvaka uye kuendesa application, asi pane zvimwe zvinonakidza zvinhu zvaunogona kuita neDevOps maturusi. Semuenzaniso, shandisa Infrastructure seCode (IaC) maturusi, anozivikanwawo semiddleware otomatiki maturusi. Aya maturusi anobatsira otomatiki kuisirwa, manejimendi, uye mamwe mabasa epakati. Semuenzaniso, otomatiki chishandiso chinogona kutora maapplication (web application server, dhatabhesi, yekutarisa maturusi) neayo magadzirirwo uye oasundira kune server application.
Hedzino dzimwe sarudzo dzekuvhura middleware otomatiki maturusi:
Tsanangudzo muzvinyorwa
Ansible Kutanga Nhungamiro Deployment otomatiki nzira neAnsible Pamusoro 5 Magadzirirwo Ekugadzirisa Zvishandiso
Zvino chii?
Iyi inongova muromo wechando. Iyo DevOps cheni inogona kuita zvakawanda. Tanga neCI/CD chishandiso uye uone kuti ndezvipi zvimwe zvaungaite kuti basa rako rive nyore. Usakanganwa nezvazvo
Heano zvimwe zvakanaka zveDevOps zvinyorwa zvevanotanga:
Chii chinonzi DevOps 5 Unyanzvi hweDevOps Developer DevOps yemunhu wese Nhanganyaya yekufungidzira analytics muDevOps
Iwe unogona zvakare kubatanidza DevOps neakavhurika agile maturusi:
Source: www.habr.com