Zana za DevOps Kila Mtu Anapaswa Kujifunza mnamo 2020

Anza kutumia zana bora zaidi za DevOps leo!

Zana za DevOps Kila Mtu Anapaswa Kujifunza mnamo 2020
Mapinduzi ya DevOps hatimaye yametawala ulimwengu na zana za DevOps zimekuwa maarufu sana. Kwa mujibu wa huduma hiyo Google Mwelekeo, idadi ya maombi ya "zana za DevOps" inakua kila mara, na mtindo huu unaendelea.

Mbinu ya DevOps inashughulikia mzunguko mzima wa maisha ya ukuzaji wa programu, kwa hivyo wataalamu wanaweza kuchagua kutoka kwa zana anuwai. Lakini, kama unavyojua, hakuna zana inayoweza kuwa zana ya ulimwengu kwa kila mtu. Walakini, suluhisho zingine hutoa anuwai ya kazi ambazo zinaweza kushughulikia karibu kazi yoyote.

Wacha tugawanye zana za DevOps katika kategoria na tuzilinganishe na analogi:

  • zana za maendeleo na ujenzi
  • jaribu zana za otomatiki
  • zana za kuandaa kupeleka
  • Zana za wakati wa kukimbia
  • zana za ushirikiano.

Utekelezaji wenye mafanikio na makini Mtaalamu wa DevOps inajumuisha zana kutoka kwa vikundi vyote vitano vilivyoorodheshwa hapo juu. Changanua seti ya sasa ya zana katika mradi wako ili usikose kipengele muhimu cha bomba la CI/CD.

Zana za Kukuza na Kujenga

Zana za DevOps Kila Mtu Anapaswa Kujifunza mnamo 2020
Huu ndio msingi wa safu ya bomba la CI/CD. Yote huanza hapa! Zana bora katika kitengo hiki zinaweza kudhibiti mitiririko mingi ya matukio na kuunganishwa kwa urahisi na bidhaa zingine.

Katika hatua hii ya mzunguko wa maisha ya maendeleo, kuna vikundi vitatu vya zana:

  • mfumo wa kudhibiti toleo (SCM)
  • ujumuishaji endelevu (CI)
  • Usimamizi wa data

GIT imekuwa na rekodi nzuri mnamo 2020, kwa hivyo zana yako ya SCM inapaswa kuwa na usaidizi kamili wa GIT. Kwa CI, sharti ni uwezo wa kutekeleza na kuendesha ujenzi katika mazingira ya pekee ya chombo. Linapokuja suala la usimamizi wa data, inahitaji uwezo wa kufanya mabadiliko kwenye schema ya hifadhidata na kudumisha hifadhidata kulingana na toleo la programu.

SCM + CI Tool #1

Mshindi: GitLab na GitLab-CI

Zana za DevOps Kila Mtu Anapaswa Kujifunza mnamo 2020
Zana bora zaidi ya mzunguko wa 2020 wa DevOps bila shaka ni GitLab, na hakika itaendelea kuongoza uvumbuzi katika siku za usoni.

Kazi kuu ya GitLab ni kutoa usimamizi mzuri wa hazina ya Git. Kiolesura cha wavuti ni angavu na rahisi kutumia. GitLab hutoa kila kitu unachohitaji katika toleo la bure na huja kama SaaS na on-prem (kwa kutumia rasilimali yako mwenyewe kupangisha programu).

Hakuna zana nyingine ya SCM ambayo imetumia ujumuishaji endelevu (CI) moja kwa moja kwenye hazina yako, na GitLab imekuwa ikifanya hivi kwa muda mrefu. Ili kutumia GitLab-CI, lazima uongeze faili ya .gitlab-ci.yml kwenye mzizi wa msimbo wako, na mabadiliko yoyote kwenye mradi yatasababisha vitendo kulingana na yale uliyobainisha. GitLab na GitLab-CI zinatambuliwa kwa kustahili kama viongozi katika uwanja wa ujumuishaji endelevu (CI-as-code).

Faida Muhimu

  • Kuegemea - Bidhaa imekuwa sokoni tangu 2013; imara; vizuri mkono.
  • Chanzo Huria - Toleo lisilolipishwa la GitLab haliwekei kikomo utendakazi msingi ambao timu za maendeleo zinahitaji. Vifurushi vya huduma za kulipwa hutoa vipengele vya ziada muhimu kwa makampuni ya ukubwa tofauti na mahitaji.
  • Engrained CI - Hakuna zana nyingine kwenye soko ambayo imeunda ujumuishaji unaoendelea moja kwa moja kwenye SCM kama GitLab-CI. Kutumia Docker huhakikisha miundo iliyotengwa isiyo na usumbufu, na ripoti zilizojumuishwa hurahisisha utatuzi. Hatuhitaji ujumuishaji tata na usimamizi wa zana nyingi kwa wakati mmoja.
  • Muunganisho Usio na Kikomo - GitLab hutoa muunganisho rahisi wa zana zote za DevOps unazohitaji. Hii inahakikisha kwamba timu za uendelezaji na matengenezo zina chanzo kimoja cha habari kuhusu matumizi yao katika mazingira yoyote.

Washindani

