Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Banki.ru porta juhtiv töötaja Andrei Nikolski rÀÀkis mullu toimunud konverentsil DevOpsDays Moskvasse orvuteenustest: kuidas tuvastada orvuteenuseid infrastruktuuris, millised on orvuteenuste puudused, mida nendega teha ja kuidas kÀituda, kui miski ei aita.

Allpool on ettekande tekstiversioon.

MĂ€ngi videot

Tere, kolleegid! Minu nimi on Andrei, ma juhinBanki.ru teenuseid.

Meil on suured teenused, need on monoliitteenused, on ka klassikalisemas mĂ”ttes teenuseid ja ka vĂ€ga vĂ€ikseid teenuseid. Oma töötava-pĂ”llumehe terminoloogias ĂŒtlen, et kui teenus on lihtne ja vĂ€ike, siis on see mikro, ja kui see ei ole eriti lihtne ja mitte vĂ€ike, siis on see lihtsalt teenus.

Teenuste plussid

KĂ€in kiiresti ĂŒle teenuste plussid.

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Esimene on skaleerimine. Te saate teenusel kiiresti midagi teha ja alustada tootmises. Kui teil tuleb liiklus, kloonite teenuse. Kui tuleb veel liiklust, kloonite uuesti ja elate selle kaubaga. See on hea boonus ja pĂ”himĂ”tteliselt, kui me alustasime, peeti seda meie jaoks kĂ”ige olulisemaks, miks me kogu seda teha ĂŒldse tahtsime.

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Teiseks, isoleeritud arendamine, kui teil on mitu arendusmeeskonda, mitmed erinevad arendajad igas meeskonnas ja iga meeskond arendab oma teenust.

Meeskondadega on nĂŒanss. Arendajad on erinevad. NĂ€iteks on olemas lumeinimesed. NĂ€gin esmakordselt seda maksima Dorofoevi juures. MĂ”nikord on lumeinimesi mĂ”nes meeskonnas, mĂ”nes ei ole. See muudab erinevaid teenuseid, mida ettevĂ”ttes kasutakse, veidi ebaĂŒhtlasteks.

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Vaadake pilti: see on hea arendaja, tal on suured kÀed, ta suudab palju teha. Peamine probleem on see, kust need kÀed kasvavad.

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Teenused vĂ”imaldavad kasutada erinevaid programmeerimiskeeli, mis sobivad paremini erinevate ĂŒlesannete tĂ€itmiseks. Üks teenus on Go-s, teine Erlangis, ĂŒks Ruby-s, mĂ”ni PHP-s, mĂ”ni Pythonis. Üldiselt, laiendaned vĂ€ga laialdaselt. Siin on samuti nĂŒansse.

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Teenusele orienteeritud arhitektuur on eelkÔige seotud devopsiga. See tÀhendab, et kui teil ei ole automatiseerimist, ei ole paigaldusprotsessi, kui te seadistate kÀsitsi, vÔivad teie konfiguratsioonid erinevate teenuse instantside vahel erineda ja peate sinna minema ja midagi tegema, siis olete pÔrgus.

NÀiteks, kui teil on 20 teenust ja peate need kÀsitsi juurutama, siis teil on 20 kontrollerit ja samal ajal vajutate "enter" nagu ninja. See ei ole just kÔige parem lahendus.

Kui teil on teenus, mis on pÀrast testimist (kui testimine on loomulikult olemas) ja seda tuleb veel lihvida, et see tootmiskeskkonnas töötaks, siis mul on teile samuti halbu uudiseid.

Kui toetute Amazoni spetsiifilistele teenustele ja töötate samal ajal Venemaal, siis kaks kuud tagasi oli teil ka "KĂ”ik pĂ”leb ĂŒmberringi, ma olen okei, kĂ”ik on hĂ€sti".

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Kasutame Ansible'it juurutamise automatiseerimiseks, Puppet'i konvergentsiks, Bamboo't juurutamise automatiseerimiseks ja Confluence'i selle kÔik dokumenteerimiseks.

