Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Siaradodd Cyfarwyddwr Gweithrediadau porth Banki.ru, Andrey Nikolsky, yn y gynhadledd y llynedd Dyddiau DevOps Moscow am wasanaethau amddifad: sut i adnabod plentyn amddifad yn y seilwaith, pam mae gwasanaethau amddifad yn ddrwg, beth i'w wneud â nhw, a beth i'w wneud os nad oes dim yn helpu.

O dan y toriad mae fersiwn testun o'r adroddiad.


Helo cydweithwyr! Fy enw i yw Andrey, rwy'n bennaeth gweithrediadau yn Banki.ru.

Mae gennym wasanaethau mawr, mae'r rhain yn wasanaethau monolithig o'r fath, mae yna wasanaethau mewn ystyr mwy clasurol, ac mae yna rai bach iawn. Yn fy nherminoleg gweithiwr-gwerinwr, dywedaf, os yw gwasanaeth yn syml ac yn fach, yna mae'n ficro, ac os nad yw'n syml iawn ac yn fach, yna dim ond gwasanaeth ydyw.

Manteision gwasanaethau

Byddaf yn mynd dros fanteision y gwasanaethau yn gyflym.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Y cyntaf yw graddio. Gallwch chi wneud rhywbeth ar y gwasanaeth yn gyflym a dechrau cynhyrchu. Rydych chi wedi derbyn traffig, rydych chi wedi clonio'r gwasanaeth. Mae gennych chi fwy o draffig, rydych chi wedi'i glonio ac yn byw gydag ef. Mae hwn yn fonws da, ac, mewn egwyddor, pan ddechreuasom, fe’i hystyriwyd fel y peth pwysicaf i ni, pam yr ydym yn gwneud hyn i gyd.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Yn ail, datblygiad ynysig, pan fydd gennych nifer o dimau datblygu, sawl datblygwr gwahanol ym mhob tîm, ac mae pob tîm yn datblygu ei wasanaeth ei hun.

Gyda thimau mae naws. Mae datblygwyr yn wahanol. Ac mae yna, er enghraifft, pobl pluen eira. Gwelais hwn gyntaf gyda Maxim Dorofeev. Weithiau mae pobl plu eira ar rai timau ac nid ar eraill. Mae hyn yn gwneud y gwahanol wasanaethau a ddefnyddir ar draws y cwmni ychydig yn anwastad.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Edrychwch ar y llun: mae hwn yn ddatblygwr da, mae ganddo ddwylo mawr, gall wneud llawer. Y brif broblem yw o ble mae'r dwylo hyn yn dod.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Mae gwasanaethau yn ei gwneud hi'n bosibl defnyddio gwahanol ieithoedd rhaglennu sy'n fwy addas ar gyfer gwahanol dasgau. Mae rhywfaint o wasanaeth yn Go, mae rhai yn Erlang, mae rhai yn Ruby, mae rhywbeth yn PHP, mae rhywbeth yn Python. Yn gyffredinol, gallwch ehangu'n eang iawn. Mae naws yma hefyd.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Mae pensaernïaeth sy'n canolbwyntio ar wasanaeth yn ymwneud yn bennaf â devops. Hynny yw, os nad oes gennych chi awtomeiddio, nid oes unrhyw broses leoli, os ydych chi'n ei ffurfweddu â llaw, gall eich ffurfweddiadau newid o enghraifft gwasanaeth i enghraifft, ac mae'n rhaid i chi fynd yno i wneud rhywbeth, yna rydych chi mewn uffern.

Er enghraifft, mae gennych chi 20 gwasanaeth ac mae angen i chi eu defnyddio â llaw, mae gennych chi 20 consol, ac rydych chi'n pwyso “enter” fel ninja ar yr un pryd. Nid yw'n dda iawn.

Os oes gennych chi wasanaeth ar ôl profi (os oes profion, wrth gwrs), a bod angen i chi ei orffen gyda ffeil o hyd fel ei fod yn gweithio wrth gynhyrchu, mae gen i newyddion drwg i chi hefyd.

