HelloWorld logo
21.09.2021. ·
5 min

Najbolje strategije za aktivaciju aplikacija u 2021.

Uroš Jelić Uroš Jelić

Moderni standardi za razvoj softvera i potreba za sve boljim korisničkim iskustvom zahtevaju konstantan oprez i budnost developera, kao i redovno apdejtovanje projekta. Aktivacija i integracija sada su kontinuiran proces jer je ponekada potrebno svakodnevno reagovanje i slanje apdejta. 

Zato je veoma važno izabrati i koristiti pravu tehniku aktivacije.  

Inženjeri konstantno smišljaju nove i različite tipove aktivacije kako bi sve promene i apdejti prošli što mirnije i bez većih turbulencija po projekat,  

U zavisnosti od projekta, potreba i resursa, developeri na rapsolaganju imaju nekoliko tehnika, a mi ćemo probati da vam predstavimo neke od njih, kako biste odabrali onu najbolju za vaš projekat.

Recreate deployment 

Ova strategija podrazumeva gašenje verzije A i aktivaciju verzije B nakon toga. Međutim,  zahteva potpuni prestanak rada na određeno vreme koje zavisi od ponovnog bootovanja nove verzije aplikacije. 

Dobre strane: 

  • Laka postavka, developeri u svakom trenutku mogu da prate workflow
  •  Zbog toga što u pitanju nije parallena aktivacija, baza je uvek organizovana 

Loše strane 

  • Visok stepen negativnog uticanja na korisnika zbog prestanka rada usled gašenja postojeće i pokretanja nove verzije

Rolling deployment 

Primenom ove strategije, developeri mogu da aplouduju više verzija aplikacije kako bi menjali originalnu. 

Dobre strane 

  • Moguća je kontinuirana promena dok ja aplikacija aktivna 
  • Ne dolazi do gašenja ili prestanaka u radu 

Loše strane 

  • Veoma je važno konstantno pratiti algoritam koji šalje korisnikje na stare i apdejtovane verzije kako ne bi došlo do problema sa kompatibilnošću između verzija

Blue/Green deployment

Ovde je u pitanju kombinovani model razvoja aplikacije. Developer mogu da koriste dve verzije – postojeća je plava, a apdejtovana verzija je zelena. Takođe, mogu da biraju koja je aktivna, a koja je u test modu.  

Tehnički, obe verzije su aktivne, ali samo je jedna javna, najčešće plava. Kada developeri završe testiranje nove verzije aplikacije, mogu da redirektuju saobraćaj na zelenu.  

Dobre strane 

  • Developeri mogu da sačuvaju plavu verziju i uvek se vrate na nju ili iskoriste prethodnu funkcionalnost za budući apdejt. 
  • Mogućnost prelaska sa jedne na drugu verziju i redirekcija saobraćaja smanjuju zastoj u radu.
  • Ako dođe do problema prilikom aktivacije zelene verzije, developeri uvek mogu da se vrate na plavu, a zbog toga što su potpuno odvojene, ne postoji rizik da će jedna verzija negativno uticati na drugu. 

Loše strane 

  • Uprkos minimalnim zastojima u radu, developeri moraju da se postaraju da koriste kompatibilne data formate
  • Vrlo često je potrebno obe verzije držati aktivnim, što povećava prostor za skladištenje, potrebu za jačom procesorskom snagom i cenu potrebnog hardvera.

Canary deployment 

Canary podrazumeva objavljivnaje jedne po jedne nove funkcije umesto kompletno apdejtovane nove verzije. Developeri prethodnu verziju drže aktivnom i upoređuju performanse apdejtovanih delova u odnosu na original. 