Ei hakka sellel pikemalt peatuma, kuna esitlus on pigem koostööpraktikate kohta, mitte tehnilise rakenduse kohta.

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Meil on nĂ€iteks olnud probleeme, et Puppet serveris töötab Ruby 2, aga mĂ”ni rakendus on kirjutatud Ruby 1.8 jaoks ja nad ei tööta koos. Seal juhtub mingi probleem. Kui peate ĂŒhel masinal hoidma mitu Ruby versiooni, siis tavaliselt algavad probleemid.

Me anname nÀiteks igale arendajale platvormi, kus on umbes kÔik, mis meil on, kÔik teenused, mida saab arendada, et tal oleks isoleeritud keskkond, kus ta saaks seda lÔhkuda ja ehitada, nagu tal soov on.

MÔnikord on vajalik mÔni spetsiaalselt kompileeritud paket, mis toetab mingit asja. See on suhteliselt range. Kuulasin esitluse, kus Docker'i pilt kaalub 45 GB. Linuxis on muidugi lihtsam, seal on kÔik vÀiksem, aga ikkagi, kohti ei jÀtku.

Noh, ja vĂ”ib esineda vastuolulisi sĂ”ltuvusi, kui teie projekti ĂŒks osa sĂ”ltub ĂŒhe versiooniga raamatukogust ja teine osa teise versiooniga raamatukogust, kuid raamatukogusid ei saa omavahel paigaldada.

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Meil on veebisaidid ja teenused PHP 5.6-l, meil on nende pĂ€rast hĂ€bi, aga mida teha. See on meie ĂŒks platvorm. On veebisaite ja teenuseid PHP 7-l, neid on rohkem, nende pĂ€rast meil hĂ€bi ei ole. Ja iga arendajal on oma baas, kus ta rÔÔmsalt töötleb.

Kui kirjutate ettevĂ”ttes ĂŒhes keeles, siis kolm virtuaalmasinat arendaja kohta on normaalne. Kui teil on erinevad programmeerimiskeeled, siis olukord halveneb.

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Teie juures on veebisaidid ja teenused, see, see, siis veel ĂŒks Go platvorm, ĂŒks Ruby platvorm, veel mĂ”ni Redis kĂ”rval. LĂ”puks kĂ”ik see muutub suureks toetamise alaks ning alati vĂ”ib midagi sellest katki minna.

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

SeetÔttu oleme programmist saadud kasulikke funktsioone asendanud erinevate raamistikudega, kuna raamistikud PHP-le on piisavalt erinevad, neil on erinevad vÔimalused, erinevad kogukonnad, erinev tugi. Ja saab kirjutada teenuse nii, et teil on juba midagi selle jaoks olemas.

Igal teenusel on oma meeskond

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Meie peamine pluss, mis on vÀlja kristalliseerunud mitme aasta jooksul, on see, et igal teenusel on oma meeskond. See on mugav suure projekti jaoks, saab aega sÀÀsta dokumentatsiooni pealt, juhid tunnevad oma projekti hÀsti.

Tugitegevustest saab ĂŒlesandeid suurepĂ€raselt edasi anda. NĂ€iteks, kui kindlustusteenus on katki. Ja kohe lĂ€heb kindlustusega tegelev meeskond seda parandama.

Uute funktsioonide lisamine toimub kiiresti, sest kui teil on ĂŒks teatud aatomaarne teenus, siis saab sellesse operatiivselt midagi sisse panna.

Ja kui olete oma teenuse katki teinud, mis on paratamatult leiduv, siis te ei puutu teiste teenustega kokku, ja teie juurde ei tule arendajad teiste meeskondadest kiivritega ning ei ĂŒtle: "Oi-oi, Ă€rge nii tehke."

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Nagu alati, on nĂŒansid. Meil on stabiilsed meeskonnad, juhid on meeskonnaga tugevalt seotud. On selged dokumendid, juhid jĂ€lgivad seda hoolikalt. Igal meeskonnal on juhiga mitu teenust ja on konkreetne kompetentsipunkt.