Alishiriki katika vita, lakini hakushinda

Kuna zana zingine maarufu katika kitengo hiki, lakini sio nzuri kama GitLab. Na ndiyo maana:

GitHub - Huu ni mfumo bora wa udhibiti wa toleo la SaaS kwa kampuni ndogo na hatua za mwanzo za maendeleo. Kwa makampuni makubwa ambayo yanahitaji kuweka anwani za IP kwenye mtandao wao wenyewe, suluhisho pekee kutoka kwa GitHub lilikuwa mashine pepe ya .OVA bila usaidizi wa mifumo ya upatikanaji wa juu. Hii inafanya matengenezo ya on-prem kuwa magumu; kando na hayo, .OVA inafaa tu kwa biashara za ukubwa wa kati, vinginevyo seva itaacha kufanya kazi ikiwa imepakia zaidi. Ukosefu wa Vitendo vya GitHub (hadi hivi majuzi na bado sio katika toleo la awali) au CI-as-code inamaanisha kuwa unahitaji kuchagua zana tofauti ya CI na kisha kudhibiti ujumuishaji huo. Mwishowe, GitHub ni ghali zaidi kuliko toleo lolote la GitLab.

Jenkins - Ingawa Jenkins inachukuliwa kuwa kiwango kati ya zana zinazoendelea za ujumuishaji kwa chaguo-msingi, imekuwa ikikosa uwezo wa kudhibiti toleo kila wakati. Inabadilika kuwa unatumia Jenkins pamoja na aina fulani ya zana ya SCM. Ni ngumu sana wakati GitLab inaweza kufanya zote mbili. Ubunifu wa wastani wa UX haufai kwa programu ya kisasa ya wavuti na huacha kuhitajika.

BitBucket/Bamboo - Lazima nimtambue kama mpotezaji wa kiotomatiki: kwa nini zana mbili wakati GitLab hufanya kila kitu kwa uhuru kabisa. Wingu la BitBucket linaauni utendakazi wa Kitendo cha GitLab-CI/GitHub, lakini hakuna kampuni kubwa kuliko iliyoanzishwa inayoweza kuitekeleza kwa urahisi. Seva ya BitBucket ya on-prem haitumii hata mabomba ya BitBucket!

Zana #1 ya Kusimamia Data

Mshindi: FlywayDB

Zana za DevOps Kila Mtu Anapaswa Kujifunza mnamo 2020
Katika ukuzaji wa programu ya wavuti, otomatiki ya hifadhidata kawaida haipewi umuhimu. Wazo la kupeleka mabadiliko ya schema ya hifadhidata kwa matoleo mapya ya programu huja kuchelewa. Mabadiliko ya schema mara nyingi husababisha safu wima au majedwali kuongezwa na kubadilishwa jina. Ikiwa toleo la programu hailingani na toleo la schema, programu inaweza kuacha kufanya kazi. Zaidi ya hayo, kudhibiti mabadiliko ya hifadhidata wakati wa kusasisha programu inaweza kuwa changamoto kwani kuna mifumo miwili tofauti. FlyWayDB hutatua matatizo haya yote.

Faida Muhimu

  • Utoaji wa hifadhidata - Flyway hukuruhusu kuunda matoleo ya hifadhidata, kufuatilia uhamishaji wa hifadhidata, na kuhamisha kwa urahisi au kurejesha mabadiliko ya taratibu bila zana ya ziada kwa hili.
  • Nambari au Iliyopachikwa - Tunaweza kuchagua kuendesha Flyway kama sehemu ya programu au kama njia ya jozi inayoweza kutekelezeka. Flyway hukagua uoanifu wa matoleo inapoanzisha na kuanza uhamishaji unaofaa, ikiweka hifadhidata na matoleo ya programu katika kusawazisha. Kwa kutekeleza amri ya ad-hoc ya laini ya cmd, tunatoa kubadilika kwa hifadhidata zilizopo bila kuunda upya programu nzima.

Washindani

Alishiriki katika vita, lakini hakushinda

Hakuna zana nyingi katika eneo hili. Hebu tuangalie baadhi yao:

LiquiBase - Liquibase inafanana na FlywayDB. Ningependa kuiweka juu ya Flyway ikiwa ningekuwa na mtu kwenye timu yangu aliye na uzoefu zaidi na Liquibase.

Flocker - Inaweza kufanya kazi kwa programu zilizo na kontena pekee. Ili kuendesha hifadhidata zilizo na kontena kwa ufanisi, kila kitu lazima kipangwa kikamilifu. Ninapendekeza kutumia RDS (Huduma ya Hifadhidata ya Uhusiano) kwa hifadhidata na sishauri kuhifadhi habari muhimu kwenye kontena.

Jaribio la Zana za Uendeshaji

Zana za DevOps Kila Mtu Anapaswa Kujifunza mnamo 2020
Wacha tuanze mjadala wetu wa zana za otomatiki za majaribio kwa kuziainisha kulingana na piramidi ya majaribio.