Os ydych chi'n dibynnu ar wasanaethau Amazon penodol ac yn gweithio yn Rwsia, yna ddeufis yn ôl roedd gennych chi hefyd "Mae popeth o gwmpas ar dân, rwy'n iawn, mae popeth yn cŵl."

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Rydym yn defnyddio Ansible i awtomeiddio lleoli, Pyped ar gyfer cydgyfeirio, Bambŵ i awtomeiddio'r defnydd, a Confluence i ddisgrifio'r cyfan rywsut.

Ni fyddaf yn canolbwyntio ar hyn yn fanwl, oherwydd mae’r adroddiad yn ymwneud mwy ag arferion rhyngweithio, ac nid â gweithredu technegol.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Er enghraifft, rydym wedi cael problemau lle mae Puppet ar y gweinydd yn gweithio gyda Ruby 2, ond mae rhywfaint o gymhwysiad wedi'i ysgrifennu ar gyfer Ruby 1.8, ac nid ydyn nhw'n gweithio gyda'i gilydd. Mae rhywbeth yn mynd o'i le yno. A phan fydd angen i chi redeg fersiynau lluosog o Ruby ar un peiriant, byddwch fel arfer yn dechrau cael problemau.

Er enghraifft, rydym yn rhoi llwyfan i bob datblygwr lle mae bron popeth sydd gennym, yr holl wasanaethau y gellir eu datblygu, fel bod ganddo amgylchedd ynysig, y gall ei dorri a'i adeiladu fel y mae'n dymuno.

Mae'n digwydd bod angen rhywfaint o becyn a luniwyd yn arbennig arnoch gyda chefnogaeth ar gyfer rhywbeth yno. Mae'n eithaf anodd. Gwrandewais ar adroddiad lle mae delwedd y Docker yn pwyso 45 GB. Yn Linux, wrth gwrs, mae'n symlach, mae popeth yn llai yno, ond o hyd, ni fydd digon o le.

Wel, mae yna ddibyniaethau gwrthdaro, pan fydd un darn o'r prosiect yn dibynnu ar lyfrgell o un fersiwn, mae darn arall o'r prosiect yn dibynnu ar fersiwn arall, ac nid yw'r llyfrgelloedd wedi'u gosod gyda'i gilydd o gwbl.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Mae gennym ni wefannau a gwasanaethau yn PHP 5.6, mae gennym ni gywilydd ohonyn nhw, ond beth allwn ni ei wneud? Dyma ein un safle. Mae yna wefannau a gwasanaethau ar PHP 7, mae mwy ohonyn nhw, nid oes gennym ni gywilydd ohonyn nhw. Ac mae gan bob datblygwr ei sylfaen ei hun lle mae'n llifio'n hapus.

Os ydych chi'n ysgrifennu mewn cwmni mewn un iaith, yna mae tri pheiriant rhithwir fesul datblygwr yn swnio'n normal. Os oes gennych chi wahanol ieithoedd rhaglennu, yna mae'r sefyllfa'n gwaethygu.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Mae gennych chi wefannau a gwasanaethau ar hyn, ar hwn, yna gwefan arall ar gyfer Go, un safle ar gyfer Ruby, a rhai Redis eraill ar yr ochr. O ganlyniad, mae hyn i gyd yn troi'n faes mawr ar gyfer cefnogaeth, a thrwy'r amser gall rhywfaint ohono dorri.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Felly, fe wnaethom ddisodli manteision yr iaith raglennu gyda'r defnydd o wahanol fframweithiau, gan fod fframweithiau PHP yn dra gwahanol, mae ganddyn nhw alluoedd gwahanol, gwahanol gymunedau, a chefnogaeth wahanol. A gallwch chi ysgrifennu gwasanaeth fel bod gennych chi rywbeth yn barod ar ei gyfer yn barod.

