Da FTP a Git una storia di distribuzione

C'era una volta, c'era un file. Era sul tuo computer e volevi farlo su un server.

Vi siete mai chiesti perché ci sono così tanti modi per farlo? Spiegheremo alcune delle basi della distribuzione in questo articolo in modo da capire quando usare cosa. Iniziamo!


FTP

FTP, o File Transfer Protocol, è considerato da molte persone il modo in cui la vecchia scuola "mette su un sito". È un protocollo, che in pratica significa che esistono un insieme di regole che sia il computer locale che la macchina host concordano e possono inviare messaggi. FTP non è un "programma" di per sé, ma piuttosto come una linea telefonica.


SFTP / SSH

Quindi, se l'FTP è una linea telefonica vecchia scuola (che funziona ancora bene), l'SFTP è come una rete 4G

Offre un nuovo protocollo per le due macchine per parlare (non che sia necessariamente più veloce, comunque). SFTP è alimentato da SSH, che essenzialmente crittografa i messaggi che vengono passati tra le due macchine; quindi qualsiasi rete malintenzionata di terze parti o non attendibile non può ottenere una sospensione dei dati non elaborati durante il trasferimento.


SFTP vs FTP

Se non l'hai capito, FTP e SFTP sono entrambi protocolli di trasferimento file. Tuttavia, SFTP (e altri protocolli di trasferimento basati su SSH) trasferisce i file e crittografa il trasferimento. "Non ho bisogno di crittografia", si potrebbe dire. Molte persone pensano allo stesso modo; tuttavia, gli sviluppatori lungimiranti e gli strumenti moderni si orienteranno verso metodi più sicuri. L'hai già sentito prima - Meglio prevenire che curare.

Ma non ho voglia di affrontare il problema.

Prima di tutto, se questo è il tuo lavoro, succhialo. Puoi stare con la tua zona di comfort (sai, l'FTP funziona ancora, proprio come il tuo telefono fisso). Ma non vuoi migliorare? Dopotutto, è per questo che sei qui, giusto?

Ora, se sei ancora un po 'pigro ma come l'idea di una facile adozione, puoi utilizzare SFTP con quasi tutti i client FTP. È più sicuro Assicurati che il tuo server supporti SSH (la porta 22, in genere, deve essere aperta) e dovresti essere a posto. Ma il punto di questo articolo non è quello di farti pensare a crittografia e sicurezza di trasferimento; è per farti pensare a una strategia di implementazione più solida.


Distribuzione vs Trasferimento file

"Ma non ho voglia di passare attraverso il guaio." ... se questo è il tuo lavoro, succhialo

Se hai sviluppato per un po 'di tempo, probabilmente hai seguito la creazione di un sito e trascinando e rilasciando i tuoi file sul tuo client FTP (o facendo doppio clic o premendo "sync" o ...). Questo è tecnicamente una strategia di implementazione, anche se non molto robusta. Certo, un sacco di volte questo tipo di strategia funzionerà bene, specialmente se sei l'unica persona che potrà mai toccare i file, e non hai magicamente mai sovrascritto o cancellato un file importante. Ma, ancora, sei qui per stare meglio, vero? E tu sei un mago.

Distribuzione, nella sua forma più semplice, sta prendendo del codice e rendendolo codice "live". Con il trasferimento di un index.html file nella directory di servizio, si sta distribuendo. Infatti, alla fine della giornata, tutte le strategie di implementazione (a meno che non si stia utilizzando un sistema di app compilato) essenzialmente spostano file o versioni di file nella "directory di lavoro corrente", o cambiano quelli che sono già presenti. Ad esempio, potresti apportare modifiche allo stesso modo index.html file direttamente sul server, e questo sarebbe effettivamente "distribuire" quelle modifiche al pubblico. Ma l'implementazione può essere molto di più.

Il tuo team ha mai installato un sistema che richiede di avvisare tutti quando hai inviato un file sul server tramite FTP? O forse devi riavviare un server Django o Rails dopo aver cambiato il codice. Se lo fai come parte della routine di far riflettere il tuo sito sulle modifiche che hai apportato, fa parte del processo di implementazione.


Concetti relativi al controllo della versione

Quindi, se l'implementazione implica la realizzazione di un certo insieme di codice e file, come può esserci molto più di SFTP? "Cos'è Git, e perché dovrebbe interessarti?" stai chiedendo Git è un sistema di controllo della versione o VCS. È uno dei tanti VCS che abbiamo scelto spudoratamente come nostro preferito. Spiegheremo perché dopo, ma prima parliamo che cosa è.

I sistemi di controllo delle versioni svolgono molti compiti, ma il più importante è fornire una rete di sicurezza agli sviluppatori, in particolare ai team di sviluppo. Abbiamo già detto prima che FTP e SFTP possono essere perfettamente a posto se sei perfetto e non sovrascriveresti mai un file o eliminerai involontariamente una cartella importante. Ma se non l'hai ancora fatto, non ti preoccupare - succederà prima o poi. È quasi certo che sia successo alla tua squadra se non hai trovato un sistema di soluzione. Ma anche quei sistemi di workaround sono un dolore. Ad esempio, la tua directory CSS è mai stata così?