Jedna od zanimljivijih karakteristika distribuiranih sistema gde koristimo više komponenti koje obavljaju istu funkciju jeste da možemo da menjamo pojedinačne komponente bez prekida rada sistema, odnosno servisa koje sistem pruža. Razlozi za privremeno gašenje pojedinačnih komponenti mogu biti višestruki: održavanje sistema, ažuriranje softvera, otkaz i sl.

Šta nam ovo omogućava? Kako tehnologija stalno napreduje, možemo ažurirati softver komponente ili zameniti kompletnu komponentu novog generacijom hardvera. Korak po korak, komponentu po komponentu. Vremenom možemo zameniti sve komponente sistema a   da pritom nemamo prekid u radu sistema/servisa. Naravno, ovo radimo postepeno i kontrolisano.

Kod hiper-konvergiranih sistema možemo eksploatisati jedan klaster značajno duže nego što je period eksploatacije samog servera koji čini klaster. Bez potrebe da svakih ~5 godina postojeću infrastrukturu “bacamo u kantu” i gradimo novu.

Korišćenjem tehnike “canary deployment” možemo uvoditi novu verziju softvera u produkciju na kontrolisan način, na samo podskup sistema inicijalno. Kada se uverimo da novi kod zaista funkcioniše ispravno, puštamo i na ostatak sistema.

Verovatno najveći i ujedno najbolji primer distribuiranog sistema je globalna Internet mreža na koju se toliko oslanjamo svakodnevno. Na mrežnim elementima Interneta nema ni jednog uređaja niti ijedne linije koda softvera u njima koja je činila originalni Internet (tj. Arpanet).

Google svakih par godina prepiše kompletno svoj softverski stek za pretraživanje, mikroservis po mikroservis.

Poredeći sa biološkim sistemima (iako nije direktna analogija), određene ćelije kod ljudi se regenerišu vremenom. Određeni gmizavci menjaju svoju kožu u potpunosti periodično. Možda je najbolja analogija sa nama činjenica da smo od vrste majmuna evoluirali do homo sapiensa. Nije loša putanja napretka. 🙂

Ako želiš da budeš u toku sa mitovima, trendovima i novostima iz sveta računarstva u Oblaku, prijavi se na Bilten “Ko se boji Klauda još?”.