Linas Platform

Pavyzdys Įmonė išgalvota, skaičiai iliustraciniai. Taip atrodo ataskaita, kurią gaunate po dviejų–trijų dienų infrastruktūros peržiūros.

Infrastruktūros peržiūros ataskaita

Internetinė parduotuvė · 8 kūrėjai · DigitalOcean, 3 serveriai

Ką peržiūrėjau

Santrauka vadovui

Trys svarbiausios rizikos

  1. Duomenų bazės kopija laikoma tame pačiame serveryje kaip pati duomenų bazė. Sugedus serveriui, neliktų nei vienos, nei kitos.
  2. Du buvę rangovai vis dar turi prieigą prie debesies ir kodo — gali ištrinti serverius, nors su jumis nebedirba.
  3. Į produkciją diegia vienas žmogus iš savo kompiuterio, su raktu, kuris atveria visus serverius.
Ar atkūrimas iš atsarginių kopijų kada nors buvo išbandytas?
Įrodymų nerasta: nėra nei aprašytos tvarkos, nei bandomųjų atkūrimų pėdsakų, o komanda neprisimena, kad būtų bandžiusi.
Kur permokate už debesį?
Apie 70 € per mėnesį: testavimo serveris veikia visą parą, du diskai nepriskirti jokiam serveriui, o seni snapshot’ai niekada netrinami.

Rizikos pagal svarbą

Prie kiekvienos — ką radau, kas gali nutikti ir kuris iš šešių darbų ją sutvarko.

Kritinė
duomenis ar pinigus galima prarasti dėl vieno gedimo arba žmogaus, kuris prieigą jau turi.
Aukšta
žala įmanoma, jei nutiks dar kas nors: sutriks svetainė, išeis žmogus, nutekės slaptažodis.
Vidutinė
tiesioginės žalos nėra, bet atsistatyti po gedimo užtruktų ilgiau, o spragos kaupiasi.
Žema
permokami pinigai, rizikos nėra.
  1. Kritinė

    Duomenų bazės kopija tame pačiame serveryje

    Ką radau
    PostgreSQL veikia atskirame serveryje, o naktinė kopija (pg_dump) rašoma į to paties serverio diską. Kitur kopijos nėra.
    Kas gali nutikti
    Sugedus diskui ar per klaidą ištrynus serverį, prarandama ir duomenų bazė, ir kopija. Net kai kopija sveika, dingsta iki paros užsakymų.
  2. Kritinė

    Buvę rangovai vis dar turi prieigą

    Ką radau
    Du buvę rangovai tebėra debesies komandoje ir GitHub organizacijoje. Dviejų veiksnių autentifikacija GitHub’e neprivaloma.
    Kas gali nutikti
    Jie patys arba kas nors, pavogęs jų slaptažodį, gali ištrinti serverius ar nusikopijuoti kodą — ir niekas to nepastebėtų.
    Kuris darbas
    Atskiro darbo nereikia: jūsų administratorius gali juos išimti ir įjungti privalomą dviejų veiksnių autentifikaciją.
  3. Aukšta

    Diegiama iš vieno kompiuterio

    Ką radau
    Diegimo scenarijus ir SSH raktas yra tik vieno kūrėjo kompiuteryje. Tas pats raktas jungiasi prie visų serverių kaip root.
    Kas gali nutikti
    Tam žmogui atostogaujant ar išėjus, pataisos niekas neišleidžia. Dingus jo kompiuteriui, raktas atveria visus serverius.
    Kuris darbas
    CI/CD grandinė
  4. Aukšta

    Slaptažodžiai repozitorijoje

    Ką radau
    Failas .env su duomenų bazės slaptažodžiu ir mokėjimų tiekėjo API raktu yra git istorijoje. Repozitoriją mato visi 8 kūrėjai.
    Kas gali nutikti
    Nutekėjus bet kurio kūrėjo paskyrai ar kompiuteriui, atsiveria duomenų bazė ir mokėjimai. Ištrynus failą, istorija raktų nepamiršta — juos reikia pakeisti.
    Kuris darbas
    Paslapčių tvarkymas
  5. Aukšta

    Duomenų bazė pasiekiama iš interneto

    Ką radau
    Ugniasienė leidžia jungtis prie PostgreSQL prievado iš bet kurio IP adreso. Ją saugo tik slaptažodis — tas pats, kuris yra repozitorijoje.
    Kas gali nutikti
    Kas turi slaptažodį, prie duomenų bazės prisijungia iš bet kur, ne tik iš jūsų serverių.
  6. Aukšta

    Apie gedimus sužinoma iš klientų

    Ką radau
    Svetainės niekas netikrina iš išorės, aliarmų nėra. Logai guli kiekvieno serverio diske ir po 7 dienų ištrinami.
    Kas gali nutikti
    Parduotuvė gali neveikti valandomis, kol kas nors pastebi. Po savaitės nebeįmanoma išsiaiškinti, kas nutiko.
    Kuris darbas
    Logai ir stebėsena
  7. Vidutinė

    Serveriai sukonfigūruoti rankomis

    Ką radau
    Nginx ir sistemos nustatymai keisti tiesiai serveriuose ir niekur neaprašyti. Testavimo aplinkoje — kita PostgreSQL versija nei produkcijoje.
    Kas gali nutikti
    Sugedusio serverio greitai neatkursite — niekas nežino, kas jame keista. Dalis klaidų išlenda tik produkcijoje.
  8. Vidutinė

    Nebepalaikoma operacinė sistema

    Ką radau
    Visuose serveriuose Ubuntu 20.04 — standartinis jos palaikymas jau baigėsi.
    Kas gali nutikti
    Saugumo pataisos nebeateina, nebent įjungtas išplėstinis palaikymas.
  9. Žema

    Permoka už debesį

    Ką radau
    Testavimo serveris veikia visą parą, du diskai nepriskirti jokiam serveriui, 14 senų snapshot’ų niekada netrinami.
    Kas gali nutikti
    Apie 70 € per mėnesį mokama už tai, kuo niekas nesinaudoja.
    Kuris darbas
    Atskiro darbo nereikia — sutvarkoma kartu su pirmu darbu.

Ko nesiūlau

Kubernetes jums šiuo metu nereikia. Trims serveriams ir aštuoniems kūrėjams užtenka dabartinio Docker Compose — tik diegiamo per CI/CD, o ne iš kompiuterio. Prie šio klausimo verta grįžti, kai servisų paleidimas ir atnaujinimas vėl taps rankiniu darbu.

Ko nepatikrinau

Nuo ko pradėti

  1. Iškart, be manęs: jūsų administratorius išima buvusius rangovus, įjungia privalomą dviejų veiksnių autentifikaciją ir atsiima DNS paskyrą.
  2. Pirmas darbas — duomenų bazės kopijos kitoje vietoje ir išbandytas atkūrimas („Infrastruktūra kaip kodas“).
  3. Toliau — slaptažodžiai iš repozitorijos („Paslapčių tvarkymas“) ir diegimas per CI/CD, o ne iš vieno kompiuterio.