Celokupan proces izgleda ovako: 

  • Developeri aplouduju novu verziju na server (verzija B); 
  • Najveći deo korisnika i dalje se šalje na A verziju, dok samo malo deo ima interakciju sa B verzijom. Na ovaj način developeri mogu da prate performanse i prave unapređenja na novoj veziji; 
  • Nakon pravljenja svih potrebnih promena na B verziji, developeri počinju da većinu saobraćaja usmeravaju ka novoj verziji i nastavljaju da prate performanse;
  • Kada B verzija postane dovoljno stabilna, developeri mogu da iseku verziju A u potpunosti i sav saobraćaj preusmere ka apdejtovanoj bazi. 

Važno je napomenuti da za uspeh celog developmenta, obe verzije moraju da budu aktivne istovremeno i u istim uslovima kako bi analiza bila što objektivnija. 

Dobre strane 

  • Zahvaljujući testiranju perofrmanse obe verzije, developeri mogu da smanje vreme aktivacije i ljudima pruže bolje korisničko iskustvo. 

Loše strane 

  • Kompletan metod zahteva dosta vremena jer se testiranje i aktivacija vrđe u nekoliko faza. Pritom, zbog celokupnog procesa, neće svi korisnici biti u mogućnosti da odmah uživaju u unapređenjima.

Shadow deployment 

Tokom ove vrste aktivacija, obe verzije su aktivne u isto vreme. Verzija A, starija, je inicijalno predstavlja korisniku i onda prima podatke. Verzija B, novija, prima sadržaj iz verzije A. Na ovaj način se smanjuje rizik od pogrešne redirekcije i loših performansi jer se određene operacije vuku iz A verzije. U slučaju da B verzija prestane da radi, A verzija može da uskoči. 

Međutim, ovaj način rada produžava vreme reagovanja, zbog čega je potrebno testirati komunikaciju između verzija kako bi se ono smanjilo. 

Kako se ova operacija izvodi: 

  • Developeri pišu funkcije koje šalju input ka obe verzije aplikacije. 
  • U ovoj fazi, developeri se staraju da aplikacija nikada ne šalje isti zahtev dva puta, jer će u suprotnom korisnici morati, na primer, da unose svoje podatke za plaćanje dva puta.
  • U krajnjoj instanci, timovi obraćaju pažnju na sve moguće probleme, porede performanse obe verzije i proveravaju da li je druga verzija tačno primila input prve. 

Dobe strane 

  • Zahvaljujući korisnicima koji sve obavljaju u realnom vremenu i testiranju u realnom vremenu, developeri lakše mogu da postignu veću stabilnost. Ako nova verzija radi lošije, starija će je podržati.  

Loše strane 

  • Sve operacije se dupliraju jer obe verzije rade u isto vreme i samim je potrebno obezbediti veću procesorsku snagu, prostor i servere.
  • Potrebno je i više vremena kako bi se pravilno postavile obe verzije, a krajnji rezultat nikada neće biti 100 odsto tačan jer i dalje postoji mešanje originalne verzije u sve procese.

Šta izabrati? 

Svaka od ovih strategija ima svoje dobre i loše strane, pa je na samim programerima da odaberu onu čije prednosti nadmašuju mane. 

Postoje i određene tehnike koje vam mogu pomoći da izvučete maksimum iz aktivacije koju ste izabrali, pa čak i da neutrališete negativne aspekte koji se uz njih vezuju. 

Primera radi, zahvaljujući kubernetes sistemu, neutrališe se loša strana Recreate deploymenta jer se pravi spoj blue/green i recreate aktivacije i tako ističu samo prednosti. 

Samim tim, postoje načini da se utiče na loše strane određenih aktivacija, pa čak i da se one potpuno neutrališu. 

Važno je da odaberete najbolji deplyoment tip za vaš projekat, ali to nikako ne znači da ne bi trebalo da eksperimentišete sa njim i probate da neutrališete negativne strane za maksimalni učinak i što bezbolniju aktivaciju.

Napiši komentar
Uroš Jelić Uroš Jelić

Nekada IT novinar, a sada PR u tehnološkom svetu koji svaki dan gleda da otkrije i nauči nešto novo i to prenese na druge (silom ili milom). Pogotovo kada je potreban savet za kupovinu telefona.

Iz ove kategorije