Warum brauche ich ein CI / CD und wie lerne ich es zu konfigurieren?





Das Navigieren in CI / CD ist sowohl für Infrastrukturingenieure als auch für Entwickler nützlich. Konstantin Bryukhanov, Lead DevSecOps, erklärte im Online-Kurs "CI / CD" , wie wertvoll diese Methode ist und wie die Schüler lernen, ihre Prozesse anzupassen.



Hallo! Ich werde Ihnen zunächst die Bedeutung der Verwendung von CI / CD erläutern. Ich kann 5 Gründe herausgreifen:



1. Zeitersparnis durch Wiederverwendung von Code und schnelle Bereitstellung von Projekten



Nachdem Sie eine Art Pipeline für die Bereitstellung und Bereitstellung von Code beschrieben haben, können Sie diese jederzeit wiederverwenden. Zum Beispiel haben Sie 5 Django-Projekte und Sie haben bereits in einem davon beschrieben, wie sich alles entfalten und funktionieren soll. Diese Entwicklungen können übernommen und kopiert werden, indem andere Django-Projekte mit einer kleinen Neukonfiguration automatisiert werden.



2. Abrufen des erwarteten Ergebnisses aus der Bereitstellung



Das erwartete Ergebnis bedeutet, dass wenn Sie die Infrastruktur oder einen Prozess einmal in Form von Code beschrieben haben, dies bedeutet, dass jedes Mal, wenn Sie einige automatische Bereitstellungsprozesse ausführen, diese gleich sind. Sie wissen immer, was Sie am Ende bekommen.



Mit CI / CD können Sie Situationen verhindern, in denen Sie heute auf eine Weise bereitgestellt haben und morgen jemand etwas für sich selbst korrigiert hat. Sie kommen, aber alles funktioniert nicht, und Sie müssen herausfinden, warum. Sie haben die Möglichkeit, dem Unternehmen zu garantieren, dass die Prozesse genau zu dem von Ihnen regulierten Ergebnis führen.



3. Projektunabhängigkeit von der Umwelt



Denken Sie an die häufige Situation, in der Sie den Code auf dem Server bereitgestellt haben. Für Sie wird nichts gestartet, aber der Entwickler sagt, dass alles für ihn funktioniert. Und man muss Zeit investieren, um herauszufinden, dass er tatsächlich eine Art Sucht verändert hat, über die er zum Beispiel geschwiegen hat. Sie müssen zurückentwickeln und die Situation herausfinden.



In CI / CD ist bereits alles enthalten, was für das Funktionieren des Dienstes erforderlich ist. Das heißt, Sie legen Ihren Code, Ihre Datenbanken und Abhängigkeiten in den Container und geben ihn an den Server weiter. Alles geht in einer Essenz. Wohin Sie diesen Container auch transportieren, er hat alles, mit dem Sie arbeiten können. Sie müssen keine Zeit damit verschwenden, Ihre Umgebung einzurichten.



4. Unveränderliche Infrastruktur und einfache Migration



Unveränderlichkeit bedeutet, dass sich die Infrastruktur immer im selben Zustand befindet. Sie haben einen Server bereitgestellt, der alle erforderlichen Prozesse gestartet hat, und Änderungen auf diesem Server werden nicht berücksichtigt. Wenn Sie diesen Server neu starten und den Serverbereitstellungsprozess erneut ausführen, kehrt er an seine ursprüngliche Position zurück. Es gibt keine Möglichkeit, Änderungen an der Serverinfrastruktur vorzunehmen und zu schreiben. Es ist unmöglich, ihm in irgendeiner Weise zu schaden.



Und die einfache Migration bedeutet, dass Sie alles nur einmal beschreiben müssen. Wenn Sie beispielsweise von einem Rechenzentrum in ein anderes bereitstellen möchten, ändern Sie einfach den Endpunkt, an dem der Code bereitgestellt werden soll, und können problemlos denselben Code ohne zusätzliche Änderungen bereitstellen.



5. Möglichkeiten des Ansatzes "Infrastruktur als Code"



Dies bedeutet, dass alle Programmiermuster und -ansätze, die für Code verwendet werden, auf die Infrastruktur anwendbar sind.



Das Wichtigste ist das Vorhandensein einer vollwertigen Versionierung, die im Code und nicht auf den Servern erfolgt. Auf diese Weise können Sie bei Bedarf auf eine frühere Version der Infrastruktur zurücksetzen. Eine ebenso wichtige Möglichkeit, die Infrastruktur zu testen, dh eine Testbereitstellung des Servers durchzuführen, und sie so zu konfigurieren, dass sie den Rest der Server nicht beeinträchtigt.



Zusammenfassend: Was ist CI / CD?



Das Konzept ermöglicht es, die Markteinführungszeit zu verkürzen, ohne nicht funktionale Anforderungen zu verlieren: Skalierbarkeit, Fehlertoleranz, Dokumentation usw. Es besteht aus 2 Dingen:



  • Mit CI (Continuous Integration) können Sie Codeänderungen schnell in die Arbeitsversion des Codes integrieren. Stellen Sie sicher, dass der neue Code in den letzten stabilen Code gelangt.
  • Mit CD (Continuous Delivery / Deployment) können Sie nicht nur Funktionen in die Arbeitsversion des Codes integrieren, sondern auch eine neue Arbeitsversion des Codes so schnell wie möglich auf den Markt bringen. Abhängig von den Aufgaben des Projekts geschieht dies entweder automatisch oder wir senden den Code selbst mithilfe verfeinerter Skripte.


Von hier aus ist es offensichtlich, dass es nicht ausreicht, nur die Technologien Gitlab CI, Doker, Ansible, Terraform usw. zu studieren, auf denen die CI / CD basiert. Daher haben wir während des Kurses besonders darauf geachtet, die Praxis auszuarbeiten. Die Entwurfsarbeit ist der letzte Teil der Schulung, in der Sie die CI / CD-Prozesse für jedes OpenSource-Projekt Ihrer Wahl implementieren. Die Reihenfolge der Aktionen der Schüler ist wie folgt:



  • CI/CD Workflow, Gitlab CI. : , , .. .
  • , , . , . , Django. Java ..
  • CI/CD, , CI. , , . , .
  • : terraform-, Ansible-, , Doker-, , .
  • pipeline, .
  • pipeline , , .


Ziel der Abschlussarbeit ist es, am Ende eine für das Unternehmen akzeptable, vollständig vorgefertigte Lösung zu erhalten, die dem Portfolio hinzugefügt und im Interview demonstriert werden kann. Wenn Sie zu einem Unternehmen kommen und sagen, dass Sie universelle Lösungen für drei verschiedene Projekte von Grund auf neu entwickelt haben, ist dies ein ernstes Argument, um eine Position zu bekommen.



Der Unterricht beginnt am 27. August, aber Sie können der Gruppe innerhalb von zwei Wochen nach dem Start beitreten. Der Kurs richtet sich an Fachleute mit Erfahrung in Entwicklung und Betrieb. Für die Schulung müssen Sie einen Eingangstest bestehen . Ich warte auf alle, die sich entschlossen haben, diese nützliche Technologie für ihre Projekte und ihr Karrierewachstum zu beherrschen. Wir sehen uns bei OTUS!



All Articles