Eine Einführung in DevOps Tools auf AWS

Eine Einführung in DevOps Tools auf AWS
DevOps (Development Operations) ist eine Reihe von Tools und Praktiken, die zur Entwicklung und Bereitstellung von Softwareanwendungen schneller verwendet werden. DevOps selbst ist kein Tool, mit dem die Entwicklung, Freigabe und die Bereitstellung von Software schneller gestaltet werden. Es gibt viele Open-Source-Tools, mit denen DevOps in einer Organisation implementiert werden. Im Allgemeinen sind die folgenden grundlegenden Schritte, die zur Implementierung von DevOps Best Practices für die Entwicklung und Bereitstellung von Code schneller durchgeführt werden.
  • Planen
  • Code
  • Bauen
  • Prüfen
  • Freigeben
  • Einsetzen
  • Arbeiten
  • Monitor

Neben Open-Source-Tools bieten verschiedene Cloud-Dienste-Anbieter ihre Cloud-nativen Tools zur Implementierung von DevOps-Praktiken in der Cloud. Dieser Artikel beschreibt verschiedene Tools und Technologien, die AWS zur Implementierung von DevOps auf AWS bereitstellen.

AWS CodeCommit

AWS CodeCommit ist ein Dienst, der für die Versionskontrolle verwendet und von AWS gehostet wird. Genau wie andere Versionskontrolldienste wie Github, Bitbucket und GitLab können Quellcode in CODECOMM auf private Repositories weitergegeben werden. Es gibt keine öffentlichen Repositorys auf AWS CodeCommit.

AWS CodeCommit ist ein hoch verfügbarer, sicherer und skalierbarer Service, der für private Code -Repositorys verwendet wird. Mit AWS CodeCommit müssen Sie den Dienst nicht aktualisieren, wenn Ihre Repositorys über ein Limit hinausgehen. Es skaliert automatisch mit der Zunahme der Anzahl der Repositorys oder der Repository -Größe.

Im Folgenden finden Sie die Liste einiger Vorteile des AWS CodeCommit -Dienstes.

  • Hoch verfügbarer und vollständig verwalteter Service
  • Speichert den Code mit Verschlüsselung in Ruhe
  • Arbeitskollaboration
  • Skalierbarer Versionskontrolldienst
  • Integriert in einige AWS- und Drittanbieterdienste
  • Einfache Migration aus anderen Repositories
  • Unterstützt GIT -Befehle, die Sie bereits kennen

Die AWS -CodeCommit -Konsole bietet eine freundliche grafische Benutzeroberfläche zur Visualisierung von Pull -Anfragen, Commits, Filialen und Git -Tags. Repositories von CodeCommit können mit SSH- und HTTPS -URLs kloniert werden.

In den Einstellungen des CodeCommit -Repository können Sie Benachrichtigungen und Auslöser aktivieren, um zu benachrichtigen, wenn ein bestimmtes Ereignis wie (erstellen Sie einen Zweig, löschen Sie einen Zweig, bei Pull -Anforderung) auftritt.

AWS Codebuild

AWS Codebuild ist ein vollständig verwalteter Dienst, der zum Ausführen von Tests, Erstellen des Codes verwendet und die Build -Artefakte aus dem Code generiert werden. Mit AWS -Codebuild müssen Sie keinen zusätzlichen Build -Server bereitstellen, um den Quellcode zu erstellen. Es bietet vorkonfigurierte Umgebungen für die meisten beliebten Programmiersprachen wie Python, Java, NodeJs und Builds-Tools wie Maven, NPM und Gradle. Sie können auch Ihre eigenen individuellen Umgebungen erstellen, um Ihr Projekt mit AWS -Codebuild zu erstellen.

AWS Codebuild ist ein serverloser Service, und Sie werden nur dann aufgeladen, wenn ein Build ausgeführt wird. Auf diese Weise können Sie Geld für einen zusätzlichen Server zum Erstellen der Projekte sparen. Im Folgenden finden Sie einige Vorteile der Verwendung des Codebuild -Dienstes von AWS.

  • CodeBuild ist ein vollständig verwalteter Dienst, und Sie müssen den Build -Server nicht aktualisieren und verwalten.
  • Es ist ein skalierbarer Service und skaliert mit zunehmender Verarbeitung. Sie zahlen nur für die Zeit, in der der Build läuft.
  • Es bietet vor konfigurierte Build-Umgebungen, die es einfach zu bedienen können.
  • Sie können auch Ihre eigenen anpassbaren Build -Umgebungen auf Codebuild erstellen.

AWS -Codebuild kann in verschiedene Quellcode -Anbieterdienste integriert werden, um den Code abzurufen. Sie können den Code von Github, Bitbucket, Github Enterprise, CodeCommit und S3 abrufen. Außerdem können Sie den Codebuild -Dienst so konfigurieren, dass die Build -Protokolle an die CloudWatch -Protokolle gesendet werden, mit denen die Build -Fehler diagnostiziert werden können. Um mit CloudWatch zu kommunizieren, benötigt AWS Codebuild eine IAM -Rolle mit spezifischen Berechtigungen.