Kui meeskonnad on liikuvad (sellist praktikat kasutame vahel), on olemas hea meetod, mida nimetatakse "tÀhtedekaardiks".

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Teie kĂ€es on teenuste ja inimeste nimekiri. TĂ€ht tĂ€histab, et inimene on selle teenuse ekspert, raamat tĂ€histab, et inimene Ă”pib seda teenust. Inimese ĂŒlesanne on vahetada raamat tĂ€htede vastu. Ja kui teenuse vastas ei ole midagi kirjutatud, siis algavad probleemid, millest ma edaspidi rÀÀgin.

Kuidas tekivad orvuteenused?

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Esimene probleem, esimene viis, kuidas saada endale infrastruktuuri teenusesoht — see on inimeste vallandamine. Kas kellegil on olnud, et Ă€ri toob tĂ€htaegu enne, kui ĂŒlesandeid hinnatakse? MĂ”nikord on tĂ€htaegadega kitsas ja dokumentatsiooni jaoks ei jĂ€tku aega. "Peame teenuse tootmisse andma, pĂ€rast kirjutame juurde."

Kui meeskond on vĂ€ike, vĂ”ib olla, et seal on ĂŒks arendaja, kes kirjutab kĂ”ik, teised on abiks. "Ma kirjutasin pĂ”histruktuuri, sina tee kasutajaliidese ĂŒlesanded." Siis mingil hetkel, nĂ€iteks, lahkub juht. Ja sellel perioodil, kui juht on lahkunud ja uut pole veel nimetatud, otsustavad arendajad ise, kuhu teenus liigub, mis seal toimub. Ja nagu me teame (naaseme mĂ”ne slaidi tagasi), on mĂ”nedes meeskondades inimesi-lumehelbeid, mĂ”nikord lumehelbeke-peakorter. Siis lahkub ta, ja me saame teenusesohtu.

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Samas ei kao toe ja Ă€riĂŒlesanded kuhugi, need jÀÀvad tagavarasse. Kui teenuse arendamise kĂ€igus on olnud mingisuguseid arhitektuurilisi vigu, siis needki jÀÀvad tagavarasse. Teenus aeglaselt laguneb.

Kuidas Àra tunda teenusesaadet?

See nimekiri kirjeldab olukorda ĂŒsna hĂ€sti. Kes on oma infrastruktuuris midagi sarnast kogenud?

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Dokumenteeritud töölahenduste kohta: on teenus ja ĂŒldiselt töötab see, tal on kaks lehekĂŒlge kĂ€siraamatut, kuidas sellega töötada, kuid kuidas see seestpoolt töötab, ei tea keegi.

VÔi nÀiteks on olemas mÔni lingikokkuvÔtja. Meil on nÀiteks praegu kÀimas kolm lingikokkuvÔtjat erinevate eesmÀrkide jaoks erinevates teenustes. See on just selliste tagajÀrgede tulemus.

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

NĂŒĂŒd hakkan ma olema ilmne kapten. Mida on vaja ette vĂ”tta? Esiteks tuleb teenus edastada teisele juhile, teisele meeskonnale. Kui teie peakorter pole veel lahkunud, siis sellesse teise meeskonda, kui te mĂ”istate, et teenus sarnaneb orvule, tuleb kaasata keegi, kes sellest vĂ€hemalt midagi teab.

Peamine asi: teil peavad olema kirja pandud verega protseduurid ĂŒleminekuks. Meie puhul jĂ€lgin ma tavaliselt seda, sest mul on oluline, et see kĂ”ik töötaks. Juhtidele on oluline, et see oleks kiiresti ĂŒle antud, mis sellega pĂ€rast juhtub, ei ole neile enam nii tĂ€htis.

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

JĂ€rgmine viis teha orbudest — "Teeme Ă€ra allhanke kaudu, nii on kiiremini, ja siis anname meeskonnale edasi". On selge, et kĂ”igil on oma plaanid meeskonnas ning jĂ€rjekord. Tihti arvab Ă€riklient, et allhanke tegijad saavad seda teha sama hĂ€sti, kui tehnikainstituudis, mis on ettevĂ”ttes olemas. Kuigi nende motivaatorid on erinevad. Allhankes vĂ”ivad olla kummalised tehnoloogilised lahendused ja kummalised algoritmilised lahendused.

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Meil nÀiteks oli teenus, kus Sphinx oli erinevates ootamatutes kohtades. RÀÀgin hiljem, mida tuli teha.

Allhankijatel on sageli isetegemise raamistikud. See on lihtsalt puhas PHP koos varasemast projektist kopeeritud koodiga, kust vĂ”ib leida igasugu asju. Suured toetused deploy-skriptides, kui peate keeruliste Bash-skriptide abil mingites failides mĂ”nda rida muutma, samas kui need deploy-skriptid kutsuvad mingit kolmandat skripti. LĂ”puks muudate deploy-sĂŒsteemi, valite midagi muud, ja Ă€kki ei tööta teie teenus. Sest seal pidi olema veel 8 linki erinevate kaustade vahel. VĂ”i juhtub, et tuhat kirjeid töötab, aga sada tuhat enam mitte.

JĂ€tkan kaptenina. Teenuse vastuvĂ”tt allhankest — see on kohustuslik protseduur. Kas kellelgi on olnud nii, et teenus allhankest tuleb, aga seda ei vĂ”eta vastu? See ei ole kindlasti nii populaarne kui orbu teenus, kuid siiski.

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Teenust tuleb kontrollida, teenust tuleb ĂŒle vaadata, tuleb vahetada paroole. Meil oli juhtum, kui meile anti teenus, kus administraatori leht oli "if login == 'admin' && password == 'admin'
", otse koodis kirjutatud. Istume ja mĂ”tleme, et kas inimesed kirjutavad seda 2018. aastal?

Salvestusmahud tuleb testida — see on samuti vajalik asi. Tuleb vaadata, mis juhtub sajande tuhandes kirjes, veel enne kui te selle teenuse kuskile tootmisesse panete.

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Teenuse edasilĂŒkkamine ei tohiks olla piinlik. Kui te ĂŒtlete: "Me ei vĂ”ta seda teenust vastu, meil on 20 ĂŒlesannet, tehke need Ă€ra, siis vĂ”tame vastu", on see normaalne. SĂŒdametunnistus ei tohiks olla haige selle pĂ€rast, et panete juhtiva kohaliku haldaja vĂ”i et Ă€ri kulutab raha. Äri kulutab hiljem rohkem.

Meil oli juhtum, kui me otsustasime teha pilootprojekti allhanke kaudu.

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

See oli Ă”igeaegselt valmis, ja see oli ainus kvaliteedinĂ€itaja. SeetĂ”ttu tehti veel ĂŒks prototĂŒĂŒp, juba mitte enam pĂ€ris prototĂŒĂŒp. Need teenused vĂ”eti vastu, administratiivselt öeldi, et siin on teie kood, siin on teie meeskond, siin on teie juht. Teenused hakkasid tĂ”eliselt tulu tooma. Samas on nad endiselt orvud, keegi ei saa aru, kuidas nad töötavad, ja juhid pĂŒĂŒavad igati nende ĂŒlesannetest distantseeruda.

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

On veel ĂŒks suurepĂ€rane mĂ”iste — partisanide arendamine. Kui mingi osakond, tavaliselt turundusosakond, soovib hĂŒpoteesi testida ja tellib teenuse tĂ€ielikult vĂ€listootjalt. Sellele hakkab liikuma liiklus, nad vormistavad dokumendid, allkirjastavad lepingud allhankijaga, tulevad tööle ja ĂŒtlevad: "Meil on siin teenus, millel on juba liiklus, see toob meile raha, vĂ”tame selle vastu." Meie oleme: "Oota, kuidas see nii on?"

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Ja veel ĂŒks viis orvuteenuse saamiseks: kui mingi meeskond Ă€kitselt koormatud, ĂŒtleb juhtkond: "Kandke selle meeskonna teenus teisele meeskonnale, kellel on vĂ€hem koormust." Ja siis kandke kolmandasse meeskonda ja vahetage managerit. Ja lĂ”puks on meil taas orvuteenused.

Mis on probleem orvudega?

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Kes ei tea, see on Rootsis laevaks ehitatud Wasa, kuulus selle poolest, et see hÀvis 5 minutit pÀrast vette laskmist. Ja Rootsi kuningas ei karistanud kedagi. See ehitati kahe insenerigeneratsiooni poolt, kes ei osanud selliseid laevu ehitada. Ahnusest tulenev efekt.

Laev oleks vĂ”inud tegelikult palju halvemini uppuda, nĂ€iteks kui kuningas oleks juba tormi lĂ€inud. Nii et, see uppus kohe, agiilsuse seisukohalt on see hea — ebaĂ”nnestuda varakult.

Kui me ebaÔnnestusime varakult, siis tavaliselt probleeme ei ole. NÀiteks, vastuvÔtu ajal saadeti tootmisse viimiseks. Aga kui me ebaÔnnestusime juba tootmises, kui raha on investeeritud, siis vÔivad probleemid tekkida. TagajÀrjed, nagu Àris öeldakse.

Miks on orvuteenused ohtlikud:

  • Teenused vĂ”ivad Ă€kki katki minna.
  • Teenuse parandamine vĂ”tab kaua aega vĂ”i ei parandata ĂŒldse.
  • Turvaprobleemid.
  • Probleemid tĂ€ienduste ja uuendustega.
  • Kui oluline teenus katki lĂ€heb, kannatab ettevĂ”tte maine.

Mida teha orvuteenustega?

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Kordan ĂŒtlen, mida teha. Esiteks, peab olema dokumentatsioon. 7 aastat Banki.ru-s Ă”petas mind, et testijad ei tohiks arendajatesse pimesi uskuda ja kasutus ei tohiks uskuda kĂ”iki. Tuleb kontrollida.

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Teiseks, tuleb kirjutada suhtlemisskeeme, kuna on juhtumeid, kui teenused, mis pole vÀga hÀsti vastu vÔetud, sisaldavad sÔltuvusi, millest keegi pole rÀÀkinud. NÀiteks, kui arendajad on teenuse seadnud oma vÔtme kaudu Yandex. Kaardile vÔi Dadata. Kui tasuta limiit lÔpeb, kÔik laguneb ja sa ei tea, mis juhtus. KÔik sellised komistuskivid peavad olema kirjeldatud: teenuses kasutatakse Dadata, Sms jne.

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Kolmandaks, töö tehnilise vĂ”lga. Kui teete mingisuguseid kiiruslahendusi vĂ”i vĂ”tate teenuse ja ĂŒtlete, et midagi tuleb teha, tuleb jĂ€lgida, et seda ka teostataks. Sest hiljem vĂ”ib selguda, et vĂ€ike auk pole nii vĂ€ike ja sa kukud sinna sisse.

