Containerizare sau servere virtuale?
Containerizare sau servere virtuale? Vă ajutăm să luați o decizie bine fundamentată pe baza riscului de afaceri, operare, cost și cerințe de dezvoltare.
Short Answer
Containerizare sau servere virtuale? Vă ajutăm să luați o decizie bine fundamentată pe baza riscului de afaceri, operare, cost și cerințe de dezvoltare.
Lansarea unei noi aplicații interne într-o companie nu se împotmolește de obicei în dezvoltare. Aplicația este finalizată, dar apoi apar întrebările: pe ce server va fi găzduită, cum va fi realizată salvarea datelor, cine o va actualiza, ce se întâmplă în caz de eroare și cum poate fi extinsă ulterior? Întrebarea containerizării sau a serverelor virtuale nu este doar o alegere de infrastructură. Determină cât de previzibil funcționează un sistem critic pentru afaceri și câtă atenție va necesita din partea echipei IT.
O decizie bună nu pornește de la care tehnologie este mai modernă. Mai întâi trebuie înțeles ce proces de afaceri susține aplicația, ce pierdere ar cauza o eroare, cât de rapid se schimbă sistemul și dacă există un responsabil real pentru operare.
Mai întâi să evaluăm riscurile, nu să alegem serverul
Să luăm o situație comună. Comenzile unui magazin online ajung printr-o integrare personalizată la sistemul de gestionare a stocurilor, apoi la cel de facturare și la sistemul serviciului de curierat. La câteva sute de comenzi pe zi, această aplicație de legătură nu mai este un element tehnic neglijabil. Dacă se oprește, depozitul nu știe ce trebuie pregătit, iar serviciul pentru clienți nu poate vedea starea reală a comenzii.
În această situație, esențialul nu este dacă programul rulează pe o mașină virtuală sau într-un container. Esențialul este dacă poate fi restaurat, dacă este monitorizat, dacă erorile sunt izolate, dacă funcționarea este documentată și cine poate interveni chiar dacă dezvoltatorul original nu este disponibil.
Decizia este de obicei ghidată de cinci întrebări utile:
- Este vorba de o singură aplicație sau de mai multe servicii care evoluează împreună?
- Cât de des apare o nouă versiune sau o corecție?
- Este nevoie de extinderea capacității într-un timp scurt?
- Există în interiorul companiei cunoștințe și responsabilități adecvate pentru operare?
- Cât costă o oră de întrerupere în procesarea comenzilor, producție sau servicii pentru clienți?
Răspunsurile la aceste întrebări spun adesea mai mult decât o comparație tehnologică lungă.
Ce oferă serverul virtual?
Un server virtual este un mediu izolat pe un computer fizic, care funcționează cu propriul sistem de operare. Poate fi gestionat ca un server tradițional: are propriul spațiu de stocare, setări de rețea, permisiuni de utilizator și actualizări de sistem. Pentru o companie, acest lucru este adesea un model de operare bine înțeles și dovedit.
Poate fi justificat în mod special dacă o aplicație de afaceri mai veche funcționează doar cu un anumit sistem de operare, componente speciale sau conform specificațiilor producătorului. Același lucru poate fi valabil pentru un sistem de suport pentru producție, o bază de date veche sau un software susținut de un furnizor extern, care stabilește condiții precise de instalare.
Avantajul serverului virtual este delimitarea relativ clară. O aplicație poate avea propriul său computer, care poate fi salvat, monitorizat și restaurat dacă este necesar. Acest lucru poate însemna o operare mai simplă pentru sistemele mai mici sau care se schimbă rar.
Însă această simplitate are un preț. Fiecare server virtual necesită un sistem de operare propriu, care trebuie actualizat, protejat și monitorizat. Dacă de-a lungul anilor se creează un nou server pentru fiecare cerință nouă, apare rapid acumularea de servere: nimeni nu este complet sigur ce rulează pe ele, dacă mai sunt necesare și ce proces de afaceri ar putea fi afectat de o actualizare.
Serverul virtual nu este o soluție învechită. Este adecvat atunci când aplicația este stabilă, bine delimitată, schimbările sunt rare și este necesară izolare la nivel de sistem de operare.
Ce rezolvă containerizarea?
În containerizare, aplicația și componentele necesare pentru rularea sa sunt executate într-un pachet portabil și reglementat. Containerul nu este un server virtual complet: utilizează de obicei resursele sistemului gazdă, menținând aplicația într-un mediu izolat.
Din punct de vedere al afacerii, cel mai important avantaj este repetabilitatea. Dacă mediile de dezvoltare, testare și producție sunt construite din același pachet definit, șansele de a întâmpina problema bine cunoscută „a funcționat în mediul de testare” sunt mai mici. Instalarea nu se face pe baza unei descrieri lungi, parțial manuale, ci într-un mod verificabil și repetabil.
Acest lucru este deosebit de util pentru sistemele care se schimbă frecvent. De exemplu, într-o integrare de magazin online, apare un nou serviciu de curierat, o nouă metodă de plată sau o nouă regulă de depozitare. Dacă dezvoltările sunt frecvente, funcționarea containerizată poate sprijini un proces de lansare mai rapid și mai previzibil.
Containerele se potrivesc bine și atunci când o funcție de afaceri constă din mai multe servicii separate. Un component primește comenzile, altul sincronizează stocul, un al treilea generează documente, iar un al patrulea trimite notificări. Acestea nu necesită neapărat un server virtual separat, dar pot fi versiuni separate, monitorizate și extinse dacă este necesar.
Containerizarea nu este însă automat mai simplă. Funcționarea corectă necesită gestionarea reglementată a imaginilor, gestionarea permisiunilor, logare, configurare de rețea, gestionarea secretelor, strategie de backup și monitorizare. Operarea coordonată a mai multor containere necesită deja o disciplină de operare separată. Dacă aceasta lipsește, compania nu primește mai puțină, ci doar o altă formă de complexitate.
Containerul nu înlocuiește arhitectura
O neînțelegere frecventă este că containerele creează singure o disponibilitate ridicată. Nu o fac. O bază de date gestionată prost, o integrare care reprezintă un singur punct de eroare sau o dependență externă nedocumentată rămân riscuri de afaceri chiar și într-un container.
Disponibilitatea este o problemă de proiectare. Trebuie stabilit ce se întâmplă în caz de eroare a serverului, eroare de rețea, lansare defectuoasă sau pierdere de date. Este necesară o repornire automată? Ce restabilire rapidă este acceptabilă? Salvăm doar datele sau verificăm regulat că funcționarea poate fi restaurată din backup?
Containerizare sau servere virtuale: când este rațional să alegem fiecare?
Pentru o aplicație veche și stabilă, la care se intervine de câteva ori pe an, serverul virtual este adesea o decizie mai disciplinată și proporțională. Nu merită să construim o platformă complexă de containere doar pentru că este posibil din punct de vedere tehnologic.
Pentru o aplicație dezvoltată regulat, care gestionează mai multe integrări sau rulează în mai multe medii, containerizarea poate oferi un avantaj operațional semnificativ. Lansarea corecțiilor de erori poate deveni mai rapidă, va fi mai ușor de urmărit ce rulează în producție și riscul de erori cauzate de diferențele de mediu va fi mai mic.
În multe cazuri, răspunsul corect nu este nici-nici. Containerele pot rula și pe servere virtuale. Aceasta este o arhitectură de tranziție sau permanentă frecventă și justificată: mașina virtuală asigură izolarea la nivel de infrastructură, iar containerele asigură instalarea reglementată a aplicațiilor. Astfel, nu este necesar să transformăm toate sistemele printr-un singur salt tehnologic major.
Merită să tratăm separat și natura datelor. Serverele de aplicații, serviciile de integrare și procesele de procesare sunt de obicei mai ușor de containerizat. Totuși, pentru o bază de date mare și critică pentru afaceri, cerințele de backup, performanță, stocare și restaurare au prioritate față de tendințele de instalare.
Costul ascuns este incertitudinea operațională
În deciziile de infrastructură, adesea doar costul lunar al serverului este comparat. Totuși, miza mai mare este adesea munca imprevizibilă: când doar o persoană poate rezolva o eroare, când nu există documentație actualizată sau când înainte de o actualizare nimeni nu știe sigur ce se va opri.
Alegerea tehnică trebuie, așadar, să sprijine transparența. Trebuie să fie cunoscut ce aplicație servește ce proces de afaceri, unde sunt datele sale, cu ce sisteme comunică, cine este responsabil pentru ea și în ce condiții poate fi modificată. Aceasta nu este o povară administrativă, ci baza continuității afacerii.
O infrastructură bună nu este valoroasă pentru că poartă etichete moderne. Este valoroasă pentru că un nou vârf de comenzi, o actualizare de sistem sau absența unei persoane cheie nu opresc activitatea zilnică. Dacă înainte de alegere se clarifică această imagine operațională, tehnologia nu mai este un risc incert, ci un instrument verificabil.
Planning a similar system or integration?
Show us the current process and systems. We will help identify the lowest-risk next step.
Key Takeaways
- Este vorba despre o singură aplicație sau mai multe servicii care evoluează împreună?
- Cât de des sunt lansate noi versiuni sau actualizări?
- Este necesară extinderea capacității într-un timp scurt?
- Există cunoștințe și responsabilități adecvate pentru operare în cadrul companiei?
- Cât costă o oră de întrerupere în procesarea comenzilor, producție sau servicii pentru clienți?
Frequently Asked Questions
Ce oferă un server virtual?
Un server virtual este un mediu izolat pe un computer fizic, care funcționează cu propriul sistem de operare. Poate fi gestionat ca un server tradițional: are propriul spațiu de stocare, setări de rețea, permisiuni de utilizator și actualizări de sistem. Pentru o companie, acesta este adesea un model de operare bine înțeles și dovedit.
Ce rezolvă containerizarea?
Containerizarea permite rularea aplicației și a componentelor necesare într-un pachet reglementat și portabil. Containerul nu este un server virtual complet: utilizează de obicei resursele sistemului gazdă, menținând în același timp aplicația într-un mediu izolat.
Containerizare sau servere virtuale: când este rațional să alegem una sau alta?
Pentru o aplicație stabilă și veche, care este modificată de câteva ori pe an, serverul virtual este adesea o decizie mai disciplinată și proporțională. Nu merită să construim o platformă de containere complexă doar pentru că este posibil din punct de vedere tehnologic.
Related Engineering Insights
6 pierderi operaționale cauzate de defecțiuni de sistem
Cele șase pierderi cauzate de defecțiuni de sistem rămân adesea ascunse: în timp, erori, stocuri și oportunități decizionale pierdute în companie zilnic.
Evaluarea rentabilității investițiilor tehnologice
Evaluarea rentabilității investițiilor tehnologice oferă o bază solidă pentru decizii atunci când măsoară nu doar impactul asupra datelor de proces și operațiuni, ci și timpul de lucru.
Rezultatele unui proiect de dezvoltare a proceselor cu exemplu
Rezultatele unui proiect de dezvoltare a proceselor cu exemplu: cum se obțin mai puține erori, un timp de execuție mai rapid și o funcționare mai fiabilă într-o companie în creștere, în practică.