Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Li ta sanble ke devlopè Terraform ofri pi bon pratik jistis pratik pou travay ak enfrastrikti AWS. Gen jis yon nuans. Apre yon tan, kantite anviwònman ogmante, yo chak ak karakteristik pwòp li yo. Yon kopi prèske pil aplikasyon an parèt nan rejyon vwazen an. Epi kòd Terraform la bezwen ak anpil atansyon kopye ak modifye selon nouvo kondisyon yo oswa fè yon flokon.

Rapò mwen sou modèl nan Terraform pou konbat dezòd ak woutin manyèl sou pwojè gwo ak long.

Videyo:

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Mwen gen 40 an, mwen te nan IT pou 20 ane. Mwen te travay pou Ixtens pou 12 ane. Nou angaje nan devlopman ecommerce-kondwi. Apre sa, mwen te pratike pratik DevOps pou 5 ane.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Istwa mwen an pral sou eksperyans mwen nan yon pwojè nan yon konpayi ki gen non mwen pa pral di, kache dèyè yon akò ki pa divilgasyon.

Nimewo yo sou glisad la endike yo nan lòd yo konprann echèl la nan pwojè a. Ak tout sa mwen pral di pwochen an gen rapò ak Amazon.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Mwen te rantre nan pwojè sa a 4 ane de sa. Ak refactoring enfrastrikti a te nan gwo swing paske pwojè a te grandi. Ak modèl yo ki te itilize yo pa t 'ankò apwopriye. Ak bay tout kwasans lan te planifye nan pwojè a, li te nesesè yo vini ak yon bagay nouvo.

Mèsi Matvey ki yè te rakonte nou sak pase nan Dodo Pizza. Sa a se sa ki te pase isit la 4 ane de sa.

Devlopè yo te vini epi yo te kòmanse fè kòd enfrastrikti.

Rezon ki pi evidan poukisa sa a te mande se te tan nan mache. Li te nesesè asire ke ekip la DevOps pa t 'yon bouchon pandan deplwaye. Ak pami lòt bagay, Terraform ak Puppet yo te itilize nan nivo a trè premye.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Terraform se yon pwojè sous louvri soti nan HashiCorp. Ak pou moun ki pa menm konnen ki sa sa a se, pwochen glisad yo kèk.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Enfrastrikti kòm kòd vle di ke nou ka dekri enfrastrikti nou an epi mande kèk robo asire w ke nou resevwa resous yo ke nou dekri.

Pou egzanp, nou bezwen yon machin vityèl. Nou pral dekri epi ajoute plizyè paramèt obligatwa.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Apre sa, nou pral configured aksè a Amazon nan konsole a. Epi nou pral mande pou plan Terraform. Plan Terraform pral di: "Oke, nou ka fè bagay sa yo pou resous ou a." Epi yo pral ajoute omwen yon resous. Epi pa gen okenn chanjman espere.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Yon fwa ou kontan ak tout bagay, ou ka mande Terraform pou aplike epi Terraform pral kreye yon egzanp pou ou, epi w ap resevwa yon machin vityèl nan nwaj ou a.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Pli lwen pwojè nou an ap devlope. Nou ap ajoute kèk chanjman la. Nou mande plis egzanp, nou ajoute 53 antre.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

E nou repete. Tanpri planifye. Nou wè ki chanjman yo planifye. Nou aplike. E se konsa enfrastrikti nou an grandi.

Terraform itilize yon bagay ki rele fichye eta yo. Sa vle di, li sove tout chanjman ki ale nan Amazon nan yon dosye kote pou chak resous ou dekri, gen resous korespondan ki te kreye nan Amazon. Kidonk, lè deskripsyon yon resous chanje, Terraform konnen egzakteman sa ki bezwen chanje nan Amazon.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Fichye eta sa yo te orijinal jis fichye. Epi nou estoke yo nan Git, ki te trè enkonvenyan. Yon moun toujou bliye komèt chanjman, ak anpil konfli leve.

Koulye a, li posib yo sèvi ak backend la, sa vle di Terraform espesifye nan ki bokit ak nan ki kle dosye eta a ta dwe sove. Ak Terraform tèt li pral pran swen pou jwenn dosye eta sa a, fè tout majik la ak mete tounen rezilta final la.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Enfrastrikti nou an ap grandi. Men kòd nou an. Epi, koulye a nou pa jis vle kreye yon machin vityèl, nou vle gen yon anviwònman tès.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Terraform pèmèt ou kreye yon bagay tankou yon modil, se sa ki, dekri menm bagay la nan kèk katab.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Epi, pou egzanp, nan tès, rele modil sa a epi jwenn menm bagay la kòm si nou te egzekite Terraform aplike nan modil nan tèt li. Pou tès pral gen kòd sa a.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Pou pwodiksyon, nou ka voye kèk chanjman la, paske nan tès nou pa bezwen gwo sikonstans; nan pwodiksyon, gwo sikonstans yo jis itil.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Apre sa, mwen pral retounen nan pwojè a. Se te yon travay difisil, enfrastrikti te planifye a te gwo anpil. Epi li te nesesè yon jan kanmenm mete tout kòd la pou li ta pratik pou tout moun: tou de pou moun ki fè antretyen sou kòd sa a ak pou moun ki fè chanjman. Epi li te planifye ke nenpòt pwomotè ta ka ale ak ranje enfrastrikti a jan sa nesesè pou pati li nan platfòm la.

Sa a se yon pye bwa anyè ki rekòmande pa HashiCorp tèt li si ou gen yon gwo pwojè epi li fè sans pou divize tout enfrastrikti a an kèk ti moso, epi dekri chak moso nan yon katab separe.

