Puncte:0

Cele mai bune practici pentru versiunea VPS

drapel gb

Am nevoie în mod regulat să dezvolt unele servicii bazate pe Linux, software gratuit și aplicații cu sursă închisă. Eu folosesc QEMU mașină virtuală ca mediu de dezvoltare unde editez direct fișierele de pe instanța care rulează și fac testele în același timp. Când lucrul este gata, copiez toate fișierele de pe serverul de producție, care este realizat dintr-o instalare proaspătă a sistemului de operare, cu o configurație completă a noului mediu.Evident, atunci când sistemul este în producție, trebuie să sincronizez manual cele 2 medii pentru a le face similare. Când remediez o eroare în producție, trebuie să port remedierea în mediul de dezvoltare.

Dezvoltarea conține mai multe părți:

  • Scripturi Linux și configurație software (/etc, /var/www, /home, fișiere .config, reguli firewall etc)
  • Dependențe (lista de software de descărcat din depozitul de software (adică apt-get install xxx)
  • Aplicația
  • Baza de date

Aș dori să știu cum să fac o versiune corectă a acestui mediu complex.

Am încercat următoarele abordări.


Scriptul de backup creează un fișier TAR complet cu toate elementele necesare: script pentru a descărca toate dependențele, toate fișierele din aplicație, fișierele de configurare necesare din /etc, ultima versiune a scripturilor de backup și restaurare, descărcarea bazei de date etc. .

Scriptul de restaurare șterge toată aplicația curentă și o înlocuiește cu versiunea prezentă în fișierul TAR. Această abordare funcționează corect, dar este puțin greoaie. Este nevoie de multă atenție pentru a vă asigura că scriptul de restaurare funcționează corect dintr-o instalare nouă.


Această abordare ar putea fi puțin ridicolă, nu am testat-o ​​încă. Ideea ar fi să folosesc și o mașină virtuală în mediul meu de producție. Aici, aș copia doar mașina virtuală pe VPS și aș rula QEMU în interiorul VPS-ului. Când vreau să fac backup, doar salvez undeva discul mașinii virtuale. Poate că nu este foarte eficient, dar probabil că este acceptabil pentru proiectul la care lucrez.


Nici eu nu am testat această abordare, dar m-am gândit la asta. Ideea ar fi să folosiți un software de versiune de software, cum ar fi GIT, pe întregul sistem de fișiere după instalarea sistemului de operare. În acest fel, aș comite toate modificările (fișiere binare și text).Aș putea publica modificările aduse producției folosind programul SCM.


Această abordare se bazează pe un software specific. M-am uitat în această direcție și am auzit despre software-ul numit Kurbernetes, Puppet sau alte nume. Acest lucru pare foarte complicat de configurat și nu am petrecut mult timp pentru a investiga acolo.

Care sunt cele mai bune practici cu privire la versiunea mediilor bazate pe Linux?

drapel cn
Bob
Versionați configurația dvs. utilizând un sistem de gestionare a configurației (cum ar fi Ansible, chef etc.) și menținând manualele/rețetele sub controlul versiunilor.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.