Leiðbeiningar fyrir byrjendur: Að búa til DevOps leiðslu

Ef þú ert nýr í DevOps skaltu skoða þessa fimm þrepa leiðbeiningar til að búa til fyrstu leiðsluna þína.

Leiðbeiningar fyrir byrjendur: Að búa til DevOps leiðslu

DevOps er orðin staðlað lausn til að laga hæga, sundurlausa eða bilaða hugbúnaðarþróunarferli. Vandamálið er að ef þú ert nýr í DevOps og veist ekki hvar þú átt að byrja gætirðu skortir skilning á þessum aðferðum. Þessi grein mun fjalla um skilgreiningu á DevOps leiðslu og mun einnig veita fimm þrepa leiðbeiningar um að búa til eina. Þó að þessi kennsla sé ekki tæmandi ætti hún að gefa þér grunn til að hefja ferð þína og auka þekkingu þína í framtíðinni. En við skulum byrja á sögunni.

DevOps ferðin mín

Ég vann áður í skýjateyminu Citi Group við að þróa Infrastructure-as-a-Service (IaaS) vefforrit til að stjórna skýjainnviðum Citi, en ég hafði alltaf áhuga á því hvernig hægt væri að gera þróunarferlið skilvirkara og koma jákvæðum menningarbreytingum á þróunarteymi. Ég fann svarið í bók sem Greg Lavender, tæknistjóri Cloud Architecture and Infrastructure hjá Citi mælir með. Bókin hét The Phoenix Project (Phoenix verkefnið), og það útskýrir meginreglur DevOps, en það er eins og skáldsaga.

Taflan aftast í bókinni sýnir hversu oft mismunandi fyrirtæki nota kerfi sín í útgáfuumhverfi:

Amazon: 23 á dag
Google: 5 á dag
Netflix: 500 á dag
Facebook: Einu sinni á dag
Twitter: 3 sinnum í viku
Dæmigert fyrirtæki: Einu sinni á 9 mánaða fresti

Hvernig eru Amazon, Google og Netflix tíðni jafnvel möguleg? Þetta er vegna þess að þessi fyrirtæki hafa fundið út hvernig á að búa til næstum fullkomna DevOps leiðslu.

Við vorum langt frá þessu þar til við innleiddum DevOps hjá Citi. Þá var liðið mitt með mismunandi umhverfi, en uppsetningin á þróunarþjóninum var algjörlega handvirk. Allir þróunaraðilar höfðu aðgang að aðeins einum þróunarþjóni sem byggður var á IBM WebSphere Application Server Community Edition. Vandamálið var að þjónninn lokaðist alltaf þegar margir notendur reyndu að dreifa á sama tíma, þannig að þróunaraðilar þurftu að koma áformum sínum á framfæri hver við annan, sem var frekar sársaukafullt. Að auki voru vandamál með umfang prófkóða á lágu stigi, fyrirferðarmikil handvirk dreifingarferli og vanhæfni til að fylgjast með uppsetningu kóða sem tengist tilteknu verkefni eða notendasögu.

Ég áttaði mig á því að eitthvað þyrfti að gera og fann mér samstarfsmann með sama hugarfari. Við ákváðum að vinna saman að því að byggja upp upphaflegu DevOps leiðsluna - hann setti upp Tomcat sýndarvél og forritaþjón á meðan ég vann á Jenkins, samþætti Atlassian Jira og BitBucket og vann við umfang prófkóða. Þetta hliðarverkefni heppnaðist mjög vel: við gerðum næstum algjörlega sjálfvirkan fjölda ferla, náðum næstum 100% spennutíma á þróunarþjóninum okkar, veittum rakningu og bættum prófum umfang kóðans og bættum við möguleikanum á að tengja Git útibú við Jira málefni eða dreifingu. Flest verkfærin sem við notuðum til að byggja upp DevOps leiðsluna okkar voru opinn uppspretta.

Nú skil ég hversu einföld DevOps leiðslan okkar var: við notuðum ekki viðbætur eins og Jenkins skrár eða Ansible. Hins vegar virkaði þessi einfalda leiðsla vel, kannski vegna Pareto meginreglunnar (einnig þekkt sem 80/20 reglan).

Stutt kynning á DevOps og CI/CD leiðslunni