Èske w gen yon bibliyotèk vaste nan resous, ou ka rele apeprè menm bagay la nan tès ak nan pwodiksyon an.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Nan ka nou an, sa a pa t 'totalman apwopriye, paske pil tès la pou devlopè oswa pou tès yo te dwe jwenn yon jan kanmenm pi senp. Men, mwen pa t 'vle ale nan dosye yo epi aplike yo nan sekans ki nesesè yo, ak enkyete ke baz done a ta leve, ak Lè sa a, egzanp ki sèvi ak baz done sa a ta leve. Se poutèt sa, tout tès yo te lanse soti nan yon katab. Modil yo menm yo te rele la, men tout bagay te fè nan yon sèl kouri.

Terraform pran swen tout depandans yo. Epi li toujou kreye resous nan sekans pou ou ka jwenn yon adrès IP, pou egzanp, nan yon egzanp ki fèk kreye, epi jwenn adrès IP sa a nan dosye route53 la.

Anplis de sa, platfòm la se gwo anpil. Ak lanse yon pil tès, menm si pou yon èdtan, menm si pou 8 èdtan, se byen yon antrepriz chè.

Epi nou otomatize zafè sa a. Ak travay Jenkins pèmèt nou kouri pil la. Nan li, li te nesesè yo lanse yon demann rale ak chanjman yo ke pwomotè a vle teste, presize tout opsyon ki nesesè yo, eleman, ak dimansyon. Si li vle tès pèfòmans, Lè sa a, li ka pran plis ka. Si li jis bezwen tcheke ke kèk fòm ouvè, Lè sa a, li ta ka kòmanse nan salè minimòm. Epi tou endike si yon grap nesesè oswa ou pa, elatriye.

Lè sa a, Jenkins pouse yon script koki, ki yon ti kras modifye kòd la nan katab la Terraform. Mwen retire dosye ki pa nesesè yo epi mwen ajoute dosye ki nesesè yo. Lè sa a, ak yon sèl kouri nan Terraform aplike chemine a te leve soti vivan.

Lè sa a, te gen lòt etap ke mwen pa vle antre nan.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Akòz lefèt ke pou tès nou te bezwen yon ti kras plis opsyon pase nan pwodiksyon, nou te oblije fè kopi modil yo pou ke nan kopi sa yo nou te kapab ajoute karakteristik sa yo ki te nesesè sèlman pou tès yo.

Epi li te rive ke nan tès mwen kalite vle teste chanjman sa yo ki pral evantyèlman ale nan pwodiksyon an. Men, an reyalite, yon sèl bagay yo te teste, ak yon ti kras diferan yo te itilize nan pwodiksyon an. Epi te gen yon ti repo nan modèl la ke nan pwodiksyon tout chanjman yo te aplike pa ekip operasyon an. Epi pafwa li te tounen soti ke chanjman sa yo ki te sipoze ale soti nan tès nan pwodiksyon rete nan yon lòt vèsyon.

Anplis de sa, te gen yon pwoblèm konsa ke yo te ajoute yon nouvo sèvis, ki te yon ti kras diferan de kèk ki deja egziste. Ak olye pou yo modifye yon modil ki deja egziste, nou te fè yon kopi li epi ajoute chanjman ki nesesè yo.

Esansyèlman, Terraform se pa yon lang reyèl. Sa a se yon deklarasyon. Si nou bezwen deklare yon bagay, lè sa a nou deklare li. Epi li tout travay.

Nan kèk pwen, lè youn nan demann pull mwen yo te diskite, youn nan kòlèg mwen yo te di ke pa te gen okenn nesesite yo kreye flokon. Mwen te mande sa li te vle di. Gen yon reyalite syantifik ke pa gen de flokon ki idantik nan mond lan, yo tout yon ti kras diferan. Epi le pli vit ke mwen tande sa a, mwen imedyatman te santi tout pwa kòd Terraform la. Paske lè li te nesesè pou yo avanse soti nan vèsyon an vèsyon, Terraform te mande pou kraze chèn chanjman, sa vle di kòd la pa t konpatib ankò ak pwochen vèsyon an. Epi nou te oblije fè yon demann rale, ki kouvri prèske mwatye nan dosye yo nan enfrastrikti a, yo nan lòd yo pote enfrastrikti a nan pwochen vèsyon an nan Terraform.

Epi apre yon flokon konsa parèt, tout kòd Terraform ke nou te tounen yon gwo pil nèj.

Pou yon pwomotè ekstèn ki deyò operasyon an, sa a pa enpòtan anpil pou l ', paske li te fè yon demann rale, resous li te kòmanse. Epi sa a tout, se pa enkyetid li ankò. Epi ekip DevOps la, ki asire tout bagay anfòm, oblije fè tout chanjman sa yo. Ak pri a nan chanjman sa yo ogmante anpil, anpil ak chak flokon adisyonèl.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Gen yon istwa sou fason yon elèv nan yon seminè trase de sèk pafè ak lakre sou tablo a. Epi pwofesè a sezi kijan li te rive fè desen konsa san konpa. Etidyan an reponn: “Trè senp, mwen te pase dezan nan lame a ap fè yon moulen vyann.”

Ak nan kat ane ke mwen te patisipe nan pwojè sa a, mwen te fè Terraform pou apeprè de ane. Epi, nan kou, mwen gen kèk ke trik nouvèl, kèk konsèy sou kòman yo senplifye kòd la Terraform, travay avèk li tankou yon langaj pwogramasyon epi redwi fado a sou devlopè ki dwe kenbe kòd sa a ajou.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Premye bagay mwen ta renmen kòmanse avèk yo se Symlinks. Terraform gen anpil kòd repetitif. Pou egzanp, apèl la bay founisè a nan prèske chak pwen kote nou kreye yon moso nan enfrastrikti se menm bagay la. Epi li lojik pou mete l nan yon katab separe. Ak nenpòt kote founisè a oblije fè lyen senbolik nan dosye sa a.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Pou egzanp, nan pwodiksyon ou itilize asime wòl, ki pèmèt ou jwenn dwa aksè nan kèk kont Amazon ekstèn. Epi lè w te chanje yon sèl fichye, tout rès yo nan pye bwa resous la ap gen dwa obligatwa pou Terraform konnen ki segman Amazon pou jwenn aksè.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Ki kote lyen senbolik yo echwe? Kòm mwen te di, Terraform gen dosye leta. Epi yo trè, trè fre. Men, bagay la se ke Terraform inisyalize backend la an plas an premye. Epi li pa ka itilize okenn varyab nan paramèt sa yo; yo dwe toujou ekri nan tèks.

Epi kòm yon rezilta, lè yon moun fè yon nouvo resous, li kopye kèk nan kòd ki soti nan lòt dosye. Epi li ka fè yon erè ak kle a oswa ak bokit la. Pou egzanp, li fè yon bagay sandbox soti nan sandbox, ak Lè sa a, fè li nan pwodiksyon an. Se konsa, li ka vire soti ke bokit la nan pwodiksyon yo pral itilize soti nan bwat sab la. Natirèlman, yo pral jwenn li byen vit. Li pral posib yo ranje sa a yon jan kanmenm, men kanmenm li se yon fatra nan tan ak, nan yon sèten mezi, resous.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Kisa nou ka fè apre? Anvan w travay ak Terraform, ou bezwen inisyalize li. Nan inisyalizasyon, Terraform telechaje tout grefon. Nan kèk pwen yo divize soti nan yon monolit nan yon achitekti plis mikwosèvis. Epi ou toujou bezwen fè Terraform init pou li rale tout modil yo, tout grefon yo.

Epi ou ka itilize yon script koki, ki, premyèman, ka jwenn tout varyab yo. Script koki a pa limite nan okenn fason. Epi, dezyèmman, chemen yo. Si nou toujou sèvi ak chemen ki nan depo a kòm kle nan dosye eta a, lè sa a, kòmsadwa, erè a isit la pral elimine.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Ki kote mwen ka jwenn done yo? dosye JSON. Terraform pèmèt ou ekri enfrastrikti pa sèlman nan hcl (HashiCorp Configuration Language), men tou nan JSON.

JSON fasil pou li nan yon script shell. An konsekans, ou ka mete fichye a konfigirasyon ak bokit nan kèk kote. Epi sèvi ak bokit sa a tou de nan kòd la Terraform ak nan script nan koki pou inisyalizasyon.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Poukisa li enpòtan pou gen yon bokit pou Terraform? Paske gen yon bagay tankou dosye eta aleka. Sa vle di, lè mwen ogmante kèk resous, yo nan lòd yo di Amazon: "Tanpri ogmante egzanp," mwen bezwen presize yon anpil nan paramèt obligatwa.

Ak sa yo idantifyan yo estoke nan kèk lòt katab. Apre sa, mwen ka ale epi di: "Terraform, tanpri ale nan dosye eta a nan resous sa a epi jwenn idantifyan sa yo pou mwen." Se konsa, yon sèten inifikasyon parèt ant diferan rejyon oswa anviwònman.

Li pa toujou posib pou itilize yon dosye eta aleka. Pou egzanp, ou te kreye yon VPC alamen. Ak kòd Terraform ki kreye VPC a kreye diferan VPC sa yo ke li pral pran yon tan trè long epi w ap oblije ajiste youn nan lòt la, kidonk, ou ka itilize Trick sa a.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Sa vle di, fè yon modil ki sanble fè yon VPC epi, kòm li te, ba ou idantifyan, men an reyalite gen tou senpleman yon fichye ak valè hardcoded ki ka itilize yo kreye menm egzanp lan.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Li pa toujou nesesè pou konsève pou fichye eta a nan nwaj la. Pou egzanp, lè w teste modil, ou ka itilize inisyalizasyon backend, kote dosye a pral tou senpleman sove sou disk nan moman tès la.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Koulye a, yon ti kras sou tès. Kisa ou ka teste nan Terraform? Pwobableman anpil posib, men mwen pral pale sou 4 bagay sa yo.

HashiCorp gen yon konpreyansyon sou ki jan kòd Terraform ta dwe fòma. Ak Terraform fmt pèmèt ou fòma kòd ou edite dapre kwayans sa a. An konsekans, tès yo dwe nesesèman tcheke si fòma a koresponn ak sa HashiCorp te lèg, pou pa gen okenn bezwen chanje kote parantèz, elatriye.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Pwochen an se Terraform valide. Li fè ti kras plis pase tcheke sentaks la - ala, si tout parantèz yo pè. Ki sa ki enpòtan isit la? Enfrastrikti nou an trè vaste. Gen yon anpil nan papa diferan nan li. Ak nan chak ou bezwen kouri Terraform valide.

An konsekans, pou pi vit tès yo, nou kouri plizyè pwosesis nan paralèl lè l sèvi avèk paralèl.

Paralèl se yon bagay trè fre, sèvi ak li.

Men, chak fwa Terraform inisyalize, li ale nan HashiCorp epi li mande, "Ki dènye vèsyon yo plugin? Ak plugin ke mwen gen nan kachèt la - èske se youn nan bon oswa youn nan move?" Ak sa a ralanti nan chak etap.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Si ou di Terraform kote grefon yo ye, Lè sa a, Terraform pral di: "Oke, sa a se pwobableman dènye bagay ki la. Mwen pap ale okenn kote, mwen pral imedyatman kòmanse valide kòd Terraform ou a."

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Yo nan lòd yo ranpli katab la ak grefon ki nesesè yo, nou gen yon kòd Terraform trè senp ki jis bezwen inisyalize. Isit la, nan kou, ou bezwen presize tout founisè yo ki yon jan kanmenm patisipe nan kòd ou a, otreman Terraform pral di: "Mwen pa konnen yon founisè sèten paske li pa nan kachèt la."

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Apre sa, se plan Terraform la. Kòm mwen te di, devlopman se siklik. Nou fè chanjman nan kòd la. Lè sa a, ou bezwen chèche konnen ki chanjman yo te planifye pou enfrastrikti a.