Piramidi ya majaribio (vipimo) ina viwango 4:

  • Vipimo vya Kitengo - Huu ndio msingi wa mchakato mzima wa majaribio ya kiotomatiki. Lazima kuwe na vipimo vingi vya vipimo ikilinganishwa na aina zingine za majaribio. Wasanidi programu huandika na kuendesha majaribio ya kitengo ili kuhakikisha kuwa sehemu ya programu (inayojulikana kama "kitengo") inalingana na muundo wake na inafanya kazi inavyotarajiwa.
  • Majaribio ya Vipengee - Madhumuni kuu ya majaribio ya vipengele ni kuthibitisha tabia ya ingizo/towe ya kitu cha majaribio. Lazima tuhakikishe kuwa utendakazi wa kitu cha majaribio unatekelezwa kwa usahihi kulingana na vipimo.
  • Majaribio ya ujumuishaji - Aina ya majaribio ambayo moduli za programu mahususi huunganishwa na kujaribiwa kama kikundi.
  • Majaribio ya Mwisho hadi Mwisho - Hatua hii inajieleza. Tunafuatilia programu nzima na kuhakikisha inafanya kazi kama ilivyopangwa.

Kwa kuwa majaribio ya vitengo na upimaji wa vipengele hufanywa na wasanidi programu pekee na mara nyingi huwa ni lugha mahususi ya programu, hatutatathmini zana hizi kwa kikoa cha DevOps.

Zana ya Kupima Ujumuishaji # 1

Mshindi: Tango

Zana za DevOps Kila Mtu Anapaswa Kujifunza mnamo 2020
Tango inachanganya vipimo na nyaraka za mtihani katika hati moja hai. Vipimo huwa vinasasishwa kila wakati kwani hujaribiwa kiotomatiki na tango. Ikiwa ungependa kuunda mfumo wa majaribio ya kiotomatiki kutoka mwanzo na tabia ya mfano ya mtumiaji katika programu ya wavuti, basi Selenium WebDriver yenye Java na Cucumber BDD ni njia nzuri ya kujifunza na kutekeleza Tango katika mradi.

Faida Muhimu

  • Mbinu ya BDD (Maendeleo ya Kuendeshwa kwa Tabia - "maendeleo kupitia tabia" kinyume na "maendeleo yanayotokana na mtihani") - Tango imeundwa kwa ajili ya kupima BDD, awali iliundwa kwa kazi hii.
  • Hati Hai - Nyaraka daima ni chungu! Kwa kuwa majaribio yako yameandikwa kama msimbo, Cucumber hujaribu hati zinazozalishwa kiotomatiki ili kuhakikisha kuwa majaribio na nyaraka zinasawazishwa.
  • Usaidizi - Tunaweza kuchagua kutoka kwa zana nyingi, lakini Tango ina rasilimali muhimu za kifedha na mfumo wa usaidizi uliopangwa vizuri ili kuwasaidia watumiaji katika hali yoyote ngumu.

Washindani

Alishiriki katika vita, lakini hakushinda

Miongoni mwa mifumo mingine na zana maalum za teknolojia, Tango pekee inaweza kuchukuliwa kuwa suluhisho la ulimwengu wote.

Zana za Kujaribu Mwisho-hadi-Mwisho

Wakati wa kufanya majaribio ya mwisho hadi mwisho, unahitaji kuzingatia mambo mawili muhimu:

  • upimaji wa kazi
  • Mtihani wa Stress.

Katika majaribio ya utendaji, tunaangalia ikiwa kila kitu tunachotaka kinatokea. Kwa mfano, ninapobofya vipengele fulani vya SPA yangu (programu ya ukurasa mmoja), jaza fomu na uchague "Wasilisha", data huonekana kwenye hifadhidata na ujumbe "Mafanikio!" huonekana kwenye skrini.

Pia ni muhimu kwetu kuangalia kwamba idadi fulani ya watumiaji wanaotumia mazingira sawa wanaweza kuchakatwa bila hitilafu.

Kutokuwepo kwa aina hizi 2 za majaribio kutakuwa shida kubwa katika bomba lako la CI/CD.

Zana #1 ya majaribio ya mwisho hadi mwisho. Mtihani wa kiutendaji

Mshindi: SoapUI Pro

Zana za DevOps Kila Mtu Anapaswa Kujifunza mnamo 2020
SoapUI imekuwa katika nafasi ya majaribio ya API kwa muda mrefu tangu huduma za wavuti za SOAP zilikuwa za kawaida. Ingawa hatuunda tena huduma mpya za SOAP na jina la zana halijabadilika, hiyo haimaanishi kuwa haijabadilika. SoapUI hutoa mfumo bora wa kuunda majaribio ya utendakazi ya kiotomatiki. Majaribio yanaweza kuunganishwa kwa urahisi na zana za ujumuishaji endelevu na kutumika kama sehemu ya bomba la CI/CD.

Faida Muhimu

  • Hati za kina - SoapUI imekuwa sokoni kwa muda mrefu, kwa hivyo kuna nyenzo nyingi za mtandaoni ambazo zinaweza kukusaidia kuelewa jinsi ya kuanzisha majaribio.
  • Urahisi wa Kutumia - Ingawa zana hii inaauni itifaki nyingi za majaribio ya API, uwepo wa SoapUI wa kiolesura cha kawaida cha huduma nyingi hurahisisha uandishi wa majaribio.