Arhitektuuriliste ĂŒlesannetega oli meil lugu Sphinxiga. Ühes teenuses kasutati Sphinxit nimekirjade sisestamiseks. Lihtsalt nimekiri lehekĂŒlgede kaupa, kuid sellegipoolest indekseeriti see iga öö. See koosnes kahest indeksist: ĂŒks indeks oli suures mahus ja see indekseeriti igal ööl, ja oli veel vĂ€ike indeks, mis sellele kĂŒlge asetati. Igal pĂ€eval, 50% tĂ”enĂ€osusega kas plahvatab vĂ”i mitte, indekseerimise ajal purunes indeks ning uudised ei vĂ€rskendunud meie esilehel. Alguses oli see 5 minutit, kuni indeks uuesti indekseeriti, siis kasvas indeks ning mingi hetkel hakkas see indekseerima 40 minutit. Kui me selle vĂ€lja lĂ”ikasime, hingasime kergendatult, sest oli selge, et möödub veel natuke aega ja meie indeks hakkab igapĂ€evaselt kogu tööpĂ€eva jooksul indekseerima. See oleks meie portaali jaoks ebaĂ”nnestumine, kaheksa tundi ilma uudisteta - kĂ”ik, Ă€ri seiskus.

Tööplaan orvuteenusele

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Tegelikult on see vÀga raske, kuna DevOps tÀhendab suhtlemist. Tahaks olla oma kolleegidega heades suhetes, kuid kui sa lööd kolleegide ja juhtide pea reglamentidega, vÔivad nad tunda vastuolulisi tundeid inimeste suhtes, kes nii teevad.

Lisaks nendele punktidele on veel ĂŒks oluline asi: iga konkreetse teenuse, iga konkreetse juurdepÀÀsuprotseduuri eest peavad vastutama spetsiifilised inimesed. Kui inimesi ei ole ja tuleb kaasata teisi, kes peavad kĂ”ik seda Ă”ppima, siis muutub see keeruliseks.

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Kui see kÔik ei aidanud ja orvuteenuse kinnitamisest ei pÀÀse, keegi ei soovi seda enda kÀtte vÔtta, dokumentatsiooni ei kirjutata, meeskond, keda sellele teenusele kutsuti, keelab midagi teha, on lihtne lahendus - kÔik teha uuesti.

See tÀhendab, et vÔtate teenuse nÔudmised uuesti ja kirjutate uue teenuse, mis on parem, paremal platvormil, ilma kummaliste tehniliste lahendusteta. Ja migreerite selle sÔda kÀies.

Orvuteenused: mikroteenuste arhitektuuri vastaspool.

Meil oli olukord, kui vĂ”tsime teenuse Yii 1 pealt ja mĂ”istsime, et ei saa seda enam edasi arendada, kuna meil ei olnud rohkem arendajaid, kes oskasid Yii 1 sĂŒvitsi kirjutada. KĂ”ik arendajad oskavad hĂ€sti kirjutada kolmandal Symfony-l. Mida teha? MÀÀrasime aega, meeskonna ja manageri, ĂŒmberkirjutasime projekti ja sujuvalt suunatud liiklus sellele.

PĂ€rast seda saab vana teenuse kustutada. See on minu lemmikprotseduur, kui sĂŒsteemi halduskonfiguratsioonide hulgast tuleb eemaldada mingi teenus ja seejĂ€rel vaadata, et kĂ”ik tootmisseadmed oleksid vĂ€lja lĂŒlitatud, et arendajatele ei jÀÀks mingeid jĂ€lgi. Repositoorium Git-is jÀÀb alles.

See on kÔik, millest soovisin rÀÀkida, olen valmis arutama, teema on vaidluslik, paljudele on see tuttav.

Esitluste slaididel rÀÀgiti ĂŒhtsustamisest keele osas. NĂ€iteks tuuakse vĂ€lja piltide suuruse muutmine. Kas tĂ”epoolest on vajalik minna rangelt ĂŒhte keelde? Sest pildi suuruse muutmine PHP-s, noh, seda oleks vĂ”inud tĂ”esti teha ka Golangis.

