Cand vine vorba de IT, totul se poate updata 🙂 De la componente hardware pana la servere intregi si de la aplicatii marunte la sisteme de operare complete. Tehnologiile de virtualizare si de cloud fac viata mult mai usoara sysadmin-ilor si a echipei de DevOps. Update-urile pot rezolva vulnerabilitati de securitate, pot rezolva probleme de incompatibilitate sau buguri de sistem sau pot aduce imbunatatiri si functionalitati aditionale. Managementul aplicatiilor si al sistemelor de operare reprezinta o buna parte din volumul de munca al unui sysadmin, iar aplicarea update-urilor reprezinta acea etapa din lifecycle-ul lor care face ca totul sa mearga chiar si atunci cand sunt probleme. Optiunile de update pentru o aplicatie sunt esentiale pentru modul in care este gandita intreaga arhitectura gazduita in cloud.
#1. Hotfix – Un astfel de update rezolva rapid o problema foarte stringenta, cum ar fi stergerea continutului din memoria RAM atunci cand un proces incearca sa acceseze o anumita adresa. Denumirea de hot ofera un indiciu extrem de important: “rezolvarea” se aplica unui sistem hot, adica un sistem live care este in productie si deserveste utilizatori/clienti, un sistem important pentru business-ul organizatiei. Avantajul de a solutiona o problema intr-un mod “quick and dirty” poate fi balansat de un dezavantaj major. Un hotfix reprezinta o bucata de cod care nu a fost supusa proceselor obisnuite ale dezvoltarii software, trecandu-se de etapa normala a testarii riguroase din lipsa de timp. Aplicarea hotfix-ului poate avea consecinte nebanuite asupra aplicatiei, si, din acest motiv sysadmin sa decida amanarea sa in functie de severitatea problemei pe care o rezolva. Riscul de a aplica hotfix-ul trebuie bine cantarit cu riscul de a-l nu aplica intrucat situatia care trebuie remediata este mai critica decat o eventuala pierdere a securitatii, de exemplu cum este in cazul unei vulnerabilitati de securitate de tipul “zero day”.
#2. Patch – Un astfel de update are rolul de a mentine un sistem sau o aplicatie la zi si protejate din punct de vedere al atacurilor cibernetice. Spre deosebire de un hotfix, patch-ul trece printr-un proces de verificare foarte riguros. Echipa de QA (Quality Assurance) executa teste specifice care verifica functionarea corecta a sistemului dupa aplicarea patch-ului pentru a fi siguri ca problema este rezolvata (teste de regresie) si valideaza “calitatea” codului pentru noua bucatica de software. Vendorii pot elibera periodic patch-uri pentru aplicatii sau sisteme de operare. De exemplu, Microsoft pune la dispozitia clientilor sai patch-uri in a doua marti din fiecare luna, zi numita “Patch Tuesday”. Intr-un mediu de tip Saas (Software as a Service) aplicarea acestor patch-uri este de obicei transparenta pentru utilizatorul care consuma acel serviciu.
#3. Update-ul de versiune. Un astfel de update reprezinta o modificare suficient de substantiala a software-ului incat sa fie nevoie de incrementare a numarului de versiune. De exemplu, pentru un mediu de devops de tip PaaS (Platform as a Service) trecerea de la Python 2 la Python 3, sau de la Python 3.9 la 3.10. In mediile de tip IaaS (Infrastructure as a Service) instantele de masini virtuale care ruleaza unele sisteme de operare, cum ar fi cele bazate pe Linux, permit ceea ce se numeste update “in-place”, insemnand ca se poate trece de la o versiune de Linux la una superioara fara a fi nevoie de a sterge versiunea veche si fara considerente speciale pentru date. Update-ul la o noua versiune de cod trebuie facut cu mare atentie si inainte de acest lucru este absolut vital a se citi documentatia (“release notes”). De obicei, sunt rezolvate buguri din versiune anterioara, dar functionalitatea si unele servicii pot fi modificate. Cu precadere, atunci cand apare o versiune majora, unele functii devin invechite si sunt inlaturate, comenzile pot avea si ele alta structura si sintaxa si pot aparea functii noi, cerute de clienti. De exemplu, multe aplicatii folosesc OpenSSL pentru securizarea traficului. Update-ul la o versiune mai noua poate duce la incompatibilitati intrucat se vor folosi algoritmi de criptare mai noi, in timp ce algoritimii mai vechi vor fi vazuti ca vulnerabili si indepartati.
Atunci cand vine vorba de o arhitectura care ruleaza in cloud, update-urile reprezinta o parte extrem de importanta in ciclul de servisare si de mentenanta. Uneori, aplicarea patch-urilor si a update-urilor de versiune poate fi facuta intr-un mod organizat, planuit din timp si executat intr-o fereastra de mentenanta. Alteori, pot aparea situatii de urgenta si viteza de reactie este cruciala, iar aplicarea hotfix-ului poate fi solutia salvatoare.
Atunci cand vine vorba de o arhitectura care ruleaza in cloud, update-urile reprezinta o parte extrem de importanta in ciclul de servisare si de mentenanta. Uneori, aplicarea patch-urilor si a update-urilor de versiune poate fi facuta intr-un mod organizat, planuit din timp si executat intr-o fereastra de mentenanta. Alteori, pot aparea situatii de urgenta si viteza de reactie este cruciala, iar aplicarea hotfix-ului poate fi solutia salvatoare.
Mihai Dumitrascu, Sr Systems Engineer