SÄciet izmantot labÄkos DevOps rÄ«kus jau Å”odien!
DevOps revolÅ«cija beidzot ir pÄrÅÄmusi pasauli, un DevOps rÄ«ki ir kļuvuÅ”i neticami populÄri. SaskaÅÄ ar dienestu
DevOps metodoloÄ£ija aptver visu programmatÅ«ras izstrÄdes dzÄ«ves ciklu, tÄpÄc profesionÄļi var izvÄlÄties no dažÄdiem rÄ«kiem. Bet, kÄ zinÄms, neviens instruments nevar kļūt par universÄlu instrumentu ikvienam. TomÄr daži risinÄjumi piedÄvÄ tik plaÅ”u funkciju klÄstu, ka tie var tikt galÄ ar gandrÄ«z jebkuru uzdevumu.
SadalÄ«sim DevOps rÄ«kus kategorijÄs un salÄ«dzinÄsim tos ar analogiem:
- rÄ«ku izstrÄde un izveide
- testÄÅ”anas automatizÄcijas rÄ«ki
- instrumenti izvietoÅ”anas organizÄÅ”anai
- Izpildlaika rīki
- sadarbības rīki.
VeiksmÄ«ga un pÄrdomÄta Ä«stenoÅ”ana
IzstrÄdes un veidoÅ”anas rÄ«ki
Tas ir CI/CD konveijera kaudzes pamats. Viss sÄkas tieÅ”i Å”eit! LabÄkie rÄ«ki Å”ajÄ kategorijÄ var pÄrvaldÄ«t vairÄkas notikumu straumes un viegli integrÄties ar citiem produktiem.
Å ajÄ attÄ«stÄ«bas dzÄ«ves cikla posmÄ ir trÄ«s rÄ«ku grupas:
- versiju kontroles sistÄma (SCM)
- nepÄrtraukta integrÄcija (CI)
- Datu vadība
2020. gadÄ GIT ir guvis pozitÄ«vus rezultÄtus, tÄpÄc jÅ«su SCM rÄ«kam ir jÄbÅ«t vienmÄrÄ«gam GIT atbalstam. CI priekÅ”noteikums ir spÄja izpildÄ«t un palaist bÅ«vÄjumus izolÄtÄ konteinera vidÄ. RunÄjot par datu pÄrvaldÄ«bu, ir nepiecieÅ”ama iespÄja veikt izmaiÅas datu bÄzes shÄmÄ un uzturÄt datu bÄzi atbilstoÅ”i lietojumprogrammas versijai.
SCM +CI rīks Nr. 1
UzvarÄtÄjs: GitLab un GitLab-CI
LabÄkais 2020. gada DevOps cikla rÄ«ks, bez Å”aubÄm, ir GitLab, un tas noteikti turpinÄs vadÄ«t inovÄciju tuvÄkajÄ nÄkotnÄ.
GitLab galvenÄ funkcija ir nodroÅ”inÄt Ärtu Git repozitorija pÄrvaldÄ«bu. TÄ«mekļa saskarne ir intuitÄ«va un viegli lietojama. GitLab nodroÅ”ina visu nepiecieÅ”amo bezmaksas versijÄ un tiek piegÄdÄts kÄ SaaS un on-prem (izmantojot savus resursus programmatÅ«ras mitinÄÅ”anai).
Neviens cits SCM rÄ«ks nav izmantojis nepÄrtrauktu integrÄciju (CI) tieÅ”i jÅ«su repozitorijÄ, un GitLab to ir darÄ«jis jau ilgu laiku. Lai izmantotu GitLab-CI, avota koda saknei ir jÄpievieno fails .gitlab-ci.yml, un visas projekta izmaiÅas aktivizÄs darbÄ«bas, pamatojoties uz tieÅ”i jÅ«su norÄdÄ«to. GitLab un GitLab-CI ir pelnÄ«ti atzÄ«ti par lÄ«deriem nepÄrtrauktas integrÄcijas (CI-as-code) jomÄ.
Galvenie ieguvumi
- UzticamÄ«ba ā produkts ir tirgÅ« kopÅ” 2013. gada; stabils; labi atbalstÄ«ts.
- AtvÄrtÄ koda versija ā GitLab bezmaksas versija neierobežo galveno funkcionalitÄti, kas nepiecieÅ”ama izstrÄdes komandÄm. Maksas pakalpojumu paketes nodroÅ”ina papildu noderÄ«gas funkcijas dažÄda lieluma un vajadzÄ«bu uzÅÄmumiem.
- Engrained CI ā neviens cits rÄ«ks tirgÅ« nav izveidojis nepÄrtrauktu integrÄciju tieÅ”i SCM, piemÄram, GitLab-CI. Izmantojot Docker, tiek nodroÅ”inÄtas bez problÄmÄm izolÄtas versijas, un iebÅ«vÄtie pÄrskati atvieglo atkļūdoÅ”anu. Mums nav nepiecieÅ”ama vairÄku rÄ«ku sarežģīta integrÄcija un pÄrvaldÄ«ba vienlaikus.
- Neierobežota integrÄcija ā GitLab nodroÅ”ina vienkÄrÅ”u visu nepiecieÅ”amo DevOps rÄ«ku integrÄciju. Tas nodroÅ”ina, ka izstrÄdes un apkopes komandÄm ir viens informÄcijas avots par to lietojumu jebkurÄ vidÄ.
konkurenti
PiedalÄ«jies kaujÄ, bet neuzvarÄjis
Å ajÄ kategorijÄ ir arÄ« citi populÄri rÄ«ki, taÄu tie nav tik labi kÄ GitLab. Un tÄpÄc:
GitHub ā Å Ä« ir lieliska SaaS versiju kontroles sistÄma maziem uzÅÄmumiem un attÄ«stÄ«bas sÄkuma stadijÄm. Lieliem uzÅÄmumiem, kuriem ir svarÄ«gi saglabÄt IP adreses savÄ tÄ«klÄ, vienÄ«gais GitHub risinÄjums bija .OVA virtuÄlÄ maŔīna bez augstas pieejamÄ«bas sistÄmu atbalsta. Tas apgrÅ«tina uz vietas apkopi, turklÄt .OVA ir piemÄrots tikai vidÄjiem uzÅÄmumiem, pretÄjÄ gadÄ«jumÄ serveris vienkÄrÅ”i avarÄs pie lielÄkas slodzes. GitHub darbÄ«bu trÅ«kums (lÄ«dz nesenam laikam un vÄl nav pieejams uz vietas versijÄ) vai CI-as-code nozÄ«mÄ, ka jums ir jÄizvÄlas atseviŔķs CI rÄ«ks un pÄc tam jÄpÄrvalda Ŕī integrÄcija. Visbeidzot, GitHub ir daudz dÄrgÄks nekÄ jebkura GitLab versija.
Jenkins ā Lai gan pÄc noklusÄjuma Jenkins tiek uzskatÄ«ts par standartu starp nepÄrtrauktas integrÄcijas rÄ«kiem, tai vienmÄr ir trÅ«cis versiju kontroles iespÄju. IzrÄdÄs, ka jÅ«s izmantojat Jenkins plus kaut kÄdu SCM rÄ«ku. Tas ir pÄrÄk grÅ«ti, ja GitLab var paveikt abus. ViduvÄjs UX dizains nav piemÄrots modernai tÄ«mekļa lietojumprogrammai un atstÄj daudz vÄlamo.
BitBucket/Bamboo ā Man viÅÅ” jÄatzÄ«st par automÄtisku zaudÄtÄju: kÄpÄc divi rÄ«ki, ja GitLab visu dara pilnÄ«gi neatkarÄ«gi. BitBucket Cloud atbalsta GitLab-CI / GitHub Action funkcionalitÄti, taÄu neviens uzÅÄmums, kas ir lielÄks par jaunuzÅÄmumu, nevar to viegli ieviest. VietÄjais BitBucket serveris pat neatbalsta BitBucket cauruļvadus!
#1 Datu pÄrvaldÄ«bas rÄ«ks
UzvarÄtÄjs: FlywayDB
TÄ«mekļa lietojumprogrammu izstrÄdÄ datu bÄzes automatizÄcijai parasti netiek pieŔķirta nozÄ«me. Ideja par datu bÄzes shÄmas izmaiÅu izvietoÅ”anu jaunÄm lietojumprogrammas versijÄm nÄk novÄloti. ShÄmas izmaiÅu rezultÄtÄ bieži tiek pievienotas un pÄrdÄvÄtas kolonnas vai tabulas. Ja lietojumprogrammas versija neatbilst shÄmas versijai, lietojumprogramma var avarÄt. TurklÄt datu bÄzes izmaiÅu pÄrvaldÄ«Å”ana lietojumprogrammas atjauninÄÅ”anas laikÄ var bÅ«t sarežģīta, jo pastÄv divas dažÄdas sistÄmas. FlyWayDB atrisina visas Ŕīs problÄmas.
Galvenie ieguvumi
- Datu bÄzes versiju noteikÅ”ana ā Flyway ļauj izveidot datu bÄzes versijas, izsekot datu bÄzes migrÄcijai un viegli pÄrsÅ«tÄ«t vai atsaukt shÄmas izmaiÅas, neizmantojot tam papildu rÄ«ku.
- BinÄrais vai iegultais ā mÄs varam izvÄlÄties palaist Flyway kÄ daļu no lietojumprogrammas vai kÄ binÄru izpildÄmo failu. Flyway pÄrbauda versiju saderÄ«bu startÄÅ”anas laikÄ un sÄk atbilstoÅ”u migrÄciju, sinhronizÄjot datu bÄzes un lietojumprogrammu versijas. Palaižot cmd line ad-hoc komandu, mÄs nodroÅ”inÄm elastÄ«bu esoÅ”ajÄm datu bÄzÄm, nepÄrbÅ«vÄjot visu lietojumprogrammu.
konkurenti
PiedalÄ«jies kaujÄ, bet neuzvarÄjis
Å ajÄ jomÄ nav daudz rÄ«ku. ApskatÄ«sim dažus no tiem:
LiquiBase ā Liquibase atgÄdina FlywayDB. Es vÄlÄtos to izveidot virs Flyway, ja manÄ komandÄ bÅ«tu kÄds ar lielÄku pieredzi darbÄ ar Liquibase.
Flocker - Var darboties tikai konteineru lietojumos. Lai veiksmÄ«gi darbinÄtu konteinerizÄtÄs datu bÄzes, viss ir jÄplÄno perfekti. Es iesaku datu bÄzÄm izmantot RDS (relÄciju datu bÄzes pakalpojumu) un neiesaku svarÄ«gu informÄciju glabÄt konteinerÄ.
Testa automatizÄcijas rÄ«ki
SÄksim diskusiju par testÄÅ”anas automatizÄcijas rÄ«kiem, klasificÄjot tos, pamatojoties uz testÄÅ”anas piramÄ«du.
TestÄÅ”anas piramÄ«dai (testiem) ir 4 lÄ«meÅi:
- VienÄ«bas testi ā tas ir visa automatizÄtÄs testÄÅ”anas procesa pamatÄ. SalÄ«dzinot ar citiem testu veidiem, vajadzÄtu bÅ«t vairÄk vienÄ«bas testu. IzstrÄdÄtÄji raksta un izpilda vienÄ«bu testus, lai nodroÅ”inÄtu, ka lietojumprogrammas daļa (pazÄ«stama kÄ "vienÄ«ba") atbilst tÄs dizainam un darbojas, kÄ paredzÄts.
- Komponentu testi ā Komponentu testÄÅ”anas galvenais mÄrÄ·is ir pÄrbaudÄ«t testa objekta ievades/izvades uzvedÄ«bu. Mums ir jÄnodroÅ”ina, lai testa objekta funkcionalitÄte tiktu ieviesta pareizi saskaÅÄ ar specifikÄciju.
- IntegrÄcijas testi ā testÄÅ”anas veids, kurÄ atseviŔķi programmatÅ«ras moduļi tiek apvienoti un testÄti kÄ grupa.
- PilnÄ«gi testi ā Å”is solis ir pats par sevi saprotams. MÄs uzraugÄm visu lietojumprogrammu un pÄrliecinÄmies, ka tÄ darbojas, kÄ plÄnots.
TÄ kÄ vienÄ«bu testus un komponentu testÄÅ”anu veic tikai izstrÄdÄtÄji un bieži vien tie ir specifiski programmÄÅ”anas valodai, mÄs nenovÄrtÄsim Å”os rÄ«kus DevOps domÄnam.
#1 IntegrÄcijas testÄÅ”anas rÄ«ks
UzvarÄtÄjs: GurÄ·i
GurÄ·is apvieno specifikÄcijas un testa dokumentÄciju vienÄ dzÄ«vÄ dokumentÄ. SpecifikÄcijas vienmÄr ir atjauninÄtas, jo Cucumber tÄs automÄtiski pÄrbauda. Ja vÄlaties izveidot automatizÄtu testÄÅ”anas ietvaru no nulles un modelÄt lietotÄju uzvedÄ«bu tÄ«mekļa lietojumprogrammÄ, Selenium WebDriver ar Java un Cucumber BDD ir lielisks veids, kÄ apgÅ«t un ieviest gurÄ·i projektÄ.
Galvenie ieguvumi
- BDD pieeja (uzvedÄ«bu virzÄ«ta attÄ«stÄ«ba ā "attÄ«stÄ«ba caur uzvedÄ«bu" pretstatÄ "pÄrbaudes virzÄ«tai izstrÄdei") - gurÄ·is ir paredzÄts BDD testÄÅ”anai, sÄkotnÄji tika izveidots tieÅ”i Å”im uzdevumam.
- DzÄ«vÄ dokumentÄcija ā dokumentÄcija vienmÄr ir sÄpÄ«ga! TÄ kÄ jÅ«su testi ir rakstÄ«ti kÄ kods, Cucumber pÄrbauda automÄtiski Ä£enerÄto dokumentÄciju, lai nodroÅ”inÄtu, ka testi un dokumentÄcija ir sinhronizÄti.
- Atbalsts - MÄs varam izvÄlÄties no daudziem rÄ«kiem, taÄu GurÄ·im ir nepiecieÅ”amie finanÅ”u resursi un labi organizÄta atbalsta sistÄma, lai palÄ«dzÄtu lietotÄjiem jebkurÄ sarežģītÄ situÄcijÄ.
konkurenti
PiedalÄ«jies kaujÄ, bet neuzvarÄjis
No citiem ietvariem un tehnoloÄ£ijai specifiskiem rÄ«kiem par universÄlu risinÄjumu var uzskatÄ«t tikai Cucumber.
PilnÄ«gas pÄrbaudes rÄ«ki
Veicot pilnÄ«gu testÄÅ”anu, jums jÄkoncentrÄjas uz diviem galvenajiem punktiem:
- funkcionÄlÄ pÄrbaude
- Stresa testÄÅ”ana.
FunkcionÄlajÄ testÄÅ”anÄ mÄs pÄrbaudÄm, vai viss, ko vÄlamies, patieÅ”Äm notiek. PiemÄram, kad es noklikŔķinu uz noteiktiem sava SPA (vienas lapas pieteikuma) elementiem, aizpildu veidlapas un atlasu "Iesniegt", dati parÄdÄs datu bÄzÄ un ekrÄnÄ parÄdÄs ziÅojums "VeiksmÄ«gi!".
Mums ir arÄ« svarÄ«gi pÄrbaudÄ«t, vai noteiktu skaitu lietotÄju, kuri izmanto vienu un to paÅ”u scenÄriju, var apstrÄdÄt bez kļūdÄm.
Å o divu veidu testÄÅ”anas trÅ«kums bÅ«s bÅ«tisks trÅ«kums jÅ«su CI/CD konveijerÄ.
#1 visaptveroÅ”Äs testÄÅ”anas rÄ«ks. FunkcionÄlÄ pÄrbaude
UzvarÄtÄjs: SoapUI Pro
SoapUI ir bijis API testÄÅ”anas telpÄ ilgu laiku, kopÅ” SOAP balstÄ«ti tÄ«mekļa pakalpojumi bija standarts. Lai gan mÄs vairs neveidojam jaunus SOAP pakalpojumus un rÄ«ka nosaukums nav mainÄ«jies, tas nenozÄ«mÄ, ka tas nav attÄ«stÄ«jies. SoapUI nodroÅ”ina lielisku ietvaru automatizÄtu aizmugursistÄmas funkcionÄlo testu izveidei. Testus var viegli apvienot ar nepÄrtrauktas integrÄcijas rÄ«kiem un izmantot kÄ daļu no CI/CD konveijera.
Galvenie ieguvumi
- DetalizÄta dokumentÄcija ā SoapUI ir bijis tirgÅ« diezgan ilgu laiku, tÄpÄc ir daudz tieÅ”saistes resursu, kas var palÄ«dzÄt saprast, kÄ iestatÄ«t testus.
- VienkÄrÅ”a lietoÅ”ana ā lai gan rÄ«ks atbalsta vairÄkus API testÄÅ”anas protokolus, SoapUI kopÄ«gÄ saskarne vairÄkiem pakalpojumiem atvieglo testu rakstÄ«Å”anu.
konkurenti
PiedalÄ«jies kaujÄ, bet neuzvarÄjis
SelÄns ir vÄl viens lielisks instruments Å”ajÄ grupÄ. Es iesaku to izmantot, ja veidojat un izmantojat Java lietojumprogrammu. TomÄr, ja veidojat pilnu tÄ«mekļa lietojumprogrammu ar vairÄkÄm tehnoloÄ£ijÄm, tÄ var kļūt apgrÅ«tinoÅ”a komponentiem, kas nav Java komponenti.
#1 visaptveroÅ”Äs testÄÅ”anas rÄ«ks. Stresa testÄÅ”ana
UzvarÄtÄjs: LoadRunner
Paskaidrojums: Kad pienÄcis laiks pÄrbaudÄ«t katru lietojumprogrammas elementu, tikai LoadRunner var pabeigt uzdevumu. JÄ, sÄkumÄ tas ir dÄrgi un sarežģīti, taÄu LoadRunner ir vienÄ«gais rÄ«ks, kas man kÄ tehniskajam arhitektam sniedz pilnÄ«gu pÄrliecÄ«bu, ka jaunais kods darbosies ekstremÄlÄs slodzes apstÄkļos. TurklÄt es domÄju, ka ir pienÄcis laiks, lai LoadRunner pÄrÅemtu izstrÄdes komandas, nevis testÄÅ”anas komandas.
Galvenie ieguvumi
- PlaÅ”a dokumentÄcija ā LoadRunner ir bijis tirgÅ« jau labu laiku, tÄpÄc ir pieejami daudzi tieÅ”saistes resursi, kas palÄ«dz saprast, kÄ iestatÄ«t slodzes testus.
- Protokolu atbalsts ā Load Runner atbalsta visu, sÄkot no ODBC lÄ«dz AJAX, HTTPS un jebkuram citam nenozÄ«mÄ«gam protokolam, ko varÄtu izmantot jÅ«su lietojumprogramma. MÄs cenÅ”amies neizmantot vairÄkus slodzes testÄÅ”anas rÄ«kus, jo tas tikai sarežģī procesu.
konkurenti
PiedalÄ«jies kaujÄ, bet neuzvarÄjis
Atkal, Å”ajÄ jomÄ nav daudz universÄlu rÄ«ku, tÄpÄc labÄkais risinÄjums ir tÄds, kas darbosies jebkurÄ vidÄ ar jebkuru tehnoloÄ£iju.
IzvietoŔanas rīki
IzvietoÅ”anas rÄ«ki, iespÄjams, ir vismazÄk saprotamais attÄ«stÄ«bas aspekts. OperÄciju komandai bez dziļas izpratnes par lietojumprogrammas kodu un funkcionalitÄti ir grÅ«ti izmantot Å”Ädus rÄ«kus. IzstrÄdÄtÄjiem izvietoÅ”anas pÄrvaldÄ«ba ir jauna atbildÄ«ba, tÄpÄc viÅiem vÄl nav pietiekamas pieredzes darbÄ ar Å”Ädiem rÄ«kiem.
Vispirms sadalÄ«sim visus izvietoÅ”anas rÄ«kus trÄ«s apakÅ”kategorijÄs:
- artefaktu pÄrvaldÄ«ba
- konfigurÄcijas pÄrvaldÄ«ba
- izvietot.
#1 Artefaktu pÄrvaldÄ«bas rÄ«ks
UzvarÄtÄjs: sakars
Nexus artefaktu krÄtuve atbalsta gandrÄ«z visas galvenÄs tehnoloÄ£ijas, sÄkot no Java lÄ«dz NPM un beidzot ar Docker. MÄs varam izmantot Å”o rÄ«ku, lai saglabÄtu visus izmantotos artefaktus. AttÄlinÄto pakotÅu pÄrvaldnieku starpniekserverÄÅ”ana arÄ« ievÄrojami paÄtrina CI veidoÅ”anas procesu, padarot pakotnes pieejamÄkas veidoÅ”anai. VÄl viena priekÅ”rocÄ«ba ir iespÄja iegÅ«t pilnÄ«gu priekÅ”statu par visÄm vairÄkos programmatÅ«ras projektos izmantotajÄm pakotnÄm, bloÄ·Äjot nedroÅ”as atvÄrtÄ pirmkoda pakotnes (tÄs var darboties kÄ uzbrukuma vektors).
Galvenie ieguvumi
- Tehniskais atbalsts - Uzticama prece; labi atbalstīts.
- Open Source ā bezmaksas versija neierobežo galveno funkcionalitÄti, kas nepiecieÅ”ama izstrÄdes komandÄm.
#1 KonfigurÄcijas pÄrvaldÄ«bas rÄ«ks
UzvarÄtÄjs: IespÄjams
Ansible ir lÄ«deris viena vienkÄrÅ”a iemesla dÄļ: bezvalstnieks. IepriekÅ” lÄ«dzÄ«gi rÄ«ki bija vÄrsti uz konfigurÄcijas stÄvokļa pÄrvaldÄ«bu. Palaižot, Å”Äds rÄ«ks, saÅÄmis vÄlamo konfigurÄciju, mÄÄ£inÄs labot paÅ”reizÄjo lietojumprogrammas konfigurÄciju. Un ar jauno pieeju ir pieejami tikai bezvalstnieki. JaunÄs koda versijas ir artefakti, kas tiek izvietoti, lai aizstÄtu esoÅ”Äs. To var uzskatÄ«t par sava veida Ä«slaicÄ«gu, Ä«slaicÄ«gu vidi.
Galvenie ieguvumi
- Bezvalstnieks ā Playbook tiek palaists no izvietoÅ”anas iekÄrtas un izpildÄ«ts mÄrÄ·a serveros. Man nav jÄuztraucas par attÄlÄ objekta stÄvokli, izmantojot tÄdu rÄ«ku kÄ pakotÄjs, lai izveidotu izvietojamus objektus.
- AtvÄrtais kods ā tÄpat kÄ CentOS, Ansible atbalsta arÄ« RedHat. Tas palÄ«dz uzturÄt kopienu un nodroÅ”ina augstas kvalitÄtes, viegli lietojamus moduļus.
- TestÄÅ”ana ar Molecule (Ansible ietvars) ā tÄ kÄ konfigurÄcijas pÄrvaldÄ«ba ir kods, tÄpat kÄ viss pÄrÄjais, testÄÅ”ana ir bÅ«tiska. Molecule's Ansible lomu testÄÅ”anas sistÄma darbojas nevainojami, nodroÅ”inot, ka konfigurÄcija ir tÄdas paÅ”as kvalitÄtes un atbilst tam paÅ”am CI/CD konveijeram kÄ lietojumprogrammas kodam.
- YAML ā SalÄ«dzinot ar citiem rÄ«kiem, YAML ir vieglÄk saprotams. TÄ kÄ konfigurÄcijas pÄrvaldÄ«ba parasti ir jauns izaicinÄjums tiem, kas ievieÅ” DevOps praksi, vienkÄrŔība ir tÄ trumpis.
konkurenti
PiedalÄ«jies kaujÄ, bet neuzvarÄjis
OpsCode Å”efpavÄrs ā Savu DevOps karjeru sÄku kÄ pavÄrgrÄmatu izstrÄdÄtÄjs. RubÄ«ns un Å”efpavÄrs, protams, man ir ļoti dÄrgi, taÄu tie vienkÄrÅ”i neatrisina mÅ«sdienu bezvalstnieku, mÄkoÅdatoÅ”anas lietojumprogrammu problÄmas. OpsCode Chef ir lielisks rÄ«ks tradicionÄlÄkÄm lietojumprogrammÄm, taÄu Å”ajÄ rakstÄ mÄs koncentrÄjamies uz nÄkotni.
marionete ā Lellei nekad nav bijis daudz fanu, Ä«paÅ”i salÄ«dzinÄjumÄ ar Chef un Ansible. Tas ir lieliski piemÄrots nodroÅ”inÄÅ”anai un darbam ar aparatÅ«ru, taÄu tam trÅ«kst moderna konfigurÄcijas pÄrvaldÄ«bas atbalsta tÄ«mekļa lietojumprogrammai.
IzvietoŔanas rīks Nr. 1
UzvarÄtÄjs: Terraform
Terraform atrisina problÄmu, kas saistÄ«ta ar infrastruktÅ«ras aprakstÄ«Å”anu kÄ kodu, sÄkot no tÄ«kla komponentiem lÄ«dz pilniem servera attÄliem. KopÅ” sÄkotnÄjÄs izlaiÅ”anas Å”is produkts ir nogÄjis garu ceļu, jo ir izveidoti tik daudz spraudÅu un izveidota tik spÄcÄ«ga kopiena, ka jÅ«s noteikti saÅemsit palÄ«dzÄ«bu jebkurÄ izvietoÅ”anas scenÄrijÄ. IespÄja atbalstÄ«t jebkura veida vidi (uz vietas, mÄkonÄ« vai citur) ir nepÄrspÄjama. Visbeidzot, jaunÄkÄ versija nodroÅ”ina daudz no tÄm paÅ”Äm loÄ£iskÄm funkcijÄm un klasÄm HCL kÄ jebkura cita tradicionÄlÄ programmÄÅ”anas valoda, padarot Terraform viegli uztveramu izstrÄdÄtÄjiem Ätri un viegli.
Galvenie ieguvumi
- Vides agnostiÄ·is ā Terraform izmanto funkcijas, kas darbojas kÄ saskarne starp jÅ«su Terraform kodu, visÄm API un iekÅ”Äjo loÄ£iku, lai sazinÄtos ar infrastruktÅ«ras nodroÅ”inÄtÄju. Tas nozÄ«mÄ, ka es apgÅ«Å”u tikai vienu rÄ«ku un pÄc tam varÄÅ”u strÄdÄt jebkur.
- Open Source ā bezmaksas rÄ«kus ir grÅ«ti pÄrspÄt! Kopienas atbalsts visaugstÄkajÄ lÄ«menÄ«.
konkurenti
PiedalÄ«jies kaujÄ, bet neuzvarÄjis
AWS mÄkoÅu veidoÅ”anÄs ā Pat ja strÄdÄjat tikai AWS mÄkoÅa vidÄ, nÄkamajÄ darbÄ var tikt izmantots cits rÄ«ks. Visa sava laika un enerÄ£ijas veltÄ«Å”ana tikai vienai platformai ir tuvredzÄ«gs lÄmums. TurklÄt daudzi jauni AWS pakalpojumi bieži ir pieejami kÄ Terraform moduļi, pirms tie ir pieejami pakalpojumÄ CloudFormation.
Izpildlaika rīki
Jebkura izstrÄdes projekta galvenais mÄrÄ·is ir palaist lietojumprogrammu ražoÅ”anÄ. DevOps pasaulÄ mÄs vÄlamies pilnÄ«bÄ apzinÄties visas iespÄjamÄs problÄmas ar vidi, kÄ arÄ« vÄlamies samazinÄt manuÄlo iejaukÅ”anos. Pareiza izpildlaika rÄ«ku komplekta izvÄle ir bÅ«tiska, lai sasniegtu lietojumprogrammu izstrÄdes nirvÄnu.
Izpildlaika rīku apakŔkategorijas:
- X-as-a-service (XaaS)
- orÄ·estrÄÅ”ana
- uzraudzību
- mežizstrÄde.
X-rÄ«ks-kÄ-pakalpojums Nr. 1
UzvarÄtÄjs: Amazon Web pakalpojumi
Amazon vienmÄr ir bijis lÄ«deris mÄkoÅtehnoloÄ£iju jomÄ, taÄu ar to viss neapstÄjas: izstrÄdÄtÄjiem paredzÄto jauno pakalpojumu daudzveidÄ«ba atver acis. Pievienojiet jebkuru tehnoloÄ£iju un veidni AWS, un tÄ tiks izveidota un darbosies. RÄ«ka izmaksas ir diezgan pieÅemamas: salÄ«dziniet to ar aprÄ«kojuma montÄžu, pÄrvaldÄ«bu un apkopi savÄ datu centrÄ. Bezmaksas versija ļauj eksperimentÄt un pieÅemt pareizo lÄmumu pirms naudas tÄrÄÅ”anas.
Galvenie ieguvumi
- IzplatÄ«ba ā ja jums ir pieredze lietojumprogrammu veidoÅ”anÄ AWS, varat strÄdÄt jebkur. UzÅÄmumiem patÄ«k AWS, un jaunizveidotie uzÅÄmumi novÄrtÄ arÄ« tÄs zemÄs izmaksas.
- Bezmaksas versija ir patiesi nozÄ«mÄ«gs faktors, kas AWS atŔķir no vienaudžiem. Ä»aujiet man izmÄÄ£inÄt pakalpojumu un redzÄt, kÄ tas darbojas, pirms es pieÅemu lÄmumu par pirkumu, es nevÄlos tÄrÄt tÅ«kstoÅ”iem dolÄru par kaut ko nevajadzÄ«gu. Man vienmÄr pietiek ar bezmaksas versiju, lai pÄrbaudÄ«tu jebkuru koncepciju.
konkurenti
PiedalÄ«jies kaujÄ, bet neuzvarÄjis
Debeszils āAzure kopÅ” pirmÄs izlaiÅ”anas ir nogÄjis garu ceļu, un tas ir slavÄjami. TaÄu vÄlme atŔķirties radÄ«jusi dÄ«vainus dienestu nosaukumus, kas nereti apgrÅ«tina darbu. Ko nozÄ«mÄ āblobu krÄtuveā? Un, lai gan .NET kods darbojas labÄk Microsoft ekosistÄmÄ, ir maz ticams, ka katrai lietojumprogrammas sastÄvdaļai izmantosit tikai .NET.
Heroku ā Es nekad nevadÄ«tu neko citu kÄ personisku projektu Heroku zemÄ uzticamÄ«bas un caurskatÄmÄ«bas lÄ«meÅa dÄļ, tÄpÄc uzÅÄmumiem nevajadzÄtu to izmantot kÄ platformu. Heroku ir lieliski piemÄrots, lai kaut ko demonstrÄtu emuÄrÄ, bet praktiskai lietoÅ”anai - "NÄ, paldies!"
#1 OrÄ·estrÄcijas rÄ«ks
UzvarÄtÄjs: openshift
JÅ«s, iespÄjams, izmantojat Docker vai citus konteinerus savÄ lietojumprogrammu kaudzÄ. Lietojumprogrammas bez serveriem ir lieliskas, taÄu tÄs var neatbilst katrai arhitektÅ«rai. Konteineru palaiÅ”ana bez orÄ·estrÄÅ”anas platformas vienkÄrÅ”i nedarbosies. Kubernetes Core (K8s) ir nepÄrspÄjams droŔības un instrumentu ziÅÄ. OpenShift ir vienÄ«gÄ Kubernetes platforma, kas var apkopot Source2Image, atbalsta automatizÄtu izvietoÅ”anu podiÅos un atbalsta izsekoÅ”anu un uzraudzÄ«bu. OpenShift var palaist uz vietas, mÄkonÄ« vai uz vietas un mÄkonÄ« vienlaikus.
Galvenie ieguvumi
- IebÅ«vÄta droŔība ā lai pÄrvaldÄ«tu K8s droŔību, var bÅ«t nepiecieÅ”ams augstÄks grÄds. Katra detaļa ir rÅ«pÄ«gi jÄpÄrdomÄ un jÄÅem vÄrÄ! Ar OpenShift pÄc noklusÄjuma iebÅ«vÄtie droŔības mehÄnismi noÅem izstrÄdÄtÄju slogu un nodroÅ”ina droÅ”Äku platformu lietojumprogrammÄm.
- UniversÄls risinÄjums ā atŔķirÄ«bÄ no pamata K8, kuros pÄc noklusÄjuma nav iekļauti slodzes lÄ«dzsvaroÅ”anas rÄ«ki, OpenShift ir viss. Es varu to izmantot, lai izveidotu un mitinÄtu konteinerus, palaistu CI/CD rÄ«kus, pÄrvaldÄ«tu ÄrÄjos procesus, pÄrvaldÄ«tu atslÄgas un daudz ko citu. Lai gan grafiskais lietotÄja interfeiss joprojÄm ir tÄlu no perfekta, uz API balstÄ«tÄ pieeja nozÄ«mÄ, ka visu var aprakstÄ«t skriptÄ. AtŔķirÄ«bÄ no citiem K8s GUI, OpenShift ievÄrojami atvieglo Kubernetes pamatu apguvi. Jums pat nav jÄiegÅ«st grÄds!
konkurenti
PiedalÄ«jies kaujÄ, bet neuzvarÄjis
Dokera bars ā Docker Swarm mÄÄ£inÄja vienkÄrÅ”ot K8, atbrÄ«vojoties no daudzÄm lietÄm. Tas ir lieliski piemÄrots mazÄm lietojumprogrammÄm, bet uzÅÄmuma lietojumprogrammÄm tas vienkÄrÅ”i nedarbojas. TurklÄt tÄdiem risinÄjumiem kÄ AWS ECS ir lÄ«dzÄ«ga pieeja, taÄu tie atvieglo darbu ar citiem pakalpojumiem, ar kuriem arÄ« varu mijiedarboties (Lambda, IAM utt.).
Uzraudzības rīks Nr. 1
UzvarÄtÄjs: Jauna relikvija
JaunÄs relikvijas agrÄ«nÄs izlaiÅ”anas paveica vienu lietu ā APM (Application Performance Monitoring) uzraudzÄ«bu. Tagad tas ir pilnvÄrtÄ«gs uzraudzÄ«bas rÄ«ks, kas ļauj pÄrraudzÄ«t servera, konteinera, datu bÄzes veiktspÄju, gala lietotÄja pieredzes uzraudzÄ«bu un, protams, lietojumprogrammu veiktspÄjas uzraudzÄ«bu.
Galvenie ieguvumi
- VienkÄrÅ”a lietoÅ”ana ā strÄdÄjot par sistÄmu inženieri, es izmantoju daudzus pÄrraudzÄ«bas rÄ«kus, taÄu nekad neesmu saskÄries ar tik vienkÄrÅ”u un viegli lietojamu kÄ New Relic. Tas ir SaaS, tÄpÄc jums tas nav jÄinstalÄ paÅ”am.
- PilnÄ«ga redzamÄ«ba ā citi rÄ«ki mÄÄ£ina pÄrraudzÄ«t vienu konkrÄtu jÅ«su lietojumprogrammas elementu. PiemÄram, procesora lietojuma vai tÄ«kla trafika metrika, taÄu tas viss ir visaptveroÅ”i jÄuzrauga, lai lietojumprogramma darbotos pareizi. New Relic sniedz iespÄju apvienot visus savus datus, lai iegÅ«tu visaptveroÅ”u priekÅ”statu par notiekoÅ”o.
konkurenti
PiedalÄ«jies kaujÄ, bet neuzvarÄjis
Zabbix ā Mana pirmÄ un iecienÄ«tÄkÄ monitoringa sistÄma, taÄu tÄ ir palikusi pagÄtnÄ, jo trÅ«kst attÄ«stÄ«bas mÄkoÅtehnoloÄ£ijÄs un APM aplikÄciju veiktspÄjas monitoringa jomÄ. Zabbix joprojÄm labi veic tradicionÄlÄs serveru infrastruktÅ«ras uzraudzÄ«bu, bet tas arÄ« viss.
DataDog ā PÄrÄk daudz koncentrÄts uz lietojumprogrammas ražoÅ”anas vides pÄrvaldÄ«bas procesu, nevis paÅ”u kodu. Ar DevOps komandÄm, kurÄs ir iesaistÄ«ti izstrÄdÄtÄji, mums nav jÄpaļaujas uz grÅ«ti lietojamiem rÄ«kiem, lai nodroÅ”inÄtu augstÄkÄ lÄ«meÅa atbalstu.
ReÄ£istrÄcijas rÄ«ks Nr. 1
UzvarÄtÄjs: Plankumains
Ir grÅ«ti konkurÄt ar Splunk! Ilgu laiku viÅÅ” paliek mežizstrÄdes lÄ«deris, turpinot to darÄ«t labÄk nekÄ jebkurÅ” cits. Izmantojot on-prem un SaaS piedÄvÄjumus, varat izmantot Splunk jebkur. Lielais mÄ«nuss ir tÄ cena: Splunk joprojÄm ir sasodÄ«ti dÄrgs!
Galvenie ieguvumi
- IzplatÄ«ba ā uzÅÄmumiem patÄ«k Splunk, un uzÅÄmumiem ir nauda, āālai to iegÄdÄtos.
- Lai gan jaunizveidotie uzÅÄmumi cenÅ”as atgÅ«t izmaksas, daudzas funkcijas var atrisinÄt, pateicoties atvÄrtÄ koda analogiem.
- UzturamÄ«ba ā vienkÄrÅ”i sakot, Splunk darbojas un dara to labi. Tam ir pieejami daudzi noklusÄjuma iestatÄ«jumi un funkcijas, kas ir gatavas lietoÅ”anai. Nav jÄtÄrÄ laiks, lasot dokumentÄciju un mÄÄ£inot panÄkt, lai Splunk strÄdÄtu vai kaut ko atÅ”ifrÄtu.
konkurenti
PiedalÄ«jies kaujÄ, bet neuzvarÄjis
ELK Stack (ElasticSearch, LogStash un Kibana) "Å Ä·iet, ka Å”ie rÄ«ki ir iecienÄ«tÄkie, jo jums pat nav jÄpÄrdod aknas, lai tos izmantotu." TaÄu, pieaugot baļķu kopumam un pieaugot pieteikumu skaitam uz kuÄ£a, darbs kļūst arvien grÅ«tÄks. SalÄ«dzinot ar Splunk, ar ELK Stack es pavadÄ«ju daudz vairÄk laika, iestatot rÄ«kus pirms informÄcijas paneļu izveides, nekÄ jebkad agrÄk.
Sadarbības rīki
DevOps galvenokÄrt ir kultÅ«ras maiÅa organizÄcijÄ. Jebkura rÄ«ka iegÄde nemainÄ«s paÅ”reizÄjo praksi vienÄ naktÄ«, taÄu tas noteikti var veicinÄt sadarbÄ«bu un jaunus mijiedarbÄ«bas veidus.
Sadarbības rīku apakŔkategorijas:
- uzdevumu izsekoŔana
- ChatOps
- dokumentÄcija.
1. problÄmu izsekoÅ”anas rÄ«ks
UzvarÄtÄjs: JIRA
Jira saglabÄ lÄ«derpozÄ«cijas, lai gan konkurence Å”ajÄ jomÄ pieaug. Jira neticamÄ elastÄ«ba ļauj izstrÄdes un apkopes komandÄm pÄrvaldÄ«t projektu darbu un sprinta uzdevumus. IebÅ«vÄtie standarti, kuros izmantota Agile terminoloÄ£ija, atvieglo pÄreju no tradicionÄlajiem darba veidiem uz efektÄ«vÄkiem procesiem.
Galvenie ieguvumi
- PopularitÄte - tÄpat kÄ daudzi citi rÄ«ki, Jira tiek izmantota gandrÄ«z visur. MazÄs komandas izmanto lÄtÄko, pieejamÄko versiju un iegÅ«st visu nepiecieÅ”amo, savukÄrt lielÄki uzÅÄmumi var atļauties dÄrgÄku licenci.
- IntegrÄcijas ā Jira ir pionieris savÄ jomÄ. Å is fakts un produkta straujÄ attÄ«stÄ«ba noved pie tÄ, ka citi uzÅÄmumi izvÄlas Jira, lai izveidotu savas integrÄcijas, tÄdÄjÄdi palielinot rÄ«ka vÄrtÄ«bu. MÄs varam integrÄt Jira ar visiem Å”ajÄ rakstÄ uzskaitÄ«tajiem rÄ«kiem, izmantojot nelielu konfigurÄciju.
konkurenti
PiedalÄ«jies kaujÄ, bet neuzvarÄjis
Trello ā Trello Ätri ieguva popularitÄti, pateicoties tÄ bezmaksas rÄ«kam Kanban. TomÄr, tiklÄ«dz procesi palielinÄs un no desmitiem uzdevumu pÄriet uz tÅ«kstoÅ”iem, Trello kļūst grÅ«ti orientÄties, meklÄt un ziÅot par to.
Pivotal Tracker ā Es biju liels Ŕī rÄ«ka cienÄ«tÄjs, kad strÄdÄju jaunizveidotÄ uzÅÄmumÄ. TomÄr Pivotal Tracker vairÄk koncentrÄjas uz produktu pÄrvaldÄ«bu, nevis uz tehniskiem uzdevumiem. Lai gan produktu pÄrvaldÄ«ba Jira ir nedaudz sarežģītÄka, to joprojÄm var ieviest, neizmantojot papildu rÄ«ku.
ChatOps rīks Nr. 1
UzvarÄtÄjs: MatterMost
Paskaidrojums: VarbÅ«t lielÄkais pÄrsteigums jums manÄ izlasÄ, un tÄ ir laba ziÅa! MatterMost ieguva popularitÄti, izmantojot labÄko no iepriekÅ”Äjiem rÄ«kiem, bet ievietojot tos uz vietas. Tas ir ļoti svarÄ«gi uzÅÄmumiem: MatterMost ļauj kontrolÄt savus datus, kÄ arÄ« palÄ«dz tos integrÄt ar rÄ«kiem, kas darbojas lokÄli. Mums vairs nav jÄiet Ärpus ugunsmÅ«ra, lai pÄrbaudÄ«tu darba tÄrzÄÅ”anu.
Galvenie ieguvumi
- AtvÄrtÄ koda versija ā MatterMost atvÄrtÄ pirmkoda versija lieliski darbojas gan vidÄjÄm, gan lielÄm komandÄm. AtŔķirÄ«bÄ no Slack bezmaksas plÄna, kas dzÄÅ” jÅ«su ziÅojumu vÄsturi, sava servera darbÄ«ba nozÄ«mÄ, ka jÅ«s saglabÄjat visus savus datus.
- IntegrÄcijas ā tÄ kÄ API ir gandrÄ«z 100% balstÄ«ta uz Slack API, gandrÄ«z visas Slack integrÄcijas var izmantot tieÅ”i ar MatterMost.
konkurenti
PiedalÄ«jies kaujÄ, bet neuzvarÄjis
Ä»engans ā Slaks ir forÅ”s, bet Å”ie puiÅ”i ir tik ļoti izauguÅ”i, ka sÄka meklÄt peļÅu. Tuvojas biznesa atmaksÄÅ”anÄs fÄze, kas atÅem to galveno vÄrtÄ«bu: Slack sniedz pakalpojumus bez maksas; VissvarÄ«gÄkais bezmaksas versijas trÅ«kums ir tÄrzÄÅ”anas vÄstures dzÄÅ”ana.
Microsoft komandas ā MÄÄ£iniet integrÄt Microsoft produktu ar kaut ko, kas nepieder Microsoft... Lai veicas! Tas ir viss, kas man jÄsaka par Å”o rÄ«ku!
DokumentÄcijas rÄ«ks Nr. 1
UzvarÄtÄjs: SaplÅ«Å”ana
KvalitatÄ«vas tehniskÄs dokumentÄcijas izveide un uzturÄÅ”ana ir sarežģīts process neatkarÄ«gi no tÄ, kÄdu rÄ«ku izmantojat. Lai gan nesen tirgÅ« ir nonÄkuÅ”i daudzi SaaS dokumentÄcijas rÄ«ki, man bÅ«tu grÅ«ti uzticÄt tehniskÄs dokumentÄcijas glabÄÅ”anu par uzdevumiem kritiskÄm lietojumprogrammÄm treÅ”ai pusei. VÄlams uzglabÄt datus un dokumentus uz vietas, un Å”Ädi Confluence to atrisina.
Galvenie ieguvumi
- Viegli lietojams ā vairums atseviŔķu rÄ«ku var bÅ«t nedaudz sarežģīti iestatÄ«t un darbinÄt, un to uzturÄÅ”anai ir nepiecieÅ”amas zinÄmas zinÄÅ”anas. Confluence Server lieliski darbojas 10 vai 10,000 XNUMX lietotÄju.
- SpraudÅi ā slava Confluence par skaistu, Ärti lietojamu navigÄciju un iespÄju gandrÄ«z visam pievienot spraudni, kas paver Wiki lÄ«dzÄ«gu potenciÄlu.
konkurenti
PiedalÄ«jies kaujÄ, bet neuzvarÄjis
Izlasiet dokumentus ā ForÅ”i priekÅ” atvÄrtÄ koda, taÄu pat nedomÄjiet par kritisko zinÄÅ”anu glabÄÅ”anu Å”eit.
Atlaide - Lieliski piemÄrots koda dokumentÄÅ”anai, taÄu grÅ«ti ievietot arhitektÅ«ru, procesus vai cita veida dokumentÄciju MarkDown specifiskÄ formatÄjuma dÄļ.
Jekyll ā DokumentÄjot tehniskÄs zinÄÅ”anas, es nevÄlos izveidot jaunu statisku vietni, kas tiks izvietota katru reizi, kad notiks izmaiÅas. Confluence vienkÄrÅ”Ä versiju kontroles sistÄma ievÄrojami vienkÄrÅ”o iekÅ”Äjo dokumentÄciju.
RezumÄt
TirgÅ« ir burtiski simtiem DevOps rÄ«ku, tÄpÄc ir grÅ«ti zinÄt, kurus izmantot un kad tie bÅ«tu jÄievieÅ”. Izpildiet Å”o vienkÄrÅ”o rokasgrÄmatu, lai izvÄlÄtos DevOps rÄ«kus pilnÄ«gam CI/CD konveijeram.
Noteikti atlasiet rÄ«kus no visÄm piecÄm kategorijÄm:
- rÄ«ku izstrÄde un izveide
- testÄÅ”anas automatizÄcijas rÄ«ki
- izvietoŔanas rīki
- Izpildlaika rīki
- sadarbības rīki.
Galvenais ieteikums: AutomatizÄjiet visu!
Paldies Zach Shapiro!
Avots: www.habr.com