Wie die ersten Schritte mit AWS-s mit CI/CD-Pipelines

Shutterstock/Ribkhan

Wenn Sie kämpfen derzeit auf der sysadmin-Seite der Dinge zu halten Sie alle Ihre Server up-to-date, kann es Zeit zu nehmen einige das Gewicht von den Schultern und automatisieren Sie Ihre Lieferung Prozess mit einer continuous deployment pipeline.

Was Ist CI/CD?

Continuous Integration, Continuous Deployment (CI/CD) ist alles über häufige (oft täglich) – code, Aktualisierungen, Aufbau und testen von neuen releases und Roll-out der änderungen auf die Produktions-Servern schnell und effizient.

Es ist ein sehr weiter Begriff ist, kapselt der Kern der DevOps-Kultur—Straffung der Fluss der neue code vom Entwickler Gehirne und auf Ihren Servern. In der Regel, CI/CD umgesetzt mit dem toolkit eine pipeline, die eine Reihe von tools, die automatisiert den gesamten Prozess-von der Quelle bis zur Bereitstellung.

Dies ist, was AWS bietet mit Ihren CodeSuite-tools, und Sie sind in besonders guter Ort, um die Implementierung einer solchen pipeline, da Sie in der Regel ausgeführt werden, Ihre Produktions-Server auf EC2, wodurch die Bereitstellung der Bühne viel einfacher und gut integriert.

AWS CodeSuite Tools

CodeSuite ist, die aus ein paar verschiedenen tools. Es beginnt mit CodeCommit, AWS managed source-control-service. Es ist ein wenig clunkier und weniger feature-rich als die Konkurrenz, aber es ist leicht genug, um set up Git mit mehreren Fernbedienungen, dass Sie könnte genauso gut verwenden Sie es, wenn Sie beabsichtigen, mit dem rest der pipeline. CodeCommit hat eine sehr großzügige frei-tier, so dass Sie wahrscheinlich nicht anfallen, viele Kosten für Sie.

Als Nächstes kommt CodeBuild, die dauert in der source-control aus CodeCommit (oder GitHub/BitBucket) und baut aus dem Quellcode, laufen alle tests, die Sie in den Prozess. Es verwendet einen EC2 server für das erstellen, die Sie bezahlen müssen, während der build ausgeführt wird. Komplexe Projekte benötigen eine leistungsstarke Maschine für die schnelle baut.

Sobald der Bau abgeschlossen ist, wird Ihre Anwendung für die Bereitstellung bereit ist. Diese Stufe wird behandelt mit CodeDeploy; erstellen Sie eine “Einsatz-Gruppe”, das kann eine beliebige Anzahl von EC2-Instanzen oder ganze auto-scaling-Gruppen. Dies ist, wo Sie AWS-pipeline wirklich glänzt.

Mit CodeDeploy können Sie die Feinabstimmung, wie die Bereitstellung behandelt wird—es sind presets für alle auf einmal, die Hälfte der Gruppe, 10%, alle paar Minuten, und viele mehr, die alle sind entworfen, um die Anwendung minimieren Ausfallzeiten aufgrund unerwarteter Fehler in der Produktion. Nachdem alle Ihre Server automatisch aktualisieren ist schön genug, aber CodeDeploy können sogar schließen Sie Ihren load balancer und schneiden den Datenverkehr zu den Instanzen in den Prozess der aktualisiert wird. Kombiniert mit einem gestaffelten rollout-Strategie, um sicherzustellen, eine minimale Anzahl von gesunden hosts, dies macht die Produktion von updates stressfrei.

All dies ist eingehüllt zusammen in einer einzigen pipeline, die überwacht Ihre Quelle Kontrolle und löst die pipeline, um automatisch ausgeführt, wenn Sie push-änderungen in den release-Zweig, das erstellen, testen und bereitstellen Ihren code auf all Ihren Servern.

How to Set Up a Pipeline

Erste, Sie brauchen, um Ihren code in CodeCommit. Wir empfehlen die Einrichtung von CodeCommit als separate release remote-neben Ihrem primären Quelle Steuern. Wenn Sie mit Github oder BitBucket, können Sie eine direkte Verbindung zu Ihrem repository statt, aber CodeCommit ist eine ganz AWS-Lösung und ermöglicht Ihnen die Verwaltung von organisatorischen Zugriff auf server-updates über die IAM-Konsole.

Weiter, den Kopf über die CodePipeline Konsole, um loszulegen. Klicken Sie auf “Create Pipeline”, und geben Sie einen Namen und eine Beschreibung.

Jede Stufe der pipeline benötigt einige Konfigurationseinstellungen. Die erste ist die Quelle der Bühne, die Verbindung zu CodeCommit, Github und BitBucket. Die beiden letzteren erfordert die Verbindung Ihrer Konten über OAuth, aber CodeCommit verbindet direkt. Wählen Sie das repository aus, das Sie sind usin, und die Abteilung für Veröffentlichungen. Wenn Sie CodeCommit als sekundäre Fernbedienung, entscheiden Sie sich wahrscheinlich für Meister hier, aber wenn Sie mit einem Drittanbieter-Anbieter, können Sie einrichten möchten, ein separates release-Zweig.

Unter dem Zweig Optionen, finden Sie die Einstellungen für, wie diese pipeline automatisch ausgeführt wird. Standardmäßig, es läuft jedes mal, wenn ein neuer commit schob den release-Zweig angegeben wird. Sie können dies ändern, aber dies ist wahrscheinlich das, was Sie wollen.

Als Nächstes steht für die build-Phase. CodePipeline unterstützt Jenkins und den eingebauten CodeBuild für Gebäude-code. Wenn Sie bereits mit Jenkins für Gebäude installieren, müssen Sie die CodePipeline plugin in Verbindung zu AWS. Ansonsten können Sie CodeBuild, indem Sie auf “Projekt Erstellen” zu öffnen ein Dialogfeld.

CodeBuild hat eine Menge Sachen zu konfigurieren, so dass Sie können Lesen Sie unsere Anleitung zur Einrichtung, um mehr zu erfahren. Sobald Sie fertig sind, sollte das Dialogfeld zu schließen und bringen Sie zurück in die CodePipeline setup.

Die nächste Stufe ist die Bereitstellung. CodePipeline unterstützt verschiedene deployment-Optionen; vor allem, wenn Sie mit AWS CloudFormation und Elastic Container-Dienst bereitstellen, können Sie updates direkt an die Menschen. Für Allgemeine EC2 und Lambda-Implementierungen, die Sie verwenden müssen CodeDeploy.

CodeDeploy erfordert auch eine Menge von Konfiguration, so dass Sie können Lesen Sie unsere komplette Anleitung um es einzurichten. In kurzen, erstellen Sie eine deployment-Gruppe, die aus Ihrer EC2-Server, ein Auto-Scaling-group, oder Lambda-Funktionen, und wählen Sie deployment configuration—alle auf einmal, die Hälfte auf einmal, etc. CodeDeploy Griffe alles andere, tweaking des lastenausgleichsmoduls so, dass der Verkehr nicht geleitet, Update-Server, und immer Aufrechterhaltung einer festgelegten Anzahl von gesunden hosts, so dass Ihr service geht nie down für updates.

Sobald Sie fertig sind, kommen zurück, um CodePipeline und wählen Sie die Bereitstellung, den Sie gerade eingerichtet haben. Das sollte markieren Sie alle das setup fertig ist, und Sie können klicken Sie auf weiter, überprüfen Sie Ihre pipeline vor dem setzen es in Bewegung.

Wenn Sie erstellen die pipeline, es läuft das erste automatisch erstellen. Wenn es läuft in Fehler in dem build, die pipeline Stoppt, und Ihre Server nicht aktualisiert werden.

Testen kann man die pipeline Erkennung aktualisieren, indem Sie einen neuen commit in Ihrem source-control. Die pipeline sollte von Anfang an automatisch, und roll-out von änderungen an Ihren Servern, wenn alles gut aussieht.

Sie können gehen Sie zurück und Bearbeiten Sie die pipeline zu jeder Zeit, oder zwicken die CodeBuild oder CodeDeploy-Konfigurationen. Wenn Sie in build-Fehler, müssen Sie sicherstellen, dass Ihre buildspec Datei ist die Handhabung alles richtig.


Posted

in

by

Tags: