Distribuere til Microsoft Azure Deployment Slots.

Dette scenariet er vanskelig a forklare, men her gar det.

Vi leverer XL Deploy til a utfore distribusjoner til Microsoft Azure Deployment Slots. Hvert miljo har 2 spor oppstart og produksjon. Her er en kul artikkel pa spor for alle som leser dette og lurer pa hva de er – https://azure.microsoft.com/en-us/documentation/articles/web-sites-staged-publishing/.

Losningen vi implementerer er a skape til typer infrastrukturer; azure.stagingGateway og azure.productionGateway. Vi behandler oppsamlingssporet som eget miljo som vil inneholde infrastruktur CI av typen azure.stagingGateway. Pa samme mate er produksjonssporet et miljo som inneholder en azurblaproduksjonGateway CI.

Nar du installerer til staging, vil plugin-modulen vi har opprettet, utnytte Azure Powershell-cmdletene for a utfore azurbla distribusjon hvis malbeholder-typen er azure.stagingGateway. Nar du installerer til produksjon, vil pluggen igjen utnytte Azure Powershell cmdlets, men denne gangen i stedet for a distribuere noe, bytter vi bare de to sporene. Vi kan fa den forskjellige oppforselen igjen ved a sjekke beholdertypen vi malretter mot og sikre at den er azure.productionGateway.

Fordi det er en bytte, ma vi bake i noen kontroller for a sikre at versjonen som distribueres til produksjonssporet, samsvarer med versjonen som na er distribuert til tilhorende stasjonsplass.

Her er utfordringen: Nar vi bytter ut som et resultat av distribusjon til produksjonssporet, vil vi gjenspeile at staging-miljoet na har hvilken versjon som tidligere ble distribuert til produksjon, noe som ikke kan inneholde noen versjon ved forste distribusjon til produksjon.

Det er ikke umiddelbart opplagt for meg hvordan vi kan oppna dette, og jeg leter etter forslag.

Ogsa, jeg er nysgjerrig. for alle som har gjort det sa langt og forstar hva vi gjor, virker denne tiln rmingen fornuftig, og som om den burde virke? Er det en bedre mate vi kunne gjore dette pa?

Eventuelle innspill ville bli verdsatt.

Vennligst logg inn for a legge igjen en kommentar.

7 kommentarer.

Har noen noen innspill pa hvordan jeg kan oppdatere et miljo som jeg IKKE bruker til a reflektere bytte som oppstar i Microsoft Azure?

Jeg refererer til delen av det opprinnelige innlegget der jeg sier «Her er utfordringen».

Side notat: Fungerer freemarker i syntetiske egenskaper i XLD 5.0.1? Jeg trodde det pleide a uansett.

For eksempel har jeg en eiendom som denne:

& lt; egenskapsnavn = «createVerb» hidden = «true» default = «& ##Id deployed.container.type ==» azure.ProductionGateway «& amp; gt; Bytt & amp; # else & amp; gt; distribuere & Co. lt; / # hvis & Co. gt;» / & Gt;

Jeg prover a dynamisk sette verbet for CREATE i det syntetiske avhengig av malbeholder type. Det behandler imidlertid ikke freemarkeren nar man ser pa distribusjonsplanen – det spytter bare freemarkeren ubehandlet.

Jeg fikk denne ideen fra den gamle plugin-modulen cmd2 pa community-plugin-siden. Det pleide a ha freemarker i syntetikken for AlwaysRun-egenskapen.

Takk for innlegget! Beklager for det forsinkede svaret – dette har nettopp boblet opp. For a svare pa ditt andre sporsmal forst:

Fungerer freemarker i syntetiske egenskaper i XLD 5.0.1? Jeg trodde det pleide a uansett.

Fra det jeg husker, stottes ikke FreeMarker i egenskaper generelt. Rynken her er at i noen plugins, noen eiendommer skjedde a bli sendt gjennom FreeMarker for du blir brukt, sa pa noen fa steder fungerer dette. Men det er egentlig en plugin-spesifikk implementeringsbeslutning.

Med regler kan hver attribut av et trinn v re et uttrykk (mer spesifikt et Jython-uttrykk), som skal tillate deg a lage den typen dynamiske trinnbeskrivelsen du er ute etter.