AWS codeDeploy

AWS codeDeploy ist ein vollständig verwalteter Dienst, der von AWS zur Bereitstellung der vorgefertigten Anwendung in verschiedenen Rechendiensten wie EC2, AWS Lambda, AWS ECS und lokalen Servern bereitgestellt wird. AWS codeDePloy -Dienst kann automatisch den folgenden Inhaltstyp bereitstellen.

  • AWS Lambda -Funktion
  • Ausführbare Dateien
  • Multimedia -Dateien
  • Skripte
  • Code
  • Pakete

AWS codeDeploy ist ein serverloser Dienst, und Sie werden nur dann aufgeladen, wenn eine Bereitstellung ausgeführt wird, und der Rest der Zeit wird Ihnen nicht aufgeladen. Genau wie AWS Codebuild eliminiert AWS CodeDePloy auch die Notwendigkeit, einen zusätzlichen Server für Bereitstellungszwecke vorzustellen. Im Folgenden finden Sie einige Vorteile der Verwendung des AWS -CodeDeploy -Dienstes.

  • CodEDePloy kann verwendet werden, um herkömmliche Anwendungen auf Servern und Anwendungen bereitzustellen, die Lambda -Funktionen auf AWS Lambda bereitstellen.
  • Es kann verwendet werden, um den Prozess der Codebereitstellung in verschiedenen Umgebungen wie (Dev, Test, Prod) vollständig zu automatisieren.
  • Es kann verwendet werden, um eine blaue/grüne Bereitstellung durchzuführen, die die Ausfallzeit der Anwendung während der Bereitstellung vermeidet.
  • Die Bereitstellung kann zurückgerollt werden, wenn beim Bereitstellen der neuesten Version ein Fehler auftritt.

AWS CodePipipeline

AWS CodePipipeline ist ein Dienst, mit dem eine vollständige CICD -Pipeline mithilfe einer freundlichen grafischen Benutzeroberfläche visualisieren wird. Es schafft eine schöne GUI einer Pipeline, indem verschiedene Dienste wie AWS CodeCommit, AWS Codebuild und AWS codeDePloy kombiniert werden. Dies erleichtert den Softwarefreigabeprozess, indem jeden Schritt der Pipeline visualisiert wird.

Wenn ein Entwickler den Code in den CodeCommit drängt. Nach dem Erstellen der Artefakte werden diese Artefakte an den AWS -CodEDePloy -Dienst übergeben, um die neueste Version der Anwendung auf dem Server bereitzustellen.

Alle diese Schritte können im Codepipeline -Service visualisiert und integriert werden. Während des Bereitstellens des Codes von der Staging zu einer Produktionsumgebung kann ein manueller Genehmigungsschritt mit AWS CodePipeline hinzugefügt werden. Um den Code in der Produktionsumgebung bereitzustellen, muss jemand mit spezifischen Berechtigungen die Bereitstellung genehmigen. Es vermeidet es, einen unbefugten Verpflichtung zur Produktion einzusetzen, die die Produktionsumgebung brechen kann.

AWS Codeguru

Amazon Codeguru ist ein von AWS zur Überprüfung des Quellcode bereitgestelltes Dienst. AWS Codeguru verwendet maschinelles Lernen und Programmanalysen, um den Quellcode zu überprüfen und die potenziellen Defekte im Code zu finden. Nachdem AWS Codeguru die Defekte im Quellcode gefunden hat, gibt er Vorschläge zur Lösung dieser Defekte für Java- und Python -Programmiersprachen.

Derzeit unterstützt AWS Codeguru nur Java- und Python -Programmiersprachen und kann den Quellcode von den folgenden Quellanbietern lesen.

  • AWS CodeCommit
  • AWS S3
  • Github Enterprise Cloud
  • GitHub Enterprise Server
  • Github
  • Bit Bucket

Abschluss

Es gibt verschiedene AWS-Cloud-native Dienste, mit denen eine vollständige CICD-Pipeline erstellt werden kann. Der Hauptvorteil der Nutzung der AWS Proprietary Services besteht darin, dass diese Dienste vollständig verwaltete serverlose Dienste werden und privat miteinander interagieren. Es gibt verschiedene Dienste für das Speichern von Quellcode (AWS CodeCommit), das Erstellen und Ausführen von Tests im Code (AWS -CodeBuild) und Bereitstellen des Code. Diese alle Dienste können ineinander integriert werden, um eine vollständige Pipeline mit AWS Codepipeline -Dienst zu erstellen. Dieser Artikel gibt ein kurzes Verständnis für all diese AWS -Dienste, um DevOps -Praktiken auf AWS zu implementieren.