Kif Dark juża kodiċi f'50ms

Kif Dark juża kodiċi f'50ms

Aktar ma jkun mgħaġġel il-proċess ta 'żvilupp, aktar il-kumpanija tat-teknoloġija tikber malajr.

Sfortunatament, l-applikazzjonijiet moderni jaħdmu kontra tagħna - is-sistemi tagħna jridu jiġu aġġornati f'ħin reali mingħajr ma jfixklu lil ħadd jew jikkawżaw waqfien jew interruzzjonijiet. L-iskjerament għal sistemi bħal dawn isir ta 'sfida u jeħtieġ pipelines kumplessi ta' konsenja kontinwa anke għal timijiet żgħar.

Dawn il-pipelines huma tipikament dejqa fl-ambitu, bil-mod, u mhux affidabbli. L-iżviluppaturi jridu l-ewwel jibnuhom manwalment u mbagħad jimmaniġġjawhom, u l-kumpaniji ħafna drabi jimpjegaw timijiet DevOps sħaħ biex jagħmlu dan.

Il-veloċità tal-iżvilupp tiddependi fuq il-veloċità ta 'dawn il-pipelines. L-aħjar timijiet jiskjeraw f'5-10 minuti, iżda ġeneralment l-affarijiet jieħdu ħafna itwal, u jeħtieġu diversi sigħat għal kull skjerament.

Fid-Dlam dan jieħu 50ms. Ħamsin. Millisekondi. Skur — hija soluzzjoni kompluta b'lingwa ta' programmar, editur u infrastruttura, mibnija speċifikament għal kunsinna kontinwa, u kull aspett ta 'Dark, inkluża l-lingwa nnifisha, huwa mibni b'skjerament sigur u immedjat f'moħħu.

Għaliex il-pipelines ta' konsenja kontinwa tant bil-mod?

Ejja ngħidu li għandna applikazzjoni tal-web Python u diġà ħloqna pipeline ta' kunsinna kontinwa mill-isbaħ u modern. Għal żviluppatur li huwa okkupat b'dan il-proġett kuljum, l-iskjerament ta' bidla żgħira waħda tkun tidher xi ħaġa bħal din:

Alterazzjoni

  • Il-ħolqien ta' fergħa ġdida f'git
  • Jagħmel bidliet wara l-iswiċċ tal-funzjoni
  • Ittestjar tal-unità biex jittestja bidliet bi u mingħajr swiċċ tal-funzjoni

Iġbed talba

  • Kommetti bidliet
  • Timbotta bidliet għal repożitorju remot tal-github
  • Iġbed talba
  • CI tibni awtomatikament fl-isfond
  • Reviżjoni tal-kodiċi
  • Ftit aktar reviżjonijiet jekk meħtieġ
  • L-għaqda tal-bidliet f'git master.

CI jimxi fuq il-kaptan

  • L-installazzjoni tad-dipendenzi tal-frontend permezz ta' npm
  • Assemblaġġ u ottimizzazzjoni tar-riżorsi HTML+CSS+JS
  • Tmexxija ta' testijiet ta' unità u funzjonali fil-frontend
  • Installazzjoni tad-dipendenzi Python minn PyPI
  • Tmexxija ta 'unità u testijiet funzjonali fil-backend
  • Ittestjar tal-integrazzjoni fuq iż-żewġt itruf
  • Tibgħat riżorsi frontend lis-CDN
  • Bini ta' kontenitur għal programm Python
  • Sottomissjoni ta' kontejner lir-reġistru
  • Aġġorna l-manifest Kubernetes

Tissostitwixxi kodiċi antik b'wieħed ġdid

  • Kubernetes idawwar każijiet multipli ta 'kontenitur ġdid
  • Kubernetes jistenna li każijiet isiru b'saħħithom
  • Kubernetes iżid istanzi ma' HTTP load balancer
  • Kubernetes jistenna sakemm istanzi anzjani ma jibqgħux jintużaw
  • Kubernetes iwaqqaf l-istanzi qodma
  • Kubernetes jirrepeti dawn l-operazzjonijiet sakemm istanzi ġodda jissostitwixxu dawk qodma kollha

