Jenkins Continuous Deployment [mit Praxisbeispiel]

Veröffentlicht: 2020-12-28

Die Jenkins-Bereitstellung ist ein beschleunigter Prozess der komplexen automatisierten Softwareentwicklung. Dieser Artikel beleuchtet, wie Jenkins alle Entwicklungslebenszyklusprozesse oder DevOps-Phasen wie Erstellen, Dokumentieren, Testen, Paketieren, Staging, Bereitstellung, statische Analyse und vieles mehr integriert, die in mehreren Organisationen praktiziert werden.

Heutzutage übernehmen viele Organisationen DevOps in ihren Angeboten. Im Lebenszyklus der Softwareentwicklung müssen Sie die Software kontinuierlich als Teil des Projekts freigeben.

Tools wie Jenkins sind aufgrund ihres Potenzials, die kontinuierliche Integration und Bereitstellung von Anwendungen unabhängig von der Plattform zu ermöglichen, weithin beliebt. Jenkins ist ein kostenloses One-Source-Tool, das jede Art von Build in der Jenkins-Bereitstellung verarbeiten kann, was im Artikel besprochen wird.

Jenkins kann in viele Test- und Bereitstellungstechnologien integriert werden. Dieser Artikel beschreibt, wie Jenkins zum kontinuierlichen Erstellen und Testen Ihrer Softwareprojekte verwendet wird.

Lernen Sie den Online-Kurs Software Engineering von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Bevor wir also in die Funktionsweise von Jenkins eintauchen, müssen wir die folgenden Themen verstehen, die die Grundlage für das Erlernen von Jenkins bilden:

  • Kontinuierlicher Einsatz
  • Kontinuierliche Bereitstellung vs. kontinuierliche Bereitstellung
  • Ein praktisches Beispiel für die Bereitstellung von Jenkins
  • Vorteile der Jenkins-Bereitstellung

Schauen wir uns alle einzeln an!

Inhaltsverzeichnis

Kontinuierliche Bereitstellung

Beim Continuous Deployment wird die Software fortlaufend automatisiert auf den Produktionsservern freigegeben. Der Code durchläuft Phasen wie Quellcodekompilierung, Validierung, Überprüfung, Paketierung der Anwendung und Durchführung von Komponententests und Integrationstests.

Der Code wird dann auf den Testservern bereitgestellt, wenn der Benutzerakzeptanztest durchgeführt wird. Die Software wird auf den Produktionsservern für die Softwarefreigabe bereitgestellt. Lesen Sie mehr über kontinuierliche Integration mit jenkins.

Continuous Delivery vs. Continuous Deployment

Continuous Delivery und Continuous Deployment sind zwei entscheidende Phasen eines SDLC, in denen die Continuous Delivery bei Änderungen nicht in der Produktion bereitgestellt wird. Der Entwickler muss sicherstellen, dass der Code immer bereitstellbar ist, und ihn bei Bedarf bereitstellen.

Bildnachweis

Continuous Deployment erfordert, dass jede Änderung automatisch ohne menschliches Eingreifen bereitgestellt wird.

Im obigen Diagramm wird die erstellte Anwendung nach Abschluss der kontinuierlichen Integrationsphasen automatisch auf den Produktionsservern bereitgestellt, was nichts anderes als eine ständige Bereitstellung ist.

Oder wenn wir eine menschliche Genehmigung benötigen, um die neuere Version zur Automatisierung von allem bereitzustellen, führen wir eine kontinuierliche Bereitstellung durch.

Aufgrund dieses Kernunterschieds gab es mehrere Implikationen, die jeden Prozess für unterschiedliche Umstände geeignet machten.

Jenkins

Jenkins ist ein Open-Source-Tool, das den Softwareprozess durch einen Automatisierungsserver beschleunigt, der zum kontinuierlichen Erstellen und Testen von Softwareprojekten verwendet wird und eine CI/CD-Umgebung für die Entwickler ermöglicht. Es ist in Java geschrieben und somit wirklich portabel.

Jenkins verfügt über Tausende von Plugins und Integrationen. Daher eignet es sich für große Projekte, die viele Anpassungen erfordern. Es unterstützt Versionskontrolltools wie Git, Maven, Mercurial und Subversion.

Ein praktisches Beispiel für die Bereitstellung von Jenkins

Nachdem wir nun erfahren haben, was für ein Tool Jenkins ist und für einen Softwareentwicklungsprozess für Continuous Deployment eingesetzt werden kann, wollen wir uns nun ansehen, wie es in einer Produktionsumgebung funktioniert.

Zuerst wird Jenkins auf einem Server eingerichtet und ein Kundenprojekt wird zum Erstellen und Testen hinzugefügt. Anschließend kann der Kunde die getestete Anwendung herunterladen. Das Bereitstellen der Projektressourcen an einem neuen Speicherort auf dem Server kann schwierig sein.

Nehmen wir zunächst an, dass ein Client-Projekt auf Jenkins eingerichtet und mit Ihrem Versionskontrollsystem verknüpft ist.

Schritt 1: Erstellen eines Jenkins-Elements

Wählen Sie im Hauptmenü „Neues Element“ und benennen Sie es. Es exportiert die Dateien aus Ihrem Client-Projekt in einen Serverordner.

Schritt 2: Erstellen einer Post-Build-Aktion

Gehen Sie zum Clientprojekt und wählen Sie Konfigurieren aus. Starten Sie nun eine Post-Build-Aktion und wählen Sie „Artefakte archivieren“ aus dem Dropdown-Menü. Fügen Sie die zu archivierenden und zu exportierenden Dateitypen hinzu.

Hängen Sie danach eine weitere Post-Build-Aktion „Anderes Projekt erstellen“ an und geben Sie das zuvor erstellte Build-Element ein.

Archiv

Schritt 3: Installation des Plugins „Copy Artifact“

Im dritten Schritt installieren Sie das „Copy Artifact Plugin“ von Jenkins.

Gehen Sie zu „Projektname“, um einen Build-Schritt zu konfigurieren und hinzuzufügen. Wenn das Plugin „Artefakt kopieren“ installiert ist, sehen Sie die Option „Artefakte aus einem anderen Projekt kopieren“. Legen Sie den Ordner zum Kopieren der Artefakte fest und legen Sie den Speicherortpfad fest.

Stellen Sie den Speicherort auf „var/www/clients/..“ ein. Dadurch wird ein neuer Ordner auf dem Server erstellt. Geben Sie den Pfad mit einer HTTP-Adresse(!) an.

Speichern des Projekts

Schritt 4: Durchführen von Tests

Nach den ersten Phasen ist es jetzt an der Zeit, die Anwendung zu testen.

Starten Sie dazu einen Build aus dem Client-Projekt. Dadurch wird ein neuer Build veranlasst. Überprüfen Sie den Bereitstellungsordner auf dem Server. Hier sehen Sie die bereitgestellten Dateien.

Aber selbst nach all den Aktionen ist der Build fehlgeschlagen und Sie haben einen Fehler „FileException“ erhalten.

Warum?

Mögliche Gründe können sein:

  • Jenkins hatte keine Berechtigungen zum Schreiben in den Ordner und kann die Dateien nicht bereitstellen.
  • SSH mit dem Server verbinden.
  • Überprüfen Sie die Berechtigungen des Ausgabeordners.
  • Sie werden wissen, wir hatten ein Problem.

Führen Sie die folgenden Schritte aus, um dies zu beheben:

  1. Fügen Sie Jenkins einer Gruppe hinzu, hier der Gruppe „www-data“.
  2. Ändern Sie den Besitz des Ausgabeordners in die Gruppe „www-data“ mit dem Befehl sudo chown – R : „www data“-Clients.
  3. Erlauben Sie den Schreibzugriff auf den Ordner mit dem Befehl sudo chmod .
  4. Starten Sie den Server neu und sehen Sie sich die bereitgestellte Anwendung an

Welche Vorteile bietet Jenkins?

  • Jenkins ist ein Open-Source-Tool und bietet hervorragenden Community-Support.
  • Jenkins ist relativ einfach zu installieren.
  • Jenkins hat über 1000 Plugins. Wenn ein Plugin nicht verfügbar ist, können Sie es einfach codieren.
  • Jenkins ist kostenlos.
  • Jenkins ist mit Java gebaut; daher auf alle wichtigen Plattformen portierbar.

Lesen Sie auch: Ideen und Themen des Jenkins-Projekts

Letzte Worte

Jenkins ist ein robustes, in Java geschriebenes Automatisierungstool, das für Continuous Integration weit verbreitet ist. Mit Jenkins ist es einfacher, Softwareprojekte kontinuierlich mit dem zu erstellen und zu testen, was geschrieben wurde. Es ist das ultimative Tool, um Ihre Software immer bereitzustellen, indem es in eine große Anzahl von Test- und Bereitstellungstechnologien integriert wird.

Softwareentwicklung lernen – DevOps mit upGrad

upGrad bietet ein Executive PG-Programm in Softwareentwicklung an – Spezialisierung auf DevOps, in dem Sie lernen, Anwendungen und Dienste mit sehr hoher Geschwindigkeit in der Organisation bereitzustellen. Die Fakultät von upGrad wird Ihnen alles über DevOps beibringen und erklären, warum das Erlernen von DevOps eine profitable Karriere für Sie sein wird.

Highlights des PG-Diploms von upGrad in Softwareentwicklungsspezialisierung im DevOps-Programm:

Dieser erweiterte 12-monatige Online-Kurs bietet die folgenden Funktionen:

  • Sachkundige Online-Sitzungen mit Live-Vorträgen
  • Kostenloser Zugriff auf die wertvollen Inhalte in Data Science & Machine Learning
  • Arbeiten an mehr als 7 Live-Projekten und Aufgaben
  • Erlernen von zehn Programmiersprachen & Tools
  • Garantierte Platzierungsgarantie
  • 360° Career Support mit Jobassistenz

Softwareentwicklungskurs

Bewerben Sie sich für das Advanced Certificate Program in DevOps