Was ist JenkinsWarum sollte man ein Continuous Integration (CI)-Tool verwenden?
⚡ Intelligente Zusammenfassung
Jenkins ist der Open-Source-Automatisierungsserver, der jedes Mal Code erstellt und testet, wenn ein Entwickler Änderungen vornimmt, und so Continuous Integration von einer nächtlichen Aufgabe in einen Prozess verwandelt, der kontinuierlich während des gesamten Arbeitstages läuft.
Was ist Jenkins?
Jenkins ist ein Open-Source-Continuous-Integration-Server, geschrieben in Java zur Orchestrierung einer Kette von Aktionen, um den Continuous Integration-Prozess auf automatisierte Weise zu erreichen. Jenkins Unterstützt den gesamten Entwicklungslebenszyklus von Software, von der Erstellung über das Testen, die Dokumentation und die Bereitstellung bis hin zu anderen Phasen des Softwareentwicklungszyklus.
Jenkins ist eine weltweit verbreitete Anwendung mit Hunderttausenden von Installationen, deren Anzahl täglich wächst. Durch die Verwendung JenkinsSoftwareunternehmen können ihren Softwareentwicklungsprozess beschleunigen, Jenkins kann Build- und Testprozesse schnell automatisieren.
Es handelt sich um eine serverbasierte Anwendung und benötigt einen Webserver wie Apache Tomcat. Der Grund Jenkins Die Software erfreute sich so großer Beliebtheit aufgrund ihrer Fähigkeit, wiederkehrende Aufgaben zu überwachen, die während der Projektentwicklung anfallen. Wenn Ihr Team beispielsweise entwickeltping ein Projekt Jenkins wird Ihre Projekt-Builds kontinuierlich testen und Ihnen die Fehler in frühen Entwicklungsstadien aufzeigen.
Hinweis: Bereitstellung der WAR-Datei in Apache Tomcat funktioniert zwar noch, aber aktuelle Versionen liefern einen eingebetteten Servlet-Container aus, daher Jenkins Läuft normalerweise von selbst. Die 2.555.x LTS-Reihe benötigt Java 21
Was ist kontinuierliche Integration?
Kontinuierliche Integration ist ein Prozess, bei dem Codeänderungen von mehreren Entwicklern mehrmals in ein einzelnes Projekt integriert werden. Die Software wird unmittelbar nach einem Code-Commit getestet. Bei jedem Code-Commit wird Code erstellt und getestet. Wenn der Test bestanden wird, wird der Build für die Bereitstellung getestet. Wenn die Bereitstellung erfolgreich ist, wird der Code in die Produktion übertragen.
Dieses Festschreiben, Erstellen, Testen und Bereitstellen ist ein kontinuierlicher Prozess und daher der Name kontinuierliche Integration/Bereitstellung.
Wie funktioniert Jenkins ung?
Jenkins ist eine serverbasierte Anwendung und benötigt einen Webserver wie Apache Tomcat, um auf verschiedenen Plattformen wie WindowsLinux, macOSUnix usw. Zur Verwendung JenkinsSie müssen Pipelines erstellen, die aus einer Reihe von Schritten bestehen, die Jenkins Der Server wird es akzeptieren. Jenkins Eine Continuous Integration Pipeline ist ein leistungsstarkes Instrument, das aus einer Reihe von Tools besteht, die zum Hosten, Überwachen, Kompilieren und Testen von Code oder Codeänderungen entwickelt wurden, wie zum Beispiel:
- Continuous Integration Server (Jenkins, Bamboo, CruiseControl, TeamCity, und andere)
- Versionskontrollsystem (z. B. CVS, SVN, GIT, Mercurial, Perforce, ClearCase und andere)
- Build-Tool (Make, ANT, Maven, Ivy, Gradle, und andere)
- Framework für automatisierte Tests (Selenium, Appium, TestComplete, UFT, und andere)
In den aktuellen Versionen befinden sich diese Schritte in einem JenkinsDie Datei wurde neben dem Code eingecheckt. Jenkins Der Controller liest diese Datei und übergibt jede Phase an einen Agenten, also die Maschine, die die Arbeit tatsächlich ausführt.
Jenkins Geschichte
- Kohsuke Kawaguchi, ein Java Ein Entwickler, der bei SUN Microsystems arbeitete, hatte es satt, immer wieder Code zu erstellen und Fehler zu beheben. 2004 entwickelte er einen Automatisierungsserver namens Hudson, der Build- und Testaufgaben automatisiert.
- In 2011, Oracle Der Eigentümer von Sun Microsystems hatte einen Streit mit der Hudson-Open-Source-Community, also spaltete er Hudson ab und benannte es um in Jenkins.
- Sowohl Hudson als auch Jenkins Sie operierten weiterhin unabhängig. Doch innerhalb kurzer Zeit Jenkins akquirierte zahlreiche Projekte und Mitwirkende, während Hudson bei lediglich 32 Projekten blieb. Mit der Zeit Jenkins wurde immer beliebter, und Hudson wird nicht mehr instand gehalten.
Warum Continuous Integration verwenden? Jenkins?
Manche Leute mögen denken, dass die altmodische Art der Entwicklungping Die Software ist der bessere Weg. Lassen Sie uns die Vorteile von CI verstehen. Jenkins mit dem folgenden Beispiel
Stellen wir uns vor, dass etwa 10 Entwickler an einem gemeinsamen Repository arbeiten. Einige Entwickler erledigen ihre Aufgabe in 25 Tagen, während andere 30 Tage benötigen.
| Vorher Jenkins | Nach Jenkins |
|---|---|
|
Sobald alle Entwickler ihre zugewiesenen Codierungsaufgaben abgeschlossen hatten, übergaben sie ihren Code gleichzeitig. Later, Build wird getestet und bereitgestellt. Code Der Commit wurde erstellt, und der Testzyklus war sehr selten; ein einziger Build wurde erst nach vielen Tagen durchgeführt. |
Der Code wird erstellt und getestet, sobald der Entwickler den Code eincheckt. Jenkins wird den Code mehrmals am Tag kompilieren und testen. Wenn der Build erfolgreich ist, dann Jenkins wird den Quellcode auf dem Testserver bereitstellen und das Bereitstellungsteam benachrichtigen. Wenn der Build fehlschlägt, dann Jenkins wird die Fehler dem Entwicklerteam melden. |
| Da der Code auf einmal erstellt wurde, mussten einige Entwickler warten, bis andere Entwickler mit dem Codieren fertig waren, um ihren Build zu überprüfen | Der Code wird unmittelbar nach jedem Commit des Entwicklers erstellt. |
| Es ist keine leichte Aufgabe, Fehler für mehrere Commits zu isolieren, zu erkennen und zu beheben. | Da der Code nach jedem Commit eines einzelnen Entwicklers neu kompiliert wird, lässt sich leicht feststellen, wessen Code den Build-Fehler verursacht hat. |
| Code bauen und Testprozess sind vollständig manuell, daher besteht eine hohe Fehlerwahrscheinlichkeit. | Automatisierter Build- und Testprozess spart Zeit und reduziert Fehler. |
| Der Code wird bereitgestellt, sobald alle Fehler behoben und getestet sind. | Der Code wird nach jedem erfolgreichen Build und Test bereitgestellt. |
| Der Entwicklungszyklus ist langsam | Der Entwicklungszyklus ist schnell. Neue Funktionen stehen den Benutzern leichter zur Verfügung. Erhöht den Gewinn. |
Praxisnahe Fallstudie zur kontinuierlichen Integration
Ich bin sicher, dass Sie alle das alte Nokia-Handy kennen. Nokia hat früher ein Verfahren namens Nightly Build implementiert. Nach mehreren Commits von verschiedenen Entwicklern im Laufe des Tages wurde die Software jede Nacht erstellt. Da die Software nur einmal am Tag erstellt wurde, ist es sehr mühsam, die Fehler in einer großen Codebasis zu isolieren, zu identifizieren und zu beheben.
LaterSie haben den Ansatz der kontinuierlichen Integration (Continuous Integration) eingeführt, der im Folgenden dargestellt wird. Die Software wurde erstellt und getestet, sobald ein Entwickler Code eincheckte. Falls ein Fehler entdeckt wird, kann der jeweilige Entwickler diesen schnell beheben.
Jenkins Plugins
Standardmäßig Jenkins bietet nur einen begrenzten Funktionsumfang. Wenn Sie Ihre Integration wünschen Jenkins Bei der Installation mit Versionskontrollsystemen wie Git müssen Sie außerdem Git-bezogene Plugins installieren. Tatsächlich ist dies auch für die Integration mit Tools wie Maven erforderlich. Amazon Für EC2 müssen Sie die entsprechenden Plugins in Ihrer Umgebung installieren. JenkinsWie der untenstehende Plugin-Manager zeigt.
Vorteile der Verwendung Jenkins
- Jenkins Die Verwaltung erfolgt durch die sehr offene Gemeinschaft. Jeden Monat finden öffentliche Versammlungen statt, in denen die Öffentlichkeit Anregungen für die Weiterentwicklung erhält. Jenkins Projekt einfliessen.
- Das Projekt verfolgt einen vorhersehbaren Veröffentlichungsrhythmus: Alle zwölf Wochen wird eine neue Basislinie für den Langzeitsupport festgelegt, auf der dann planmäßige Patch-Releases veröffentlicht werden.
- Mit dem technologischen Fortschritt wächst auch die Technologie JenkinsDie Plugin-Datenbank umfasst mittlerweile über zweitausend Plugins. Mit Plugins Jenkins wird noch leistungsstärker und funktionsreicher.
- Jenkins Das Tool unterstützt auch cloudbasierte Architekturen, sodass Sie diese bereitstellen können. Jenkins in Cloud-basierten Plattformen.
- Der Grund warum Jenkins Seine Popularität verdankt es der Tatsache, dass es von einem Entwickler für Entwickler geschaffen wurde.
Nachteile der Verwendung Jenkins
Obwohl Jenkins ist ein sehr leistungsstarkes Werkzeug, aber es hat auch seine Schwächen.
- Die Benutzeroberfläche ist veraltet und im Vergleich zu aktuellen UI-Trends nicht benutzerfreundlich, obwohl in neueren Versionen ein Großteil des Bildschirmdesigns modernisiert wurde.
- Obwohl Jenkins Es wird von vielen Entwicklern geliebt, aber die Wartung ist nicht ganz einfach, weil Jenkins läuft auf einem Server und erfordert gewisse Kenntnisse als Serveradministrator, um dessen Aktivitäten zu überwachen.
- Einer der Gründe, warum viele Menschen es nicht umsetzen Jenkins liegt an der Schwierigkeit bei der Installation und Konfiguration Jenkins.
- Kontinuierliche Integrationen brechen aufgrund einiger kleiner Einstellungsänderungen regelmäßig ab. Die kontinuierliche Integration wird angehalten und erfordert daher etwas Aufmerksamkeit des Entwicklers.
- Plugin-Abhängigkeitskonflikte treten auf, wenn viele Plugins zu unterschiedlichen Zeiten aktualisiert werden. Daher benötigen Plugin-Updates ein eigenes Wartungsfenster.
Wenn diese Kompromisse für Ihr Team von Bedeutung sind, vergleichen Sie die Besten Jenkins Alternative Werkzeuge und die umfassendere Liste von Top-Tools für die kontinuierliche Integration bevor man sich für einen selbstgehosteten Server entscheidet.