Mae gan bob gwasanaeth ei dîm ei hun

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Ein prif fantais, sydd wedi crisialu dros nifer o flynyddoedd, yw bod gan bob gwasanaeth ei dîm ei hun. Mae hyn yn gyfleus ar gyfer prosiect mawr, gallwch arbed amser ar ddogfennaeth, mae rheolwyr yn adnabod eu prosiect yn dda.

Gallwch chi gyflwyno tasgau o gefnogaeth yn hawdd. Er enghraifft, chwalodd y gwasanaeth yswiriant. Ac ar unwaith mae'r tîm sy'n delio ag yswiriant yn mynd i'w drwsio.

Mae nodweddion newydd yn cael eu creu yn gyflym, oherwydd pan fydd gennych un gwasanaeth atomig, gallwch chi sgriwio rhywbeth i mewn iddo yn gyflym.

A phan fyddwch chi'n torri'ch gwasanaeth, ac mae hyn yn anochel yn digwydd, ni wnaethoch chi effeithio ar wasanaethau pobl eraill, ac nid yw datblygwyr o dimau eraill yn dod i redeg atoch chi ac yn dweud: "Ay-ay, peidiwch â gwneud hynny."

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Fel bob amser, mae yna arlliwiau. Mae gennym dimau sefydlog, mae rheolwyr wedi'u hoelio ar y tîm. Mae yna ddogfennau clir, mae rheolwyr yn monitro popeth yn agos. Mae gan bob tîm gyda rheolwr sawl gwasanaeth, ac mae pwynt cymhwysedd penodol.

Os yw'r timau'n arnofio (rydyn ni hefyd yn defnyddio hwn weithiau), mae yna ddull da o'r enw “map seren”.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Mae gennych restr o wasanaethau a phobl. Mae seren yn golygu bod y person yn arbenigwr yn y gwasanaeth hwn, mae llyfr yn golygu bod y person yn astudio'r gwasanaeth hwn. Tasg y person yw newid y llyfryn am seren. Ac os nad oes dim wedi'i ysgrifennu o flaen y gwasanaeth, yna mae problemau'n dechrau, y byddaf yn siarad amdanynt ymhellach.

Sut mae gwasanaethau amddifad yn ymddangos?

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Y broblem gyntaf, y ffordd gyntaf o gael gwasanaeth amddifad yn eich seilwaith yw tanio pobl. A oes unrhyw un erioed wedi cael busnes i fodloni terfynau amser cyn i dasgau gael eu hasesu? Weithiau mae'n digwydd bod terfynau amser yn dynn ac yn syml iawn nid oes digon o amser ar gyfer dogfennu. “Mae angen i ni drosglwyddo’r gwasanaeth i gynhyrchu, yna byddwn ni’n ei ychwanegu.”

Os yw'r tîm yn fach, mae'n digwydd bod yna un datblygwr sy'n ysgrifennu popeth, mae'r gweddill yn yr adenydd. “Ysgrifennais y bensaernïaeth sylfaenol, gadewch i ni ychwanegu’r rhyngwynebau.” Yna ar ryw adeg mae'r rheolwr, er enghraifft, yn gadael. Ac yn ystod y cyfnod hwn, pan fydd y rheolwr wedi gadael ac nad oes un newydd wedi'i benodi eto, y datblygwyr eu hunain sy'n penderfynu i ble mae'r gwasanaeth yn mynd a beth sy'n digwydd yno. Ac fel y gwyddom (gadewch i ni fynd yn ôl ychydig o sleidiau), mewn rhai timau mae yna bobl pluen eira, weithiau arweinydd tîm pluen eira. Yna mae'n rhoi'r gorau iddi, ac rydym yn cael gwasanaeth amddifad.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Ar yr un pryd, nid yw tasgau o gefnogaeth ac o fusnes yn diflannu; Os bu unrhyw wallau pensaernïol yn ystod datblygiad y gwasanaeth, maent hefyd yn y pen draw yn yr ôl-groniad. Mae'r gwasanaeth yn dirywio'n araf.

Sut i adnabod plentyn amddifad?

Mae'r rhestr hon yn disgrifio'r sefyllfa yn dda. Pwy ddysgodd unrhyw beth am eu seilwaith?

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Ynglŷn â gwaith o gwmpas wedi'i ddogfennu: mae gwasanaeth ac, yn gyffredinol, mae'n gweithio, mae ganddo lawlyfr dwy dudalen ar sut i weithio gydag ef, ond nid oes neb yn gwybod sut mae'n gweithio y tu mewn.

Neu, er enghraifft, mae rhyw fath o fyriwr cyswllt. Er enghraifft, ar hyn o bryd mae gennym dri byriwr cyswllt yn cael eu defnyddio at wahanol ddibenion mewn gwahanol wasanaethau. Dim ond y canlyniadau yw'r rhain.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Nawr byddaf yn gapten yr amlwg. Beth ddylid ei wneud? Yn gyntaf, mae angen i ni drosglwyddo'r gwasanaeth i reolwr arall, tîm arall. Os nad yw arweinydd eich tîm wedi rhoi’r gorau iddi eto, yna yn y tîm arall hwn, pan fyddwch yn deall bod y gwasanaeth fel plentyn amddifad, mae angen ichi gynnwys rhywun sy’n deall o leiaf rhywbeth amdano.

Y prif beth: mae'n rhaid i chi gael y gweithdrefnau trosglwyddo wedi'u hysgrifennu mewn gwaed. Yn ein hachos ni, rydw i fel arfer yn monitro hyn, oherwydd mae angen y cyfan arnaf i weithio. Mae rheolwyr angen iddo gael ei gyflwyno'n gyflym, ac nid yw'r hyn sy'n digwydd iddo yn ddiweddarach mor bwysig iddynt hwy mwyach.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Y ffordd nesaf o wneud plentyn amddifad yw “Byddwn yn ei wneud ar gontract allanol, bydd yn gyflymach, ac yna byddwn yn ei drosglwyddo i'r tîm.” Mae’n amlwg bod gan bawb rai cynlluniau yn y tîm, tro. Yn aml mae cwsmer busnes yn meddwl y bydd y cwmni allanol yn gwneud yr un peth â'r adran dechnegol sydd gan y cwmni. Er bod eu cymhellion yn wahanol. Mae yna atebion technolegol rhyfedd ac atebion algorithmig rhyfedd wrth roi gwaith ar gontract allanol.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Er enghraifft, cawsom wasanaeth a oedd â Sphinx mewn amrywiol fannau annisgwyl. Fe ddywedaf wrthych yn ddiweddarach beth oedd yn rhaid i mi ei wneud.

Mae gan allanolwyr fframweithiau hunan-ysgrifenedig. PHP moel yw hwn gyda phast copi o brosiect blaenorol, lle gallwch ddod o hyd i bob math o bethau. Mae sgriptiau lleoli yn anfantais fawr pan fydd angen i chi ddefnyddio rhai sgriptiau Bash cymhleth i newid sawl llinell mewn rhai ffeil, a gelwir y sgriptiau defnyddio hyn gan ryw drydedd sgript. O ganlyniad, rydych chi'n newid y system lleoli, yn dewis rhywbeth arall, yn neidio, ond nid yw'ch gwasanaeth yn gweithio. Oherwydd yno roedd angen rhoi 8 dolen arall rhwng gwahanol ffolderi. Neu mae'n digwydd bod mil o gofnodion yn gweithio, ond nid yw can mil yn gweithio mwyach.