Men, lè enfrastrikti a trè, trè gwo, ou ka chanje yon modil, ranje kèk anviwònman tès oswa kèk rejyon espesifik epi kraze kèk youn vwazen. Se poutèt sa, plan Terraform ta dwe fèt pou tout enfrastrikti a epi montre ki chanjman yo planifye.

Ou ka fè sa avèk entelijans. Pou egzanp, nou te ekri yon script Python ki rezoud depandans. Epi tou depann de sa ki te chanje: yon modil Terraform oswa jis yon eleman espesifik, li fè plan pou tout dosye depandan.

Plan Terraform dwe fèt sou demann. Omwen se sa nou fè.

Natirèlman, li bon pou fè tès pou chak chanjman, pou chak komèt, men plan yo se yon bagay ki byen chè. Epi nan yon demann rale nou di, "Tanpri, ban m plan yo." Robo a kòmanse. Epi voye kòmantè oswa tache tout plan yo espere nan chanjman ou yo.

Yon plan se byen yon bagay chè. Li pran tan paske Terraform ale nan Amazon epi li mande, "Èske egzanp sa a toujou egziste? Èske autoscale sa a gen egzakteman menm paramèt yo?" Ak nan lòd yo pi vit sa a, ou ka itilize yon paramèt tankou rafrechi = fo. Sa vle di ke Terraform pral telechaje eta nan S3. Epi li pral kwè ke eta a pral egzakteman matche ak sa ki nan Amazon.

Yon plan Terraform konsa ale pi vit, men eta a dwe koresponn ak enfrastrikti w la, sa vle di yon kote, nenpòt moman rafrechisman Terraform la dwe kòmanse. Terraform rafrechi fè egzakteman sa: eta matche ak sa ki nan enfrastrikti aktyèl la.

E nou bezwen pale sou sekirite. Sa a se kote nou te dwe kòmanse. Kote ou kouri Terraform ak Terraform kouri sou enfrastrikti ou a gen yon vilnerabilite. Sa vle di, w ap esansyèlman egzekite kòd la. Men, si demann lan rale gen kèk kalite kòd move, Lè sa a, li ka egzekite sou yon enfrastrikti ki gen twòp aksè. Se konsa, fè atansyon kote ou kouri plan Terraform.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Pwochen bagay mwen ta renmen pale sou se tès done itilizatè yo.

Ki sa ki done itilizatè yo? Nan Amazon, lè nou kreye yon egzanp, nou ka voye yon lèt sèten ak egzanp lan - meta done. Lè egzanp kòmanse, anjeneral nwaj init toujou prezan nan ka sa yo. Cloud init li lèt sa a epi li di: "Ok, jodi a mwen se balansè chaj la." Epi ann akò ak alyans sa yo li fè kèk aksyon.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Men, malerezman, lè nou fè plan Terraform ak Terraform aplike, itilizatè-done sanble sa a kalite bouyi nan nimewo. Sa vle di, li tou senpleman voye hash la. Ak tout sa ou ka gade nan plan an se si pral gen nenpòt chanjman oswa si hash la ap rete menm jan an.

Men, si ou pa peye atansyon sou sa a, Lè sa a, kèk dosye tèks kase ka fini sou Amazon, sou enfrastrikti reyèl la.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Altènativman, lè w ap egzekite, ou ka presize pa tout enfrastrikti a, men sèlman modèl la. Ak nan kòd la di: "Tanpri montre modèl sa a sou ekran mwen an." Epi kòm yon rezilta, ou ka jwenn yon enprime kisa done ou yo pral sanble sou Amazon.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Yon lòt opsyon se sèvi ak yon modil pou jenere done itilizatè. Ou pral aplike modil sa a. Ou resevwa fichye a sou disk. Konpare li ak youn nan referans. Se konsa, si kèk nèg deside korije done itilizatè yo yon ti kras, Lè sa a, tès ou yo pral di: "OK, gen kèk chanjman isit la epi gen - sa a se nòmal."

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Pwochen bagay mwen ta renmen pale sou se Automate Terraform aplike.

Natirèlman, li se byen pè fè Terraform aplike otomatikman, paske moun ki konnen ki chanjman ki te vini la ak ki jan destriktif yo ka pou enfrastrikti vivan an.

Pou yon anviwònman tès, sa a se tout nòmal. Sa vle di, yon travay ki kreye yon anviwònman tès se sa tout devlopè bezwen. Ak yon ekspresyon tankou "tout bagay te travay pou mwen" se pa yon meme komik, men prèv ke yon moun te konfonn, leve yon pil, epi li te fè kèk tès sou pil sa a. Apre sa, li te asire ke tout bagay te anfòm la epi li di: "Oke, yo te teste kòd ke m ap pibliye a."

Nan pwodiksyon, sandbox ak lòt anviwònman ki pi enpòtan pou biznis, ou ka pasyèlman itilize kèk resous byen san danje paske li pa lakòz okenn moun mouri. Sa yo se: gwoup autoscale, gwoup sekirite, wòl, route53, ak lis la kapab byen gwo. Men, kenbe yon je sou sa k ap pase, li rapò aplikasyon otomatik yo.

Kote li danjere oswa pè pou aplike, pou egzanp, si sa yo se kèk resous ki pèsistan nan yon baz done, Lè sa a, resevwa rapò ke gen chanjman ki pa aplike nan kèk moso nan enfrastrikti a. Epi enjenyè a, anba sipèvizyon, kòmanse travay pou aplike oswa fè li nan konsole li.

Amazon gen yon bagay tankou Terminate pwoteksyon. Epi li ka pwoteje nan kèk ka kont chanjman ki pa obligatwa pou ou. Sa vle di, Terraform te ale nan Amazon epi li di: "Mwen bezwen touye egzanp sa a pou fè yon lòt." Epi Amazon di: "M regrèt, pa jodi a. Nou gen pwoteksyon Terminate."

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Ak jivraj sou gato a se optimize kòd. Lè nou travay ak kòd Terraform, nou dwe pase yon gwo kantite paramèt nan modil la. Sa yo se paramèt ki nesesè yo nan lòd yo kreye kèk kalite resous. Ak kòd la vire nan gwo lis paramèt ki bezwen yo dwe pase soti nan modil nan modil, soti nan modil nan modil, espesyalman si modil yo enbrike.

Epi li trè difisil pou li. Li trè difisil pou revize sa. Ak trè souvan li vire soti ke kèk paramèt sibi revizyon epi yo pa egzakteman sa ki nesesè. Lè sa a koute tan ak lajan pou ranje pita.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Se poutèt sa, mwen sijere ou sèvi ak yon bagay tankou yon paramèt konplèks ki gen ladan yon pye bwa sèten nan valè. Sa vle di, ou bezwen yon kalite katab kote ou gen tout valè ke ou ta renmen genyen nan kèk anviwònman.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Epi lè w rele modil sa a, ou ka jwenn yon pye bwa ki pwodui nan yon modil komen, se sa ki nan yon modil komen ki travay menm jan an pou tout enfrastrikti a.

Nan modil sa a ou ka fè kèk kalkil lè l sèvi avèk yon karakteristik resan nan Terraform kòm moun nan lokalite. Lè sa a, ak yon sèl pwodiksyon, bay kèk paramèt konplèks, ki ka gen ladan hache etalaj, elatriye.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Sa a se kote tout pi bon jwenn mwen te fini. Apre sa, mwen ta renmen rakonte yon istwa sou Columbus. Lè li t ap chèche lajan pou ekspedisyon li te dekouvri peyi Zend (jan li te panse lè sa a), pèsonn pa t kwè l e yo te panse li te enposib. Apre sa, li di: "Asire w ke ze a pa tonbe." Tout bankye yo, moun ki trè rich ak pwobableman entelijan, yo te eseye yon jan kanmenm mete ze a, epi li te kenbe tonbe. Lè sa a, Columbus pran ze a epi li peze l yon ti kras. Koki a frwase epi ze a rete san mouvman. Yo di: "Oh, sa twò fasil!" Epi Columbus reponn: “Wi, li twò senp. Epi lè mwen louvri peyi Zend, tout moun pral sèvi ak wout komès sa a."

Ak sa mwen jis di ou se pwobableman byen senp ak trivial bagay. Men, lè ou aprann sou yo epi kòmanse sèvi ak yo, li nan lòd la nan bagay sa yo. Se konsa, pwofite. Men, si sa yo se bagay konplètman nòmal pou ou, Lè sa a, omwen ou konnen ki jan yo mete ze a pou ke li pa tonbe.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Ann rezime:

  • Eseye evite flokon. Ak mwens flokon, mwens resous w ap bezwen pou fè nenpòt chanjman nan tout gwo enfrastrikti ou a.
  • Chanjman konstan. Sa vle di, lè kèk chanjman rive nan kòd la, ou bezwen mete enfrastrikti ou an konfòmite ak chanjman sa yo pi vit posib. Pa ta dwe gen yon sitiyasyon kote yon moun vin gade Elasticsearch de oswa twa mwa pita, fè yon plan Terraform, e gen yon pakèt chanjman ke li pa t 'atann. Epi li pran anpil tan pou mete tout bagay tounen nan lòd.
  • Tès ak automatisation. Plis kòd ou a kouvri ak tès ak karakteristik, se plis ou gen konfyans ke w ap fè tout bagay kòrèkteman. Ak livrezon otomatik ap ogmante konfyans ou anpil fwa.
  • Kòd pou anviwònman tès ak pwodiksyon yo ta dwe prèske menm jan an. Pratikman, paske pwodiksyon toujou yon ti kras diferan epi pral toujou gen kèk nuans ki pral ale pi lwen pase anviwònman tès la. Men, kanmenm, plis oswa mwens, sa a ka asire.
  • Men, si ou gen yon anpil nan kòd Terraform epi li pran anpil tan kenbe kòd sa a ajou, Lè sa a, li pa janm twò ta nan refactor ak jwenn li nan bon fòm.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

  • Enfrastrikti imuiabl. AMI livrezon sou orè.
  • Estrikti pou route53 lè ou gen anpil antre epi ou vle yo nan yon lòd ki konsistan.
  • Goumen kont limit pousantaj API. Sa a se lè Amazon di, "Se sa a, mwen pa ka aksepte okenn demann ankò, tanpri tann." Ak mwatye nan biwo a ap tann jiskaske li ka lanse enfrastrikti li yo.
  • Tach ka yo. Amazon se pa yon evènman bon mache ak tach pèmèt ou sove anpil. Epi la ou ka di yon rapò antye sou li.
  • Sekirite ak wòl IAM.
  • Chèche resous ki pèdi, lè ou gen ka orijin enkoni nan Amazone, yo manje lajan. Menm si ka koute $100-150 pa mwa, sa se plis pase $1 pa ane. Jwenn resous sa yo se yon biznis pwofitab.
  • Ak egzanp rezève.

Modèl nan Terraform pou konbat dezòd ak woutin manyèl. Maxim Kostrikin (Ixtens)

Se tout pou mwen. Terraform trè fre, ou sèvi ak li. Mèsi!

Kesyon ou yo

Mèsi pou rapò a! Fichye leta w la nan S3, men ki jan ou rezoud pwoblèm ke plizyè moun ka pran fichye leta sa a epi eseye agrandi?

