top aws devops tools
Beste Amazon AWS DevOps Tools: Eine Pipeline , Quellcode-Repository, Erstellung und Bereitstellung mit Amazon Web Services
Als ich vor mehr als 20 Jahren meine Software-Karriere begann, musste die Infrastruktur (Software und Hardware) für jede Art von Entwicklung und Bereitstellung beschafft werden.
Dies beinhaltete die Bestellung von Servern beim Anbieter, das Warten auf eine bestimmte Zeit, um diese zu erhalten, sobald der gelieferte Serverplatz reserviert werden musste, die Installation des Servers, des Betriebssystems, der Speicherkonfiguration usw. Wir mussten uns auch Sorgen machen Leistung, Verfügbarkeit (24 * 7), Wartung, Netzwerk usw.
Dies war zu aufwändig, um einen Server für Aktivitäten zur Entwicklung und Bereitstellung von Anwendungen aufzurufen.
Was du lernen wirst:
- Entwicklung des Cloud Computing
- Erstellen und Bereitstellen mit AWS Tools
- Jenkins-Integration mit AWS Services
- Literatur-Empfehlungen
Entwicklung des Cloud Computing
Mit der Entwicklung des Cloud Computing mussten sich die Dinge ändern, was bedeutet, dass Sie über das Internet auf alle Ihre Anwendungen und Datenbanken zugreifen können. Daher verwalten Cloud Computing-Anbieter die gesamte Hardware, die zum Ausführen Ihrer Webanwendung erforderlich ist.
Alle Ressourcen mit einer geeigneten Konfiguration, die Sie zum Hosten Ihrer Anwendung benötigen, sind mit einem Klick verfügbar. Die Zeit für die Bereitstellung der Ressourcen für Entwickler wird drastisch reduziert. Am wichtigsten ist, dass Sie nur für das bezahlen, was Sie benötigen.
Der Fokus für Entwickler, die Cloud-basierte Dienste nutzen, liegt nur auf dem, was sie für die Arbeit an unseren Projekten benötigen, und nicht auf der Verfügbarkeit der Infrastruktur. Ich beschäftige mich nicht mit Cloud-Computing-Typen (IaaS, PaaS, SaaS). Über das Internet stehen unzählige Informationen zur Verfügung, um zu beschreiben, was sie sind.
Es gibt viele Cloud-Anbieter. Aber die 3 beliebtesten, mit denen ich gearbeitet habe, sind:
- Amazon Web Services
- Microsoft Azure
- Google Cloud
In diesem Abschnitt werde ich mich auf Werkzeuge für konzentrieren eine Pipeline , Quellcode-Repository, Erstellung und Bereitstellung mit Amazon Web Services . Nicht zu vergessen, dass Teams immer noch DevOps-Tools wie Jenkins, Git, Maven und andere verwenden.
Daher ist es unerlässlich, dass Teams ihre Assets und Artefakte möglicherweise in die Cloud-Infrastruktur verlagern möchten, aber auch ihre vorhandenen Investitionen in Tools und Daten durch Integrationen / Migrationen so weit wie möglich maximieren müssen.
Klicken Hier Erfahren Sie mehr über AWS und die verschiedenen Services für Architekten, Entwickler und SysOPS. Wir werden das kostenlose Konto für die genannten Tools verwenden, aber natürlich müssen Sie in einer Produktionsumgebung die Dienste für die Verwendung beschaffen.
Erstellen und Bereitstellen mit AWS Tools
Unter dem Gesichtspunkt der Erstellung und Bereitstellung werden die folgenden AWS-Services betrachtet
wie man .bin-Dateien ausführt
- AWS CodePipeline
- AWS CodeCommit
- AWS CodeBuild
- AWS CodeDeploy
1. AWS CodePipeline
AWS CodePipeline ähnelt der Jenkins-Pipeline, die eine visuelle Ansicht des End-to-End-Bereitstellungsprozesses ermöglicht.
In einer CodePipeline konfigurieren Sie normalerweise Folgendes
- Quellcode-Repository - Ihr Quellcode muss sich also entweder im AWS CodeCommit- oder im GitHub-Repository befinden.
- Build-Service - AWS CodeBuild-Details werden als Teil der Pipeline konfiguriert.
- Bereitstellen - AWS CodeDeploy wird in der Pipeline konfiguriert.
- Wenn während des Bereitstellungsprozesses in verschiedenen Umgebungen Genehmigungen erforderlich sind, können diese ebenfalls konfiguriert werden
Wenn also eine Codeänderung durch den Entwickler erfolgt, kann die visuelle Darstellung von Build and Deploy als automatisiert angesehen werden.
Konfiguration des Quellcode-Repositorys in AWS CodePipeline
Erstellen Sie die Konfiguration in AWS CodePipeline, die den Maven-Build verwendet
Bereitstellungskonfiguration in AWS CodePipeline
Die vollständige Ausführung wird in AWS CodePipeline angezeigt
2. AWS CodeCommit
AWS CodeCommit ist ein sicherer Online-Versionskontrolldienst, der private Git-Repositorys hostet. Ein Team muss kein eigenes Versionskontroll-Repository verwalten, sondern verwendet AWS CodeCommit, um seinen Quellcode oder sogar Binärdateien wie die aus dem Build generierten WAR / JAR / EAR-Dateien zu speichern.
Mit AWS CodeCommit erstellen Sie ein Repository, und jeder Entwickler klont es auf seinen lokalen Computer, fügt Dateien hinzu und überträgt es zurück in das AWS CodeCommit-Repository. Man verwendet die Standard-GIT-Befehle mit dem AWS CodeCommit-Repository.
Zum Z.B. Sobald das AWS CodeCommit-Repository auf den lokalen Computer geklont ist, verwenden Sie Befehle wie 'Git Pull', 'Git Add', 'Git Commit', 'Git Push' usw.
Illustratives leeres AWS CodeCommit-Repository erstellt
Klonen Sie das Repository auf den lokalen Computer
Dateien, die dem AWS CodeCommit-Repository hinzugefügt wurden
3. AWS CodeBuild
Wie wir gesehen haben, werden der Quellcode und andere Projektartefakte im AWS CodeCommit-Repository gespeichert.
Um die kontinuierliche Integration zu implementieren, ruft AWS CodeBuild wie Jenkins die neuesten Änderungen des Quellcodes aus AWS CodeCommit oder dem GitHub-Repository ab, wie konfiguriert und basierend auf der Build-Spezifikation YAML-Datei (erstellt als buildspec.yml) Die Befehle werden basierend auf den vier Phasen Installieren, Pre-Build, Build und Post-Build ausgeführt.
Nach Abschluss des Builds werden die Artefakte (WAR / ZIP / JAR / EAR) im AWS Storage gespeichert, einem S3-Bucket.
Beispieldatei buildspec.yml
version: 0.2 phases: install: commands: - echo Nothing in the install phase... pre_build: commands: - echo Nothing in the pre_build phase... build: commands: - echo Build started on `date` - mvn clean install post_build: commands: - echo Build completed on `date` artifacts: files: - target/HelloWorld-Maven.war
Beispiel für ein AWS Codebuild-Projekt
Erfolg aufbauen
Artefakt (WAR-Datei) in S3-Bucket kopiert
4. AWS CodeDeploy
Wie der Name schon sagt, ist AWS Codedeploy der Bereitstellungsdienst, der die Bereitstellung der Anwendung (in diesem Fall WAR-Datei) auf Amazon EC2 Linux- oder Windows-Instanzen automatisiert.
Da wir jetzt die Artefakte im S3-Bucket gespeichert haben, der mit AWS CodeBuild abgeschlossen wurde, werden die Artefakte aus dem S3-Bucket aufgenommen und in der AWS EC2-Instanzbereitstellung entsprechend auf dem App-Server Tomcat oder JBoss usw. bereitgestellt.
AWS CodeDeploy hängt von einer YAML-Datei namens appspec.yml ab, die Anweisungen zur Bereitstellung auf den EC2-Instanzen enthält.
Beispieldatei appspec.yml, in die die Datei index.html kopiert und auf dem Apache-Server bereitgestellt wird
version:10.0 os:linux files: -source: /opt/deploy/index.html destination:/var/www/html/ hooks: BeforeInstall: -location:scripts/before_install runas:niranjan AfterInstall: -location:scripts/restart_server runas:niranjan
before_install Skript
restart_server Skript
GitHub-Repo aller Dateien, die zum Ausführen von AWS CodeDeploy benötigt werden
Ausführungsausführung in AWS CodeDeploy
Jenkins-Integration mit AWS Services
Wie bereits erwähnt, verwenden Teams heutzutage Jenkins häufig als defacto CI-Tool. In den meisten Fällen möchten sie sich nicht wirklich davon entfernen, sondern sich in die von uns diskutierten AWS-Services integrieren. Zwar handelt es sich um bestimmte Verfahren, und ich habe Screenshots der Integration gezeigt.
1. Jenkins-Integration mit AWS CodeCommit
2. Jenkins-Integration mit AWS CodeBuild
3. Jenkins-Integration mit AWS CodeDeploy
Alles für AWS DevOps Stack zusammenstellen:
Der Stapel sucht unten nach den oben beschriebenen AWS-Diensten.
Hoffe dieses Tutorial auf, Tools für eine Pipeline , Quellcode-Repository, Erstellung und Bereitstellung mit Amazon Web Services war hilfreich für Sie.
Literatur-Empfehlungen
- AWS CodeCommit-Lernprogramm für die DevOps-Implementierung in der Cloud
- Arbeiten am AWS CodeDeploy DevOps-Tool für die automatisierte Bereitstellung
- Kontinuierliche Bereitstellung in DevOps
- Beste Software-Test-Tools 2021 (QA Test Automation Tools)
- AWS CodeBuild Tutorial: Extrahieren von Code aus Maven Build
- Kontinuierliche Lieferung in DevOps
- 10 BESTE Cloud-Überwachungstools für perfektes Cloud-Management
- Kontinuierliches Testen in DevOps