Middle
Kas yra nekintama infrastruktūra (Immutable Infrastructure)?
sobes.tech AI
Atsakymas iš AI
Šis požiūris, kurā infrastruktūras komponenti (serveriai, konteineriai) nepakitė po išdėstymo. Kiekviena pakeitimas reikalauja sukurti naują komponento egzempliorių su reikiamomis konfigūracijomis ir pakeisti seną:
Pagrindinės idėjos:
- Paprastas atstatymas: Jei nauja versija sukelia problemų, lengva grįžti prie ankstesnės, tiesiog nukreipiant srautą į senus, nepakitusius egzempliorius.
- Patikimumas: Pašalina "konfigūracijos nuokrypio" (configuration drift) riziką, kai rankiniu būdu atlikti pakeitimai veikiantys serveriai sukelia nesuderintus būsenas.
- Testavimo paprastumas: Kiekvienas išdėstomas egzempliorius yra pastatytas vienodai, kas daro kūrimo, testavimo ir gamybos aplinkas panašesnes.
- Mastelio keitimas: Požiūris gerai dera su horizontaliu mastelio keitimu ir automatinio klasterių valdymo sprendimais.
Įgyvendinimo pavyzdžiai:
- Naudojant virtualių mašinų vaizdus (AMI AWS) arba konteinerius (Docker images), kurie yra sukurti vieną kartą ir nekeičiami po paleidimo.
- Naudojant įrankius kaip Packer vaizdų kūrimui.
- Kubernetes tipo orkestratoriai, kurie valdo konteinerių gyvavimo ciklą ir leidžia lengvai keisti senus podus naujais.
Palyginimas su keičiamąja infrastruktūra:
| Bruožas | Keičiamoji infrastruktūra | Nekeičiama infrastruktūra |
|---|---|---|
| Pakeitimai | Tiesiogiai daromi veikiančiuose egzemplioriuose | Sukuriamas naujas egzempliorius, senas pakeičiamas |
| Atstatymas | Sudėtingas, reikalauja rankinių veiksmų | Paprastas, perjungimas į senus egzempliorius |
| Patikimumas | Konfigūracijos nuokrypio rizika | Aukšta nuoseklumas |
| Valdymas | Dažnai rankinis valdymas, konfigūracija | Naudojant vaizdus, automatizavimas |
Šis požiūris reikalauja didesnės automatizacijos komponentų kūrimo ir diegimo procesuose, tačiau žymiai padidina infrastruktūros prognozuojamumą ir patikimumą.