Ef þú spyrð marga, „Hvað er DevOps?“ færðu líklega nokkur mismunandi svör. DevOps, eins og Agile, hefur þróast til að spanna margar mismunandi greinar, en flestir eru sammála um nokkur atriði: DevOps er hugbúnaðarþróunaraðferð eða hugbúnaðarþróunarlífsferill (SDLC) sem miðar að því að breyta menningu þar sem þróunaraðilar og ekki- þróunaraðilar eru til í umhverfi þar sem:

Aðgerðir sem áður voru framkvæmdar handvirkt hafa verið sjálfvirkar;
Allir gera það sem þeir gera best;
Útfærslum á tilteknu tímabili fjölgar; Afköst eykst;
Aukinn sveigjanleiki í þróun.

Þó að hafa réttu hugbúnaðarverkfærin sé ekki það eina sem þú þarft til að búa til DevOps umhverfi, eru sum verkfæri nauðsynleg. Lykiltæki er samfelld samþætting og stöðug dreifing (CI/CD). Í þessari leiðslu hafa umhverfi mismunandi stig (t.d. DEV, INT, TST, QA, UAT, STG, PROD), margar aðgerðir eru sjálfvirkar og forritarar geta skrifað hágæða kóða, náð lipurð í þróun og hátt dreifingarhlutfall.

Þessi grein lýsir fimm þrepa nálgun til að búa til DevOps leiðslu eins og þá sem sýnd er á eftirfarandi skýringarmynd með því að nota opinn hugbúnað.

Skref 1: CI/CD aðferðir

Það fyrsta sem þú þarft er CI/CD tól. Jenkins, opinn uppspretta tól byggt á Java og með leyfi samkvæmt MIT leyfinu, er tólið sem gerði DevOps vinsælt og hefur orðið raunverulegur staðall.

Svo hvað er Jenkins? Hugsaðu um það sem einhvers konar töfrandi alhliða fjarstýringu sem getur talað við og skipulagt ýmsa þjónustu og verkfæri. Eitt og sér er CI/CD tól eins og Jenkins gagnslaust, en það verður öflugra þar sem það tengist mismunandi verkfærum og þjónustu.

Jenkins er aðeins eitt af mörgum opnum CI/CD verkfærum sem þú getur notað til að byggja upp DevOps leiðsluna þína.

Jenkins: Creative Commons og MIT
Travis CI: MIT
Cruise Control: BSD
Byggingarbotni: GPL
Apache Gump: Apache 2.0
Cabie: GNU

Svona líta DevOps ferlar út með CI/CD tóli:

Leiðbeiningar fyrir byrjendur: Að búa til DevOps leiðslu

Þú ert með CI/CD tól í gangi á localhost þínum, en það er ekki mikið sem þú getur gert í augnablikinu. Við skulum halda áfram á næsta stig DevOps ferðarinnar.

Skref 2: Stjórna heimildastýringarkerfum

Besta (og kannski auðveldasta) leiðin til að sannreyna að CI/CD tólið þitt geti gert töfra sína er að samþætta við frumkóðastýringu (SCM) tól. Af hverju þarftu heimildastýringu? Segjum að þú sért að þróa forrit. Alltaf þegar þú býrð til forrit ertu að forrita og það skiptir ekki máli hvort þú notar Java, Python, C++, Go, Ruby, JavaScript eða eitthvert af óteljandi forritunarmálum. Kóðinn sem þú skrifar er kallaður frumkóði. Í upphafi, sérstaklega þegar þú ert að vinna einn, er líklega í lagi að setja allt í staðbundna möppu. En þegar verkefnið stækkar og þú býður öðru fólki til samstarfs þarftu leið til að koma í veg fyrir árekstra á sama tíma og þú deilir breytingum á áhrifaríkan hátt. Þú þarft líka leið til að endurheimta fyrri útgáfur, því að búa til afrit og afrita/líma inn í þær er að verða úrelt. Þú (og liðsfélagar þínir) þarft eitthvað betra.

Þetta er þar sem stjórnun frumkóða verður nánast nauðsyn. Þetta tól geymir kóðann þinn í geymslum, heldur utan um útgáfur og samhæfir vinnu þátttakenda verkefnisins.

Þó að það séu mörg heimildarstýringartæki þarna úti, þá er Git staðallinn, og það með réttu. Ég mæli eindregið með því að nota Git, þó að það séu aðrir opinn uppspretta valkostir ef þú vilt.