Byddaf yn parhau i fod yn gapten. Mae derbyn gwasanaeth ar gontract allanol yn weithdrefn orfodol. A oes unrhyw un erioed wedi cael gwasanaeth allanol yn cyrraedd a heb gael ei dderbyn yn unman? Nid yw hyn mor boblogaidd, wrth gwrs, â gwasanaeth amddifad, ond o hyd.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Mae angen gwirio'r gwasanaeth, mae angen adolygu'r gwasanaeth, mae angen newid cyfrineiriau. Roedd gennym ni achos pan wnaethon nhw roi gwasanaeth i ni, mae yna banel gweinyddol “os mewngofnodi == 'admin' && password == 'admin'...”, mae wedi'i ysgrifennu reit yn y cod. Rydyn ni'n eistedd ac yn meddwl, a phobl yn ysgrifennu hwn yn 2018?

Mae profi cynhwysedd storio hefyd yn beth angenrheidiol. Mae angen ichi edrych ar yr hyn fydd yn digwydd ar gan mil o gofnodion, hyd yn oed cyn i chi roi'r gwasanaeth hwn i mewn i gynhyrchu yn rhywle.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Ni ddylai fod dim cywilydd mewn anfon gwasanaeth i'w wella. Pan ddywedwch: “Ni fyddwn yn derbyn y gwasanaeth hwn, mae gennym 20 o dasgau, gwnewch nhw, yna byddwn yn derbyn,” mae hyn yn normal. Ni ddylai eich cydwybod gael ei brifo gan y ffaith eich bod yn sefydlu rheolwr neu fod y busnes yn gwastraffu arian. Bydd y busnes wedyn yn gwario mwy.

Cawsom achos pan benderfynon ni allanoli prosiect peilot.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Fe'i cyflwynwyd ar amser, a dyma'r unig faen prawf ansawdd. Dyna pam y gwnaethom ni brosiect peilot arall, nad oedd hyd yn oed yn beilot mwyach. Derbyniwyd y gwasanaethau hyn, a thrwy ddulliau gweinyddol dywedasant, dyma eich cod, dyma'r tîm, dyma'ch rheolwr. Mae'r gwasanaethau eisoes wedi dechrau gwneud elw. Ar yr un pryd, mewn gwirionedd, maent yn dal i fod yn blant amddifad, nid oes neb yn deall sut maent yn gweithio, ac mae rheolwyr yn gwneud eu gorau i wadu eu tasgau.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Mae cysyniad gwych arall - datblygiad gerila. Pan fydd rhyw adran, fel arfer yr adran farchnata, eisiau profi rhagdybiaeth ac yn gorchymyn gosod y gwasanaeth cyfan ar gontract allanol. Mae traffig yn dechrau arllwys i mewn iddo, maen nhw'n cau'r dogfennau, yn llofnodi dogfennau gyda'r contractwr, yn dod i rym ac yn dweud: “Dudes, mae gennym ni wasanaeth yma, mae ganddo draffig eisoes, mae'n dod ag arian i ni, gadewch i ni ei dderbyn.” Roedden ni fel, “Oppa, sut gall hynny fod.”

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

A ffordd arall o gael gwasanaeth amddifad: pan fydd rhai tîm yn cael eu gorlwytho'n sydyn, mae'r rheolwyr yn dweud: “Gadewch i ni drosglwyddo gwasanaeth y tîm hwn i dîm arall, mae ganddo lwyth llai.” Ac yna byddwn yn ei drosglwyddo i drydydd tîm ac yn newid y rheolwr. Ac yn y diwedd mae gennym ni amddifad eto.

Beth yw'r broblem gyda phlant amddifad?

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Pwy sydd ddim yn gwybod, dyma'r llong ryfel Wasa, a godwyd yn Sweden, sy'n enwog am y ffaith iddi suddo 5 munud ar ôl ei lansio. Ac ni wnaeth Brenin Sweden, gyda llaw, ddienyddio neb am hyn. Fe'i hadeiladwyd gan ddwy genhedlaeth o beirianwyr nad oeddent yn gwybod sut i adeiladu llongau o'r fath. Effaith naturiol.

Gallai'r llong fod wedi suddo, gyda llaw, mewn ffordd llawer gwaeth, er enghraifft, pan oedd y brenin eisoes yn marchogaeth arni yn rhywle mewn storm. Ac felly, boddodd ar unwaith, yn ôl Agile mae'n dda methu'n gynnar.

Os byddwn yn methu'n gynnar, nid oes unrhyw broblemau fel arfer. Er enghraifft, yn ystod ei dderbyn fe'i hanfonwyd i'w hadolygu. Ond os ydym eisoes yn methu â chynhyrchu, pan fydd arian wedi'i fuddsoddi, yna efallai y bydd problemau. Canlyniadau, fel y'u gelwir mewn busnes.

Pam mae gwasanaethau amddifad yn beryglus:

  • Gall y gwasanaeth dorri'n sydyn.
  • Mae'r gwasanaeth yn cymryd amser hir i'w atgyweirio neu nid yw'n cael ei atgyweirio o gwbl.
  • Problemau diogelwch.
  • Problemau gyda gwelliannau a diweddariadau.
  • Os bydd gwasanaeth pwysig yn chwalu, mae enw da'r cwmni yn dioddef.

Beth i'w wneud gyda gwasanaethau amddifad?

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Ailadroddaf beth i'w wneud eto. Yn gyntaf, rhaid cael dogfennaeth. Dysgodd 7 mlynedd yn Banki.ru mi na ddylai profwyr gymryd gair y datblygwyr, ac ni ddylai gweithrediadau gymryd gair pawb. Mae angen i ni wirio.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Yn ail, mae angen ysgrifennu diagramau rhyngweithio, oherwydd mae'n digwydd bod gwasanaethau nad ydynt yn cael derbyniad da iawn yn cynnwys dibyniaethau na ddywedodd neb amdanynt. Er enghraifft, gosododd y datblygwyr y gwasanaeth ar eu allwedd i rai Yandex.Maps neu Dadata. Rydych chi wedi rhedeg allan o derfyn rhad ac am ddim, mae popeth wedi torri, a dydych chi ddim yn gwybod beth ddigwyddodd o gwbl. Dylid disgrifio pob cribin o'r fath: mae'r gwasanaeth yn defnyddio Dadata, SMS, rhywbeth arall.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Yn drydydd, gweithio gyda dyled dechnegol. Pan fyddwch yn gwneud rhyw fath o faglau neu’n derbyn gwasanaeth ac yn dweud bod angen gwneud rhywbeth, mae angen ichi wneud yn siŵr ei fod yn cael ei wneud. Oherwydd wedyn efallai y bydd yn troi allan nad yw'r twll bach mor fach, a byddwch yn cwympo drwyddo.

Gyda thasgau pensaernïol, cawsom stori am Sffincs. Defnyddiodd un o'r gwasanaethau Sphinx i nodi rhestrau. Dim ond rhestr dudalenedig, ond roedd yn cael ei hail-fynegeio bob nos. Fe'i casglwyd o ddau fynegai: roedd un mawr yn cael ei fynegeio bob nos, ac roedd mynegai bach hefyd yn cael ei sgriwio iddo. Bob dydd, gyda thebygolrwydd o 50% naill ai o fomio ai peidio, fe chwalodd y mynegai yn ystod y cyfrifiad, a rhoddodd ein newyddion y gorau i ddiweddaru ar y brif dudalen. Ar y dechrau cymerodd 5 munud i'r mynegai gael ei ail-fynegeio, yna tyfodd y mynegai, ac ar ryw adeg dechreuodd gymryd 40 munud i ail-fynegeio. Pan dorrwyd hyn allan, anadlasom ochenaid o ryddhad, oherwydd yr oedd yn amlwg y byddai ychydig mwy o amser yn mynd heibio a byddai ein mynegai yn cael ei ail-fynegeio yn llawn amser. Bydd hyn yn fethiant i'n porth, nid oes newyddion am wyth awr - dyna ni, mae busnes wedi dod i ben.