Washindani

Alishiriki katika vita, lakini hakushinda

Selenium ni chombo kingine kikubwa katika kundi hili. Ninapendekeza kuitumia ikiwa unaunda na kuendesha programu ya msingi ya Java. Walakini, ikiwa unaunda programu kamili ya wavuti na teknolojia nyingi, inaweza kuwa ngumu kwa vipengee visivyo vya Java.

Zana #1 ya majaribio ya mwisho hadi mwisho. Mtihani wa Stress

Mshindi: LoadRunner

Zana za DevOps Kila Mtu Anapaswa Kujifunza mnamo 2020
Maelezo: Inapofika wakati wa kupakia kujaribu kila kipengele cha programu yako, ni LoadRunner pekee inayoweza kukamilisha kazi. Ndio, ni ghali na ngumu mwanzoni, lakini LoadRunner ndio zana pekee inayonipa, kama mbunifu wa kiufundi, imani kamili kwamba nambari mpya itafanya kazi chini ya hali mbaya ya mzigo. Pia, nadhani ni wakati wa LoadRunner kuchukuliwa na timu za maendeleo badala ya timu za majaribio.

Faida Muhimu

  • Uhifadhi wa kina - LoadRunner imekuwa sokoni kwa muda mrefu, kwa hivyo kuna nyenzo nyingi za mtandaoni za kukusaidia kuelewa jinsi ya kusanidi majaribio ya upakiaji.
  • Usaidizi wa itifaki - Kiendeshaji cha Kupakia kinaweza kutumia kila kitu kutoka ODBC hadi AJAX, HTTPS na itifaki nyingine yoyote isiyo ya maana ambayo programu yako inaweza kutumia. Tunajaribu kutotumia zana nyingi za majaribio ya upakiaji, kwani hii inatatiza mchakato.

Washindani

Alishiriki katika vita, lakini hakushinda

Tena, hakuna zana nyingi za ulimwengu wote katika eneo hili, kwa hivyo suluhisho bora ni moja ambayo itafanya kazi katika mazingira yoyote na teknolojia yoyote.

Zana za kupeleka

Zana za DevOps Kila Mtu Anapaswa Kujifunza mnamo 2020
Zana za upelekaji pengine ni kipengele kisichoeleweka zaidi cha maendeleo. Kwa timu ya uendeshaji bila ufahamu wa kina wa kanuni na utendaji wa programu, ni vigumu kutumia zana hizo. Kwa wasanidi programu, usimamizi wa uwekaji ni jukumu jipya, kwa hivyo bado hawana uzoefu wa kutosha wa kufanya kazi na zana kama hizo.

Kwanza kabisa, wacha tugawanye zana zote za kupeleka katika vijamii vitatu:

  • usimamizi wa mabaki
  • usimamizi wa usanidi
  • peleka.

Zana ya #1 ya Kusimamia Vizalia vya programu

Mshindi: Ile dhana ya

Zana za DevOps Kila Mtu Anapaswa Kujifunza mnamo 2020
Hifadhi ya vizalia vya programu ya Nexus inaauni karibu kila teknolojia kuu, kuanzia Java hadi NPM hadi Docker. Tunaweza kutumia zana hii kuhifadhi vizalia vyote tunavyotumia. Kutoa wakala wasimamizi wa vifurushi vya mbali pia huharakisha sana mchakato wa ujenzi wa CI, na kufanya vifurushi kufikiwa zaidi kwa ujenzi. Faida nyingine ni uwezo wa kupata mtazamo kamili wa vifurushi vyote vinavyotumiwa katika miradi kadhaa ya programu, kuzuia vifurushi visivyo salama vya chanzo (zinaweza kufanya kama vector ya mashambulizi).

Faida Muhimu

  • Msaada wa kiufundi - Bidhaa ya kuaminika; vizuri mkono.
  • Chanzo Huria - Toleo lisilolipishwa haliwekei kikomo utendakazi msingi ambao timu za ukuzaji zinahitaji.

Zana #1 ya Usimamizi wa Usanidi

Mshindi: Inawezekana

Ansible ni kiongozi kwa sababu moja rahisi: bila utaifa. Hapo awali, zana sawa zilizingatia usimamizi wa hali ya usanidi. Inapozinduliwa, chombo kama hicho, baada ya kupokea usanidi uliotaka, kitajaribu kusahihisha usanidi wa programu ya sasa. Na kwa mbinu mpya, sehemu tu zisizo na uraia zipo. Matoleo mapya ya msimbo ni vizalia vya programu ambavyo vinatumwa kuchukua nafasi ya zilizopo. Hii inaweza kuchukuliwa kuwa aina ya mazingira ya muda mfupi, ya muda mfupi.

Faida Muhimu

  • Isiyo na Uraia - Playbook inazinduliwa kutoka kwa mashine ya kusambaza na kutekelezwa kwenye seva zinazolengwa. Sina haja ya kuwa na wasiwasi juu ya hali ya kitu cha mbali kwa kutumia zana kama Packer kuunda vitu vinavyoweza kutumiwa.
  • Chanzo Huria - Kama CentOS, Ansible pia inaungwa mkono na RedHat. Inasaidia kudumisha jumuiya na hutoa ubora wa juu, rahisi kutumia moduli.
  • Kujaribu kwa Molekuli (Mfumo Unaofaa) - Kwa kuwa usimamizi wa usanidi ni msimbo, kama kila kitu kingine, kupima ni muhimu. Mfumo wa kupima jukumu linalofaa la Molekuli hufanya kazi kikamilifu, kuhakikisha kuwa usanidi ni wa ubora sawa na unafuata bomba la CI/CD sawa na msimbo wa programu.
  • YAML - Ikilinganishwa na zana zingine, YAML ni rahisi kuelewa. Kwa kuwa usimamizi wa usanidi kwa kawaida ni changamoto mpya kwa wale wanaotekeleza mazoea ya DevOps, unyenyekevu ni turufu yake.

Washindani

Alishiriki katika vita, lakini hakushinda

Mpishi wa OpsCode - Nilianza kazi yangu ya DevOps kama msanidi wa vitabu vya upishi. Ruby na Chef bila shaka ni wapenzi sana moyoni mwangu, lakini hawasuluhishi matatizo ya utumizi wa kisasa usio na utaifa, wa asili wa wingu. OpsCode Chef ni zana nzuri kwa matumizi zaidi ya kitamaduni, lakini katika nakala hii tunaangazia siku zijazo.

Bomba - Puppet haijawahi kuwa na mashabiki wengi, haswa kwa kulinganisha na Chef na Ansible. Ni nzuri kwa utoaji na kufanya kazi na maunzi, lakini haina usaidizi wa kisasa wa usimamizi wa usanidi kwa programu ya wavuti.

Zana ya kusambaza #1

Mshindi: Terraform

Zana za DevOps Kila Mtu Anapaswa Kujifunza mnamo 2020
Terraform hutatua tatizo la kuelezea miundombinu yako kama msimbo, kutoka vipengele vya mtandao hadi picha kamili za seva. Bidhaa hii imetoka mbali tangu kutolewa kwake kwa mara ya kwanza, ikiwa na programu-jalizi nyingi sana zilizoundwa na jumuiya yenye nguvu iliyojengwa hivi kwamba utakuwa na uhakika wa kupata usaidizi katika hali yoyote ya utumaji. Uwezo wa kuhimili aina yoyote ya mazingira (kwenye majengo, katika wingu, au mahali pengine) hauna kifani. Hatimaye, toleo la hivi punde hutoa vipengele vingi vya mantiki na madarasa sawa katika HCL kama lugha nyingine yoyote ya kitamaduni ya programu, na kufanya Terraform iwe rahisi kwa wasanidi kufahamu kwa haraka na kwa urahisi.

Faida Muhimu

  • Mazingira yanaaminika - Terraform hutumia vipengele vinavyofanya kazi kama kiolesura kati ya msimbo wako wa Terraform, API zote na mantiki ya ndani kuwasiliana na mtoa huduma za miundombinu. Hii inamaanisha kuwa nitamiliki zana moja tu na kisha ninaweza kufanya kazi popote.
  • Chanzo Huria - Ni vigumu kushinda zana zisizolipishwa! Usaidizi wa jamii katika ngazi ya juu.

Washindani

Alishiriki katika vita, lakini hakushinda

AWS CloudFormation - Hata kama unafanya kazi katika mazingira ya wingu ya AWS pekee, kazi yako inayofuata inaweza kutumia zana tofauti. Kutoa muda wako wote na nguvu kwa jukwaa moja tu ni uamuzi wa maono fupi. Zaidi ya hayo, huduma nyingi mpya za AWS mara nyingi zinapatikana kama moduli za Terraform kabla hazijapatikana katika CloudFormation.

Zana za wakati wa kukimbia

Zana za DevOps Kila Mtu Anapaswa Kujifunza mnamo 2020

Lengo kuu la mradi wowote wa maendeleo ni kuzindua programu katika uzalishaji. Katika ulimwengu wa DevOps, tunataka kufahamu kikamilifu matatizo yote yanayoweza kutokea katika mazingira yetu, na pia tunataka kupunguza uingiliaji kati wa mikono. Kuchagua seti sahihi ya zana za wakati wa kukimbia ni muhimu ili kufikia nirvana ya ukuzaji wa programu.

Vikundi vya zana za wakati wa kukimbia:

  • X-as-a-service (XaaS)
  • okestra
  • ufuatiliaji
  • ukataji miti.

X-zana-kama-huduma #1

Mshindi: Amazon Huduma za mtandao

Zana za DevOps Kila Mtu Anapaswa Kujifunza mnamo 2020
Amazon daima imekuwa kiongozi katika teknolojia ya wingu, lakini haiishii hapo: aina mbalimbali za huduma mpya kwa watengenezaji zinafungua macho. Leta teknolojia na kiolezo chochote kwa AWS na kitajengwa na kuendeshwa. Gharama ya zana ni nzuri kabisa: kulinganisha na kukusanyika, kudhibiti na kudumisha vifaa katika kituo chako cha data. Toleo la bure hukuruhusu kujaribu na kufanya uamuzi sahihi kabla ya kutumia pesa.