Tegelikult ei ole see hĂ€davajalik, nagu kĂ”ik praktikad. MĂ”nes olukorras vĂ”ib see isegi olla soovimatu. Kuid on oluline mĂ”ista, et kui teie ettevĂ”ttes on 50 inimese suurune tehniline osakond, neist 45 PHP arendajad, veel 3 DevOps'i insenerid, kes valdavad Pythonit, Ansible'i, Puppetit ja midagi sellist, ja ainult ĂŒks neist kirjutab mĂ”nes Go keeles pildiresiiseerimise teenuse, siis kui ta lahkub, lahkub ka ekspertteave koos temaga. Ja teil tuleb otsida turul spetsiifilist arendajat, kes teab seda keelt, eriti kui see on haruldane. See tĂ€hendab, et organisatsiooni tasandil on see probleemne. DevOps'i vaatenurgast vajate mitte lihtsalt valmis mĂ€ngureĆŸiimide komplekti kloonimist, mille abil teenuseid ĂŒles seada, vaid peate need uuesti kirjutama.

Me töötame praegu teenuse kallal Node.js-is ja see tuleb justkui platvormiks igale arendajale eraldi keeles. Kuid me istusime ja mĂ”tlesime, et mĂ€ng on seda vÀÀrt. See on kĂŒsimus, mille ĂŒle tasub natuke mĂ”elda.

Kuidas te jÀlgite oma teenuseid? Kuidas kogute ja jÀlgite logisid?

Kogume logisid Elasticsearchis ja salvestame need Kibanas, sÔltuvalt sellest, kas tegemist on tootmis- vÔi testkeskkondadega, kasutame erinevaid kogujad. Kusagil on Lumberjack, kusagil veel midagi, ma ei mÀleta enam. Ja on veel mÔnes teenuses teatud kohad, kus paigaldame Telegrafi ja saadame selle veel kuhugi eraldi.

Kuidas elada Puppet ja Ansible sama keskkonna sees?

Tegelikult on meil praegu kaks keskkonda, ĂŒks on Puppet ja teine Ansible. Töötame selle nimel, et neid hĂŒbriidida. Ansible on hea keskkond algselt seadistamiseks, Puppet on halb algse seadistamise jaoks, kuna nĂ”uab otsest kĂ€sitööde tegemist keskkonnas, ja Puppet tagab konfiguratsiooni kooskĂ”la. See tĂ€hendab, et keskkond toetab ennast pidevalt kursis, kuid et Ansible'iga masin pĂŒsiks kursis, tuleb seal regulaarselt mĂ€ngureĆŸiime teostada. See on selline erinevus.

Kuidas te sĂ€ilitatega ĂŒhilduvust? Kas teil on konfiguratsioone nii Ansible'is kui Puppetis?

See on meie suur probleem, me toetame ĂŒhilduvust kĂ€sitsi ja mĂ”tleme, kuidas sellest kĂ”igest kuhugi edasi liikuda. Meie puhul vĂ”ib Puppet paigaldada pakette ja toetada seal mingeid linke, samas kui Ansible nĂ€iteks paigaldab koodi ja kohandab sinna vĂ€rskeid rakenduste ĐșĐŸĐœŃ„ĐžĐłŃƒŃ€Đ°Ń†ĐžĐž.

Esitluses rÀÀgiti erinevatest Ruby versioonidest. Milline lahendus?

Me kohtusime sellega ĂŒhes kohas ja peame seda pidevalt meeles pidama. Lihtsalt keerasime vĂ€lja osa, mis töötas Ruby versioonil, mis ei olnud rakendustega ĂŒhilduv, ja hoidsime selle eraldi.

Sel aastal toimub konverents DevOpsDays Moskvasse 7. detsembril «Tehnopolis». Me vÔtame ettekandeteemade ettepanekuid vastu kuni 11. novembrini. Kirjutage meile, kui soovite esineda.

Osalejate registreerimine on avatud, liituge!

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster