LFCA: Lærðu grunnhugtök DevOps - Part 21


DevOps hefur verið vinsælt umræðuefni í nokkuð langan tíma núna og hefur tekist að vekja athygli fagfólks í tækni og fyrirtækja jafnt. Sem byrjandi getur það verið krefjandi að vefja hausnum utan um hugmyndina um DevOps og í þessu efni munum við útfæra grunnhugtök þessa tískuorðs á internetinu.

Til að byrja með er DevOps samsafn tveggja orða: Þróun og rekstur. Það er sett af starfsháttum og verkfærum sem stuðla að samvinnu þróunarteyma (Devs) og aðgerða (Ops). Markmið DevOps er að hagræða líftíma hugbúnaðarþróunar, lágmarka bilanatíðni, auka tíðni uppsetningar og ná fram hágæða hugbúnaði.

Til að fá betri skilning á DevOps í nútíma upplýsingatækniumhverfi nútímans, skulum við kíkja á hvernig dreifingarlíkanið var fyrir tilkomu DevOps.

Hefðbundin upplýsingatækniaðferð

Fyrir DevOps notuðu þróunarteymi og QA verkfræðingar klassíska fosslíkanið. Vinnulandslagið var að mestu þagað og prófun og dreifing forrita fór fram í algjörri einangrun. Þetta leiddi til skörunar á skyldum, bilum, töfum á endurgjöf og annarri óhagkvæmni sem þurfti viðbótartíma til að klára verkefnið. Takmörkuð og seinkuð endurgjöf gerði það að verkum að gæði hugbúnaðarins voru ekki endurskoðuð ítarlega fyrr en á síðasta stigi þróunar.

Að auki var handvirk dreifing kóða tilefni af mannlegum mistökum og krafðist þess vegna meiri tíma í villuleit. Einnig voru mismunandi teymi með ýmsar tímalínur til að ljúka verkefnum sínum og það var ekki óalgengt að tímalínurnar féllu úr takti sem leiddi til frekari tafa á að gera lokaafurðina.

Hugmyndin um DevOps var hugsuð einhvern tíma á milli 2007 og 2010 af tveimur hönnuðum: Andrew Shafer og Patrick Debois. Frá upphafi hefur það stuðlað að sléttri samvinnu milli rekstrar- og þróunarteyma í hverju skrefi á lífsferli hugbúnaðarþróunar. Þetta boðaði ný hugtök eins og Continuous Integration (CI) & Continuous Delivery (CD) og mörg önnur sem stuðla að hraðri hugbúnaðarsendingu.

DevOps líkan og starfshættir

DevOps snýst ekki bara um samvinnu og að hafa rétt hugarfar til að ná markmiði. Það felur í sér bestu starfsvenjur sem miða að því að hjálpa til við að afhenda gæða og markaðstilbúinn hugbúnað á sem skemmstum tíma. Við skulum skoða nokkrar af þessum bestu starfsvenjum sem munu hjálpa þér að auka skilvirkni og skjóta afhendingu kóða.

Stöðug samþætting er hugbúnaðarþróunaraðferð þar sem forritarar sameina kóðabreytingar í eina miðlæga geymslu. Eftir það eru sjálfvirkar prófanir og smíðar framkvæmdar á kóðanum. Markmið stöðugrar samþættingar er að flýta fyrir villuleit á forritum, draga úr þeim tíma sem það tekur að gefa út nýjar hugbúnaðaruppfærslur og bæta gæði hugbúnaðarins.

Stöðug afhending (CD) er enn ein aðferðin þar sem breytingar á kóða eru sjálfkrafa smíðaðar og settar fyrir kröftugar prófanir. Síðar eru sjálfvirkar prófanir framkvæmdar á uppbyggða kóðanum til að gera hönnuðum kleift að bera kennsl á og laga villurnar. Venjulega er kóðinn smám saman settur í mörg prófunarumhverfi þar sem með venjulegu sjálfvirku ferli nær kóðinn hæsta gæðamerkinu.

Vinsæl CI/CD verkfæri eru meðal annars Jenkins, Travis CI, Circle CI, Azure DevOps og AWS Code build.

Markmið stöðugrar prófunar er að bera kennsl á villur og hugsanlega áhættu á fyrstu stigum lífsferils hugbúnaðarþróunar til að lágmarka villur sem myndu koma fram í lokaafurðinni. Þegar kóðinn stenst ekki kröftugar prófanir er hann venjulega sendur til baka til þróunaraðila til endurskoðunar áður en hann er sendur til gæðatryggingardeildar fyrir mat og virkniprófanir. Víða notuð samfelld prófunartæki eru Travis og Selenium.

Eins og þú mátt búast við, krefjast forrita og undirliggjandi innviða stöðugt eftirlits til að athuga hvort frammistöðueinkenni þeirra séu einhverjar villur eða galla og tryggja samræmi við ýmsa iðnaðarstaðla. Fylgst er með fjölmörgum mælingum þar á meðal:

  • Minni og örgjörvanotkun
  • Plássnotkun á plássi
  • Bandbreiddarnýting
  • Samskipti við viðskiptavini

Með því að fylgjast með og greina gögn og skrár sem myndast af forritum geta verktaki auðveldlega fengið innsýn í hvernig eiginleikar eða stillingar hafa áhrif á notendur. Að auki mun uppsetning viðvarana hjálpa til við að bera kennsl á villur eða óæskilegar breytingar hvert skref á leiðinni. Að lokum tryggir stöðugt eftirlit mikið framboð á forritum og vekur traust á því að hlutirnir virki eins og búist var við.

Vinsæl eftirlitstæki eru Prometheus, Netdata svo eitthvað sé nefnt.

Skammstafað sem IaC, Infrastructure as Code er lýst sem uppsetningu og stjórnun auðlinda eins og sýndarþjóna og álagsjafnara með því að nota véllesanlegar stillingarskrár í stað gagnvirkra stillingartækja. Þetta er sérstaklega nauðsynlegt í skýjaumhverfi eins og AWS þar sem þú getur auðveldlega snúið upp tölvutilvikum með því að skilgreina upplýsingar um tilvikið í stillingarskrá og nýta verkfæri eins og Terraform til að dreifa auðlindunum.

Til dæmis, Amazon AWS býður upp á API sem gera notendum kleift að hafa forritafræðileg samskipti við skýjapallinn frá skipanalínunni. Þetta auðveldar skjóta dreifingu auðlinda með því að útrýma handvirkum ferlum og slaka. Einfaldlega sagt, IaC fær meiri vinnu á stuttum tíma.

Örþjónustuarkitektúr er þar sem eitt forrit er samþætting eða sameining ýmissa smærri lauslega tengdra þjónustu. Hver þjónusta keyrir sjálfstætt og hefur samskipti við restina af forritunum með því að nota HTTP-undirstaða API. Hægt er að nota örþjónustu sem þjónustuhóp eða eina þjónustu

Microservices arkitektúr er mikið frábrugðin hefðbundnum monolithic arkitektúr. Í hefðbundnum arkitektúr eru forritin einþreps og allir íhlutir, þar á meðal kóðinn og notendaviðmótið, eru settir saman í eitt forrit.

Örþjónusta auðveldar sjálfstæða dreifingu og stjórnun auðlinda. Þeir tryggja einnig mikið aðgengi með því að koma í veg fyrir einn bilunarpunkt. þegar eitt forrit hrynur mun restin halda áfram að keyra.

Kostir DevOps líkansins

Eftir að hafa skoðað bestu starfsvenjur DevOps skulum við einbeita okkur að ávinningi þess að taka upp DevOps líkanið.

Samvinna þróunar- og rekstrarteyma þýðir sameiginlega ábyrgð, sem á endanum eykur framleiðni og stuðlar að þátttöku teymisins.

Samvinna gerir teymum einnig kleift að kemba kóða auðveldlega á hverju stigi áður en komið er í lokastigið. Þetta skilar hágæða og markaðshæfum hugbúnaði.

Dreifing forrita er straumlínulagaðri og mun hraðari þökk sé sjálfvirkniverkfærunum sem DevOps býður upp á (eins og Ansible, Chef og Puppet) og háþróaðri samfelldri samþættingu (CI).

Þar sem vöruþekkingin dreifist á ýmsar deildir er skýrt markmið og sýn á vöruna sem þýðir betri ákvarðanatöku á hverju stigi þróunar

Hin rótgróna trú á að þróunar- og rekstrarteymi verði að eilífu að vinna aðskilið er löngu úrelt og gallar. Hin þögla heimspeki gæti enn verið á lífi í sumum atvinnugreinum, en þetta hefur leitt til hrópandi óhagkvæmni á leiðinni.

DevOps leitast við að samþætta þróunar- og rekstrarteymi og stuðla að menningarbreytingu frá gömlu vinnubrögðum í sílóum yfir í að vinna í takt við að draga úr villum í kóða, bæta gæði hugbúnaðar, flýta afhendingartíma og auka heildarframleiðni. Að lokum endar notandinn með hágæða vöru í tæka tíð.