Jippermettu swiċċ ta 'karatteristika ġdida

  • Il-kodiċi l-ġdid huwa inkluż biss għalik innifsek biex tiżgura li kollox ikun tajjeb
  • Kodiċi ġdid huwa attivat għal 10% tal-utenti, il-metriċi operattivi u tan-negozju huma ssorveljati
  • Kodiċi ġdid huwa attivat għal 50% tal-utenti, il-metriċi operattivi u tan-negozju huma ssorveljati
  • Kodiċi ġdid huwa attivat għal 100% tal-utenti, il-metriċi operattivi u tan-negozju huma ssorveljati
  • Fl-aħħar tirrepeti l-proċedura kollha biex tneħħi l-kodiċi l-antik u taqleb

Il-proċess jiddependi fuq l-għodod, il-lingwa, u l-użu ta 'arkitetturi orjentati lejn is-servizz, iżda f'termini ġenerali jidher bħal dan. Ma semmejtx l-iskjeramenti tal-migrazzjoni tad-database għax jeħtieġu ħafna ppjanar, imma jien ser nuruk kif Dark jimmaniġġa dan hawn taħt.

Hemm ħafna komponenti hawn, u ħafna minnhom jistgħu faċilment inaqqsu, jikkraxxjaw, jikkawżaw kunflitt temporanju, jew jikkraxxjaw is-sistema tax-xogħol.

U peress li dawn il-pipelines huma kważi dejjem maħluqa għal każ speċjali, huwa diffiċli li tistrieħ fuqhom. Ħafna nies għandhom ġranet meta l-kodiċi ma jistax jiġi skjerat minħabba li hemm problemi fid-Dockerfile, wieħed mill-għexieren ta 'servizzi ġġarraf, jew l-ispeċjalista meħtieġ ikun fuq vaganza.

