<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>VM Archive - CEOsBay</title>
	<atom:link href="https://ceosbay.com/tag/vm/feed/" rel="self" type="application/rss+xml" />
	<link>https://ceosbay.com/tag/vm/</link>
	<description>It&#039;s all about Tech</description>
	<lastBuildDate>Sun, 16 Apr 2023 08:13:45 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://i0.wp.com/ceosbay.com/wp-content/uploads/2022/11/image.jpg?fit=32%2C32&#038;ssl=1</url>
	<title>VM Archive - CEOsBay</title>
	<link>https://ceosbay.com/tag/vm/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">211828771</site>	<item>
		<title>Kubernetes &#8211; Die Kunst des Container-Orchestrierens</title>
		<link>https://ceosbay.com/2022/12/24/erklaerung-kubernetes/</link>
					<comments>https://ceosbay.com/2022/12/24/erklaerung-kubernetes/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Sat, 24 Dec 2022 19:23:00 +0000</pubDate>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Container]]></category>
		<category><![CDATA[Control]]></category>
		<category><![CDATA[CRI]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Fazit]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Hat]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[K8]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Maschinen]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Node]]></category>
		<category><![CDATA[Open]]></category>
		<category><![CDATA[Orchestrierung]]></category>
		<category><![CDATA[Plattform]]></category>
		<category><![CDATA[Runtime]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Shift]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA[Virtuelle]]></category>
		<category><![CDATA[Virtuelle Maschinen]]></category>
		<category><![CDATA[VM]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1037</guid>

					<description><![CDATA[<p>Kubernetes &#8211; auch als K8s bezeichnet, ist ein von Google entwickeltes Open-Source-System zur Verwaltung von Container-Anwendungen. In diesem Umfeld wird die Verwaltung der technischen Container-Infrastruktur auch als Orchestrierung bezeichnet. Was sind Container? Container sind eine &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/12/24/erklaerung-kubernetes/">Kubernetes &#8211; Die Kunst des Container-Orchestrierens</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Kubernetes &#8211; auch als K8s bezeichnet, ist ein von Google entwickeltes <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/" target="_blank" rel="noreferrer noopener">Open-Source</a>-System zur Verwaltung von Container-Anwendungen. In diesem Umfeld wird die Verwaltung der technischen Container-Infrastruktur auch als Orchestrierung bezeichnet.</p>



<h3 class="wp-block-heading">Was sind Container?</h3>



<p>Container sind eine natürliche Weiterentwicklung <a href="https://ceosbay.com/2022/11/10/erklaerung-virtuelle-maschine/" target="_blank" rel="noreferrer noopener">virtueller Maschinen</a> zur effizienten Nutzung verfügbarer Hardware-Ressourcen. Da ein Container in vielen Fällen lediglich einen kleinen Teil einer größeren Anwendung enthält (Microservices), braucht es oftmals viele Container, um eine große Anwendung vollständig bereitzustellen. Siehe hierzu auch meinen Beitrag über <a href="https://ceosbay.com/2022/10/28/laufzeitumgebung-fuer-softwareanwendungen-docker/" target="_blank" rel="noreferrer noopener">Docker</a>. Während <a href="https://ceosbay.com/2022/10/28/laufzeitumgebung-fuer-softwareanwendungen-docker/" target="_blank" rel="noreferrer noopener">Docker</a> eine Container-Laufzeitumgebung ist, ist Kubernetes eine Plattform für die Ausführung und Verwaltung von Containern aus vielen Container-Laufzeitsystemen. Es unterstützt zahlreiche Container-Laufzeiten, darunter <a href="https://ceosbay.com/2022/10/28/laufzeitumgebung-fuer-softwareanwendungen-docker/" target="_blank" rel="noreferrer noopener">Docker</a>, containerd, CRI-O und jede Implementierung des Kubernetes CRI (Container Runtime Interface).</p>



<p>Im Betrieb von Container-Anwendungen spielen Verwaltungsaufgaben wie die Bereitstellung, die auf die Anfragelast bezogene automatische Skalierung, sowie das Monitoring der zum Betrieb notwendigen Anwendungscontainer und ihrer Infrastruktur eine wichtige Rolle. Es dient als Werkzeug zur Unterstützung dieser Orchestrierungsaufgaben.</p>



<p>Eingesetzt wird Kubernetes dabei bereits in kleinen und einfachen Containerumgebungen bis hin zu komplexen und verteilten Anwendungsfällen großer Technologieanbieter und ihrer containerbasierten <a href="https://ceosbay.com/2022/11/30/erklaerung-cloud-computing/" target="_blank" rel="noreferrer noopener">Cloud</a>-Produkte. Einige Beispiele sind hier: Microsofts Azure, IBM <a href="https://ceosbay.com/2022/11/30/erklaerung-cloud-computing/" target="_blank" rel="noreferrer noopener">Cloud</a>, Red Hat OpenShift, Amazons EKS, Googles Kubernetes Engine und Oracles OCI. Die bekannte Container-Technologie <a href="https://ceosbay.com/2022/10/28/laufzeitumgebung-fuer-softwareanwendungen-docker/" target="_blank" rel="noreferrer noopener">Docker</a> wird ebenfalls unterstützt.</p>



<h3 class="wp-block-heading">Kurze Zeitreise</h3>



<p>Kubernetes (Altgriechisch für „Steuermann“) wurde ursprünglich von Joe Beda, Brendan Burns und Craig McLuckie entwickelt. Kurze Zeit später stießen weitere Google-Entwickler wie Brian Grant und Tim Hockin hinzu. 2014 stellte Google Kubernetes als <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/" target="_blank" rel="noreferrer noopener">Open-Source</a>-Projekt der Öffentlichkeit vor.</p>



<p>Version 1.0 wurde am 21. Juli 2015 veröffentlicht. Dabei wurde auch die Gründung der <a href="https://www.cncf.io" target="_blank" rel="noreferrer noopener">Cloud Native Computing Foundation</a> unter dem Dach der <a href="https://ceosbay.com/2022/11/22/erklaerung-linux/" target="_blank" rel="noreferrer noopener">Linux</a> Foundation angekündigt und Kubernetes wurde von Google an diese gespendet.</p>



<h3 class="wp-block-heading">Was kann Kubernetes?</h3>



<p>Kubernetes bietet eine Reihe von Möglichkeiten, die eine Orchestrierung von komplexen Container basierten Anwendungen unterstützt. Einige davon sind:</p>



<ul class="wp-block-list">
<li>Starten von Containern im Bedarfsfall (Ausfall bestehender Container oder hinzufügen neuer Container bei hohem Anfragevolumen).</li>



<li>Überwachung anhand definierter Faktoren, ob Container noch erwartungsgemäß funktionieren.</li>



<li>Sinnvolle Verteilung der eingehenden Anfragelast auf die einzelnen Container.</li>



<li>Unterstützung beim Wechsel auf eine neuere Anwendungsversion.</li>
</ul>



<h3 class="wp-block-heading">Wie ist Kubernetes aufgebaut?</h3>



<p>Kubernetes-Infrastrukturen können je nach Anwendungsfall hoch komplex sein. Eine Kubernetes-Installation besteht aus dem Zusammenspiel mehrerer Server. Die Server aus diesem Verbund lassen sich in zwei Kategorien einteilen: Zur ersten Kategorie gehören Server, die sich um Verwaltungsaufgaben in diesem Verbund kümmern. Sie werden als „Control Planes“ bezeichnet und führen keinen Container aus, der Teil der betriebenen Anwendung ist.</p>



<p>Die zweite Kategorie, die anwendungsbezogenen Container, werden auf den „Worker Nodes“ ausgeführt. Sie haben keine Verwaltungsaufgaben, sondern dienen lediglich dazu, die eigentliche Arbeitslast der Anwendung abzuarbeiten. Die notwendige Anzahl und Leistung dieser „Worker Node Server“ ermittelt sich anhand der Ressourcenanforderung der Container. Je ressourcenintensiver die Container sind, desto mehr oder performantere Worker Nodes werden benötigt.</p>



<p>Alle Aufgaben eines Kubernetes-Clusters werden redundant auf mehreren Servern betrieben, um die Hochverfügbarkeit auch im Störungsfall aufrechtzuerhalten.</p>



<h3 class="wp-block-heading">Fazit</h3>



<p>Kubernetes bietet als <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/" target="_blank" rel="noreferrer noopener">Open-Source</a>-System zur Orchestrierung von Containern viele Vorteile. Besonders lohnt sich der Einsatz bei umfangreichen und hochskalierbaren <a href="https://ceosbay.com/2022/11/30/erklaerung-cloud-computing/" target="_blank" rel="noreferrer noopener">Cloud</a>-Anwendungen. Wenn man es einsetzt, kommt man schnell zu dem Punkt, an dem es komplex und aufwändig wird. Für ein effektives Management der Plattform brauchen Unternehmen Mitarbeitende mit Spezialwissen. Da diese Experten am Markt schwer zu finden sind und sich der Einsatz meist schon aus Kosten- und Rentabilitätsgründen nicht lohnt, lagern viele Unternehmen, die Kubernetes einsetzen, das Management und den Betrieb an diverse Managed <a href="https://ceosbay.com/2022/11/30/erklaerung-cloud-computing/" target="_blank" rel="noreferrer noopener">Cloud</a> Solution Provider aus. Man sollte aber nicht unbeachtet lassen, dass sich der Einsatz von Kubernetes nicht in jedem Fall lohnt. Letztendlich ist es immer eine Abwägung der Kosten und Aufwände gegen den Ertrag, den man sich durch den Einsatz erhofft.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/12/24/erklaerung-kubernetes/">Kubernetes &#8211; Die Kunst des Container-Orchestrierens</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/12/24/erklaerung-kubernetes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1037</post-id>	</item>
		<item>
		<title>Jenkins &#8211; Automatisierte Arbeitsabläufe beim Testing</title>
		<link>https://ceosbay.com/2022/12/18/erklaerung-jenkins/</link>
					<comments>https://ceosbay.com/2022/12/18/erklaerung-jenkins/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Sun, 18 Dec 2022 07:35:48 +0000</pubDate>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[CD]]></category>
		<category><![CDATA[CI]]></category>
		<category><![CDATA[CIFS]]></category>
		<category><![CDATA[Continious]]></category>
		<category><![CDATA[Deploy]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Fazit]]></category>
		<category><![CDATA[Foundation]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Hudson]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Machine]]></category>
		<category><![CDATA[Maschine]]></category>
		<category><![CDATA[Microservice]]></category>
		<category><![CDATA[Microservices]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Microsystems]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[Pipeline]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Sun]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[VM]]></category>
		<category><![CDATA[Win]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=999</guid>

					<description><![CDATA[<p>Jenkins ist ein webbasiertes Open Source Tool bzw. Software-System, für Continuous Integration und Continuous Delivery (CI/CD). Es dient der Automatisierung und für DevOps. Geschrieben ist es in der Programmiersprache Java. Es lassen sich damit CI/CD-Workflows &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/12/18/erklaerung-jenkins/">Jenkins &#8211; Automatisierte Arbeitsabläufe beim Testing</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Jenkins ist ein webbasiertes <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> Tool bzw. Software-System, für <a href="https://ceosbay.com/2023/04/14/erklaerung-ci-cd/" target="_blank" rel="noreferrer noopener">Continuous Integration und Continuous Delivery</a> (<a href="https://ceosbay.com/2023/04/14/erklaerung-ci-cd/" target="_blank" rel="noreferrer noopener">CI/CD</a>). Es dient der Automatisierung und für <a href="https://ceosbay.com/2023/03/02/erklaerung-devops/" target="_blank" rel="noreferrer noopener">DevOps</a>. Geschrieben ist es in der Programmiersprache Java. Es lassen sich damit <a href="https://ceosbay.com/2023/04/14/erklaerung-ci-cd/" target="_blank" rel="noreferrer noopener">CI/CD</a>-Workflows bzw. sogenannte Pipelines implementieren. Es wird als Fork der Software Hudson von Sun Microsystems, heute Oracle, betrachtet.</p>



<h3 class="wp-block-heading">Kurze Zeitreise</h3>



<p>Jenkins ist in erster Linie eine Entwicklung von Kohsuke Kawaguchi. Einem ehemaligen Mitarbeiter von Sun Microsystems, der es unter dem Namen Hudson entwickelt hat. Kawaguchi verließ das Unternehmen, nachdem Oracle es Ende Januar 2010 übernahm. Er behielt aber die Leitung bei Hudson und arbeitete nach eigenen Angaben auf freiberuflicher Basis weiter bei Oracle. Oracle hielt nach wie vor die Namensrechte an Hudson. Aus diesem Grund hat man das Projekt schließlich in Jenkins umbenannt. Die Namensgebung erfolgte laut der Entwickler aufgrund der äquivalenten Assoziation der beiden Wörter mit dem Beruf des Butlers.</p>



<p>Oracle trieb die Entwicklung von Hudson weiterhin voran. Deshalb spricht man heute von einem Fork (einer „Abspaltung“) in der Softwareentwicklung. Im Jahr 2016 wurde die Entwicklung von Hudson zugunsten von Jenkins eingestellt und der Eclipse Foundation gespendet. Die Entwicklung wird jetzt als <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open-Source</a>-Projekt unter der Leitung der <a href="https://cd.foundation" target="_blank" rel="noreferrer noopener">CD Foundation</a>, einer Organisation innerhalb der <a href="https://www.linuxfoundation.org" target="_blank" rel="noreferrer noopener">Linux Foundation</a>, verwaltet.</p>



<h3 class="wp-block-heading">Wofür Pipelines?</h3>



<p>Im Grunde genommen automatisieren Pipelines Tests und Berichte zu isolierten Änderungen in einer größeren Codebasis in Echtzeit und erleichtern die Integration unterschiedlicher Codezweige in einen Hauptzweig. Man erkennt dadurch schnell Fehler in einer Codebasis, erstellt die Software, automatisiert das Testen der Builds, bereitet die Codebasis für die Bereitstellung (Auslieferung) vor und stellt schließlich Code in Containern und auf <a href="https://ceosbay.com/2022/11/10/erklaerung-virtuelle-maschine/">virtuellen Maschinen</a> sowie Bare-Metal- und <a href="https://ceosbay.com/2022/11/30/erklaerung-cloud-computing/">Cloud</a>-Servern bereit. Es gibt auch kommerzielle Versionen von Jenkins, auf die ich in diesem Beitrag aber nicht weiter eingehe.</p>



<h3 class="wp-block-heading">Continious Integration / Kontinuierliche Integration</h3>



<p>Kontinuierliche Integration hat sich seit der Erfindung weiterentwickelt. Ursprünglich war es die Norm, dass Teams einen Build pro Tag veröffentlichten. Nun ist es die Regel, dass jedes Teammitglied täglich oder häufiger Aktualisierungen einreicht, die man als Commit bezeichnet (Siehe <a href="https://ceosbay.com/2022/11/18/erklaerung-git/">Git</a> / <a href="https://ceosbay.com/2022/11/19/erklaerung-github/">GitHub</a>). Dies erfolgt bei jeder wesentlichen Änderung eines Builds. Bei der richtigen Anwendung bietet Continuous Integration verschiedene Vorteile, wie zum Beispiel ständige Rückmeldungen zum Status der Software. Da man durch CI, Mängel frühzeitig in der Entwicklung erkennt, sind Fehler in der Regel kleiner, weniger komplex und leichter zu beheben.</p>



<h3 class="wp-block-heading">Jenkins und CI/CD</h3>



<p>Im Laufe der Zeit wurden Jenkins <a href="https://ceosbay.com/2023/04/14/erklaerung-ci-cd/" target="_blank" rel="noreferrer noopener">Continuous Delivery und Deployment</a> hinzugefügt. <a href="https://ceosbay.com/2023/04/14/erklaerung-ci-cd/" target="_blank" rel="noreferrer noopener">Continuous Delivery</a> bedeutet, dass das Erstellen und Packen von Code für die spätere Bereitstellung in Test-, Produktions-Staging- und Produktionsumgebungen automatisiert wird. <a href="https://ceosbay.com/2023/04/14/erklaerung-ci-cd/" target="_blank" rel="noreferrer noopener">Continuous Deployment</a> automatisiert den letzten Schritt der Bereitstellung des Codes an seinem endgültigen Ziel.</p>



<p>In beiden Fällen reduziert die Automatisierung die Anzahl der auftretenden Fehler, da die richtigen Schritte und Best Practices in Jenkins kodiert sind. Jenkins beschreibt einen gewünschten Zustand und der Automatisierungsserver stellt sicher, dass dieser Zustand erreicht wird. Darüber hinaus macht diese Automatisierung die Bereitstellung schneller, da Vorgänge nicht mehr an personelle Beschränkungen gebunden sind. Schließlich reduziert es die Belastung des Entwicklungs- und Betriebsteams, indem es die Notwendigkeit von manuellen Rollouts mitten in der Nacht und am Wochenende beseitigt.</p>



<h3 class="wp-block-heading">Jenkins und Microservices</h3>



<p>Jenkins bewährt sich besonders in Microservices-Architekturen. Da es eines der Ziele von Microservices ist, Anwendungen und Dienste häufig zu aktualisieren, sollte man dafür sorgen, dass die Bandbreite die Releases nicht verzögert. Mehr und kleinere Dienste mit schnelleren Update-Intervallen lassen sich nur durch Automatisierung gut umsetzen – und dafür ist es wohl die richtige Wahl.</p>



<h3 class="wp-block-heading">Jenkins X</h3>



<p>Das Jenkins X-Projekt wurde 2018 mit dem Ziel gestartet, eine moderne, <a href="https://ceosbay.com/2022/11/30/erklaerung-cloud-computing/">Cloud</a>-native Version von Jenkins zu erschaffen. Das Projekt steht ebenfalls unter der Leitung der <a href="https://cd.foundation" target="_blank" rel="noreferrer noopener">CD Foundation</a>. Die Architektur, Technologie und Pipeline-Sprache unterscheiden sich grundsätzlich von Jenkins. Jenkins X ist für Kubernetes konzipiert und verwendet es in einer eigenen Implementierung. Andere <a href="https://ceosbay.com/2022/11/30/erklaerung-cloud-computing/">Cloud</a>-native Technologien, die Jenkins X verwendet, sind Helm und Tekton, auf die ich in gesonderten Beiträgen eingehen werde.</p>



<h3 class="wp-block-heading">Wie funktioniert Jenkins?</h3>



<p>Jenkins läuft auf einer Vielzahl von Betriebssystemen bzw. Plattformen. Darunter gibt es Windows, MacOS und Unix-Varianten. Am besten jedoch läuft es auf <a href="https://ceosbay.com/2022/11/22/erklaerung-linux/">Linux</a>. Es erfordert mindestens eine Java 8 <a href="https://ceosbay.com/2022/11/10/erklaerung-virtuelle-maschine/">VM</a> oder höher und kann auf Oracle Java Runtime Environment oder Open Java Development Kit ausgeführt werden. Normalerweise läuft es als Java-Servlet innerhalb eines Jetty-Anwendungsservers. Es kann aber auch auf anderen Java-Anwendungsservern wie Apache Tomcat ausgeführt werden. Auch kann es in einem <a href="https://ceosbay.com/2022/10/28/laufzeitumgebung-fuer-softwareanwendungen-docker/">Docker</a>-Container ausgeführt werden. Im <a href="https://ceosbay.com/2022/10/28/laufzeitumgebung-fuer-softwareanwendungen-docker/">Docker</a> Hub-Online-Repository sind aus diesem Grund schreibgeschützte Jenkins-Images verfügbar.</p>



<p>Um Jenkins zu auszuführen, werden Pipelines erstellt. Eine Pipeline ist eine Reihe von Schritten, die der Jenkins-Server ausführt. Diese Schritte sind in einem Klartext-Jenkins-File gespeichert. Das Jenkins-File verwendet eine geschweifte Klammersyntax, die einer JSON gleicht. Schritte in der Pipeline werden als Befehle mit Parametern deklariert und in geschweiften Klammern gekapselt. Der Jenkins-Server liest dann die Jenkins-Datei und führt die Befehle aus, wobei der Code die Pipeline vom festgeschriebenen Quellcode zur Produktionslaufzeit weiterleitet. Ein Jenkins-File kann über eine grafische Benutzeroberfläche oder durch Code erstellt werden.</p>



<h3 class="wp-block-heading">Plugins</h3>



<p>Für Jenkins sind eine Reihe von Plugins verfügbar, damit es mit anderen Tools zusammenarbeiten kann. Mit Plugins lässt sich auch der Funktionsumfang der Software erweitern. Fertige bzw. bewährte Plugins können aus dem Online-Repository für Jenkins-PlugIns heruntergeladen und über die Jenkins-Webbenutzeroberfläche oder -CLI (Kommandozeile, Command Line Interface) geladen werden. Man kann aber auch eigene Plugins entwickeln.</p>



<p>Plugins helfen bei der Integration anderer Entwicklertools in die Jenkins-Umgebung, fügen der Web-UI neue Elemente hinzu. Dies dient im Allgemeinen der erleichterten Verwaltung und Benutzung. Ein wichtiges Einsatzgebiet von Plugins ist das Bereitstellen von Integrationspunkten für CI/CD-Quellen und -Ziele. Dazu gehören Software-Versionskontrollsysteme (SVCs) wie <a href="https://ceosbay.com/2022/11/18/erklaerung-git/">Git</a> und Atlassian BitBucket, Container-Laufzeitsysteme – insbesondere <a href="https://ceosbay.com/2022/10/28/laufzeitumgebung-fuer-softwareanwendungen-docker/">Docker</a>, sowie Hypervisoren wie VMware vSphere, Public-<a href="https://ceosbay.com/2022/11/30/erklaerung-cloud-computing/">Cloud</a>-Instanzen wie Google <a href="https://ceosbay.com/2022/11/30/erklaerung-cloud-computing/">Cloud</a> Platform und AWS und schließlich Private-<a href="https://ceosbay.com/2022/11/30/erklaerung-cloud-computing/">Cloud</a>-Systeme wie OpenStack. Es gibt auch Plugins, die eine Kommunikation mit Betriebssystemen über FTP, CIFS und SSH unterstützen.</p>



<p>Plugins verwenden ihren eigenen Satz von Java-Annotationen und Designmustern, die definieren, wie sie instanziiert werden. Die Plugin-Entwicklung nutzt außerdem die Maven-Bereitstellung für Jenkins.</p>



<h3 class="wp-block-heading">Sicherheit</h3>



<p>Bei der Sicherheit geht es vor allem darum den Server und die Benutzer zu schützen. Die Serversicherheit wird mehr oder weniger auf dieselbe Art und Weise erreicht, wie auf regulären Servern. Der Zugriff auf den Standort, beispielsweise eine <a href="https://ceosbay.com/2022/11/10/erklaerung-virtuelle-maschine/">VM</a> oder einen Bare-Metal-Server, ist so konfiguriert, dass möglichst wenige Prozesse mit dem Server kommunizieren dürfen. Dies wird durch typische Serverbetriebssysteme und Netzwerksicherheitsfunktionen erreicht.</p>



<p>Darüber hinaus ist der Zugriff auf den Server über die Jenkins-Benutzeroberfläche mit den regulären Mechanismen, wie Multi-Faktor-Authentifizierung oder der Beschränkung der Anzahl von legitimierten Benutzern, geschützt.</p>



<p>Jenkins enthält außerdem Sicherheitsfunktionen für die interne Nutzerdatenbank. Man unterscheidet zwei Sicherheitsbereiche. Zum einen den Sicherheitsbereich und den Autorisierungsbereich. Im Sicherheitsbereich regeln Administratoren, wer Zugriff hat, und im Autorisierungsbereich bestimmen die Nutzer selbst, was man mit dem Zugriff anstellen kann.</p>



<h3 class="wp-block-heading">Fazit</h3>



<p>Ein großer Vorteil von Jenkins sind die Unmengen an verfügbaren Plugins. Diese tragen zu einer enormen Flexibilität bei. Auch die umfangreichen Skript- und deklarativen Sprachen, mit denen man stark benutzerdefinierte Pipelines erstellen kann, stellen einen großen Mehrwert dar. Da es weitestgehend neutral ist, passt es gut in die meisten Umgebungen, einschließlich in komplexe Hybrid- und Multi-<a href="https://ceosbay.com/2022/11/30/erklaerung-cloud-computing/">Cloud</a>-Systeme.</p>



<p>Da Jenkins schon etwas länger als vergleichbare Lösungen in diesem Bereich verwendet wird, gibt es umfangreiche Dokumentationen und zahlreiche Community-Ressourcen, an denen man sich bedienen kann. Diese Ressourcen erleichtern die Installation, Verwaltung und Fehlerbehebung ungemein.</p>



<p>Da die gesamte Lösung auf Java basiert, steht es auf einer soliden Basis, die man mit gängigen Designmustern und Frameworks erweitern kann. Auch wenn sich die Installation relativ einfach gestaltet, kann es relativ schwierig sein, komplexe Pipelines zu entwickeln, zu debuggen und zu warten.</p>



<p>Das <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open-Source</a>-System ist außerdem eine Single-Server-Architektur. Dies kann jedoch die Ressourcen auf einen einzigen Computer, eine <a href="https://ceosbay.com/2022/11/10/erklaerung-virtuelle-maschine/">virtuelle Maschine</a> oder einen Container einschränken. Cluster werden nicht unterstützt. Diese Tatsache kann die Leistung enorm einschränkten. Es kann auch dazu führen, dass es zum Server-Sprawl kommt und man den Überblick über all die einzelnen Jenkins-Server verliert.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/12/18/erklaerung-jenkins/">Jenkins &#8211; Automatisierte Arbeitsabläufe beim Testing</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/12/18/erklaerung-jenkins/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">999</post-id>	</item>
	</channel>
</rss>