Faida Muhimu

  • Kuenea - Ikiwa una uzoefu wa kuunda programu katika AWS, unaweza kufanya kazi popote. Biashara hupenda AWS, na wanaoanza pia wanathamini gharama yake ya chini.
  • Toleo lisilolipishwa ni jambo muhimu sana ambalo hutofautisha AWS na programu zingine. Acha nijaribu huduma na nione jinsi inavyofanya kazi kabla sijafanya uamuzi wa ununuzi, sitaki kutumia maelfu ya dola kwa kitu kisichohitajika. Toleo la bure daima linatosha kwangu kujaribu dhana yoyote.

Washindani

Alishiriki katika vita, lakini hakushinda

Azure "Azure imetoka mbali tangu kutolewa kwake kwa mara ya kwanza, na hiyo ni ya kupongezwa. Hata hivyo, tamaa ya kuwa tofauti imesababisha majina ya ajabu kwa huduma, ambayo mara nyingi huchanganya kazi. Je, "hifadhi ya blob" inamaanisha nini? Na ingawa msimbo wa .NET hufanya kazi vyema katika mfumo ikolojia wa Microsoft, kuna uwezekano kwamba utatumia .NET pekee kwa kila sehemu ya programu yako.

Heroku - Nisingewahi kuendesha chochote isipokuwa mradi wa kibinafsi kwenye Heroku kwa sababu ya kiwango cha chini cha kutegemewa na uwazi, kwa hivyo kampuni hazipaswi kuutumia kama jukwaa. Heroku ni nzuri kwa kuonyesha kitu kwenye blogi, lakini kwa matumizi ya vitendo - "Hapana, asante!"

Zana #1 ya Ochestration

Mshindi: openshift

Zana za DevOps Kila Mtu Anapaswa Kujifunza mnamo 2020
Labda unatumia Docker au vyombo vingine kwenye stack yako ya programu. Programu zisizo na seva ni nzuri, lakini zinaweza kutoshea kila usanifu. Kuendesha vyombo bila jukwaa la orchestration haitafanya kazi. Kubernetes Core (K8s) haina mpinzani katika masuala ya usalama na zana. OpenShift ndiyo jukwaa pekee linalotegemea Kubernetes ambalo linaweza kukusanya Source2Image, linaauni uwekaji kiotomatiki kwenye maganda, na inasaidia ufuatiliaji na ufuatiliaji. OpenShift inaweza kuendeshwa on-prem, katika wingu, au on-prem na katika wingu kwa wakati mmoja.

Faida Muhimu

  • Usalama Uliojengwa Ndani - Kusimamia usalama wa K8s kunaweza kuhitaji digrii ya juu. Kila undani lazima ufikiriwe kwa uangalifu na uzingatiwe! Mbinu za usalama zilizojengwa kwa chaguomsingi kwa OpenShift huwaondolea wasanidi mzigo mzigo na kutoa jukwaa salama zaidi la programu.
  • Suluhisho la yote kwa moja - Tofauti na K8 za msingi, ambazo hazijumuishi zana za kusawazisha mzigo kwa chaguo-msingi, OpenShift inayo yote. Ninaweza kuitumia kuunda na kupangisha vyombo, kuendesha zana za CI/CD, kudhibiti michakato ya nje, kudhibiti funguo, na mengi zaidi. Ingawa kiolesura cha picha cha mtumiaji bado ni mbali na kamilifu, mbinu inayotegemea API inamaanisha kuwa kila kitu kinaweza kuelezewa katika hati. Tofauti na GUI zingine za K8s, OpenShift hurahisisha kujifunza misingi ya Kubernetes. Huhitaji hata kupata digrii!

Washindani

Alishiriki katika vita, lakini hakushinda

Pumba la Docker - Docker Swarm ilijaribu kurahisisha K8 kwa kuondoa vitu vingi. Ni nzuri kwa programu ndogo, lakini kwa programu za biashara haifanyi kazi. Kwa kuongeza, suluhisho kama AWS ECS huchukua mbinu sawa lakini hurahisisha kufanya kazi na huduma zingine ambazo ninaweza pia kuingiliana nazo (Lambda, IAM, n.k.).

Chombo cha ufuatiliaji #1

Mshindi: Relic Mpya

Zana za DevOps Kila Mtu Anapaswa Kujifunza mnamo 2020
Matoleo ya mapema ya New Relic yalifanya jambo moja vizuri - ufuatiliaji wa APM (Ufuatiliaji wa Utendaji wa Programu). Sasa ni zana kamili ya ufuatiliaji inayokuruhusu kufuatilia seva, kontena, utendakazi wa hifadhidata, ufuatiliaji wa uzoefu wa mtumiaji wa mwisho, na bila shaka, ufuatiliaji wa utendaji wa programu.