Saħansitra agħar, ħafna minn dawn il-passi ma jagħmlu xejn utli. Dawn kienu meħtieġa qabel meta skjerajna kodiċi direttament lill-utenti, iżda issa għandna toggles għal kodiċi ġdid u dawk il-proċessi ġew separati. Bħala riżultat, il-pass fejn il-kodiċi jiġi skjerat (il-qadim jiġi sostitwit b'wieħed ġdid) issa sempliċement sar riskju mhux meħtieġ.

Naturalment, dan huwa pipeline maħsub ħafna. It-tim li ħoloqha ma fetaħx ħin u flus biex iħaddem malajr. Tipikament, il-pipelines tal-iskjerament huma ħafna aktar bil-mod u aktar inaffidabbli.

Timplimenta kunsinna kontinwa fid-Dlam

It-twassil kontinwu huwa tant importanti għal Dark li aħna immiraw għal ħinijiet taħt it-tieni mill-bidu. Għaddejna mill-passi kollha tal-pipeline biex inneħħu dak kollu mhux meħtieġ, u llustrajna l-bqija. Hekk neħħejna l-passi.

Jesse Frazel (Jessie Frazelle) ħoloq kelma ġdida deployless (li ma teħtieġx skjerament) fil-konferenza Future of Software Development f'Reykjavik

Immedjatament iddeċidejna li Dark se jkun ibbażat fuq il-kunċett ta’ “deployless” (grazzi Jesse Frazel għan-neoloġiżmu). Deployless ifisser li kwalunkwe kodiċi jiġi skjerat istantanjament u lest għall-użu fil-produzzjoni. Naturalment, aħna mhux se nħallu kodiċi miksur jew mhux komplut jgħaddi (jiddeskrivi l-prinċipji tas-sigurtà hawn taħt).

Fid-demo Dark, spiss konna mistoqsijin kif stajna niskjeraw daqshekk malajr. Mistoqsija stramba. In-nies probabbilment jaħsbu li ħriġna b'xi tip ta 'super-teknoloġija li tqabbel il-kodiċi, tikkompilaha, tippakkjaha f'kontenitur, tibda magna virtwali, kesħa tibda kontenitur, u kollox bħal dak - kollha f'50 ms. Huwa bilkemm possibbli. Imma ħloqna magna ta 'skjerament speċjali li m'għandhiex bżonn dan kollu.

Dlam runs interpreti fis-sħaba. Ejja ngħidu li qed tikteb kodiċi f'funzjoni jew HTTP jew event handler. Nibagħtu d-diff lis-siġra tas-sintassi astratta (l-implimentazzjoni tal-kodiċi li l-editur u s-servers tagħna jużaw internament) lis-servers tagħna, u mbagħad imexxu dak il-kodiċi meta jidħlu t-talbiet. Allura l-iskjerament jidher biss dħul modest fid-database - istantanju u elementari. L-iskjerament huwa tant mgħaġġel għaliex jinvolvi l-minimu assolut.

Fil-futur, qed nippjanaw li nagħmlu Dark kompilatur tal-infrastruttura li se joħloq u jmexxi l-infrastruttura ideali għal prestazzjoni għolja u affidabbiltà tal-applikazzjonijiet. L-iskjerament istantanju, ovvjament, qiegħed hawn biex jibqa'.

Skjerament Sikur

Editur strutturat

Code in Dark huwa miktub fl-editur Dark. L-editur strutturat ma jippermettix żbalji ta' sintassi. Fil-fatt, Dark lanqas biss għandu analizzatur. Waqt li tkun qed tittajpja, qed naħdmu direttament mas-Siġra tas-Sintassi Astratta (AST), bħal Paredit, Sketch-n-Sketch, Tofu, pruna и MPS.

Kwalunkwe kodiċi mhux mitmum fid-Dlam għandu semantika ta 'eżekuzzjoni valida, xi ħaġa simili toqob ittajpjati fil Hazel. Per eżempju, jekk tibdel sejħa ta 'funzjoni, aħna naħżnu l-funzjoni l-qadima sakemm il-ġdida tkun tista' tintuża.

Kull programm fid-Dlam għandu t-tifsira tiegħu stess, għalhekk kodiċi mhux mitmum ma jipprevjenix kodiċi komplut milli jaħdem.

Modi ta' Editjar

Tikteb kodiċi fid-Dlam f'żewġ sitwazzjonijiet. L-ewwel: qed tikteb kodiċi ġdid u int l-uniku utent. Per eżempju, huwa f'REPL u utenti oħra qatt mhu se jaċċessawha, jew hija rotta HTTP ġdida li ma tirreferi mkien. Hawnhekk tista 'taħdem mingħajr ebda prekawzjoni, u issa dan huwa pjuttost kif taħdem fl-ambjent tal-iżvilupp.

It-tieni sitwazzjoni: il-kodiċi diġà qed jintuża. Jekk ikun hemm traffiku li jgħaddi mill-kodiċi tiegħek (funzjonijiet, handlers tal-avvenimenti, databases, tipi), trid toqgħod attent. Biex tagħmel dan, aħna nibblukkaw il-kodiċi użat kollu u neħtieġu l-użu ta 'għodod aktar strutturati biex jeditjawh. Se nkopri l-għodod strutturali hawn taħt: swiċċijiet tal-funzjoni għal HTTP u handlers tal-avvenimenti, pjattaforma ta 'migrazzjoni b'saħħitha għal databases, u metodu ġdid ta' verżjonijiet għal funzjonijiet u tipi.

Swiċċijiet tal-funzjoni

Wieħed mill-metodi neħħi l-kumplessità bla bżonn fid-Dlam - issolvi problemi multipli b'soluzzjoni waħda. Is-swiċċijiet tal-karatteristiċi jwettqu ħafna kompiti differenti: jissostitwixxu l-ambjent ta 'żvilupp lokali, fergħat git, iskjerament tal-kodiċi, u naturalment ir-rilaxx tradizzjonali bil-mod u kkontrollat ​​ta' kodiċi ġdid.

Il-ħolqien u l-iskjerament ta 'swiċċ tal-karatteristika jsir f'operazzjoni waħda fl-editur tagħna. Joħloq spazju abjad għal kodiċi ġdid u jipprovdi kontrolli ta 'aċċess għal kodiċi antik u ġdid, kif ukoll buttuni u kmandi għall-introduzzjoni gradwali jew l-eliminazzjoni ta' kodiċi ġdid.

Swiċċijiet tal-funzjoni huma mibnija fil-lingwa Dark, u anke swiċċijiet mhux kompluti jaqdu l-iskop tagħhom - jekk il-kundizzjoni fl-iswiċċ ma tiġix sodisfatta, il-kodiċi imblukkat l-antik jiġi esegwit.

Ambjent ta 'żvilupp

Swiċċijiet tal-karatteristiċi jissostitwixxu l-ambjent tal-iżvilupp lokali. Illum, it-timijiet isibuha diffiċli biex jiżguraw li kulħadd qed juża l-istess verżjonijiet ta’ għodod u libreriji (formattaturi tal-kodiċi, linters, maniġers tal-pakketti, kompilaturi, preproċessuri, għodod ta’ ttestjar, eċċ.) Bi Dark, m’hemmx bżonn li jiġu installati dipendenzi lokalment, timmaniġġja installazzjoni lokali ta' Docker, jew tieħu miżuri oħra biex tiżgura mill-inqas dehra ta' ugwaljanza bejn l-ambjenti tal-iżvilupp u tal-produzzjoni. Meta wieħed iqis li tali ugwaljanza għadha impossibbli, lanqas se nippretendu li qed nistinkaw għaliha.

Minflok ma jinħoloq ambjent lokali kklonat, swiċċijiet fid-Dlam joħolqu sandbox ġdid fil-produzzjoni li jissostitwixxi l-ambjent tal-iżvilupp. Fil-futur qed nippjanaw ukoll li nissandbox partijiet oħra tal-applikazzjoni (eż. kloni tad-database instantanja), għalkemm dan ma jidhirx daqshekk importanti bħalissa.

Fergħat u Skjeramenti

Issa hemm diversi modi biex tintroduċi kodiċi ġdid fis-sistemi: fergħat git, fażi ta 'skjerament, u toggles tal-karatteristiċi. Huma jsolvu l-istess problema f'partijiet differenti tal-fluss tax-xogħol: git fl-istadji ta 'qabel l-iskjerament, skjerament fit-tranżizzjoni minn kodiċi antik għal ġdid, u swiċċijiet tal-karatteristiċi għal rilaxx ikkontrollat ​​ta' kodiċi ġdid.

L-aktar mod effettiv huwa swiċċijiet tal-funzjoni (fl-istess ħin l-eħfef biex jifhmu u jużaw). Magħhom tista 'tabbanduna kompletament iż-żewġ metodi l-oħra. Huwa speċjalment utli li tneħħi l-iskjerament - jekk qed nużaw swiċċijiet tal-karatteristiċi biex nippermettu l-kodiċi xorta waħda, allura l-pass tal-migrazzjoni tas-servers għall-kodiċi l-ġdid joħloq biss riskji bla bżonn.

Git huwa diffiċli biex jintuża, speċjalment għal dawk li jibdew, u huwa limitat ħafna, iżda għandu fergħat konvenjenti. Imxejna ironed out ħafna min-nuqqasijiet ta 'git. Dark huwa editjabbli f'ħin reali u jippermetti kollaborazzjoni fl-istil ta' Google Docs sabiex ma jkollokx għalfejn tissottometti kodiċi u tkun tista' tirrebbaża u tgħaqqad inqas spiss.

Is-swiċċijiet tal-karatteristiċi huma fil-qalba tal-iskjerament sigur. Flimkien ma 'skjeramenti immedjati, jippermettulek tittestja malajr kunċetti f'biċċiet żgħar u ta' riskju baxx, aktar milli timpenja ruħek għal bidla kbira waħda li tista 'twaqqa' s-sistema.

Verżjoni

Aħna nużaw il-verżjoni biex nibdlu l-funzjonijiet u t-tipi. Jekk trid tibdel funzjoni, Dark joħloq verżjoni ġdida ta 'dik il-funzjoni. Imbagħad tista' ċċempel din il-verżjoni billi tuża swiċċ fl-HTTP jew fl-immaniġġjar tal-avvenimenti. (Jekk hija funzjoni fil-fond fil-graff tas-sejħa, tinħoloq verżjoni ġdida ta' kull funzjoni tul it-triq. Dan jista' jidher qisu piż żejjed, iżda l-funzjonijiet ma jfixklux sakemm ma tużahomx, u għalhekk lanqas biss se tużahom. avviż.)

Għall-istess raġunijiet, aħna tipi ta 'verżjoni. Tkellimna fid-dettall dwar is-sistema tat-tip tagħna fil-post preċedenti.

Permezz tal-verżjoni tal-funzjonijiet u t-tipi, tista 'tagħmel bidliet fl-applikazzjoni tiegħek gradwalment. Tista 'tiċċekkja li kull handler individwali jaħdem mal-verżjoni l-ġdida, mingħajr ma jkollok għalfejn tagħmel il-bidliet kollha fl-applikazzjonijiet tiegħek f'daqqa (iżda għandna għodod biex nagħmlu dan malajr jekk trid).

Dan huwa ħafna aktar sikur milli skjerament kompletament kollox f'daqqa, kif qed jiġri issa.

Verżjonijiet ġodda ta 'pakkett u librerija standard

Meta taġġorna pakkett fid-Dlam, aħna ma nissostitwixxux immedjatament l-użu ta' kull funzjoni jew tip fil-codebase kollu. Mhuwiex sigur. Il-kodiċi jkompli juża l-istess verżjoni li uża, u inti taġġorna l-użu tal-funzjonijiet u t-tipi għall-verżjoni l-ġdida fuq bażi ta’ każ b’każ billi tuża swiċċijiet.

Kif Dark juża kodiċi f'50ms
Screenshot ta' parti mill-proċess awtomatiku fid-Dlam, li turi żewġ verżjonijiet tal-funzjoni Dict::get. Dict::get_v0 irritorna Kull tip (li qed inwarrbu), u Dict::get_v1 irritorna tip Option.

Ħafna drabi nipprovdu karatteristika ġdida tal-librerija standard u neskludu verżjonijiet eqdem. Utenti b'verżjonijiet eqdem fil-kodiċi xorta se jkollhom aċċess għalihom, iżda utenti ġodda ma jkunux jistgħu jaċċessawhom. Aħna ser nipprovdu għodod biex jemigraw lill-utenti minn verżjonijiet qodma għal oħrajn ġodda fi pass 1, għal darb'oħra billi tuża swiċċijiet tal-karatteristiċi.

Dark jipprovdi wkoll karatteristika unika: peress li nħaddmu l-kodiċi tal-produzzjoni tiegħek, nistgħu nittestjaw verżjonijiet ġodda aħna stess, inqabblu l-output ta 'mistoqsijiet ġodda u qodma biex ninfurmak dwar bidliet. Bħala riżultat, aġġornamenti tal-pakketti li ħafna drabi jsiru bl-addoċċ (jew jeħtieġu ttestjar estensiv tas-sigurtà) joħolqu ħafna inqas riskju u jistgħu jseħħu awtomatikament.

Verżjonijiet ġodda ta' Dark

It-tranżizzjoni minn Python 2 għal Python 3 mifruxa fuq għaxar snin u għadha sfida. Peress li qed nibnu Dark għal twassil kontinwu, jeħtieġ li nqisu dawn il-bidliet fil-lingwa.

Meta nagħmlu bidliet żgħar fil-lingwa, noħolqu verżjoni ġdida ta' Dark. Il-kodiċi l-antik jibqa 'fil-verżjoni l-antika ta' Dark, u l-kodiċi l-ġdid jintuża fil-verżjoni l-ġdida. Tista' tuża swiċċijiet jew verżjonijiet tal-karatteristiċi biex taġġorna għal verżjoni ġdida ta' Dark.

Dan huwa speċjalment utli meta wieħed iqis li Dark ġie introdott biss reċentement. Ħafna bidliet għal lingwa jew librerija jistgħu jfallu. Il-verżjoni inkrementali tal-lingwa tippermettilna nagħmlu aġġornamenti minuri, jiġifieri nistgħu nieħdu l-ħin tagħna u niddiferixxu ħafna deċiżjonijiet dwar il-lingwa sakemm ikollna aktar utenti, u għalhekk aktar informazzjoni.

Migrazzjonijiet tad-database

Għal migrazzjoni sigura tad-database hemm formula standard:

  • Ikteb mill-ġdid il-kodiċi biex tappoġġja formati ġodda u qodma
  • Ikkonverti d-data kollha f'format ġdid
  • Neħħi l-aċċess għad-dejta l-antik

Bħala riżultat, il-migrazzjoni tad-database tieħu żmien twil u teħtieġ ħafna riżorsi. U nispiċċaw bi skemi skaduti jinġabru għax anke kompiti sempliċi bħall-iffissar ta 'tabella jew isem ta' kolonna ma jiswewx l-isforz.

Dark għandu pjattaforma effiċjenti ta' migrazzjoni tad-database li (nittamaw) tagħmel il-proċess tant faċli li ma tibżax minnu. Il-ħwienet tad-dejta kollha fid-Dark (ħwienet tal-valur ewlieni jew tabelli tal-hash persistenti) għandhom tip. Biex temigra maħżen tad-dejta, sempliċement tassenjah tip ġdid u funzjoni ta 'rollback u rollforward biex tikkonverti l-valuri bejn iż-żewġ tipi.

L-imħażen tad-dejta fid-Dark huma aċċessati permezz ta' ismijiet varjabbli verżjoni. Pereżempju, il-maħżen tad-dejta tal-Utenti fil-bidu se jissejjaħ Utenti-v0. Meta tinħoloq verżjoni ġdida b'tip differenti, l-isem jinbidel għal Utenti-v1. Jekk id-dejta tiġi ffrankata permezz tal-Utenti-v0 u ikollok aċċess għaliha permezz tal-Utenti-v1, tiġi applikata l-funzjoni ta' roll forward. Jekk id-dejta tiġi ffrankata permezz tal-Utenti-v1 u ikollok aċċess għaliha permezz tal-Utenti-v0, tiġi applikata l-funzjoni ta' rollback.

Kif Dark juża kodiċi f'50ms
Skrin tal-migrazzjoni tad-database li juri ismijiet qodma tal-qasam tad-database, espressjonijiet ta' qlib u rollback, u struzzjonijiet biex tiġi permessa l-migrazzjoni.

Uża swiċċijiet tal-karatteristiċi biex tirrotta sejħiet lil Utenti-v0 għal Utenti-v1. Dan jista 'jsir HTTP handler wieħed kull darba biex jitnaqqas ir-riskju, u l-iswiċċijiet jaħdmu fuq bażi ta' kull utent sabiex tkun tista 'tivverifika li kollox qed jaħdem kif mistenni. Meta ma jkun fadal l-ebda Users-v0, Dark se jikkonverti d-dejta kollha li fadal fl-isfond mill-format l-antik għal dak il-ġdid. Lanqas se tinduna biha.

Ittestjar

Skur huwa lingwa ta' programmar funzjonali b'tajpjar statiku u valuri immutabbli, għalhekk il-wiċċ tal-ittestjar tiegħu huwa sinifikament iżgħar meta mqabbel ma 'lingwi orjentati lejn l-oġġett ittajpjati b'mod dinamiku. Imma xorta trid tittestja.
Fid-Dlam, l-editur awtomatikament iwettaq testijiet tal-unità fl-isfond għall-kodiċi li qed teditja, u jmexxi dawk it-testijiet għall-iswiċċijiet tal-karatteristiċi kollha b'mod awtomatiku. Fil-futur, irridu nużaw tipi statiċi biex awtomatikament fuzz code biex issib bugs.

Barra minn hekk, Dark imexxi l-infrastruttura tiegħek fil-produzzjoni, li tiftaħ possibbiltajiet ġodda. Aħna awtomatikament nissejvjaw it-talbiet HTTP fil-qafas Dark (qed nissejvjaw it-talbiet kollha għalissa, iżda mbagħad irridu naqilbu għal fetching). Aħna nittestjaw kodiċi ġdid kontrihom u nħaddmu testijiet tal-unità, u jekk trid, tista 'faċilment tikkonverti mistoqsijiet interessanti f'testijiet tal-unità.

X’neħlesna?

Peress li m'għandniex iskjerament, iżda għandna swiċċijiet tal-karatteristiċi, madwar 60% tal-pipeline tal-iskjerament jitħalla lura. M'għandniex bżonn fergħat git jew talbiet ta 'ġibda, bini ta' riżorsi backend u kontenituri, imbuttar riżorsi u kontenituri għar-reġistri, jew passi ta 'skjerament għal Kubernetes.

Kif Dark juża kodiċi f'50ms
Tqabbil ta 'pipeline ta' kunsinna kontinwa standard (xellug) u kunsinna kontinwa Skura (lemin). Il-kunsinna Dark tikkonsisti f'6 passi u ċiklu wieħed, filwaqt li l-verżjoni tradizzjonali tinkludi 35 pass u 3 ċikli.

Fid-Dlam, skjerament għandu biss 6 passi u ċiklu 1 (passi li huma ripetuti diversi drabi), filwaqt li pipeline modern ta 'kunsinna kontinwa jikkonsisti f'35 pass u 3 ċikli. Fid-Dlam, it-testijiet jimxu awtomatikament mingħajr ma taraha; id-dipendenzi huma installati awtomatikament; dak kollu relatat ma 'git jew Github m'għadux meħtieġ; M'hemmx bżonn li jinbnew, jiġu ttestjati u ttrasportati kontenituri Docker; l-iskjerament għal Kubernetes m'għadux meħtieġ.

Anke l-passi li fadal fid-Dlam saru aktar faċli. Minħabba li l-toggles tal-karatteristiċi jistgħu jiġu kkontrollati b'azzjoni waħda, m'hemmx bżonn li tgħaddi mill-pipeline tal-iskjerament kollu għat-tieni darba biex tneħħi l-kodiċi l-antik.

Aħna ssimplifikajna l-kunsinna tal-kodiċi bl-aħjar mod li stajna, u naqqas il-ħin u r-riskji ta 'kunsinna kontinwa. Għamilna wkoll ħafna aktar faċli biex taġġornaw pakketti, migrazzjonijiet tad-databases, ittestjar, kontroll tal-verżjoni, installazzjoni tad-dipendenza, ugwaljanza bejn l-ambjenti tal-iżvilupp u tal-produzzjoni, u aġġornamenti veloċi u siguri tal-verżjoni tal-lingwa.

Jien inwieġeb mistoqsijiet dwar dan fuq HackerNews.

Biex titgħallem aktar dwar l-apparat Dark, aqra artiklu dwar Dark, segwuna fuq Twitter (jew fi lili) jew irreġistra għall-beta u ingħata notifika dwar il-postijiet li ġejjin. Jekk se tmur StrangeLoop f'Settembru, ejja għat-tnedija tagħna.

Sors: www.habr.com

Żid kumment