Cynllun ar gyfer gweithio gyda gwasanaeth amddifad

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Mewn gwirionedd, mae hyn yn anodd iawn i'w wneud, oherwydd mae devops yn ymwneud â chyfathrebu. Rydych chi eisiau bod ar delerau da gyda’ch cyd-Aelodau, a phan fyddwch chi’n taro eich cydweithwyr a’ch rheolwyr dros y pen gyda rheoliadau, efallai y bydd ganddyn nhw deimladau croes tuag at y bobl hynny sy’n gwneud hyn.

Yn ogystal â'r holl bwyntiau hyn, mae peth pwysig arall: rhaid i bobl benodol fod yn gyfrifol am bob gwasanaeth penodol, ar gyfer pob adran benodol o'r weithdrefn leoli. Pan nad oes unrhyw bobl a bod yn rhaid i chi ddenu rhai pobl eraill, i astudio'r holl fater hwn, mae'n dod yn anodd.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Pe na bai hyn i gyd yn helpu, a bod eich gwasanaeth amddifad yn dal i fod yn amddifad, nid oes unrhyw un eisiau ei dderbyn, nid yw'r ddogfennaeth wedi'i hysgrifennu, mae'r tîm a alwyd i'r gwasanaeth hwn yn gwrthod gwneud unrhyw beth, mae yna ffordd syml - i ail-wneud popeth.

Hynny yw, rydych chi'n cymryd y gofynion ar gyfer y gwasanaeth o'r newydd ac yn ysgrifennu gwasanaeth newydd, yn well, ar lwyfan gwell, heb atebion technolegol rhyfedd. Ac rydych chi'n mudo iddo mewn brwydr.

Gwasanaethau amddifad: anfantais (micro) pensaernïaeth gwasanaeth

Roedd gennym sefyllfa pan wnaethom gymryd gwasanaeth ar Yii 1 a sylweddoli na allem ei ddatblygu ymhellach, oherwydd fe wnaethom redeg allan o ddatblygwyr a allai ysgrifennu'n dda ar Yii 1. Mae pob datblygwr yn ysgrifennu'n dda ar Symfony XNUMX. Beth i'w wneud? Fe wnaethom ddyrannu amser, dyrannu tîm, neilltuo rheolwr, ailysgrifennu'r prosiect a newid traffig iddo'n ddidrafferth.

Ar ôl hyn, gellir dileu'r hen wasanaeth. Dyma fy hoff weithdrefn, pan fydd angen i chi gymryd a glanhau rhywfaint o wasanaeth o'r system rheoli cyfluniad ac yna mynd drwodd a gweld bod yr holl geir sy'n cael eu cynhyrchu wedi'u hanalluogi, fel nad oes gan y datblygwyr unrhyw olion ar ôl. Erys yr ystorfa yn Git.

Dyma'r cyfan roeddwn i eisiau siarad amdano, rwy'n barod i'w drafod, y pwnc yw holivar, mae llawer wedi nofio ynddo.

Roedd y sleidiau'n dweud eich bod chi'n uno ieithoedd. Un enghraifft oedd newid maint lluniau. A oes gwir angen ei gyfyngu'n llym i un iaith? Oherwydd y gellid newid maint delwedd yn PHP, wel, mewn gwirionedd yn Golang.

Mewn gwirionedd, mae'n ddewisol, fel pob arfer. Efallai, mewn rhai achosion, ei fod hyd yn oed yn annymunol. Ond mae angen i chi ddeall, os oes gennych adran dechnegol mewn cwmni o 50 o bobl, mae 45 ohonynt yn arbenigwyr PHP, mae 3 arall yn ddevops sy'n adnabod Python, Ansible, Puppet a rhywbeth felly, a dim ond un ohonynt sy'n ysgrifennu mewn rhai math o iaith. Ewch gwasanaeth newid maint delwedd, yna pan fydd yn gadael, mae'r arbenigedd yn mynd gydag ef. Ac ar yr un pryd, bydd angen i chi chwilio am ddatblygwr marchnad-benodol sy'n gwybod yr iaith hon, yn enwedig os yw'n brin. Hynny yw, o safbwynt sefydliadol, mae hyn yn broblematig. O safbwynt devops, nid yn unig y bydd angen i chi glonio rhai set o lyfrau chwarae parod rydych chi'n eu defnyddio i ddefnyddio gwasanaethau, ond bydd yn rhaid i chi eu hysgrifennu eto.

