Slik holder alle forekomster i AWS Auto-skalering Gruppe oppdatert etter utplassere nye koden?

stemmer
0

Jeg prøver å bygge en mer dynamisk / skalerbart system i AWS . Jeg har lansert 2 forekomster i en AutoScaling gruppe hvor det minste antall forekomster er 2 og det maksimale er 5 med en lastbalansering foran dem. Jeg har aktivert Oppsigelse Protection på de to første tilfellene fordi de kommer til å være de som jeg bruker for å distribuere min Rails Søknad via Capistrano .

Problemet er at jeg ikke er sikker på hva er den beste måten å holde alle forekomster i min autoskalering gruppe up-to-date, slik at de kjører samme versjon av programmet.

Jeg har søkt i mange teknikker, nedenfor er de jeg finner relevant, men fortsatt ikke vet noe som ville være best.

1 AWS CodeDeploy: Ser ganske kult, ved hjelp av blå / grønn Distribusjon ser ut som det ville gjøre jobben ganske solid med null nedetid. Jeg vet ikke om det er en tommelfingerregel for dette, men etter min mening, det er distribusjonstiden litt lang , jeg er ikke sikker på om det ville være aktuelt når jeg trenger å frigjøre en hurtigreparasjon .

2 Via Script: Jeg er ikke sikker på hvordan å implementere dette ved hjelp AWS heller, men er ideen da en ny kode er lastet opp til min to master (?) Forekomster,

  1. Jeg vil lage en ny Start Konfigurasjon ved hjelp av nye AMI
  2. Oppdatere autoskalering gruppen til å bruke den nye lanseringen konfigurasjon
  3. Skalere ned min autoskalering gruppe for å avslutte forekomstene som kjører gamle konfigurasjonen
  4. Forhåpentligvis vil AutoScaling politikk opprette nye forekomster ved hjelp av nye lanseringen konfigurasjon

Problemet med denne tilnærmingen er at det krever litt manuell operasjon som jeg ikke ønsker å stole på mye.

3 Bruke brukerdata: Running nye tilfeller med brukerdata som trekker den nye versjonen av koden. Jeg tror ikke dette er en god måte fordi sannsynligvis vil det være andre instanser som allerede kjører den gamle koden.

Så er det disse løsningene jeg har sett til nå, hvilken ville være den beste løsningen?

Jubel!

Publisert på 19/09/2018 klokken 13:36
kilden bruker
På andre språk...                            


1 svar

stemmer
0

Jeg endte opp med å bruke en forlengelse perle (min app er skrevet i Ruby on Rails) for distribusjon. Jeg var allerede bruker Capistranofor distribusjon, så jeg fant ut perle elbassom internt gjør følgende:

  • Distribuere koden til hver kjørende forekomsten forbundet med en gitt gruppe Autoscale
  • Etter utplassering, skape et AMI fra ett av de løpende tilfeller
  • Fest AMI med den nye koden til en ny AWS Launch Configuration
  • Oppdater Autoscale gruppen til å bruke den nye lanseringen konfigurasjon
  • Slett noen gamle AMIS skapt av Elbas
  • Slett noen gamle lanseringen konfigurasjoner skapt av Elbas

Dette er i utgangspunktet den andre muligheten (via Script opsjon), og finne en perle som gjør dette for meg, fjerner utfordringen med manuell håndtering ting.

Håper dette hjelper, skål!

Svarte 23/09/2018 kl. 07:30
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more