Chelezo nyingine - zaidi ya hati, rahisi kuliko mfumo

Kuna mifumo mingi ya chelezo, lakini vipi ikiwa seva zinazohudumiwa zimetawanyika katika mikoa na wateja tofauti na unahitaji kudhibiti kwa kutumia zana za mfumo wa uendeshaji?

Chelezo nyingine - zaidi ya hati, rahisi kuliko mfumo

Good mchana, Habr!
Jina langu ni Natalya. Mimi ni kiongozi wa timu ya kikundi cha wasimamizi wa maombi katika NPO Krista. Tunaomba timu ya mradi wa kampuni yetu. Tuna hali ya kipekee: tunasakinisha na kudumisha programu kwenye seva za kampuni yetu na kwenye seva zilizo kwenye tovuti za wateja. Katika kesi hii, hakuna haja ya kuhifadhi seva nzima. Tu "data muhimu" ni muhimu: DBMS na saraka za kibinafsi za mfumo wa faili. Bila shaka, wateja wana (au hawana) sera zao za chelezo na mara nyingi hutoa aina fulani ya hifadhi ya nje ili kuhifadhi nakala hapo. Katika kesi hii, baada ya kuunda nakala rudufu, tunahakikisha kwamba inatumwa kwa hifadhi ya nje.

Kwa muda fulani, kwa madhumuni ya kuhifadhi nakala rudufu, tuliweza na hati ya bash, lakini kadiri chaguzi za mipangilio zilivyokua, ugumu wa hati hii ulikua kwa usawa, na kwa wakati mmoja mzuri tulifika kwenye hitaji la "kuiharibu chini. , halafu ....”.

Suluhu zilizotengenezwa tayari hazikufaa kwa sababu mbalimbali: kwa sababu ya hitaji la kugawanya hifadhi rudufu, wajibu wa kuhifadhi chelezo ndani ya mteja, ugumu wa mipangilio, uingizwaji wa uingizaji, na vizuizi vya ufikiaji.

Ilionekana kwetu kuwa ni rahisi kuandika kitu chetu wenyewe. Wakati huo huo, tulitaka kupata kitu ambacho kingetosha kwa hali yetu kwa miaka N ijayo, lakini kwa uwezekano wa uwezekano wa kupanua wigo.

Masharti ya kazi yalikuwa kama ifuatavyo:

  1. mfano wa chelezo msingi uko nje ya mtandao, unaendelea ndani ya nchi
  2. uhifadhi wa chelezo na kumbukumbu daima ndani ya mtandao wa mteja
  3. mfano una moduli - aina kama hiyo ya "mjenzi"
  4. utangamano na usambazaji wa Linux unaotumiwa, ikiwa ni pamoja na wale wa kizamani, jukwaa la msalaba linalowezekana linahitajika
  5. ufikiaji wa ssh unatosha kufanya kazi na mfano, kufungua bandari za ziada ni hiari
  6. upeo wa urahisi wa kuanzisha na uendeshaji
  7. inawezekana (lakini sio lazima) kuwa na mfano tofauti ambao hukuruhusu kutazama hali ya kati ya chelezo kutoka kwa seva tofauti.

Tulichopata kinaweza kuonekana hapa: github.com/javister/krista-backup
Programu imeandikwa katika python3; inafanya kazi kwenye Debian, Ubuntu, CentOS, AstraLinux 1.6.

Nyaraka zimewekwa kwenye saraka ya hati ya hazina.

Dhana kuu ambazo mfumo hufanya kazi:
kitendo - kitendo kinachotekelezea operesheni moja ya atomiki (chelezo ya hifadhidata, chelezo ya saraka, uhamishaji kutoka saraka A hadi saraka B, nk). Vitendo vilivyopo viko kwenye saraka ya msingi/vitendo
kazi - kazi, seti ya vitendo ambayo inaelezea mantiki "kazi ya chelezo"
ratiba - ratiba, kazi iliyowekwa na dalili ya hiari ya muda wa utekelezaji wa kazi

Usanidi wa chelezo huhifadhiwa kwenye faili ya yaml; muundo wa jumla wa usanidi:

  • Mipangilio ya jumla
  • sehemu ya vitendo: maelezo ya vitendo vinavyotumiwa kwenye seva hii
  • sehemu ya ratiba: maelezo ya kazi zote (seti za vitendo) na ratiba ya uzinduzi wao na cron, ikiwa uzinduzi huo unahitajika.

Mfano wa usanidi unaweza kupatikana hapa

Nini programu inaweza kufanya kwa sasa:

  • shughuli kuu kwa ajili yetu ni mkono: PostgreSQL Backup kupitia pg_dump, faili directory directory kupitia tar; shughuli na hifadhi ya nje; rsync kati ya saraka; mzunguko wa chelezo (kufuta nakala za zamani)
  • kuita hati ya nje
  • utekelezaji wa mwongozo wa kazi moja
    /opt/KristaBackup/KristaBackup.py run make_full_dump
  • unaweza kuongeza (au kuondoa) kazi ya mtu binafsi au ratiba nzima kwenye crontab
    /opt/KristaBackup/KristaBackup.py enable all
  • anzisha utayarishaji wa faili kulingana na matokeo ya chelezo. Kipengele hiki ni muhimu kwa kushirikiana na Zabbix kwa ufuatiliaji chelezo.
  • inaweza kufanya kazi chinichini katika hali ya wavuti au wavuti
    /opt/KristaBackup/KristaBackup.py web start [--api]

Tofauti kati ya modi ni kwamba webapi haina kiolesura sahihi cha wavuti, lakini programu hujibu maombi kutoka kwa mfano mwingine. Kwa hali ya wavuti, unahitaji kufunga chupa na vifurushi vichache vya ziada, na hii haikubaliki kila mahali, kwa mfano, katika AstraLinux SE iliyoidhinishwa.

Kupitia kiolesura cha wavuti, unaweza kuona hali na kumbukumbu za chelezo za seva zilizounganishwa: "tukio la wavuti" huomba data kutoka kwa "matukio ya chelezo" kupitia API. Ufikiaji wa wavuti unahitaji idhini, ufikiaji wa wavuti haufanyi.

Chelezo nyingine - zaidi ya hati, rahisi kuliko mfumo

Kumbukumbu za nakala zisizo sahihi za zamani zimewekwa alama ya rangi: onyo - njano, kosa - nyekundu.

Chelezo nyingine - zaidi ya hati, rahisi kuliko mfumo

Chelezo nyingine - zaidi ya hati, rahisi kuliko mfumo

Ikiwa msimamizi haitaji karatasi ya kudanganya kwenye vigezo na mifumo ya uendeshaji ya seva ni homogeneous, unaweza kukusanya faili na kusambaza mfuko wa kumaliza.

Tunasambaza huduma hii hasa kupitia Ansible, tukiisambaza kwanza kwa baadhi ya seva muhimu sana, na baada ya kujaribu kwa zingine zote.

Matokeo ya mwisho ni matumizi ya nakala ya kusimama pekee ambayo inaweza kujiendesha na kutumiwa hata na wasimamizi wasio na uzoefu. Ni rahisi kwetu - labda itakuwa muhimu kwako pia?

Chanzo: mapenzi.com

Kuongeza maoni