Was ist JenkinsWarum sollte man ein Continuous Integration (CI)-Tool verwenden?

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 rund 300 Installationen, deren Anzahl täglich wächst. Durch die Nutzung 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.

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 Die Continuous Integration Pipeline ist ein leistungsstarkes Instrument, das aus einer Reihe von Werkzeugen besteht, die entwickelt wurden, um Gastgeber, Monitor, kompilieren und Test Code oder Codeänderungen, wie:

  • Kontinuierlicher Integrationsserver (Jenkins, Bamboo, CruiseControl, TeamCity, und andere)
  • Quellcodeverwaltungstool (z. B. CVS, SVN, GIT, Mercurial, Perforce, ClearCase und andere)
  • Build-Tool (Make, ANT, Maven, Ivy, Gradle, und andere)
  • Automatisierungstest-Framework (Selenium, Appium, TestComplete, UFT, und andere)

Jenkin-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 arbeiten freigegebenes Repository. Einige Entwickler erledigen ihre Aufgabe in 25 Tagen, während andere 30 Tage brauchen.

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 Code festschreibt. Jenkin wird im Laufe des Tages mehrmals Code erstellen 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 erstellt wird, lässt sich leicht erkennen, wessen Code den Fehler beim Erstellen 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 übernommen. Die Software wurde erstellt und getestet, sobald ein Entwickler Code festgeschrieben hatte. Wird ein Fehler festgestellt, kann der jeweilige Entwickler den Mangel schnell beheben.

Praxisnahe Fallstudie zur kontinuierlichen Integration

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. Jenkins.

Jenkins Plugins
Plugin-Integration in Jenkins

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.
  • Bisher sind rund 280 Tickets geschlossen und das Projekt veröffentlicht alle drei Monate eine stabile Version.
  • Mit dem technologischen Fortschritt wächst auch die Technologie Jenkins. Bis jetzt Jenkins hat rund 320 Plugins in seiner Plugin-Datenbank veröffentlicht. 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 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.

Fazit

  • Bei der kontinuierlichen Integration wird die Software nach einem Code-Commit sofort erstellt und getestet
  • Jenkins Wird zur Orchestrierung einer Aktionskette für die kontinuierliche Integration in einem Softwareprojekt verwendet.
  • Vorher Jenkins Wenn alle Entwickler ihre ihnen zugewiesenen Programmieraufgaben abgeschlossen hatten, pflegten sie ihren Code gleichzeitig einzuchecken. Later, Build wird getestet und bereitgestellt.
  • Nach Jenkins Der Code wird kompiliert und getestet, sobald der Entwickler ihn eincheckt. Jenkins führt diese Kompilierungs- und Testvorgänge mehrmals täglich durch.
  • 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 die zugehörigen Git-Plugins installieren. Prüfen Sie auch Folgendes: Besten Jenkins Alternative Werkzeuge
  • Die größten Vorteile von Jenkins Es wird von der Gemeinschaft verwaltet, die öffentliche Versammlungen abhält und Anregungen aus der Bevölkerung für die Entwicklung berücksichtigt. Jenkins Projekte
  • Der größte Nachteil von Jenkins Das Problem ist, dass die Benutzeroberfläche veraltet und im Vergleich zu aktuellen UI-Trends nicht benutzerfreundlich ist. Wenn Sie nach Alternativen mit einer moderneren Benutzererfahrung suchen, sollten Sie sich einige der folgenden ansehen: Top-Tools für die kontinuierliche Integration erhältlich.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: