La navigation CI / CD est utile à la fois aux ingénieurs d'infrastructure et aux développeurs. Konstantin Bryukhanov, responsable DevSecOps, a expliqué à quel point cette méthodologie est précieuse et comment les étudiants apprennent à personnaliser ses processus dans le cours CI / CD en ligne .
salut! Je vais commencer par vous parler de la signification de l'utilisation de CI / CD. Je peux citer 5 raisons:
1. Gain de temps grâce à la réutilisation du code et au déploiement rapide des projets
Après avoir décrit une sorte de pipeline pour la livraison et le déploiement de code, vous pouvez toujours le réutiliser. Par exemple, vous avez 5 projets Django, et vous avez déjà décrit dans l'un d'eux comment tout doit se dérouler et fonctionner. Ces développements peuvent être repris et copiés en automatisant le reste des projets Django avec une petite reconfiguration.
2. Obtention du résultat attendu du déploiement
Le résultat attendu signifie que si vous avez décrit une fois l'infrastructure ou un processus sous forme de code, chaque fois que vous exécutez des processus de déploiement automatique, ils seront les mêmes. Vous savez toujours ce que vous obtenez à la fin.
CI / CD vous permet d'éviter des situations où aujourd'hui vous avez déployé d'une manière, et demain quelqu'un a corrigé quelque chose pour lui-même, vous venez, mais tout ne fonctionne pas, et vous devez comprendre pourquoi. Vous avez la possibilité de garantir à l'entreprise que les processus mèneront exactement au résultat que vous réglementez.
3. Indépendance du projet par rapport à l'environnement
N'oubliez pas la situation fréquente où vous avez déployé le code sur le serveur, rien ne démarre pour vous, mais le développeur dit que tout fonctionne pour lui. Et il faut passer du temps pour découvrir qu'en fait il a changé une sorte de dépendance, dont il a gardé le silence, par exemple. Vous devez faire de l'ingénierie inverse et comprendre la situation.
Dans CI / CD, tout ce qui est nécessaire au fonctionnement du service est déjà fourni avec. Autrement dit, vous placez votre code, vos bases de données, vos dépendances dans le conteneur et vous le donnez au serveur. Tout va dans une seule essence. Partout où vous transférez ce conteneur, il a tout pour fonctionner. Vous n'avez pas à perdre de temps à configurer votre environnement.
4. Infrastructure immuable et migration facile
L'immuabilité signifie que l'infrastructure est toujours dans le même état. Vous avez déployé un serveur qui a lancé tous les processus nécessaires et toute modification sur ce serveur ne sera pas reflétée sur celui-ci. Si vous redémarrez ce serveur et relancez le processus de déploiement du serveur, il reviendra à sa position d'origine. Il n'y a aucun moyen d'apporter et d'écrire des modifications à l'infrastructure du serveur. Il est impossible de lui faire du mal de quelque manière que ce soit.
Et la facilité de migration signifie qu'il vous suffit de tout décrire une fois. Et lorsque vous avez besoin, par exemple, de déployer d'un centre de données à un autre, il vous suffit de changer le point final où déployer, et de vous déplacer facilement, de déployer le même code sans aucune modification supplémentaire.
5. Possibilités de l'approche "Infrastructure as Code"
Cela signifie que tous les modèles et approches de programmation utilisés pour le code sont applicables à l'infrastructure.
Le plus important est la présence d'un contrôle de version complet, qui se fait dans le code, pas dans les serveurs. Cela vous permet de revenir à une version précédente de l'infrastructure si nécessaire. Et une opportunité tout aussi importante de tester l'infrastructure, c'est-à-dire de faire un test de déploiement du serveur, de le configurer pour qu'il n'affecte pas le reste des serveurs.
En résumé: qu'est-ce que CI / CD?
Le concept permet de réduire les délais de mise sur le marché sans perdre les exigences non fonctionnelles: évolutivité, tolérance aux pannes, documentation, etc. Il se compose de 2 choses:
- CI (Continuous Integration) vous permet d'intégrer rapidement les modifications de code dans la version de travail du code. Assurez-vous que le nouveau code entre dans le dernier code stable.
- CD (Continuous Delivery / Deployment) permet non seulement d'intégrer des fonctionnalités dans la version de travail du code, mais également de mettre sur le marché une nouvelle version de travail du code le plus rapidement possible. Selon les tâches du projet, cela se produit soit automatiquement, soit nous envoyons nous-mêmes le code à l'aide de scripts raffinés.
À partir de là, il est évident qu'il ne suffit pas d'étudier les technologies Gitlab CI, Doker, Ansible, terraform, etc., sur lesquelles le CI / CD est construit. Par conséquent, sur le parcours, nous avons été particulièrement attentifs à l'élaboration de la pratique. Le travail de conception est la dernière partie de la formation, où vous devez mettre en œuvre des processus CI / CD pour tout projet open source de votre choix. La séquence des actions des élèves est la suivante:
- CI/CD Workflow, Gitlab CI. : , , .. .
- , , . , . , Django. Java ..
- CI/CD, , CI. , , . , .
- : terraform-, Ansible-, , Doker-, , .
- pipeline, .
- pipeline , , .
Le but du travail final est d'obtenir une solution complètement finie, acceptable pour l'entreprise, qui peut être ajoutée au portefeuille et démontrée lors de l'entretien. En fait, si vous venez dans une entreprise et dites que vous avez développé des solutions universelles à partir de zéro pour trois projets différents, c'est un argument sérieux pour obtenir un poste.
Les cours commencent le 27 août, mais vous pouvez rejoindre le groupe dans les deux semaines suivant le début. Le cours est conçu pour les professionnels ayant une expérience dans le développement et l'exploitation, pour la formation, vous devrez passer un test d'entrée . J'attends tous ceux qui ont décidé de maîtriser cette technologie utile pour leurs projets et leur évolution de carrière. Rendez-vous à OTUS!