De FTP à Git une histoire de déploiement

Il était une fois un fichier. C'était sur votre ordinateur et vous vouliez l'avoir sur un serveur.

Vous êtes-vous déjà demandé pourquoi il y a tant de façons de le faire? Nous expliquerons certaines des bases du déploiement dans cet article afin que vous sachiez quand utiliser quoi. Commençons!


FTP

FTP ou Protocole de transfer de fichier, est considéré par beaucoup comme le moyen traditionnel de "mettre en place un site". Il s’agit d’un protocole, ce qui signifie qu’il existe un ensemble de règles sur lesquelles l’ordinateur local et la machine hôte s’accordent et peuvent envoyer des messages. FTP n'est pas un "programme" en soi, mais plutôt une ligne téléphonique.


SFTP / SSH

Donc, si FTP est une ligne téléphonique old-school (qui fonctionne toujours très bien), SFTP est comme un réseau 4G

Il offre un nouveau protocole pour que les deux machines puissent parler (non pas que ce soit nécessairement plus rapide, cependant). SFTP est alimenté par SSH, qui crypte essentiellement les messages transmis entre les deux ordinateurs; de sorte que tout réseau tiers malveillant ou réseau non sécurisé ne peut pas récupérer vos données brutes pendant le transfert.


SFTP vs FTP

Si vous n'avez pas tout à fait compris, FTP et SFTP sont tous deux des protocoles de transfert de fichiers. Cependant, SFTP (et d’autres protocoles de transfert utilisant SSH) transfère des fichiers et chiffre le transfert. "Je n'ai pas besoin de cryptage", pourriez-vous dire. Beaucoup de gens pensent de la même façon. Cependant, les développeurs avant-gardistes et les outils modernes se tourneront vers des méthodes plus sécurisées. Vous l'avez entendu avant - Mieux vaut prévenir que guérir.

Mais je n'ai pas envie de passer à travers les ennuis.

Tout d’abord, s’il s’agit de votre travail, faites-le chier. Vous pouvez soit rester avec votre zone de confort (vous savez, le FTP fonctionne toujours, tout comme votre téléphone fixe). Mais tu ne veux pas aller mieux? Après tout, c’est pour ça que vous êtes ici, à droite?

Maintenant, si vous êtes encore un peu paresseux mais que vous aimez l’idée d’une adoption facile, vous pouvez utiliser SFTP avec presque tous les clients FTP. C'est plus sécurisé. Assurez-vous que votre serveur prend en charge SSH (le port 22, généralement, doit être ouvert), et vous devriez être prêt à partir. Mais le but de cet article n'est pas de vous amener à penser au cryptage et à la sécurité des transferts; c'est pour vous faire penser à une stratégie de déploiement plus robuste.


Déploiement vs transfert de fichier

"Mais je n'ai pas envie de passer à travers les ennuis." ... si c'est ton travail, laisse tomber

Si vous développez depuis un certain temps, vous avez probablement déjà explosé en créant un site et en glissant / déposant constamment vos fichiers sur votre client FTP (ou en double-cliquant ou en appuyant sur "sync", ou ...). Ce est techniquement, une stratégie de déploiement, même si elle n’est pas très robuste. Bien sûr, bien souvent, ce type de stratégie fonctionnera bien, en particulier si vous êtes la seule personne à jamais toucher aux fichiers et que vous n'avez jamais, comme par magie, écrasé ou supprimé un fichier important. Mais, encore une fois, vous êtes ici pour aller mieux, non? Et tu es un magicien.

Déploiement, dans sa forme la plus simple, prend du code et le rend "live". En transférant un index.html fichier dans votre répertoire de service, vous déployez. En fait, à la fin de la journée, toutes les stratégies de déploiement (sauf si vous utilisez un système d'application compilé) déplacent essentiellement des fichiers ou des versions de fichiers dans le "répertoire de travail en cours" ou modifient ceux qui sont déjà présents. Par exemple, vous pouvez apporter des modifications à cette même index.html fichier directement sur le serveur, ce qui "déployerait" efficacement ces modifications sur le public. Mais le déploiement peut être beaucoup plus.

Votre équipe a-t-elle déjà configuré un système vous obligeant à informer tout le monde lorsque vous avez transféré un fichier sur le serveur via FTP? Ou peut-être devez-vous redémarrer un serveur Django ou Rails après avoir changé de code. Si vous faites cela dans le cadre de la routine consistant à faire en sorte que votre site reflète les modifications que vous avez apportées, cela fait partie de votre processus de déploiement..


Concepts de contrôle de version

Ainsi, si déployer signifie faire vivre un ensemble de codes et de fichiers, comment peut-il y avoir beaucoup plus que SFTP? "Qu'est-ce que Git et pourquoi devriez-vous vous en soucier?" vous demandez. Git est un système de contrôle de version, ou un VCS. C'est l'un des nombreux VCS que nous avons choisi sans vergogne parmi nos préférés. Nous expliquerons pourquoi plus tard, mais parlons d'abord de quoi il est.

Les systèmes de contrôle de version accomplissent beaucoup de tâches, mais le plus important est de fournir un filet de sécurité aux développeurs, en particulier aux équipes de développement. Nous avons mentionné précédemment comment FTP et SFTP peuvent parfaitement fonctionner si vous êtes parfait et que vous n'écraserez jamais un fichier ni ne supprimerez un dossier important par inadvertance. Mais si vous ne l'avez pas encore fait, ne vous inquiétez pas, cela arrivera tôt ou tard. Il est presque certain que cela est arrivé à votre équipe si vous n’avez pas trouvé de solution de rechange. Mais même ces solutions de contournement sont pénibles. Par exemple, votre répertoire CSS a-t-il déjà ressemblé à ceci?