Faida Muhimu

  • Urahisi wa Kutumia - Nilipofanya kazi kama mhandisi wa mifumo, nilitumia zana nyingi za ufuatiliaji, lakini sijawahi kukutana na moja rahisi na rahisi kutumia kama Relic Mpya. Ni SaaS, kwa hivyo hauitaji kusakinisha mwenyewe.
  • Mwonekano wa mwisho hadi mwisho - Zana zingine hujaribu kufuatilia kipengele kimoja mahususi cha programu yako. Kwa mfano, kipimo cha matumizi ya kichakataji au trafiki ya mtandao, lakini yote haya lazima yafuatiliwe kwa kina ili programu ifanye kazi ipasavyo. Relic Mpya hukupa uwezo wa kuleta data yako yote pamoja ili kupata mwonekano wa kina wa kile kinachotokea.

Washindani

Alishiriki katika vita, lakini hakushinda

Zabbix β€” Mfumo wangu wa kwanza na ninaoupenda wa ufuatiliaji, lakini umebaki katika siku za nyuma kwa sababu ya ukosefu wa maendeleo katika teknolojia za wingu na katika uwanja wa ufuatiliaji wa utendaji wa programu ya APM. Zabbix bado hufanya ufuatiliaji wa miundombinu ya seva ya jadi vizuri, lakini hiyo ni juu yake.

DataDog - Kuzingatia sana mchakato wa kudhibiti mazingira ya utayarishaji wa programu, na sio kwa nambari yenyewe. Kwa timu za DevOps zinazohusisha wasanidi programu, hatuhitaji kutegemea zana ambazo ni ngumu kutumia ili kutoa usaidizi wa hali ya juu.

Zana ya kuweka kumbukumbu #1

Mshindi: Imepungua

Zana za DevOps Kila Mtu Anapaswa Kujifunza mnamo 2020
Ni vigumu kushindana na Splunk! Kwa muda mrefu anabaki kuwa kiongozi katika ukataji miti, akiendelea kufanya vizuri zaidi kuliko mtu mwingine yeyote. Kwa matoleo ya on-prem na SaaS, unaweza kutumia Splunk popote. Hasara kubwa ni bei yake: Splunk bado ni ghali sana!

Faida Muhimu

  • Kuenea - Biashara zinapenda Splunk, na kampuni zina pesa za kuinunua.
  • Ingawa wanaoanzisha wanajaribu kurejesha gharama, utendakazi nyingi zinaweza kutatuliwa kwa kutumia analogi za chanzo huria.
  • Kudumisha - Kwa ufupi, Splunk inafanya kazi na inafanya vizuri. Inakuja na mipangilio na vipengele vingi vya chaguo-msingi vilivyo tayari kutumika. Hakuna haja ya kupoteza muda kusoma hati na kujaribu kupata Splunk kufanya kazi au kufafanua chochote.

Washindani

Alishiriki katika vita, lakini hakushinda

ELK Stack (ElasticSearch, LogStash na Kibana) "Zana hizi zinaonekana kuwa zinazopendwa zaidi kwa sababu sio lazima hata uuze ini lako ili kuzitumia." Hata hivyo, seti ya magogo inakua na idadi ya maombi kwenye bodi huongezeka, kazi inakuwa ngumu zaidi na zaidi. Ikilinganishwa na Splunk, na ELK Stack nilitumia muda mwingi zaidi kusanidi zana kabla ya kuunda dashibodi zozote kuliko nilivyowahi kuwa nazo hapo awali.

Zana za Ushirikiano

Zana za DevOps Kila Mtu Anapaswa Kujifunza mnamo 2020
DevOps kimsingi inahusu kubadilisha utamaduni ndani ya shirika. Kununua zana yoyote hakutabadilisha mazoea ya sasa mara moja, lakini kwa hakika kunaweza kuhimiza ushirikiano na njia mpya za kuingiliana.

Vitengo vidogo vya zana za ushirikiano:

  • ufuatiliaji wa kazi
  • ChatOps
  • nyaraka.

Zana #1 ya Kufuatilia Tatizo

Mshindi: jira

Zana za DevOps Kila Mtu Anapaswa Kujifunza mnamo 2020
Jira inadumisha nafasi yake ya uongozi, ingawa ushindani katika eneo hili unaongezeka. Unyumbufu wa ajabu wa Jira huruhusu timu za maendeleo na matengenezo kudhibiti kazi ya mradi na kazi za mbio. Viwango vilivyojumuishwa kwa kutumia istilahi za Agile hurahisisha kuhama kutoka kwa njia za jadi za kufanya kazi hadi michakato bora zaidi.

Faida Muhimu

  • Umaarufu - Kama zana zingine nyingi, Jira hutumiwa karibu kila mahali. Timu ndogo hutumia toleo la bei nafuu, linalopatikana zaidi na kupata kila kitu wanachohitaji, wakati makampuni makubwa yanaweza kumudu leseni ya gharama kubwa zaidi.
  • Ushirikiano - Jira ni waanzilishi katika uwanja wake. Ukweli huu na maendeleo ya haraka ya bidhaa husababisha ukweli kwamba makampuni mengine huchagua Jira ili kuunda ushirikiano wao wenyewe, na hivyo kuongeza thamani ya chombo. Tunaweza kuunganisha Jira na zana zote zilizoorodheshwa katika makala hii nje ya kisanduku kwa usanidi mdogo.

Washindani

Alishiriki katika vita, lakini hakushinda

