Unul dintre cele mai importante aspecte de care o organizatie trebuie sa se ocupa dupa adoptia tehnologiilor cloud este migrarea resurselor, a serviciilor si a aplicatiilor dintr-un centru de date on premises in infrastructura furnizorului de cloud.
In mod traditional, rollout-ul in productie a unui server consta din achizitionarea propriu-zisa a server-ului, instalarea unui sistem de operare (o versiune de Windows Server sau o distributie de Linux) si configurarea unui numar restrans de servicii sau aplicatii (Active Directory, Apache, MySQL, DNS, file share, etc.) Durata de viata a server-ului se estima in jurul a 3-5 ani cu speranta ca hardware-ul initial al acestuia va putea satisface volumul de munca la care va fi supus. Este evident ca aceasta abordare astazi nu mai este eficienta. Aceasta metoda de a opera serverele este rigida, monolitica si nescalabila.
Ca solutia la acest mod de a face lucrurile a fost virtualizarea. Virtualizarea ofera unui sysadmin o serie de tool-uri prin care sa sporeasca agilitatea si flexibilitatea rollout-ului unui server. Virtualizarea permite partitionarea resurselor hardware ale unei singure cutii fizice intre mai multe servere virtuale, fiecare cu propriul sistem de operare, servicii, aplicatii si resurse.
Migrarea serviciilor active pe un server spre masini virtuale este un pas critic in migrarea organizatiei catre cloud, mai ales daca vorbim de servere fizice care sunt migrare pe masini virtuale. Abordarile care pot fi facute de administratorii de sistem sunt:
- fizic catre virtual – serverele fizice sunt on-premises, iar masinile virtuale sunt intr-un cloud intr-un cloud public sau privat
- virtual catre virtual – serverele sunt virtuale folosind VMware ESXi sau Microsoft Hyper-V si migrate intr-un cloud public sau privat
Cele mai multe organizatii care trec in cloud isi doresc sa foloseasca aplicatii care sunt cloud-ready, fie ca sunt dezvoltate in house sau cumparate de la terti. O aplicatie cloud-ready trebuie sa indeplineasca cateva cerinte foarte importante:
- aplicatia trebuie sa ruleze intr-un mediu virtualizat (masina virtuala sau containere)
- aplicatia trebuie sa fie accesata printr-o interfata simpla si intutiva, cel mai adesea printr-un browser web
- aplicatia trebuie sa ofere o latenta scazuta atunci cand este accesata (aici ajuta o infrastructura de CDN (content delivery network) bine pusa la punct)
- aplicatia trebuie sa ofere acces concurent mai multor utilizatori
Aplicatiile vechi pot avea probleme la migrarea in cloud intrucat nu au fost proiectate astfel incat sa respecte conditiile de mai sus. Daca o astfel de aplicatie este absolut necesara, atunci ea ar trebui rescrisa de la zero. Daca nu este o aplicatie critica, aceasta se poate decomisiona si se poate cauta o alternativa care sa fie cloud-ready.
Cele mai comune migrari de aplicatii in cloud sunt cele de mai jos:
- rehostarea aplicatiei in cloud – aplicatia este proiectata de asa natura incat poate fi migrata in cloud fara nicio modificare. Acest tip de migrare se mai numeste “lift and shift”.
- refactorizarea aplicatiei – aplicatia trebuie “redesenata” si regandita sa functioneze in cloud. Acest tip de migrare se mai numeste si “rip and replace”
- replatformizarea aplicatiei – aplicatia necesita modificari consistente pentru a putea opera in cloud. O astfel de migrare poarta numele de “lift, tinker and shift”
- repurchase – aplicatia este inlocuita complet cu o aplicatie cloud-ready. Aceasta migrare nu este o migrare propriu-zisa, metoda fiind cunoscuta ca “drop and shop”
- retire – aplicatia este scoasa complet din uz si nu este inlocuita cu nimic altceva 😊
Organizatia trebuie sa acorde o atentie sporita procesului de migrare a aplicatiilor pentru ca de ele depinde productivitatea angajatilor. Pentru o migrare de success si pentru o tranzitie cat mai lina, administratorii platformelor cloud trebuie sa colaboreze indeaproape cu echipa de development. Din procesul de migrare pot face parte si persoane non-tehnice, insa si aceastea ar trebui sa cunoasca putina terminologie de specialitate, sa inteleaga potentialul impact al migrarii asupra business-ului si tipurile de migrare care se preteaza organizatiei.
Inginerii Dendrio va pot ajuta in intregul proces de migrare (analizarea aplicatiilor, prerechizitele necesare, designul arhitecturii si a infrastructurii din mediul cloud), inclusiv in partea premergatoare prin training de specializare cu privire la tehnologiile cloud si pot oferi suport tehnic si consultanta dupa ce aplicatiile au fost migrate si date in productie.
Mihai Dumitrascu, Sr Systems Engineer