Ar hyn o bryd rydym yn adeiladu gwasanaeth ar Node.js, a dim ond platfform gerllaw fydd hwn i bob datblygwr gydag iaith ar wahân. Ond eisteddasom a meddwl bod y gêm yn werth y gannwyll. Hynny yw, mae hwn yn gwestiwn i chi eistedd a meddwl amdano.

Sut ydych chi'n monitro eich gwasanaethau? Sut ydych chi'n casglu ac yn monitro logiau?

Rydyn ni'n casglu boncyffion yn Elasticsearch ac yn eu rhoi yn Kibana, ac yn dibynnu a yw'n amgylcheddau cynhyrchu neu brofi, defnyddir casglwyr gwahanol yno. Rhywle Lumberjack, rhywle arall rhywbeth arall, dwi ddim yn cofio. Ac mae rhai lleoedd o hyd mewn rhai gwasanaethau lle rydyn ni'n gosod Telegraf ac yn saethu yn rhywle arall ar wahân.

Sut i fyw gyda Phyped ac Ansible yn yr un amgylchedd?

Mewn gwirionedd, mae gennym ddau amgylchedd bellach, mae un yn Byped, a'r llall yn Ansible. Rydym yn gweithio i'w hybrideiddio. Mae Ansible yn fframwaith da ar gyfer gosod cychwynnol, mae Puppet yn fframwaith gwael ar gyfer gosod cychwynnol oherwydd mae angen gwaith ymarferol yn uniongyrchol ar y platfform, ac mae Puppet yn sicrhau cydgyfeiriant cyfluniad. Mae hyn yn golygu bod y platfform yn cadw ei hun mewn cyflwr cyfoes, ac er mwyn i'r peiriant ansibileiddio gael ei gadw'n gyfredol, mae angen i chi redeg llyfrau chwarae arno drwy'r amser yn eithaf aml. Dyna'r gwahaniaeth.

Sut ydych chi'n cynnal cydnawsedd? Oes gennych chi gyfluniadau yn Ansible a Phuppet?

Dyma ein poen mawr, rydym yn cynnal cydnawsedd â'n dwylo ac yn meddwl sut i symud ymlaen o hyn i gyd yn rhywle nawr. Mae'n ymddangos bod Puppet yn cyflwyno pecynnau ac yn cynnal rhai dolenni yno, ac mae Ansible, er enghraifft, yn cyflwyno'r cod ac yn addasu'r cyfluniadau cymhwysiad diweddaraf yno.

Roedd y cyflwyniad yn ymwneud â fersiynau gwahanol o Ruby. Pa ateb?

Daethom ar draws hyn mewn un lle, ac mae'n rhaid i ni ei gadw yn ein pennau drwy'r amser. Yn syml, fe wnaethom ddiffodd y rhan a oedd yn rhedeg ar y Ruby a oedd yn anghydnaws â'r cymwysiadau a'i gadw ar wahân.

y gynhadledd eleni Dyddiau DevOps Moscow yn cael ei gynnal ar Ragfyr 7 yn Technopolis. Rydym yn derbyn ceisiadau am adroddiadau tan Tachwedd 11. Ysgrifennu ni os hoffech chi siarad.

Mae cofrestru ar gyfer cyfranogwyr ar agor, ymunwch â ni!

Ffynhonnell: hab.com

Ychwanegu sylw