Trello - Trello ilipata umaarufu haraka kwa zana yake ya bure ya Kanban. Hata hivyo, pindi tu michakato itakapoongezeka na kutoka kwa kazi nyingi hadi maelfu, Trello inakuwa vigumu kusogeza, kutafuta na kuripoti.

Tracker muhimu - Nilikuwa shabiki mkubwa wa zana hii nilipofanya kazi kwa kuanzisha. Hata hivyo, Pivotal Tracker inalenga zaidi usimamizi wa bidhaa badala ya kazi za kiufundi. Ingawa usimamizi wa bidhaa huko Jira ni mgumu zaidi, bado unaweza kutekelezwa hapo bila kutumia zana ya ziada.

Zana ya ChatOps #1

Mshindi: MatterMost

Zana za DevOps Kila Mtu Anapaswa Kujifunza mnamo 2020
Maelezo: Labda mshangao mkubwa kwako katika uteuzi wangu, na hiyo ni habari njema! MatterMost ilipata umaarufu kwa kuchukua bora zaidi kutoka kwa zana zilizopita lakini kuziweka kwenye prem. Hili ni muhimu sana kwa makampuni: MatterMost hukuruhusu kudhibiti data yako na pia hukusaidia kuiunganisha na zana zinazotumika ndani ya nchi. Hatuhitaji tena kwenda nje ya ngome ili kuangalia gumzo za kazini.

Faida Muhimu

  • Chanzo Huria - Toleo la chanzo huria la MatterMost hufanya kazi vizuri kwa timu za kati na kubwa. Tofauti na mpango wa bure wa Slack, ambao hufuta historia ya ujumbe wako, kuendesha seva yako mwenyewe inamaanisha kuwa unahifadhi data yako yote.
  • Muunganisho - Kwa kuwa API ni karibu 100% kulingana na API ya Slack, karibu miunganisho yote ya Slack inaweza kutumika moja kwa moja na MatterMost.

Washindani

Alishiriki katika vita, lakini hakushinda

Slack - Slack ni nzuri, lakini watu hawa wamekua sana hivi kwamba walianza kutafuta faida. Awamu ya malipo ya biashara inakaribia, ambayo huondoa thamani yao kuu: Huduma za Slack zinazotolewa bila malipo; Hasara muhimu zaidi ya toleo la bure ni kufutwa kwa historia ya gumzo.

Matimu ya Microsoft β€” Jaribu kuunganisha bidhaa ya Microsoft na kitu kisichomilikiwa na Microsoft... Bahati nzuri! Hiyo ndiyo yote ninayosema kuhusu chombo hiki!

Zana ya Kuhifadhi Hati #1

Mshindi: Ushabiki

Zana za DevOps Kila Mtu Anapaswa Kujifunza mnamo 2020
Kuunda na kudumisha hati bora za kiufundi ni mchakato mgumu, bila kujali ni zana gani unayotumia. Ingawa zana nyingi za hati za SaaS zimekuja sokoni hivi majuzi, ningeona ni vigumu kutoa uhifadhi wa nyaraka za kiufundi kuhusu maombi muhimu ya dhamira kwa wahusika wengine. Ni vyema kuhifadhi data na hati kwenye prem, na hivi ndivyo Confluence hutatua.

Faida Muhimu

  • Rahisi kufanya kazi - Zana nyingi za kusimama pekee zinaweza kuwa ngumu kusanidi na kufanya kazi na zinahitaji maarifa fulani kutunza. Seva ya Confluence inafanya kazi vizuri kwa watumiaji 10 au 10,000.
  • Programu-jalizi - Hongera kwa Kushawishi kwa kuwa na urambazaji mzuri, ambao ni rahisi kutumia nje ya boksi, na uwezo wa kuongeza programu-jalizi kwa karibu kila kitu hufungua uwezo unaofanana na Wiki.

Washindani

Alishiriki katika vita, lakini hakushinda

Soma hati - Poa kwa chanzo huria, lakini usifikirie hata juu ya kuhifadhi maarifa muhimu hapa.

Alama - Inafaa kwa kuweka kumbukumbu, lakini ni ngumu kuchapisha usanifu, michakato, au aina zingine za hati kwa sababu ya umbizo maalum la MarkDown.

Jekyll - Wakati wa kurekodi maarifa ya kiufundi, sitaki kuunda tovuti mpya tuli ambayo itatumwa kila wakati kuna mabadiliko. Mfumo rahisi wa udhibiti wa toleo la Confluence hurahisisha sana uhifadhi wa ndani.

Jumla juu

Kuna mamia ya zana za DevOps kwenye soko, na kufanya iwe vigumu kujua ni zipi za kutumia na wakati zinafaa kutekelezwa. Fuata mwongozo huu rahisi wa kuchagua zana za DevOps kwa bomba kamili la CI/CD.

Hakikisha umechagua zana kutoka kwa aina zote tano:

  • zana za maendeleo na ujenzi
  • jaribu zana za otomatiki
  • zana za kupeleka
  • Zana za wakati wa kukimbia
  • zana za ushirikiano.

Pendekezo kuu: Otomatiki kila kitu!

Asante Zach Shapiro!

Chanzo: mapenzi.com

Kuongeza maoni