De la FTP la Git o poveste de desfasurare

Odată, era un dosar. A fost pe calculatorul tău și ai vrut să o primești pe un server.

Te-ai întrebat vreodată de ce există atât de multe modalități de a face asta? Vom explica câteva dintre elementele de bază ale implementării în acest articol, astfel încât să înțelegeți când să utilizați ce. Să începem!


FTP

FTP sau Protocolul de transfer de fișiere, este considerat de mulți oameni ca fiind calea vechei școli de a "pune un site în sus". Este un protocol, care în principiu înseamnă că există un set de reguli pe care atât computerul local cât și mașina gazdă sunt de acord și pot trimite mesaje prin intermediul acestuia. FTP nu este un "program", în sine, ci mai degrabă o linie telefonică.


SFTP / SSH

Deci, dacă FTP este o linie telefonică de școală veche (care funcționează încă bine), SFTP este ca o rețea 4G

Acesta oferă un nou protocol pentru cele două mașini de a vorbi (nu că este în mod necesar mai rapid, totuși). SFTP este alimentat de SSH, care criptează în esență mesajele care sunt transmise între cele două mașini; astfel încât orice rețea răuvoitoare terță parte sau de neîncredere nu poate ține cont de datele dvs. brute în timpul transferului.


SFTP vs FTP

Dacă nu ați reușit acest lucru, FTP și SFTP sunt ambele protocoale de transfer de fișiere. Cu toate acestea, SFTP (și alte protocoale de transfer bazate pe SSH) transferă fișiere și criptează transferul. "Nu am nevoie de criptare", puteți spune. Mulți oameni cred în același fel; cu toate acestea, dezvoltatorii cu gândire înainte și instrumentele moderne se vor baza pe metode mai sigure. Ați auzit-o înainte - Mai bine în siguranță decât îmi pare rău.

Dar nu mă simt ca să trec prin necazuri.

Mai întâi de toate, dacă asta e treaba ta, suge-o. Puteți fie să vă lipiți de zona dvs. de confort (știți că FTP funcționează în continuare, la fel ca telefonul terestru). Dar nu vrei să te faci mai bine? La urma urmei, de asta ești aici, corect?

Acum, dacă sunteți încă un pic leneș, dar ca ideea de adoptare ușoară, puteți folosi SFTP cu aproape orice client FTP acolo. E mai sigur. Asigurați-vă că serverul acceptă SSH (portul 22, de obicei, trebuie să fie deschis) și ar trebui să fiți bine să mergeți. Dar punctul din acest articol nu este să te gândești la criptare și la transferul de securitate; este să vă gândiți la o strategie de implementare mai robustă.


Implementare vs. transfer de fișiere

"Dar nu mă simt ca să trec prin necazuri ..." ... dacă asta e treaba ta, suge-o

Dacă ați fost în curs de dezvoltare pentru un timp, ați trecut probabil prin exercițiul de creare a unui site și trăgând și lăsând în mod constant fișierele dvs. pe clientul dvs. FTP (sau dublu-clic, sau apăsând "sincronizare", sau ...). Acest este din punct de vedere tehnic, o strategie de implementare, deși nu este una foarte robustă. Desigur, de multe ori acest tip de strategie va funcționa bine, mai ales dacă sunteți singura persoană care va atinge vreodată fișierele și nu ați suprascris niciodată magie nici un fișier important. Dar, din nou, ești aici să te faci bine, nu? Și tu ești un magician.

Implementare, în forma sa cea mai simplă, ia ceva cod și face codul "live". Transferând un index.html fișier în directorul de serviciu, pe care îl desfășurați. De fapt, la sfârșitul zilei, toate strategiile de implementare (cu excepția cazului în care utilizați un sistem de aplicații compilate) mută în esență fișiere sau versiuni ale fișierelor în "directorul curent de lucru" sau le modificați pe cele deja existente. De exemplu, puteți face schimbări la fel index.html fișier direct de pe server, și care ar "efectiv" implementa aceste modificări publicului. Dar desfășurarea poate fi mult mai multă.

Echipa dvs. a creat vreodată un sistem care să vă impună să notificați pe toată lumea când ați împins un fișier pe server prin FTP? Sau poate trebuie să reporniți un server Django sau Rails după schimbarea codului. Dacă faceți acest lucru ca parte a rutinei de a face site-ul dvs. să reflecte modificările pe care le-ați făcut, aceasta face parte din procesul dvs. de desfășurare.


Concepte de control al versiunii

Deci, dacă implementarea înseamnă să facem un set de cod și fișiere în direct, cum poate fi mult mai mult decât SFTP? "Ce este Git și de ce ar trebui să vă pasă?" vă întrebați. Git este un sistem de control al versiunii sau un VCS. Este unul dintre numeroasele VCS-uri pe care le-am ales cu nerușinare ca fiind preferatul nostru. Vom explica de ce mai târziu, dar mai întâi să vorbim ce este.

Sistemele de control al versiunilor îndeplinesc o mulțime de sarcini, dar cel mai important este furnizarea unei rețele de siguranță dezvoltatorilor - în special a echipelor de dezvoltare. Am menționat mai devreme cum FTP și SFTP pot fi perfect fine dacă sunteți perfect și nu veți suprascrie niciodată un fișier sau nu ștergeți un dosar important neintenționat. Dar dacă nu ați făcut încă acest lucru, nu vă faceți griji - se va întâmpla mai devreme sau mai târziu. Este aproape sigur că sa întâmplat cu echipa dvs. dacă nu ați dat seama de un sistem de soluționare. Dar chiar și aceste sisteme de soluționare sunt o durere. De exemplu, directorul dvs. CSS a apărut vreodată așa?