Kana iwe uri mutsva kuDevOps, tarisa iyi nhanho-nhanho nhanho yekugadzira yako yekutanga pombi.
DevOps yave mhinduro yakajairwa yekugadzirisa inononoka, isina kubatana kana yakatyoka magadzirirwo esoftware. Dambudziko nderekuti kana uri mutsva kuDevOps uye usingazive pekutangira, unogona kushaya kunzwisisa kwemaitiro aya. Ichi chinyorwa chichakurukura tsananguro yepombi yeDevOps uye ichapawo nhanho-nhanho mirairo yekugadzira imwe. Kunyange ichi chidzidzo chisina kupera, chinofanira kukupa hwaro hwekutanga rwendo rwako uye kuwedzera ruzivo rwako mune ramangwana. Asi ngatitange nenhoroondo.
Rwendo rwangu rweDevOps
Ini ndakamboshanda paCiti Group cloud team kugadzira Infrastructure-as-a-Service (IaaS) web application yekugadzirisa Citi's cloud infrastructure, asi ndaigara ndichifarira maitiro ekuita kuti hurongwa hwekuvandudza hunyatsoshanda uye kuunza shanduko yakanaka yetsika kune timu yebudiriro. Ndakawana mhinduro mubhuku rakakurudzirwa naGreg Lavender, CTO weCloud Architecture uye Infrastructure kuCiti. Bhuku racho rainzi The Phoenix Project (
Tafura iri kuseri kwebhuku inoratidza kuti kangani makambani akasiyana anoisa masisitimu avo munzvimbo yekuburitsa:
Amazon: 23 pazuva
Google: 5 pazuva
Netflix: 500 pazuva
Facebook: Kamwe pazuva
Twitter: Katatu pasvondo
Yakajairika kambani: Kamwe chete mwedzi ye9
Ko Amazon, Google neNetflix ma frequency anogoneka sei? Izvi zvinodaro nekuti makambani aya akafunga nzira yekugadzira inenge yakakwana DevOps pombi.
Isu taive kure neizvi kusvika taita DevOps kuCiti. Kare ikako, timu yangu yaive nemhoteredzo dzakasiyana, asi kutumirwa pane server yekuvandudza kwaive nemanyorero. Vese vagadziri vaikwanisa kuwana imwe chete sevha yekusimudzira yakavakirwa paIBM WebSphere Application Server Community Edition. Dambudziko nderekuti sevha yaivhara pese paiedza vashandisi vakawanda kuisa panguva imwe chete, saka vanogadzira vaifanira kutaurirana vavariro yavo kune mumwe nemumwe, izvo zvairwadza. Pamusoro pezvo, pakanga paine nyaya neiyo yakaderera-level test code coverage, inorema manyorerwo ekuisa manyorerwo maitiro, uye kusakwanisa kutevedzera kutumirwa kwekodhi ine chekuita neramwe basa kana nyaya yemushandisi.
Ndakaona kuti pane zvaifanira kuitwa ndokubva ndawana mumwe wandaishanda naye ane pfungwa dzakafanana. Takafunga kushandirapamwe pakuvaka pombi yekutanga yeDevOps - akamisa Tomcat virtual muchina uye application server ini ndichishanda paJenkins, yakabatanidza Atlassian Jira neBitBucket, uye ndikashanda pabvunzo kodhi yekuvhara. Iri purojekiti yeparutivi yakabudirira kwazvo: isu takapotsa taita otomatiki akawanda maitiro, takawana ingangoita 100% uptime pane yedu yekuvandudza server, yakapihwa yekutevera uye yakagadziridzwa bvunzo kufukidzwa kwekodhi, uye takawedzera kugona kubatanidza matavi eGit kune nyaya dzeJira kana deployments. Zvizhinji zvezvishandiso zvatakashandisa kuvaka pombi yedu yeDevOps yaive yakavhurika sosi.
Ikozvino ini ndinonzwisisa kuti yakapusa sei pombi yedu yeDevOps: isu hatina kushandisa ekuwedzera seJenkins mafaera kana Ansible. Zvisinei, iyi pombi iri nyore yakashanda zvakanaka, zvichida nekuda kwePareto musimboti (unozivikanwawo semutemo we80/20).
Sumo Ipfupi kune DevOps uye iyo CI/CD Pipeline
Kana iwe ukabvunza vanhu vakati wandei, "Chii chinonzi DevOps?", Unogona kuwana akati wandei mhinduro dzakasiyana. DevOps, seAgile, yakashanduka kuti ienderane nedzidziso dzakasiyana siyana, asi vanhu vazhinji vanobvumirana pazvinhu zvishoma: DevOps inzira yekuvandudza software kana software yekuvandudza hupenyu kutenderera (SDLC) iyo yepakati tenet iri kushandura tsika umo vanogadzira nevasiri-. vagadziri varipo munzvimbo umo:
Mashandisirwo aimboitwa nemaoko ave otomatiki;
Munhu wose anoita zvaanoita zvakanakisisa;
Nhamba yekushandiswa pane imwe nguva yenguva inowedzera; Kupinda kunowedzera;
Kuwedzera kushanduka kwekusimudzira.
Nepo kuve neakakodzera maturusi esoftware handicho chete chinhu chaunoda kugadzira nharaunda yeDevOps, mamwe maturusi akakosha. Chishandiso chakakosha ndechekuenderera mberi nekubatanidzwa uye kuenderera mberi kwekutumira (CI / CD). Mune iyi pombi, nharaunda dzine nhanho dzakasiyana (semuenzaniso DEV, INT, TST, QA, UAT, STG, PROD), mabasa mazhinji anongoitwa otomatiki, uye vanogadzira vanogona kunyora emhando yepamusoro kodhi, kuwana budiriro agility, uye yakakwirira deployment rates.
Ichi chinyorwa chinotsanangura nzira nhanho shanu dzekugadzira pombi yeDevOps senge inoratidzwa mudhayagiramu inotevera uchishandisa yakavhurika sosi maturusi.
Danho 1: CI/CD Nzira
Chinhu chekutanga chaunoda iCI/CD chishandiso. Jenkins, chishandiso chakavhurika sosi yakavakirwa paJava uye ine rezinesi pasi peMIT rezenisi, ndicho chishandiso chakakurumbira DevOps uye chave chiyero che de facto.
Saka chii chinonzi Jenkins? Funga nezvayo seimwe mhando yemashiripiti yepasirese kure kure inogona kutaura uye kuronga akasiyana masevhisi uye maturusi. Payo pachayo, CI/CD chishandiso chakaita seJenkins hachibatsiri, asi chinova chakanyanya simba sezvo chichibatanidza kune akasiyana maturusi nemasevhisi.
Jenkins ingori imwe yeakawanda akavhurika sosi CI/CD maturusi aunogona kushandisa kuvaka yako DevOps pombi.
Jenkins: Creative Commons uye MIT
Travis CI: MIT
CruiseControl:BSD
Buildbot: GPL
Apache Gump: Apache 2.0
Cabie: GNU
Hezvino izvo DevOps maitiro anotaridzika neCI/CD chishandiso:
Iwe une CI/CD chishandiso chinomhanya pane yako localhost, asi hapana zvakawanda zvaunogona kuita panguva ino. Ngatiendererei kune inotevera nhanho yerwendo rweDevOps.
Danho 2: Tonga Source Kudzora Systems
Iyo yakanakisa (uye pamwe iri nyore) nzira yekuona kuti yako CI/CD chishandiso chinogona kuita mashiripiti ayo ndeyekubatanidza neye source code control (SCM) chishandiso. Sei uchida sosi control? Ngatiti uri kugadzira application. Pese paunogadzira application, unenge uchironga, uye hazvina basa kuti unoshandisa Java, Python, C++, Go, Ruby, JavaScript, kana chero mazillion emitauro yekuronga. Kodhi yaunonyora inonzi source code. Pakutanga, kunyanya kana uchishanda wega, zvingangove zvakanaka kuisa zvese mudhairekitori renzvimbo. Asi sezvo purojekiti inokura uye iwe uchikoka vamwe vanhu kuti vabatane, iwe unoda nzira yekudzivirira kusawirirana uku uchinyatso kugovera zvigadziriso. Iwe zvakare unoda nzira yekudzoreredza mavhezheni apfuura, nekuti kugadzira backups uye kukopa / kunamira mazviri kuri kuita kusashanda. Iwe (uye vaunoshanda navo) vanoda chimwe chinhu chiri nani.
Apa ndipo panobva kodhi kudzora kunova chinhu chinodiwa. Ichi chishandiso chinochengeta kodhi yako mumatura, chinochengeta chinyorwa cheshanduro, uye chinoronga basa revatori vechikamu chepurojekiti.
Kunyange paine akawanda sosi ekudzora maturusi kunze uko, Git ndiyo chiyero, uye ndizvozvo. Ini ndinokurudzira kushandisa Git, kunyangwe paine mamwe akavhurika sosi sarudzo kana uchida.
Git: GPLv2 uye LGPL v2.1
Kushandura: Apache 2.0
Concurrent Versions System (CVS): GNU
Vesta: LGPL
Mercurial: GNU GPL v2+
Izvi ndizvo zvinoita pombi yeDevOps nekuwedzera kweiyo source code control.
Chishandiso cheCI/CD chinogona kuita otomatiki maitiro ekudzokorora, kutora kodhi kodhi, uye kubatana pakati penhengo. Kusaipa? Asi unochishandura sei kuita chishandiso chekushanda kuitira kuti mabhiriyoni evanhu ashandise nekuchikoshesa?
Nhanho 3: Gadzira Kuvaka otomatiki Tool
Hukuru! Iwe unogona kuongorora kodhi uye kuita shanduko kune sosi kutonga, uye kukoka shamwari dzako kuti dzibatane mukusimudzira. Asi hausati wagadzira application. Kuti uite webhu application, inofanirwa kuunganidzwa uye kurongedzerwa mune deployable batch fomati kana kumhanya senge faira rinogoneka. (Cherechedza kuti mutauro wechirongwa wakadudzirwa wakaita seJavaScript kana PHP haudi kuunganidzwa).
Shandisa kuvaka otomatiki chishandiso. Hazvina mhosva kuti ndechipi chekuvaka otomatiki chishandiso chaunosarudza kushandisa, vese vane chinangwa chakafanana: kuvaka kodhi kodhi mune imwe fomati inodiwa uye otomatiki basa rekuchenesa, kuunganidza, kuyedza, uye kuendesa kune yakatarwa nharaunda. Kuvaka maturusi anosiyana zvichienderana nemutauro wako wechirongwa, asi heano mamwe akajairika akavhurwa sosi sarudzo.
Title
License
Mutauro wepurogiramu
Maven
Apache 2.0
Java
Ant
Apache 2.0
Java
Gradle
Apache 2.0
Java
bazel
Apache 2.0
Java
Ita
GNU
N / A
Kugunun'una
with
JavaScript
gulp
with
JavaScript
Muvaki
Apache
Ruby
rakes
with
Ruby
AAP
GNU
Python
SCons
with
Python
BitBake
GPLv2
Python
keke
with
C#
ASDF
Expat (MIT)
LISP
Chaizvoizvo
BSD
Haskell
Hukuru! Iwe unogona kuisa iyo yekuvaka otomatiki chishandiso chekugadzirisa mafaera mune yako sosi yekudzora sisitimu uye rega yako CI/CD chishandiso isa zvese pamwechete.
Zvose zvakanaka, handizvo here? Asi kupi kwekuendesa application yako?
Nhanho 4: Webhu Yekushandisa Server
Parizvino, une faira rakapetwa rinogona kuitwa kana kugadzika. Kuti chero application inyatso batsira, inofanirwa kupa imwe mhando yebasa kana interface, asi iwe unoda mudziyo kuti utore application yako.
A web application server inongova mudziyo wakadaro. Sevha inopa nharaunda umo iyo logic yepakeji iri kuiswa inogona kutsanangurwa. Iyo sevha zvakare inopa chinongedzo uye inopa webhu masevhisi nekufumura zvigadziko kune kunze kwenyika. Unoda sevha yeHTTP, pamwe neimwe nharaunda (senge muchina chaiwo) kuti uiise. Parizvino, ngatifungei kuti uchadzidza zvakawanda nezve izvi (kunyangwe ini ndichavhara midziyo pazasi).
Kune akati wandei akavhurwa sosi yewebhu application maseva.
Title
License
Mutauro wepurogiramu
Tomcat
Apache 2.0
Java
Jetty
Apache 2.0
Java
WildFly
GNU Vashoma Veruzhinji
Java
GlassFish
CDDL & GNU Zvishoma Paruzhinji
Java
Django
3-Chikamu BSD
Python
dutu
Apache 2.0
Python
gunicorn
with
Python
Python
with
Python
Rails
with
Ruby
Node.js
with
JavaScript
Yako pombi yeDevOps yave kutogadzirira kushandisa. Basa rakanaka!
Nepo iwe uchigona kumira ipapo uye kubata iyo yekubatanidza iwe pachako, kodhi mhando chinhu chakakosha kuti mugadziri weapp anetseke nezvazvo.
Nhanho 5: Code Testing Coverage
Kuita bvunzo kunogona kuve chimwe chinodikanwa chinorema, asi vanogadzira vanofanirwa kubata chero tsikidzi mukushandisa nekukurumidza uye nekuvandudza mhando yekodhi kuona kuti vashandisi vekupedzisira vagutsikana. Sezvineiwo, kune akawanda akavhurika sosi maturusi ekuyedza kodhi yako uye kuita kurudziro yekuvandudza kunaka kwayo. Chiri nani ndechekuti maturusi mazhinji eCI/CD anogona kubatana kune aya maturusi uye otomatiki maitiro.
Kuyedzwa kwekodhi kunosanganisira zvikamu zviviri: kodhi yekuyedza masisitimu ayo anokubatsira kunyora nekumhanyisa bvunzo, uye mazano ezvishandiso anokubatsira kuvandudza kunaka kwekodhi yako.
Code test systems
Title
License
Mutauro wepurogiramu
JUnit
Eclipse Public License
Java
EasyMock
Apache
Java
mockito
with
Java
PowerMock
Apache 2.0
Java
Pytest
with
Python
Kufungidzira
Mozilla
Python
tox
with
Python
Kurudziro masisitimu ekuvandudza kodhi
Title
License
Mutauro wepurogiramu
Cobertura
GNU
Java
CodeCover
Eclipse Public (EPL)
Java
Coverage.py
Apache 2.0
Python
Emma
Common Public License
Java
JaCoCo
Eclipse Public License
Java
Kufungidzira
Mozilla
Python
tox
with
Python
Jasmine
with
JavaScript
Karma
with
JavaScript
Mocha
with
JavaScript
Jest
with
JavaScript
Ziva kuti mazhinji ezvishandiso nemafuremu ataurwa pamusoro akanyorerwa Java, Python neJavaScript, sezvo C++ neC# iri mitauro yemapurogiramu epamhepo (kunyangwe GCC yakavhurika sosi).
Zvino zvawaita maturusi ekuvhara bvunzo, pombi yako yeDevOps inofanirwa kutaridzika yakafanana nedhayagiramu yakaratidzwa pakutanga kwechidzidzo ichi.
Mamwe Matanho
Containers
Sezvandakataura, unogona kugamuchira sevha yako pamushini chaiwo kana sevha, asi midziyo ndiyo yakakurumbira mhinduro.
Ko midziyo chii? Tsananguro pfupi ndeyekuti muchina chaiwo unoda huwandu hukuru hwekushandisa system memory, inodarika saizi yechishandiso, nepo mudziyo unongoda mashoma maraibhurari uye zvigadziriso zvekushandisa application. Zviripachena, kuchine kwakakosha kushandiswa kwemuchina chaiwo, asi mudziyo imhinduro yakareruka yekuitisa application, kusanganisira sevha yekushandisa.
Kunyange paine dzimwe sarudzo dzemidziyo, dzinonyanya kufarirwa ndeye Docker uye Kubernetes.
Docker: Apache 2.0
Kubernetes: Apache 2.0
Zvepakati otomatiki zvishandiso
Yedu yeDevOps pombi yakatarisana nekubatana kwekushandisa kwekugadzira uye kutumira, asi kune zvimwe zvinhu zvakawanda zvinogona kuitwa neDevOps maturusi. Imwe yacho kushandiswa kweInfrastructure seCode (IaC) maturusi, ayo anonziwo middleware otomatiki maturusi. Aya maturusi anobatsira otomatiki kuisirwa, manejimendi, uye mamwe mabasa epakati. Saka, semuenzaniso, otomatiki chishandiso chinogona kuburitsa zvikumbiro sewebhu application server, dhatabhesi, uye chekutarisa chishandiso chine magadzirirwo chaiwo uye wozviendesa kune server application.
Heano mamwe akavhurika sosi middleware otomatiki maturusi:
Zvinogoneka: GNU Public
SaltStack: Apache 2.0
Chef: Apache 2.0
Chipopi: Apache kana GPL
Tsvaga ruzivo rwekuti ungawana sei basa rinotsvakwa kubva pakutanga kana Level Up maererano nehunyanzvi uye muhoro nekutora akabhadharwa online makosi kubva kuSkillFactory:
DevOps Course (12 mwedzi)
mamwe makosi
Machine Learning Course (12 mavhiki)Kudzidzisa basa reData Sayenzi kubva pakutanga (12 mwedzi)Analyst basa pane chero nhanho yekutanga (9 mwedzi)Python yeWeb Development Course (9 mwedzi)
Zvinoshanda
450 Yemahara Ivy League Makosi Maitiro muData Sayenzi 2020 Data Science yakafa. Rarama Bhizinesi Sainzi Data Sayenzi paSteroids: Nhanganyaya Yechisarudzo Hungwaru Inonyanya kubudirira uye inonyadzisa Data Science project: Cambridge Analytica
Source: www.habr.com