Og na videre til det storre sporsmalet. 😉 Den forste delen av mitt svar vil v re at generelt bruker hver distribusjon i XLD en (eller flere, per 5.x) distribusjonspakker til ett miljo, sa det er dessverre ingen apenbar mate a ha to miljoer oppdatert pa Samtidig bruker du trinn eller prosessorer.

Den mest «realistiske» maten a modellere hva som skjer ville trolig v re a modellere sporet som en beholder og bare flytte beholderen fra staging til prodemiljoet, og vice versa. Men selvfolgelig vil det ikke fungere godt fra et rapporteringsperspektiv fordi det ikke vil oppdatere versjoner av de distribuerte applikasjonene.

Den mest brukbare losningen som kommer til a tenke pa dette tidspunktet, er a konfigurere en utloser eller et trinn i distribusjonen til prodmiljoet som ville «hoppe over» en nedgradering av distribusjonen til staging miljoet.

Det vil resultere i at alle produksjonsutplassering effektivt skaper to oppforinger i distribusjonsloggen (oppgraderingen i prod og nedgradering i staging), men det er ikke sa langt unna det som faktisk skjer.

Gjor det noe sans?

Takk for svaret pa begge fronter, Andrew.

Jeg har jobbet med a implementere en Azure-losning, og den jeg oppnadde sa langt, var a utnytte CLI til a «lappe opp» depotet for a representere at bytteen fant sted ved utplassering til produksjonssporet. Ved «patch up» mener jeg a kopiere utm.DeployedApplication som for oyeblikket er distribuert til produksjonssporet (hvis noen), og alle dets egenskaper (distribuerer, versjon, orkestratorer, osv.), Og bruke den utm.DeployedApplication tilbake til det tilknyttede scenemiljoet.

Jeg tenker jeg skal bruke en xl-regel for a bare legge til et skritt pa slutten for a gjore alt dette arbeidet.

Nedsiden som jeg ser her er at den ikke kommer opp i rapportene for scenemiljoet. Det vil bare v re annerledes uten noen indikasjon pa hva som skjedde. Er det en mate a rette opp pa det?

Oppsiden som jeg ser her er at den representerer mer noyaktig bytte pa grunn av ting som manuelt endrede ordlighetsverdier, delvis distribusjon, etc.

For eksempel, nar jeg distribuerer til produksjonssporet (bytte), hvis jeg kopierer distribusjonene fra produksjon til oppsamling, er jeg garantert a fange all den informasjonen. Med «skip’n’commit» -tiln rmingen vet jeg ikke hvordan jeg ville gjore det? Eller det kan v re litt vanskeligere a gjore det uansett?

Jeg har den faktiske bytte som jobber i Azure, men jeg er fortsatt i begynnelsen av a finne ut hvordan man far lageret opp til snus som folge av byttet, sa jeg kan fortsatt bytte gir her hvis du tenker slik jeg er overskriften er ikke optimal.

Takk for innspillet – jeg synes det er veldig verdifullt.

Se opp, lite essay som kommer. 😉

Jeg har jobbet med a implementere en Azure-losning, og den jeg kom opp.

med sa langt var a utnytte CLI til a «lappe opp» depotet til a representere.

at byttet fant sted ved utplassering til produksjonssporet.

Det er den tiln rmingen jeg opprinnelig hadde til hensikt a foresla, men skyldes ikke rapporteringsproblemet. Tenker over litt mer, jeg mistenker at den beste tiln rmingen vil avhenge av folgende sporsmal:

Betrakter vi en «sporoppdatering» en full distribusjon? Hvor mye annet skjer i lopet av disse distribusjonene?

Jeg baserer disse pa folgende modell (som kan v re ganske forskjellig fra hvordan du faktisk har satt opp ting):

«Sporutplassering» -delen er representert av en distribuert (azurbla.CodeDeployedToSlot eller hva som helst), gar til en azurbat. Enpunktspakke eller lignende beholder En distribusjonspakke kan besta av ikke bare Azure-deployerbar (av typen azure.CodeToBeDeployedToSlot eller hva som helst) men ogsa av andre komponenter.

For enkelhetens skyld begynte jeg med folgende forutsetninger:

Da vurderte jeg hva som skjer hvis vi har App / v2 distribuert til QA-sporet, og App / v1 i Prod-sporet. Da hadde vi ogsa db-v2 i QA-miljoet og db-v1 i Prod. Hvis vi na utforer en distribusjon av App / v2 til Prod med en slot-swap, ville vi ende opp med, er:

distribuert kode-v1 (byttet ut fra Prod-sporet) executed-db-v2 (fra tidligere utplassert App / v2-versjon)

distribuert kode-v2 (fordi vi bare distribuerte App / v2) kjort-db-v2 (fordi vi distribuerte DB sammen med appen)

Med andre ord, i det generelle tilfellet er staten i QA etter slottsbyttet hverken «v1 distribuert» eller «v2 distribueres» – det er faktisk en «mellom» tilstand som i det ovennevnte tilfellet i det minste er sannsynligvis odelagt .

For a fikse ovennevnte tilfelle generelt vil teorien v re a utfore folgende to trinn:

Oppdater distribuertapplikasjonen i QA (enten ved en direkte samtale eller gjennom for eksempel funn) for a gjenspeile «mellom» -tilstanden. I eksemplet vil vi bare endre en av de distribuerte elementene, skjont. Distribuer App / v1 til QA-miljoet, som vil nedgradere databasen for a matche appkoden. Siden depotet allerede er oppdatert (i forrige trinn) for a gjenspeile det faktum at distribuert kode-v1 allerede er pa plass, bor XL Deploy bare utlose en NOOP-handling og ikke prove a distribuere koden igjen.

En litt mindre «teoretisk ren», men kanskje mer hensiktsmessig tiln rming ville v re a hoppe over det forste trinnet, men implementer MODIFY-handlingen for a ikke gjore noe hvis den onskede versjonen allerede er pa plass (hvilket er hvordan forsyningsverktoy pleier a handtere dette problemet). XL Deploy ville forsoke a nedgradere koden til distribuert kode-v1, og tenk at distribuert kode-v2 fortsatt er pa plass, men implementeringen vil egentlig ikke gjore noe. Eller vi kunne programmatisk hoppe over det aktuelle trinnet som «ikke nodvendig».

Sluttresultatet i begge tilfeller ville v re en forhapentligvis fungerende App / v1 i QA, der alle komponentene i appen er tilbake pa v1, og en oppforing i distribusjonsloggen for a registrere det (sanne) faktum at en oppdateringsutplassering i QA ogsa var utfort.

Sa mye for det generelle tilfellet. Hvis distribusjonspakken bare inneholder koden, trenger vi ikke virkelig oppdateringsutplasseringen i QA for a fa alle komponentene tilbake til den riktige versjonen. Da blir sporsmalet om vi vurderer hva som skjedde i QA som en del av slot, bytt ut en distribusjon i det hele tatt.

Basert pa ovenstaende begrunnelse, ville jeg bli fristet til a betrakte det mer av «bivirkning» av Prod-distribusjonen, som skal registreres – som du foreslar – ved en oppdatering til depotet, i stedet for en oppforing i distribusjonsloggen. Hvis vi vil utfore en faktisk distribusjon i QA – som vi sannsynligvis burde, siden ellers ting som Release Dashboard vil v re ute av synkronisering, bor vi trolig vurdere a legge til «nedgraderingsutplassering» som et annet trinn.

Haper det gjor noe fornuftig!

Hei Andrew – Takk for dette svaret.

Vi bestemte oss for a ga tiln rmingen til skip’n’commit-distribusjonen fordi:

Vi vurderer en oppdatering / produksjonsplass oppdatering en full distribusjon Ikke mye annet skjer under disse distribusjonene.

Gjennomforingen gar vegg, og jeg vil si at vi er omtrent 70% ferdige. Vi bruker et skritt for a gjore skipets installasjon tilbake til staging-slotmiljoet nar vi distribuerer til produksjonssporemiljoet.

Takk igjen for hjelpen.

Gjennomforingen gar vegg, og jeg vil si at vi er omtrent 70% ferdige.

Takk for oppdateringen! Glad for a hore at ting beveger seg sammen. Ser frem til a finne ut hvordan alt gar ut pa slutten!

Post Author: admin

You may also like

Ladbrokes Roulette.

Ladbrokes Roulette. ladbrokes roulette. Du er en kasino som aksepterer

Mine live online casino slots

Mine live online casino slots Empire777 Live Casino har et

Blackjack Tips & # 8211; Slik far du mest mulig ut av a spille.

Blackjack Tips & # 8211; Slik far du mest mulig

Translation



Hei! Vil du spille i det mest heldige kasinoet? Vi fant det for deg. Prøv her nå!