Premyerman, nou pa prese. Dezyèmman, gen drapo, nan ki nou rapòte ke nou ap travay sou kèk moso nan kòd. Sa vle di, malgre lefèt ke enfrastrikti a trè gwo, sa pa vle di ke yon moun toujou ap itilize yon bagay. Epi lè te gen yon faz aktif, sa a te yon pwoblèm; nou estoke fichye eta yo nan Git. Sa a te enpòtan, sinon yon moun ta fè yon fichye leta, epi nou te oblije mete yo ansanm manyèlman nan lòd pou tout bagay kontinye. Koulye a, pa gen okenn pwoblèm sa yo. An jeneral, Terraform rezoud pwoblèm sa a. Men, si yon bagay toujou ap chanje, Lè sa a, ou ka itilize kadna, ki anpeche sa ou te di.

Èske w ap itilize sous louvri oswa antrepriz?

Pa gen antrepriz, sa vle di tout bagay ou ka ale epi telechaje gratis.

Non mwen se Stanislav. Mwen te vle fè yon ti adisyon. Ou te pale sou yon karakteristik Amazon ki pèmèt ou fè yon egzanp unkillable. Sa a se tou nan Terraform tèt li; nan blòk Life Second ou ka presize yon entèdiksyon sou chanjman oswa yon entèdiksyon sou destriksyon.

Tan te limite. Bon pwen.

Mwen te vle mande tou de bagay. Premyèman, ou te pale sou tès la. Èske ou te itilize nenpòt zouti tès? Mwen tande pale de Plugin Test Kitchen la. Petèt gen yon bagay plis. Apre sa, mwen ta renmen tou mande sou Valè lokal yo. Ki jan yo fondamantalman diferan de Varyab Antre? Epi poukisa mwen pa ka paramèt yon bagay sèlman atravè Valè lokal yo? Mwen te eseye kalkile sijè sa a, men yon jan kanmenm mwen pa t 'kapab kalkile li soti tèt mwen.

Nou ka pale an plis detay deyò chanm sa a. Zouti tès nou yo konplètman fè pwòp tèt ou. Pa gen anyen la pou teste. An jeneral, gen opsyon lè tès otomatik yo ranmase enfrastrikti yon kote, tcheke si li anfòm, ak Lè sa a, detwi tout bagay ak yon rapò ke enfrastrikti ou a toujou nan bon fòm. Nou pa genyen sa paske pil tès yo kouri chak jou. E sa ase. Men, si yon bagay kòmanse kraze, li pral kòmanse kraze san nou tcheke li yon lòt kote.

Konsènan Valè lokal yo, ann kontinye konvèsasyon an deyò sal la.

Bonjou! Mèsi pou rapò a! Trè enfòmatif. Ou te di ke ou gen anpil nan menm kalite kòd pou dekri enfrastrikti a. Èske w te konsidere jenere kòd sa a?

Gwo kesyon, mèsi! Pwen an se ke lè nou itilize enfrastrikti kòm kòd, nou sipoze ke nou gade nan kòd la ak konprann ki enfrastrikti manti dèyè kòd sa a. Si kòd yo pwodwi, Lè sa a, nou bezwen imajine ki kòd yo pral pwodwi yo nan lòd yo konprann ki kalite enfrastrikti pral la. Swa nou jenere kòd, komèt li, epi esansyèlman menm bagay la rive. Donk nou te swiv chemen nou te ekri a, nou te jwenn li. Plis jeneratè parèt yon ti kras pita lè nou te kòmanse fè yo. Epi li te deja twò ta pou chanje.

Eske ou tande anyen sou jsonnet?

No

Gade, sa a se yon bagay trè fre. Mwen wè yon ka espesifik kote ou ka aplike li epi jenere yon estrikti done.

Jeneratè yo bon lè ou genyen yo, tankou nan blag sou yon machin bab. Sa vle di, premye fwa figi a diferan, men Lè sa a, tout moun gen menm figi. Jeneratè yo travay trè byen. Men, malerezman, figi nou yo yon ti kras diferan. Sa a se pwoblèm.

Jis gade. Mèsi!

Non mwen se Maxim, mwen soti nan Sberbank. Ou te pale yon ti kras sou fason ou te eseye pote Terraform nan ekivalan a nan yon langaj pwogramasyon. Èske li pa pi fasil pou itilize Ansible?

Sa yo se bagay trè diferan. Ou ka kreye resous nan Ansible, epi Puppet ka kreye resous nan Amazon. Men, Terraform se dwat moute file.

Ou gen Amazon sèlman?

Se pa ke nou gen sèlman Amazon. Nou prèske sèlman gen Amazon. Men, karakteristik prensipal la se ke Terraform sonje. Nan Ansible, si ou di: "Ban m '5 egzanp," Lè sa a, li pral ogmante, epi Lè sa a, ou di: "E kounye a, mwen bezwen 3." Epi Terraform pral di: "Oke, mwen pral touye 2," epi Ansible pral di: "Oke, isit la se 3 pou ou." Total 8.

Bonjou! Mèsi pou rapò ou a! Li te trè enteresan tande pale sou Terraform. Mwen ta renmen imedyatman fè yon ti kòmantè sou lefèt ke Terraform toujou pa gen yon lage ki estab, kidonk trete Terraform ak anpil prekosyon.

Yon bon kiyè pou dine. Sa vle di, si ou bezwen yon solisyon, Lè sa a, pafwa ou retire sa ki enstab, elatriye, men li travay epi li te ede nou.

Kesyon an se sa a. Ou itilize Remote backend, ou itilize S 3. Poukisa ou pa itilize backend ofisyèl la?

Ofisyèl?

Terraform Cloud.

Kilè li te parèt?

Anviwon 4 mwa de sa.

Si li te parèt 4 ane de sa, Lè sa a, pwobableman mwen ta reponn kesyon ou a.

Gen deja yon fonksyon entegre ak kadna, epi ou ka estoke yon dosye eta. Bay li yon eseye. Men, mwen pa te teste li tou.

Nou ap vwayaje nan yon gwo tren k ap deplase a gwo vitès. Epi ou pa ka jis pran kèk machin epi jete yo.

Ou te pale de flokon, poukisa ou pat itilize branch? Poukisa li pat mache konsa?

Apwòch nou an se ke tout enfrastrikti a se nan yon sèl depo. Terraform, Puppet, tout scripts ki gen rapò ak sa a, yo tout nan yon sèl depo. Nan fason sa a nou ka asire ke chanjman incrémentielle yo teste youn apre lòt. Si se te yon pakèt branch, yon pwojè konsa ta prèske enposib pou kenbe. Sis mwa pase, epi yo diverge anpil ke li jis yon kalite pinisyon. Sa a se sa mwen te vle chape soti nan anvan refactoring.

Se konsa, li pa travay?

Sa a pa travay ditou.

Nan branch mwen koupe glise katab la. Sa vle di, si ou fè li pou chak pil tès, pou egzanp, ekip A gen pwòp katab li yo, ekip B gen pwòp katab li yo, Lè sa a, sa a tou pa travay. Nou te kreye yon kòd anviwònman tès inifye ki te fleksib ase pou tout moun. Sa vle di, nou te sèvi yon sèl kòd.

Bonjou! Non mwen se Yura! Mèsi pou rapò a! Kesyon sou modil yo. Ou di w ap itilize modil. Ki jan ou rezoud pwoblèm nan si yo te fè chanjman nan yon modil ki pa konpatib ak chanjman yon lòt moun? Èske ou yon jan kanmenm vèsyon modil yo oswa ap eseye pote yon wunderwaffle satisfè de kondisyon?

Sa a se yon gwo pwoblèm pil nèj. Sa a se sa nou soufri lè kèk chanjman inofensif ka kraze kèk pati nan enfrastrikti a. Lè sa a pral aparan sèlman apre kèk tan long.

Sa vle di, li poko rezoud?

Ou fè modil inivèsèl. Evite flokon. Ak tout bagay pral travay deyò. Dezyèm mwatye nan rapò a se sou fason pou evite sa a.

Bonjou! Mèsi pou rapò a! Mwen ta renmen klarifye. Dèyè sèn nan te gen yon gwo pil ke mwen te vin pou. Ki jan yo entegre mannken ak distribisyon wòl?

Itilizatè-done.

Sa vle di, ou jis krache soti dosye a ak yon jan kanmenm egzekite li?

Done itilizatè yo se yon nòt, sa vle di lè nou fè yon script imaj la, Daemon leve la epi, ap eseye konnen ki moun li ye, li nòt la ke li se yon balanse chaj.

Sa vle di, èske sa a se yon kalite pwosesis separe ki bay lwen?

Nou pa t envante li. Nou itilize li.

Bonjou! Mwen jis gen yon kesyon sou Itilizatè - done. Ou te di ke gen pwoblèm la, ke yon moun ka voye yon bagay nan move kote. Èske gen kèk fason pou estoke done itilizatè yo nan menm Git la, pou li toujou klè ki sa done itilizatè yo refere a?

Nou jenere done Itilizatè ki soti nan modèl. Sa vle di, yo itilize yon sèten kantite varyab la. Ak Terraform jenere rezilta final la. Se poutèt sa, ou pa ka jis gade nan modèl la epi di sa ki pral rive, paske tout pwoblèm yo gen rapò ak lefèt ke pwomotè a panse ke li ap pase yon fisèl nan varyab sa a, men yo itilize yon etalaj la. Apre sa, li - bam ak mwen - konsa-ak-konsa, konsa-ak-konsa, liy nan pwochen, ak tout bagay kase. Si sa a se yon nouvo resous ak yon moun chwazi li epi li wè ke yon bagay pa travay, Lè sa a, li se byen vit rezoud. Men, si gwoup autoscale sa a mete ajou, Lè sa a, nan kèk pwen ka yo nan gwoup la autoscale kòmanse ranplase. Ak bang, yon bagay pa mache. Li fè mal.

Li sanble ke solisyon an sèlman se teste?

Wi, ou wè pwoblèm nan, ou ajoute etap tès la. Sa vle di, pwodiksyon ka teste tou. Petèt li pa tèlman pratik, men ou ka mete kèk mak tou - tcheke done itilizatè yo kloure isit la.

Non mwen se Timur. Li trè fre ke gen rapò sou kòman yo byen òganize Terraform.

Mwen poko menm komanse.

Mwen panse ke petèt nan pwochen konferans lan pral genyen. Mwen gen yon kesyon senp. Poukisa w ap kode valè a nan yon modil separe olye ke w ap itilize tfvars, sa vle di poukisa se yon modil ki gen valè pi bon pase tfvars?

Sa vle di, èske mwen ta dwe ekri isit la (slide: Production/environment/settings.tf): domèn = varyab, domèn vpcnetwork, varyab vpcnetwork ak stvars - èske mwen ka jwenn menm bagay la?

Se egzakteman sa nou fè. Nou refere a modil sous anviwònman an, pou egzanp.

Esansyèlman, sa a se tfvars sa yo. Tfvars trè pratik nan yon anviwònman tès. Mwen gen tfvar pou gwo ka, pou ti. Apre sa, mwen jete yon dosye nan katab la. Apre sa, mwen te resevwa sa mwen te vle. Lè n ap koupe enfrastrikti, nou vle li posib pou gade ak konprann tout bagay imedyatman. Se konsa, li sanble ke ou bezwen gade isit la, Lè sa a, gade nan tfvars.

Èske li posib pou gen tout bagay nan yon sèl kote?

Wi, tfvars se lè ou gen yon sèl kòd. Epi li itilize nan plizyè kote diferan ak nuans diferan. Lè sa a, ou ta jete tfvars epi jwenn nuans ou. Epi nou se enfrastrikti kòm kòd nan fòm pi bon kalite li yo. Mwen gade e mwen konprann.

Bonjou! Èske w te rankontre sitiyasyon kote founisè nwaj la entèfere ak sa ou te fè Terraform? Ann di nou edite metadata yo. Gen kle ssh. Ak Google toujou ap mete metadata li yo ak kle li yo la. Ak Terraform toujou ekri ke li gen chanjman. Apre chak kouri, menm si anyen pa chanje, li toujou di ke li pral mete ajou jaden sa a kounye a.

Avèk kle, men wi, yon pati nan enfrastrikti a afekte pa bagay sa a, sa vle di Terraform pa ka chanje anyen. Nou pa ka chanje anyen ak men nou tou. Nou pral viv ak li pou kounye a.

Sa vle di, ou te rankontre yon bagay tankou sa a, men pa te vini ak anyen, ki jan li fè li epi li fè li tèt li?

Malerezman wi.

Bonjou! Non mwen se Starkov Stanislav. Mail. ru Gwoup. Ki jan ou rezoud pwoblèm nan jenere yon tag sou..., ki jan ou pase li andedan? Kòm mwen konprann li, atravè Itilizatè - done yo presize non lame a, mete Puppet sou? Ak dezyèm pati nan kesyon an. Ki jan ou rezoud pwoblèm sa a nan SG, sa vle di lè ou jenere SG, dè santèn de ka nan menm kalite a, ki non ki kòrèk pou yo?

Sikonstans sa yo ki trè enpòtan pou nou, nou bay non yo trè byen. Moun sa yo ki pa nesesè, gen yon nòt ke sa a se yon gwoup autoscale. Ak nan teyori ou ka kloure li desann epi jwenn yon nouvo.

Kòm pou pwoblèm nan ak tag la, pa gen okenn pwoblèm sa yo, men gen tankou yon travay. Epi nou itilize tags anpil, trè lou, paske enfrastrikti a se gwo ak chè. Epi nou bezwen gade kote lajan an prale, kidonk tags pèmèt nou kraze sa ki te ale kote. Epi, kòmsadwa, rechèch la pou yon bagay ki vle di anpil lajan se depanse isit la.

Ki lòt bagay te kesyon an?

Lè SG kreye dè santèn de egzanp, èske yo bezwen yo dwe distenge yon jan kanmenm?

Non, pa fè sa. Sou chak egzanp gen yon ajan ki rapòte ke mwen gen yon pwoblèm. Si yon ajan rapòte, Lè sa a, ajan an konnen sou li epi, nan yon minimòm, adrès IP li egziste. Ou ka deja kouri ale. Dezyèmman, nou itilize Consul for Discovery, kote Kubernetes pa. Epi Konsil tou montre adrès IP egzanp lan.

Sa vle di, èske ou konsantre espesyalman sou IP, epi yo pa sou non lame?

Li enposib navige pa non lame, sa vle di gen anpil nan yo. Gen idantifyan egzanp - AE, elatriye Ou ka jwenn li yon kote, ou ka jete li nan rechèch la.

Bonjou! Mwen reyalize ke Terraform se yon bon bagay, pwepare pou nwaj yo.

Pa sèlman.

Sa a se jisteman kesyon an ki enterese m '. Si ou deside deplase, di, nan Bare Metal an masse ak tout enstans ou yo? Èske pral gen nenpòt pwoblèm? Oswa èske w ap toujou oblije sèvi ak lòt pwodwi, pou egzanp, menm Ansible ki te mansyone isit la?

Ansible se yon ti kras sou yon lòt bagay. Sa vle di, Ansible deja travay lè egzanp te kòmanse. Ak Terraform travay anvan egzanp kòmanse. Chanje nan Bare Metal - pa gen okenn.

Se pa kounye a, men biznis ap vini epi yo di: "Vini non."

Chanje nan yon lòt nwaj - wi, men gen yon Trick yon ti kras diferan isit la. Ou bezwen ekri kòd Terraform nan yon fason ke ou ka chanje nan kèk lòt nwaj ak mwens efò.

Okòmansman, travay la te fikse ke tout enfrastrikti nou an te agnostik, sa vle di nenpòt nwaj ta dwe apwopriye, men nan kèk pwen biznis la te abandone epi li te di: "Oke, nan pwochen N ane yo nou pa pral ale nenpòt kote, nou ka itilize sèvis yo. soti nan Amazon "

Terraform pèmèt ou kreye travay Front-End, konfigirasyon PagerDuty, done doc, elatriye. Li gen anpil ke. Li ka pratikman kontwole lemonn antye.

Mèsi pou rapò a! Mwen te itilize tou Terraform pou 4 ane kounye a. Nan etap nan yon tranzisyon lis nan Terraform, nan enfrastrikti, nan yon deskripsyon deklaratif, nou te fè fas ak yon sitiyasyon kote yon moun te fè yon bagay alamen, epi ou te eseye fè yon plan. Apre sa, mwen te resevwa kèk kalite erè la. Ki jan ou fè fas ak pwoblèm sa yo? Ki jan ou jwenn resous ki pèdi yo ki te nan lis la?

Sitou ak men nou ak je nou, si nou wè yon bagay etranj nan rapò a, Lè sa a, nou analize sa k ap pase la, oswa nou tou senpleman touye. An jeneral, demann rale yo se yon bagay komen.

Si gen yon erè, èske ou rollback? Èske w te eseye fè sa?

Non, sa a se desizyon yon moun nan moman sa a lè li wè yon pwoblèm.

Sous: www.habr.com