{"id":202586,"date":"2025-03-03T18:30:00","date_gmt":"2025-03-03T17:30:00","guid":{"rendered":"https:\/\/liora.io\/de\/?p=202586"},"modified":"2026-08-03T14:22:46","modified_gmt":"2026-08-03T12:22:46","slug":"was-ist-circleci","status":"publish","type":"post","link":"https:\/\/liora.io\/de\/was-ist-circleci","title":{"rendered":"Was ist CircleCI? Einf\u00fchrung in die kontinuierliche Integration und Automatisierung"},"content":{"rendered":"\n<p><strong>CircleCI ist eine Plattform f\u00fcr kontinuierliche Integration und Bereitstellung (CI\/CD). Gegr\u00fcndet im Jahr 2011 und bewertet mit 1,7 Milliarden Dollar im Jahr 2021, ist diese L\u00f6sung heute eine der beliebtesten CI\/CD-Plattformen weltweit.<\/strong><\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center wp-container-core-buttons-is-layout-5ee10de4\" style=\"margin-top:32px;margin-bottom:32px\"><div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/liora.io\/de\/weiterbildung\/cloud-dev\/devops-engineer\">Lerne mehr \u00fcber dieses Tool<\/a><\/div><\/div>\n\n\n\n<p>Mit CircleCI k\u00f6nnen Entwickler ihren Code schnell und zuverl\u00e4ssig erstellen, testen und bereitstellen. Heute bedient das Unternehmen Tausende von Organisationen weltweit, von Startups bis hin zu gro\u00dfen Unternehmen, indem es ihnen Flexibilit\u00e4t und Leistung bietet, die f\u00fcr alle Arten von Projekten geeignet sind.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"aber-was-ist-eigentlich-ci-cd\">Aber was ist eigentlich CI\/CD?<\/h2>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\" style=\"width:512px;max-width:100%;margin-top:32px;margin-right:auto;margin-bottom:32px;margin-left:auto\"><img alt=\"Illustration zu \u201eAber was ist eigentlich CI\/CD?\u201c\" decoding=\"async\" height=\"512\" loading=\"lazy\" sizes=\"(max-width: 512px) 100vw, 512px\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image3-1.webp\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image3-1.webp 512w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image3-1-300x300.webp 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image3-1-150x150.webp 150w\" style=\"width:512px;max-width:100%;height:auto\" width=\"512\"\/><\/figure>\n\n\n\n<p><a href=\"https:\/\/liora.io\/de\/continuous-integration-ci-und-continuous-delivery-cd\" rel=\"noopener\" target=\"_blank\">CI\/CD<\/a> steht f\u00fcr &#8222;<strong>Continuous Integration \/ Continuous Delivery&#8220;<\/strong>\u00a0(kontinuierliche Integration \/ kontinuierliche Bereitstellung) und ist eine Entwicklungspraxis, die darauf abzielt, die Phasen des Lebenszyklus einer Anwendung zu automatisieren. Sie erm\u00f6glicht es, menschliche Fehler zu reduzieren, die Lieferzeiten zu beschleunigen und die Anwendungsqualit\u00e4t zu verbessern.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Die kontinuierliche Integration (CI)<\/strong> bedeutet, dass der von verschiedenen Teammitgliedern geschriebene Code regelm\u00e4\u00dfig in ein zentrales Repository integriert wird. Jede \u00c4nderung wird automatisch getestet, um sicherzustellen, dass keine Fehler oder Inkompatibilit\u00e4ten entstehen.<\/li>\n<li><strong>Die kontinuierliche Bereitstellung (CD)<\/strong> automatisiert die Lieferung des validierten Codes ohne manuellen Eingriff.<\/li>\n<\/ul>\n\n\n\n\n\n<h2 class=\"wp-block-heading\" id=\"hauptfunktionen\">Hauptfunktionen<\/h2>\n\n\n\n<p>CircleCI bietet eine breite Palette von Tools und Integrationen, die entwickelt wurden, um den Entwicklungsprozess zu automatisieren, zu optimieren und zu sichern und dabei eine effiziente kontinuierliche Lieferung zu gew\u00e4hrleisten.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\" style=\"width:512px;max-width:100%;margin-top:32px;margin-right:auto;margin-bottom:32px;margin-left:auto\"><img alt=\"Illustration zu \u201eHauptfunktionen\u201c\" decoding=\"async\" height=\"512\" loading=\"lazy\" sizes=\"(max-width: 512px) 100vw, 512px\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image12.webp\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image12.webp 512w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image12-300x300.webp 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image12-150x150.webp 150w\" style=\"width:512px;max-width:100%;height:auto\" width=\"512\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"flexible-workflows\">Flexible Workflows<\/h3>\n\n\n\n<p>Es erm\u00f6glicht das Orchestrieren komplexer Pipelines mit bedingten Abh\u00e4ngigkeiten. Dies optimiert Tests und Bereitstellungen, was Zeit spart.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\" style=\"width:512px;max-width:100%;margin-top:32px;margin-right:auto;margin-bottom:32px;margin-left:auto\"><img alt=\"Illustration zu \u201eFlexible Workflows\u201c\" decoding=\"async\" height=\"512\" loading=\"lazy\" sizes=\"(max-width: 512px) 100vw, 512px\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image5-1.webp\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image5-1.webp 512w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image5-1-300x300.webp 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image5-1-150x150.webp 150w\" style=\"width:512px;max-width:100%;height:auto\" width=\"512\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ausfuhrung-in-der-cloud\">Ausf\u00fchrung in der Cloud<\/h3>\n\n\n\n<p>Bietet skalierbare Cloud-Umgebungen \u00fcber <a href=\"https:\/\/liora.io\/de\/virtuelle-maschine-definition-verwendung-und-vorteile\" rel=\"noopener\" target=\"_blank\">virtuelle Maschinen<\/a> oder <a href=\"https:\/\/liora.io\/de\/docker-schulung-lernen-die-container-plattform-zu-nutzen\" rel=\"noopener\" target=\"_blank\">Docker<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\" style=\"width:512px;max-width:100%;margin-top:32px;margin-right:auto;margin-bottom:32px;margin-left:auto\"><img alt=\"Illustration zu \u201eAusf\u00fchrung in der Cloud\u201c\" decoding=\"async\" height=\"512\" loading=\"lazy\" sizes=\"(max-width: 512px) 100vw, 512px\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image15.webp\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image15.webp 512w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image15-300x300.webp 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image15-150x150.webp 150w\" style=\"width:512px;max-width:100%;height:auto\" width=\"512\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"parallelisierung-von-builds\">Parallelisierung von Builds<\/h3>\n\n\n\n<p>Teilt Aufgaben auf, um Tests und Builds zu beschleunigen und so die Verarbeitungszeit zu verk\u00fcrzen.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\" style=\"width:512px;max-width:100%;margin-top:32px;margin-right:auto;margin-bottom:32px;margin-left:auto\"><img alt=\"Illustration zu \u201eParallelisierung von Builds\u201c\" decoding=\"async\" height=\"512\" loading=\"lazy\" sizes=\"(max-width: 512px) 100vw, 512px\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image14.webp\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image14.webp 512w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image14-300x300.webp 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image14-150x150.webp 150w\" style=\"width:512px;max-width:100%;height:auto\" width=\"512\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"multi-umgebungsunterstutzung\">Multi-Umgebungsunterst\u00fctzung<\/h3>\n\n\n\n<p>Unterst\u00fctzt verschiedene Sprachen, <a href=\"https:\/\/liora.io\/de\/alles-ueber-go-frameworks\" rel=\"noopener\" target=\"_blank\">Frameworks<\/a> und Umgebungen.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\" style=\"width:512px;max-width:100%;margin-top:32px;margin-right:auto;margin-bottom:32px;margin-left:auto\"><img alt=\"Illustration zu \u201eMulti-Umgebungsunterst\u00fctzung\u201c\" decoding=\"async\" height=\"512\" loading=\"lazy\" sizes=\"(max-width: 512px) 100vw, 512px\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image11.webp\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image11.webp 512w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image11-300x300.webp 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image11-150x150.webp 150w\" style=\"width:512px;max-width:100%;height:auto\" width=\"512\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"bereitstellungsautomatisierung\">Bereitstellungsautomatisierung<\/h3>\n\n\n\n<p>Integration mit Tools wie <a href=\"https:\/\/liora.io\/de\/kubernetes-schulung-lerne-dieses-orchestrierungswerkzeug-zu-nutzen\" rel=\"noopener\" target=\"_blank\">Kubernetes<\/a> und <a href=\"https:\/\/liora.io\/de\/terraform-gcp-fuer-die-bereitstellung-der-infrastruktur-nutzen\" rel=\"noopener\" target=\"_blank\">Terraform<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\" style=\"width:512px;max-width:100%;margin-top:32px;margin-right:auto;margin-bottom:32px;margin-left:auto\"><img alt=\"Illustration zu \u201eBereitstellungsautomatisierung\u201c\" decoding=\"async\" height=\"512\" loading=\"lazy\" sizes=\"(max-width: 512px) 100vw, 512px\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image4-1.webp\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image4-1.webp 512w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image4-1-300x300.webp 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image4-1-150x150.webp 150w\" style=\"width:512px;max-width:100%;height:auto\" width=\"512\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"intelligentes-caching\">Intelligentes Caching<\/h3>\n\n\n\n<p>Abh\u00e4ngigkeiten werden zwischengespeichert, um ihren erneuten Download zu vermeiden.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\" style=\"width:512px;max-width:100%;margin-top:32px;margin-right:auto;margin-bottom:32px;margin-left:auto\"><img alt=\"Illustration zu \u201eIntelligentes Caching\u201c\" decoding=\"async\" height=\"512\" loading=\"lazy\" sizes=\"(max-width: 512px) 100vw, 512px\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image7-1.webp\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image7-1.webp 512w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image7-1-300x300.webp 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image7-1-150x150.webp 150w\" style=\"width:512px;max-width:100%;height:auto\" width=\"512\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"sicherheit-und-konformitat\">Sicherheit und Konformit\u00e4t<\/h3>\n\n\n\n<p>Verschl\u00fcsselung von Daten, feink\u00f6rnige Berechtigungen und Pipeline-Audits.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\" style=\"width:512px;max-width:100%;margin-top:32px;margin-right:auto;margin-bottom:32px;margin-left:auto\"><img alt=\"Illustration zu \u201eSicherheit und Konformit\u00e4t\u201c\" decoding=\"async\" height=\"512\" loading=\"lazy\" sizes=\"(max-width: 512px) 100vw, 512px\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image9.webp\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image9.webp 512w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image9-300x300.webp 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image9-150x150.webp 150w\" style=\"width:512px;max-width:100%;height:auto\" width=\"512\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"kontinuierliche-tests-und-berichterstattung\">Kontinuierliche Tests und Berichterstattung<\/h3>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center wp-container-core-buttons-is-layout-5ee10de4\" style=\"margin-top:32px;margin-bottom:32px\"><div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/liora.io\/de\/weiterbildung\/cloud-dev\/devops-engineer\">Schon mal von Automatisierungsskript geh\u00f6rt?<\/a><\/div><\/div>\n\n\n\n<p>Integration mit Testtools und Erstellung detaillierter Berichte.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\" style=\"width:512px;max-width:100%;margin-top:32px;margin-right:auto;margin-bottom:32px;margin-left:auto\"><img alt=\"Illustration zu \u201eKontinuierliche Tests und Berichterstattung\u201c\" decoding=\"async\" height=\"512\" loading=\"lazy\" sizes=\"(max-width: 512px) 100vw, 512px\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image6-1.webp\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image6-1.webp 512w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image6-1-300x300.webp 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image6-1-150x150.webp 150w\" style=\"width:512px;max-width:100%;height:auto\" width=\"512\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"uberwachung-und-einsichten\">\u00dcberwachung und Einsichten<\/h3>\n\n\n\n<p>Analytische Dashboards zur \u00dcberwachung der Pipeline-Leistung.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\" style=\"width:512px;max-width:100%;margin-top:32px;margin-right:auto;margin-bottom:32px;margin-left:auto\"><img alt=\"Illustration zu \u201e\u00dcberwachung und Einsichten\u201c\" decoding=\"async\" height=\"512\" loading=\"lazy\" sizes=\"(max-width: 512px) 100vw, 512px\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image8.webp\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image8.webp 512w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image8-300x300.webp 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image8-150x150.webp 150w\" style=\"width:512px;max-width:100%;height:auto\" width=\"512\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"integration-mit-git\">Integration mit Git<\/h3>\n\n\n\n<p>Kompatibel mit <a href=\"https:\/\/liora.io\/de\/github\" rel=\"noopener\" target=\"_blank\">GitHub<\/a>, <a href=\"https:\/\/liora.io\/de\/gitlab-alles-ueber-das-git-repository-fuer-devops\" rel=\"noopener\" target=\"_blank\">GitLab<\/a> und Bitbucket zur Automatisierung von CI\/CD-Workflows.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"einrichtung-von-circleci\">Einrichtung von CircleCI<\/h2>\n\n\n\n<p>Die Erstkonfiguration ist einfach und schnell und kompatibel mit GitHub, GitLab oder Bitbucket.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"1-vor-der-installation\">1. Vor der Installation<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li aria-level=\"1\">Zuallererst ist es notwendig, ein Konto auf einer kompatiblen Code-Verwaltungsplattform zu haben (<strong>GitHub, GitLab oder Bitbucket<\/strong>). Ebenso ein Konto bei CircleCI, das mit dem von dir verwendeten Repository verbunden ist.<\/li>\n<li aria-level=\"1\">Es ist notwendig, eine Konfigurationsdatei config.yml in einem .circleci-Ordner im Stammverzeichnis des Repositories zu haben.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"2-projektanmeldung\">2. Projektanmeldung<\/h3>\n\n\n\n<p>Achte darauf, die angeforderten Berechtigungen von der CircleCI-Website zu erteilen, damit es auf deine Repositories zugreifen kann. Um ein neues Projekt hinzuzuf\u00fcgen, klicke auf \u201eProjekt einrichten\u201c, wie im unten gezeigten Screenshot:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\" style=\"margin-top:32px;margin-bottom:32px\"><img alt=\"Illustration zu \u201e2. Projektanmeldung\u201c\" decoding=\"async\" height=\"128\" loading=\"lazy\" sizes=\"(max-width: 1277px) 100vw, 1277px\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image16.webp\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image16.webp 1277w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image16-300x30.webp 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image16-1024x103.webp 1024w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image16-768x77.webp 768w\" style=\"width:100%;height:auto\" width=\"1277\"\/><\/figure>\n\n\n\n<p>W\u00e4hle eine Integrationsmethode aus, in diesem Beispiel handelt es sich um \u201e<strong>Fast<\/strong>\u201c.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\" style=\"width:438px;max-width:100%;margin-top:32px;margin-right:auto;margin-bottom:32px;margin-left:auto\"><img alt=\"Illustration zu \u201e2. Projektanmeldung\u201c\" decoding=\"async\" height=\"336\" loading=\"lazy\" sizes=\"(max-width: 438px) 100vw, 438px\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image10.webp\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image10.webp 438w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image10-300x230.webp 300w\" style=\"width:438px;max-width:100%;height:auto\" width=\"438\"\/><\/figure>\n\n\n\n<p>Eine Konfigurationsdatei wird automatisch erstellt.<\/p>\n\n\n\n\n\n<h3 class=\"wp-block-heading\" id=\"3-die-konfigurationsdatei\">3. Die Konfigurationsdatei<\/h3>\n\n\n\n<p>In unserem Beispiel sieht die erstellte Konfigurationsdatei folgenderma\u00dfen aus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>version: 2.1\norbs:\n \u00a0python: circleci\/python@2.1.1\njobs:\n \u00a0build-and-test:\n \u00a0\u00a0\u00a0docker:\n \u00a0\u00a0\u00a0\u00a0\u00a0- image: cimg\/python:3.12\n \u00a0\u00a0\u00a0steps:\n \u00a0\u00a0\u00a0\u00a0\u00a0- checkout\n \u00a0\u00a0\u00a0\u00a0\u00a0- python\/install-packages:\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pkg-manager: pip\n \u00a0\u00a0\u00a0\u00a0\u00a0- run:\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name: Run tests\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0command: pytest\nworkflows:\n \u00a0sample:\u00a0\n \u00a0\u00a0\u00a0jobs:\n \u00a0\u00a0\u00a0\u00a0\u00a0- build-and-test<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li aria-level=\"1\">Die erste Zeile betrifft die von CircleCI verwendete Schema-Version.<\/li>\n<li aria-level=\"1\">Die <strong>orbs<\/strong> sind wiederverwendbare Pakete, die vorkonfigurierte CircleCI-Konfigurationen enthalten. Sie erm\u00f6glichen die schnelle Integration spezifischer Tools oder Sprachen, ohne die Konfiguration neu schreiben zu m\u00fcssen.<\/li>\n<li aria-level=\"1\">Die <strong>jobs<\/strong> sind Arbeitseinheiten. Sie enthalten eine Reihe von <strong>steps<\/strong>, die in einer spezifischen Umgebung ausgef\u00fchrt werden. In diesem Fall beinhaltet der Job <strong>build-and-test<\/strong> ein Element <strong>docker<\/strong>, das die Ausf\u00fchrungsumgebung des Jobs definiert (hier handelt es sich um ein von CircleCI bereitgestelltes Docker-Image) und ein <strong>step<\/strong>-Element, das weiter unten beschrieben wird.<\/li>\n<li aria-level=\"1\">Die Schritte (<strong>steps<\/strong>) definieren die auszuf\u00fchrenden Aktionen im Rahmen eines Jobs:\n<ul>\n<li aria-level=\"1\"><strong>checkout<\/strong>: Ruft den Quellcode aus dem Repository ab, um ihn in der CircleCI-Umgebung verf\u00fcgbar zu machen.<\/li>\n<li aria-level=\"1\"><strong>python\/install-packages<\/strong>: Dieser Befehl installiert die erforderlichen Abh\u00e4ngigkeiten mit dem Paketmanager <strong>pip<\/strong>.<\/li>\n<li aria-level=\"1\"><strong>run<\/strong>: F\u00fchrt einen Befehl innerhalb des Jobs aus. <strong>Pytest<\/strong> wird hier verwendet, um Unit-Tests durchzuf\u00fchren.<\/li>\n<\/ul>\n<\/li>\n<li aria-level=\"1\">Schlie\u00dflich sind die <strong>workflows<\/strong> ein Satz von Jobs, die in einer definierten Reihenfolge ausgef\u00fchrt werden:\n<ul>\n<li aria-level=\"1\"><strong>sample<\/strong>: Name des Workflows<\/li>\n<li aria-level=\"1\"><strong>jobs<\/strong>: Liste der im Workflow auszuf\u00fchrenden Jobs<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center wp-container-core-buttons-is-layout-5ee10de4\" style=\"margin-top:32px;margin-bottom:32px\"><div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/liora.io\/de\/weiterbildung\/cloud-dev\/devops-engineer\">Nutzt Du Power Automate?<\/a><\/div><\/div>\n\n\n\n<p>Gegebenenfalls k\u00f6nnen wir die folgenden \u00c4nderungen vornehmen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li aria-level=\"1\">Um die erneute Installation der Pakete bei jeder Ausf\u00fchrung zu vermeiden (und somit die Build-Zeit zu verk\u00fcrzen), kann ein Cache-Management implementiert werden:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>- restore_cache:\n \u00a0\u00a0\u00a0keys:\n \u00a0\u00a0\u00a0\u00a0\u00a0- v1-dependencies-{{ checksum \"requirements.txt\" }}\n- python\/install-packages:\n \u00a0\u00a0\u00a0pkg-manager: pip\n- save_cache:\n \u00a0\u00a0\u00a0key: v1-dependencies-{{ checksum \"requirements.txt\" }}\n \u00a0\u00a0\u00a0paths:\n \u00a0\u00a0\u00a0\u00a0\u00a0- ~\/.cache\/pip<\/code><\/pre>\n\n\n\n<p>So wird CircleCI versuchen, einen vorhandenen Cache basierend auf dem Hash der Datei <strong>requirements.txt<\/strong> wiederherzustellen. Wenn dieser verf\u00fcgbar ist, wird er abgerufen, andernfalls wird er \u00fcber <strong>pip<\/strong> installiert.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li aria-level=\"1\">Wenn die Anwendung in die Produktion geht, k\u00f6nnen wir nach erfolgreichem Test eine automatisierte Bereitstellung hinzuf\u00fcgen:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>workflows:\n \u00a0version: 2\n \u00a0deploy:\n \u00a0\u00a0\u00a0jobs:\n \u00a0\u00a0\u00a0\u00a0\u00a0- build-and-test\n \u00a0\u00a0\u00a0\u00a0\u00a0- deploy:\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0requires:\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- build-and-test\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0filters:\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0branches:\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0only: main<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"4-cloud-integration\">4. Cloud-Integration<\/h3>\n\n\n\n<p>CircleCI l\u00e4sst sich nahtlos in Cloud-Infrastrukturen integrieren, sei es <a href=\"https:\/\/liora.io\/de\/amazon-web-service-aws-microsoft-azure-oder-google-cloud-platform-gcp\">Azure, AWS oder GCP<\/a>. Hier werden wir eine AWS-Integration durchf\u00fchren.\nUm es einfach zu machen, sollte zun\u00e4chst ein <strong>orb<\/strong> hinzugef\u00fcgt werden, der wie folgt ist:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>aws-cli: circleci\/aws-cli@4.1.1<\/code><\/pre>\n\n\n\n<p>Sowie ein <strong>job<\/strong>, der wie im folgenden Beispiel aussieht:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>deploy-to-aws:\n \u00a0\u00a0\u00a0docker:\n \u00a0\u00a0\u00a0\u00a0\u00a0- image: cimg\/python:3.12\n \u00a0\u00a0\u00a0steps:\n \u00a0\u00a0\u00a0\u00a0\u00a0- attach_workspace:\u00a0\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0at: \/home\/circleci\/project\n \u00a0\u00a0\u00a0\u00a0\u00a0- aws-cli\/setup\n \u00a0\u00a0\u00a0\u00a0\u00a0- run:\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name: Configure AWS credentials\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0command: |\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0aws configure set default.region $AWS_DEFAULT_REGION\n \u00a0\u00a0\u00a0\u00a0\u00a0- run:\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name: Deploy application to S3\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0command: |\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0aws s3 cp \/home\/circleci\/project\/ s3:\/\/$AWS_S3_BUCKET_NAME --recursive\n \u00a0\u00a0\u00a0\u00a0\u00a0- run:\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name: Clear AWS credentials (for security)\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0command: rm -f ~\/.aws\/credentials<\/code><\/pre>\n\n\n\n<p>Die vorhandenen Umgebungsvariablen (erkennbar am Zeichen <strong>$<\/strong>) m\u00fcssen zuvor in den CircleCI-Einstellungen erstellt werden.<\/p>\n\n\n\n\n\n<h2 class=\"wp-block-heading\" id=\"best-practices-fur-ci-cd\">Best Practices f\u00fcr CI\/CD<\/h2>\n\n\n\n<p>CircleCI empfiehlt mehrere Best Practices zur Optimierung von CI\/CD-Pipelines.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\" style=\"width:512px;max-width:100%;margin-top:32px;margin-right:auto;margin-bottom:32px;margin-left:auto\"><img alt=\"Illustration zu \u201eBest Practices f\u00fcr CI\/CD\u201c\" decoding=\"async\" height=\"512\" loading=\"lazy\" sizes=\"(max-width: 512px) 100vw, 512px\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image1-1.webp\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image1-1.webp 512w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image1-1-300x300.webp 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image1-1-150x150.webp 150w\" style=\"width:512px;max-width:100%;height:auto\" width=\"512\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\" style=\"width:512px;max-width:100%;margin-top:32px;margin-right:auto;margin-bottom:32px;margin-left:auto\"><img alt=\"Illustration zu \u201eBest Practices f\u00fcr CI\/CD\u201c\" decoding=\"async\" height=\"512\" loading=\"lazy\" sizes=\"(max-width: 512px) 100vw, 512px\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image13.webp\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image13.webp 512w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image13-300x300.webp 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2025\/02\/image13-150x150.webp 150w\" style=\"width:512px;max-width:100%;height:auto\" width=\"512\"\/><\/figure>\n\n\n\n<p>Der CI\/CD-Prozess sollte als essentiell f\u00fcr jedes Entwicklungsteam angesehen werden.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center wp-container-core-buttons-is-layout-5ee10de4\" style=\"margin-top:32px;margin-bottom:32px\"><div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/liora.io\/de\/weiterbildung\/cloud-dev\/devops-engineer\">Bilde Dich mit uns weiter<\/a><\/div><\/div>\n\n\n\n<p>Manuelle Prozesse vermeiden, die die Entwicklung verlangsamen.<\/p>\n\n\n\n<p>Konfigurationen wiederverwenden und Cache-Strategien implementieren.<\/p>\n\n\n\n<p>Die Konfigurationen nicht duplizieren und bei jedem Build systematisch die Abh\u00e4ngigkeiten herunterladen.<\/p>\n\n\n\n<p>Die CircleCI-Orbs verwenden, um wiederkehrende Aufgaben zu automatisieren.<\/p>\n\n\n\n<p>Redundante Konfigurationen nicht manuell f\u00fcr jedes Projekt schreiben.<\/p>\n\n\n\n<p>Die Pipelines sichern, indem private Umgebungsvariablen, mehrere Kontexte und administrative Kontrollen verwendet werden.<\/p>\n\n\n\n<p>Sensible Informationen nicht in den Projektkonfigurationsdateien speichern.<\/p>\n\n\n\n<p>Eine hohe Testabdeckung aufrechterhalten, indem Partner-Tools integriert werden (zum Beispiel Codecov, Cypress oder SonarCloud).<\/p>\n\n\n\n<p>Code nicht ohne Tests oder ohne \u00dcberpr\u00fcfung der Testabdeckung bereitstellen.<\/p>\n\n\n\n<p>Automatisierte Benachrichtigungen mit Slack verwenden, um den Status der Pipelines zu verfolgen und schnell auf Fehler zu reagieren.<\/p>\n\n\n\n<p>Keine Benachrichtigungen einrichten, was zu Verz\u00f6gerungen bei der Erkennung von Problemen f\u00fchren kann.<\/p>\n\n\n\n<p>Beliebte Orbs wie Node, AWS-CLI und Python verwenden, um die Konfigurationen und die cloudbasierte Bereitstellung zu erleichtern.<\/p>\n\n\n\n<p>Jedes Tool nicht manuell konfigurieren, um Fehler und Inkonsistenzen zu vermeiden.<\/p>\n\n\n\n<p>Die Metriken der Pipelines analysieren, um Engp\u00e4sse zu identifizieren und die Effizienz der Workflows zu verbessern.<\/p>\n\n\n\n<p>Die Leistung der Pipelines \u00fcberwachen, um die Bereitstellungen nicht zu verlangsamen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"fazit\">Fazit<\/h2>\n\n\n\n<p>CircleCI ist eine <strong>leistungsstarke und flexible<\/strong> L\u00f6sung, die die Automatisierung und Optimierung von CI\/CD-Prozessen erm\u00f6glicht.<\/p>\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>CircleCI ist eine Plattform f\u00fcr kontinuierliche Integration und Bereitstellung (CI\/CD). Gegr\u00fcndet im Jahr 2011 und bewertet mit 1,7 Milliarden Dollar im Jahr 2021, ist diese L\u00f6sung heute eine der beliebtesten CI\/CD-Plattformen weltweit. Mit CircleCI k\u00f6nnen Entwickler ihren Code schnell und zuverl\u00e4ssig erstellen, testen und bereitstellen. Heute bedient das Unternehmen Tausende von Organisationen weltweit, von Startups [&hellip;]<\/p>\n","protected":false},"author":78,"featured_media":202588,"comment_status":"open","ping_status":"open","sticky":false,"template":"elementor_theme","format":"standard","meta":{"_acf_changed":false,"editor_notices":[],"footnotes":""},"categories":[2476],"class_list":["post-202586","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-dev"],"acf":[],"_links":{"self":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/202586","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/users\/78"}],"replies":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/comments?post=202586"}],"version-history":[{"count":5,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/202586\/revisions"}],"predecessor-version":[{"id":224314,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/202586\/revisions\/224314"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media\/202588"}],"wp:attachment":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media?parent=202586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/categories?post=202586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}