Git: GPLv2 og LGPL v2.1
Subversion: Apache 2.0
Samhliða útgáfukerfi (CVS): GNU
Vesta: LGPL
Mercurial: GNU GPL v2+

Svona lítur DevOps leiðsla út með því að bæta við frumkóðastýringum.

Leiðbeiningar fyrir byrjendur: Að búa til DevOps leiðslu

CI/CD tól getur gert sjálfvirkan ferla endurskoðunar, öflun frumkóða og samvinnu meðal meðlima. Ekki slæmt? En hvernig breytir þú því í virkt forrit svo að milljarðar manna geti notað það og metið það?

Skref 3: Búðu til smíða sjálfvirkniverkfæri

Frábært! Þú getur skoðað kóðann og gert breytingar á upprunastýringu og boðið vinum þínum að vinna saman að þróun. En þú hefur ekki búið til forrit ennþá. Til að búa til vefforrit verður það að vera sett saman og pakkað á útfæranlegt lotusnið eða keyra sem keyrsluskrá. (Athugið að túlkað forritunarmál eins og JavaScript eða PHP þarf ekki að setja saman).

Notaðu sjálfvirkni tól fyrir byggingu. Sama hvaða smíði sjálfvirkni tól þú ákveður að nota, þau hafa öll sama markmið: byggja frumkóðann í eitthvert æskilegt snið og gera sjálfvirkt verkefni að þrífa, setja saman, prófa og dreifa í tiltekið umhverfi. Byggingartæki eru mismunandi eftir forritunarmálinu þínu, en hér eru nokkrir algengir opinn uppspretta valkostir.

Nafn
Leyfi
Forritunarmál

Maven
Apache 2.0
Java

Ant
Apache 2.0
Java

stigi
Apache 2.0
Java

Bazel
Apache 2.0
Java

Gera
GNU
N / A

Grunt
MIT
JavaScript

Gulp
MIT
JavaScript

Byggingaraðili
Apache
Ruby

Rake
MIT
Ruby

AAP
GNU
Python

SCons
MIT
Python

BitBake
GPLv2
Python

Kaka
MIT
C#

ASDF
Expat (MIT)
LISP

Cabal
BSD
Haskell

Frábært! Þú getur sett uppsetningarskrár fyrir sjálfvirkni tólið í frumstýringarkerfið þitt og látið CI/CD tólið þitt setja allt saman.

Leiðbeiningar fyrir byrjendur: Að búa til DevOps leiðslu

Allt er í lagi, er það ekki? En hvar á að dreifa forritinu þínu?

Skref 4: Vefforritaþjónn

Í bili ertu með pakkaða skrá sem getur verið annað hvort keyranleg eða uppsetning. Til að hvaða forrit sem er til að vera raunverulega gagnlegt verður það að veita einhvers konar þjónustu eða viðmót, en þú þarft ílát til að hýsa forritið þitt.

Vefforritaþjónn er einmitt slíkur gámur. Miðlarinn býður upp á umhverfi þar sem hægt er að skilgreina rökfræði pakkans sem verið er að dreifa. Miðlarinn býður einnig upp á viðmót og býður upp á vefþjónustu með því að afhjúpa innstungur fyrir umheiminum. Þú þarft HTTP netþjón, sem og umhverfi (eins og sýndarvél) til að setja hann upp. Í bili skulum við gera ráð fyrir að þú lærir meira um þetta (þó ég hylji ílát hér að neðan).

Það eru nokkrir opinn uppspretta vefforritaþjónar.

Nafn
Leyfi
Forritunarmál

Tomcat
Apache 2.0
Java

Bryggju
Apache 2.0
Java

WildFly
GNU Lesser Public
Java

Glerfiskur
CDDL & GNU minna opinbert
Java

Django
3-liður BSD
Python

Tornado
Apache 2.0
Python

byssuhorn
MIT
Python

Python
MIT
Python

Teinn
MIT
Ruby

Node.js
MIT
Javascript

DevOps leiðslan þín er næstum tilbúin til notkunar. Gott starf!

Leiðbeiningar fyrir byrjendur: Að búa til DevOps leiðslu

Þó að þú getir stoppað þar og séð um samþættinguna sjálfur, eru kóðagæði mikilvægur hlutur fyrir forritara að hafa áhyggjur af.

Skref 5: Umfang kóðaprófunar

Innleiðing prófa getur verið önnur fyrirferðarmikil krafa, en forritarar verða að ná öllum villum í forritinu snemma og bæta gæði kóðans til að tryggja að endanotendur séu ánægðir. Sem betur fer eru mörg opinn hugbúnaður til að prófa kóðann þinn og gera tillögur til að bæta gæði hans. Það sem er enn betra er að flest CI/CD verkfæri geta tengst þessum verkfærum og gert ferlið sjálfvirkt.

Kóðaprófun samanstendur af tveimur hlutum: Kóðaprófunarramma sem hjálpa þér að skrifa og keyra próf, og tillöguverkfæri sem hjálpa þér að bæta gæði kóðans þíns.

Kóðaprófunarkerfi

Nafn
Leyfi
Forritunarmál

JUnit
Eclipse Public License
Java

EasyMock
Apache
Java

mockito
MIT
Java

PowerMock
Apache 2.0
Java

Pytest
MIT
Python

Tilgáta
Mozilla
Python

Eiturefni
MIT
Python

Meðmælakerfi til að bæta kóða

Nafn
Leyfi
Forritunarmál

Umfjöllun
GNU
Java

CodeCover
Eclipse Public (EPL)
Java

Coverage.py
Apache 2.0
Python

Emma
Common Public License
Java

JaCoCo
Eclipse Public License
Java

Tilgáta
Mozilla
Python

Eiturefni
MIT
Python

jasmine
MIT
JavaScript

Karma
MIT
JavaScript

Mokka
MIT
JavaScript

það er
MIT
JavaScript

Athugaðu að flest verkfærin og rammana sem nefnd eru hér að ofan eru skrifuð fyrir Java, Python og JavaScript, þar sem C++ og C# eru sér forritunarmál (þó GCC sé opinn uppspretta).

Nú þegar þú hefur innleitt prufuþekjuverkfæri ætti DevOps leiðslan þín að líta svipað út og skýringarmyndin sem sýnd er í upphafi þessarar kennslu.

Viðbótarskref

Ílát

Eins og ég sagði geturðu hýst netþjóninn þinn á sýndarvél eða netþjóni, en gámar eru vinsæl lausn.

Hvað eru ílát? Stutta skýringin er sú að sýndarvél þarf mikið magn af stýrikerfisminni, sem er umfram stærð forritsins, á meðan ílát þarf aðeins nokkur bókasöfn og stillingar til að keyra forritið. Augljóslega eru enn mikilvæg not fyrir sýndarvél, en gámur er létt lausn til að hýsa forrit, þar á meðal forritaþjón.

Þó að það séu aðrir gámavalkostir, eru þeir vinsælustu Docker og Kubernetes.

Docker: Apache 2.0
Kubernetes: Apache 2.0

Verkfæri fyrir millistig sjálfvirkni

DevOps leiðslan okkar er fyrst og fremst lögð áhersla á samvinnu forritagerð og uppsetningu, en það er margt annað sem hægt er að gera með DevOps verkfærum. Ein þeirra er notkun innviða sem kóða (IaC) verkfæri, sem einnig eru þekkt sem sjálfvirkniverkfæri millihugbúnaðar. Þessi verkfæri hjálpa til við að gera sjálfvirkan uppsetningu, stjórnun og önnur verkefni fyrir millihugbúnað. Svo, til dæmis, getur sjálfvirkni tól dregið út forrit eins og vefforritaþjón, gagnagrunn og eftirlitstæki með réttar stillingar og dreift þeim á forritaþjóninn.

Hér eru nokkur opinn hugbúnaður sjálfvirkniverkfæri:

Ansible: GNU Public
SaltStack: Apache 2.0
Matreiðslumaður: Apache 2.0
Brúða: Apache eða GPL

Leiðbeiningar fyrir byrjendur: Að búa til DevOps leiðslu

Finndu út upplýsingar um hvernig á að fá eftirsótta starfsgrein frá grunni eða Level Up hvað varðar færni og laun með því að taka greitt netnámskeið frá SkillFactory:

fleiri námskeið

Gagnlegar

Heimild: www.habr.com

Bæta við athugasemd