<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>CI/CD on Romano Roth</title><link>https://romanoroth.com/de/tags/ci/cd/</link><description>Recent content in CI/CD on Romano Roth</description><generator>Hugo -- gohugo.io</generator><language>de</language><copyright>Romano Roth</copyright><lastBuildDate>Tue, 04 Mar 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://romanoroth.com/de/tags/ci/cd/index.xml" rel="self" type="application/rss+xml"/><item><title>Kontinuierliche Sicherheit mit DevSecOps und Platform Engineering</title><link>https://romanoroth.com/de/blogs/kontinuierliche-sicherheit-mit-devsecops-und-platform-engineering/</link><pubDate>Tue, 04 Mar 2025 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/kontinuierliche-sicherheit-mit-devsecops-und-platform-engineering/</guid><description>&lt;p>Stellen Sie sich eine Welt vor, in der Sicherheit nahtlos in Ihren Entwicklungsworkflow integriert ist, von der Idee bis zur Produktion, sodass sich Entwicklungsteams vollständig auf die Feature-Entwicklung konzentrieren können und dabei sichere Anwendungen bauen. Genau das habe ich am OWASP Chapter Meetup Schweiz präsentiert. In diesem Vortrag zeige ich, wie Platform Engineering die moderne Anwendungssicherheit transformiert und DevSecOps im grossen Massstab zur Realität macht.&lt;/p></description></item><item><title>GitHub DevSecOps Teil 12: Unsere Empfehlungen und Lessons Learned</title><link>https://romanoroth.com/de/blogs/github-devsecops-recommendations/</link><pubDate>Tue, 13 Jun 2023 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/github-devsecops-recommendations/</guid><description>&lt;p>Nach elf Sessions, in denen wir eine komplette DevSecOps-Pipeline mit GitHub aufgebaut haben — Software Composition Analysis, License Compliance, SAST, Container Scanning, Secret Detection, DAST, Pull Requests, Scheduled Pipelines und Vulnerability Management — schliessen Patrick Steger und ich die Serie mit unseren Empfehlungen ab. Was auf GitHub funktioniert, wo die Lücken sind und was wir jedem mitgeben würden, der die gleiche Pipeline bauen will.&lt;/p></description></item><item><title>GitHub DevSecOps Teil 11: Scheduled Pipelines für den Produktionscode</title><link>https://romanoroth.com/de/blogs/github-devsecops-schedule-pipeline/</link><pubDate>Mon, 05 Jun 2023 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/github-devsecops-schedule-pipeline/</guid><description>&lt;p>Über zehn Sessions haben wir Security-Checks in eine GitHub-Actions-Pipeline verdrahtet, die auf jedem Commit und jedem Pull Request feuert. Das deckt den Code ab, an dem wir aktiv arbeiten. Es deckt nicht den Code ab, der bereits in Produktion läuft, während Researcher laufend neue CVEs in den Libraries finden, die er nutzt. In Teil 11 der GitHub DevSecOps Serie bauen Patrick Steger und ich einen Scheduled Workflow, der den Production-Branch erneut scannt — und stossen dabei auf eine GitHub-Limitierung, die man von Anfang an kennen sollte.&lt;/p></description></item><item><title>GitHub DevSecOps Teil 10: Branch Protection und Pull Requests</title><link>https://romanoroth.com/de/blogs/github-devsecops-pull-request/</link><pubDate>Tue, 30 May 2023 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/github-devsecops-pull-request/</guid><description>&lt;p>In den vorherigen neun Sessions haben Patrick Steger und ich eine GitHub DevSecOps-Pipeline gebaut mit Build, SCA, License Compliance, SAST, Container Scanning, Secret Detection und DAST. Alles nützlich — aber nur dann, wenn sie tatsächlich läuft, &lt;em>bevor&lt;/em> Code in main landet, und nur dann, wenn der Merge blockiert wird, sobald etwas Ernstes auftaucht. In Teil 10 verdrahten wir dieses Gate mit Pull Requests und Branch Protection Rules.&lt;/p></description></item><item><title>GitHub DevSecOps Teil 9: Vulnerability Management</title><link>https://romanoroth.com/de/blogs/github-devsecops-vulnerability-management/</link><pubDate>Mon, 22 May 2023 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/github-devsecops-vulnerability-management/</guid><description>&lt;p>Wir haben in den letzten acht Sessions Scanner in unsere GitHub DevSecOps Pipeline eingebaut — SCA, SAST, Container Scanning, Secret Detection, DAST. Die Scanner produzieren jetzt einen kontinuierlichen Strom von Findings, und die Frage lautet: Wo managen wir sie? In Teil 9 schauen Patrick Steger und ich uns das eingebaute Vulnerability Management von GitHub an — den Security Tab — und benennen, was funktioniert und was fehlt.&lt;/p></description></item><item><title>GitHub DevSecOps Teil 8: Dynamic Application Security Testing (DAST)</title><link>https://romanoroth.com/de/blogs/github-devsecops-dast/</link><pubDate>Wed, 19 Apr 2023 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/github-devsecops-dast/</guid><description>&lt;p>Nach sieben Sessions statischer Analyse — SCA, License Compliance, SAST, Container Scanning, Secret Detection — wechseln Patrick Steger und ich auf die dynamische Seite der Pipeline. In Teil 8 ergänzen wir Dynamic Application Security Testing in unserer GitHub-Actions-Pipeline. DAST startet die Anwendung und greift sie dann an. GitHub liefert das nicht out of the box, also bauen wir eine Community-Action auf Basis von OWASP ZAP ein — und sind ehrlich, wo dieser Ansatz für Enterprise-Use an Grenzen stösst.&lt;/p></description></item><item><title>GitHub DevSecOps Teil 7: Secrets im eigenen Code finden mit Secret Scanning</title><link>https://romanoroth.com/de/blogs/github-devsecops-secret-detection/</link><pubDate>Tue, 14 Feb 2023 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/github-devsecops-secret-detection/</guid><description>&lt;p>API-Keys, Tokens und Passwörter rutschen nach wie vor regelmässig in Repositories — manchmal aus Versehen, manchmal weil Entwickler es ehrlich nicht besser wussten. In Teil 7 unserer GitHub DevSecOps Serie schalten Patrick Steger und ich GitHubs eingebautes Secret Scanning ein, definieren ein eigenes Pattern, probieren Push Protection aus und schauen offen hin, wo die Funktion liefert und wo sie noch nicht hält, was sie verspricht.&lt;/p></description></item><item><title>GitHub DevSecOps Teil 6: Wie man Container Scanning einsetzt</title><link>https://romanoroth.com/de/blogs/github-devsecops-container-scanning/</link><pubDate>Thu, 09 Feb 2023 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/github-devsecops-container-scanning/</guid><description>&lt;p>Wir haben die GitHub-Actions-Pipeline in fünf Sessions aufgebaut: Projekt-Grundlagen, Software Composition Analysis, License Compliance und Static Application Security Testing. Die nächste Schicht ist Container Scanning — die Suche nach Schwachstellen im Docker-Image, das wir ausliefern, nicht nur im Source, den wir geschrieben haben. In Teil 6 unserer Serie teilen Patrick Steger und ich die Arbeit in zwei GitHub-Actions-Sub-Workflows auf: einer baut das Image und pusht es in die Registry, der andere zieht es zurück und lässt Trivy darauf laufen.&lt;/p></description></item><item><title>GitHub DevSecOps Teil 5: Static Application Security Testing (SAST)</title><link>https://romanoroth.com/de/blogs/github-devsecops-sast/</link><pubDate>Wed, 01 Feb 2023 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/github-devsecops-sast/</guid><description>&lt;p>SCA hat unsere Dependencies abgedeckt. License Compliance hat geklärt, was wir ausliefern dürfen. SAST ist die Stelle, an der wir die Scanner auf den Code richten, den wir selbst geschrieben haben. In Teil 5 unserer GitHub DevSecOps Serie integrieren Patrick Steger und ich Static Application Security Testing in die Pipeline — und merken auf die harte Tour, dass es auf GitHub drei Actions braucht statt einer.&lt;/p></description></item><item><title>GitHub DevSecOps Teil 4: Wie sichert man License Compliance?</title><link>https://romanoroth.com/de/blogs/github-devsecops-license-compliance/</link><pubDate>Wed, 25 Jan 2023 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/github-devsecops-license-compliance/</guid><description>&lt;p>GitHub liefert von Haus aus keinen License Scanner mit, und als wir im Marketplace gesucht haben, hat keine der vorhandenen Actions getan, was wir brauchten. Also haben wir mit einem Kollegen von Microsoft eine eigene gebaut und veröffentlicht. In Teil 4 unserer GitHub DevSecOps Serie binden Patrick Steger und ich diese License-Finder-Action in unsere Spring-Boot-Pipeline ein, konfigurieren die erlaubten Lizenzen und zeigen, wie man die Resultate in GitHub sichtbar macht.&lt;/p></description></item><item><title>GitHub DevSecOps Teil 3: Software Composition Analysis mit Dependabot und CRDA</title><link>https://romanoroth.com/de/blogs/github-devsecops-sca/</link><pubDate>Thu, 19 Jan 2023 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/github-devsecops-sca/</guid><description>&lt;p>GitHub liefert kein Default-SCA-Tool wie GitLab. Du musst zwei Dinge kombinieren: das Plattform-Feature Dependabot und eine SCA-Action aus dem Marketplace. In Teil 3 der GitHub DevSecOps Serie verdrahten Patrick Steger und ich beides in unsere Pipeline — und merken auf die harte Tour, dass der Marketplace-Pfad nicht so glatt läuft, wie es die Slides suggerieren.&lt;/p></description></item><item><title>GitHub DevSecOps Teil 2: Ein einfaches Projekt und den ersten Workflow erstellen</title><link>https://romanoroth.com/de/blogs/github-devsecops-projekt-erstellen/</link><pubDate>Wed, 11 Jan 2023 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/github-devsecops-projekt-erstellen/</guid><description>&lt;p>Bevor wir Security-Tools an irgendetwas anschliessen, brauchen wir ein Repository, eine Pipeline und einen lauffähigen Build. In Teil 2 unserer GitHub DevSecOps Serie legen Patrick Steger und ich ein privates GitHub-Repo für einen kleinen Java-Spring-Boot-Service an, aktivieren GitHub Actions und verdrahten eine Pipeline aus zwei Workflows, die den Code kompiliert und die Unit Tests ausführt. Das ist das Skelett, an dem in der Serie alles Weitere hängt.&lt;/p></description></item><item><title>GitHub DevSecOps Teil 1: Was ist GitHub und warum Security nach links verschieben?</title><link>https://romanoroth.com/de/blogs/github-devsecops-einfuehrung/</link><pubDate>Tue, 03 Jan 2023 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/github-devsecops-einfuehrung/</guid><description>&lt;p>Nachdem wir die GitLab DevSecOps Serie abgeschlossen haben, hat Patrick den Job gewechselt — und sein neues Team arbeitet mit GitHub. Das Problem ist dasselbe: keine Security-Checks während der Entwicklung. Die Plattform ist eine andere. In Teil 1 unserer GitHub DevSecOps Serie zeigen wir, was GitHub ist, welches CI/CD-Vokabular man teilen muss, bevor irgendein Pipeline-Gespräch funktioniert, und wie die DevSecOps-Pipeline aussieht, die wir in den nächsten Sessions aufbauen werden.&lt;/p></description></item><item><title>GitLab vs. GitHub: DevSecOps Pipeline</title><link>https://romanoroth.com/de/blogs/gitlab-vs-github-devsecops/</link><pubDate>Wed, 28 Dec 2022 11:25:25 +0000</pubDate><guid>https://romanoroth.com/de/blogs/gitlab-vs-github-devsecops/</guid><description>&lt;p>von &lt;a href="https://www.linkedin.com/in/romanoroth/" target="_blank" rel="noreferrer">Romano Roth&lt;/a> und &lt;a href="https://www.linkedin.com/in/patrick-steger-ch/" target="_blank" rel="noreferrer">Patrick Steger&lt;/a>&lt;/p>
&lt;p>&lt;figure>&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="1280"
 height="720"
 src="https://romanoroth.com/images/blog/gitlab-vs-github-devsecops-inline-1_hu_21f4da4944ff7974.png"
 srcset="https://romanoroth.com/images/blog/gitlab-vs-github-devsecops-inline-1_hu_21f4da4944ff7974.png 800w, https://romanoroth.com/images/blog/gitlab-vs-github-devsecops-inline-1.png 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://romanoroth.com/images/blog/gitlab-vs-github-devsecops-inline-1.png">&lt;/figure>
&lt;/p>
&lt;p>Diese Videoserie zeigt Ihnen, wie Sie eine enterprise-taugliche DevSecOps-Pipeline mit GitLab und GitHub aufbauen, und vergleicht die beiden Plattformen miteinander.&lt;/p></description></item><item><title>GitLab DevSecOps Teil 12: Unsere Empfehlungen und Lessons Learned</title><link>https://romanoroth.com/de/blogs/gitlab-devsecops-recommendations/</link><pubDate>Wed, 16 Nov 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/gitlab-devsecops-recommendations/</guid><description>&lt;p>Nach elf Sessions, in denen wir eine komplette DevSecOps-Pipeline mit GitLab aufgebaut haben — von Software Composition Analysis über Container Scanning, SAST, Secret Detection und DAST bis hin zu Merge Request Integration und Scheduled Pipelines — schliessen Patrick Steger und ich die Serie mit unseren Empfehlungen ab. Was funktioniert, wo es Stolpersteine gab und was wir jedem mitgeben würden, der heute die gleiche Pipeline aufbauen will.&lt;/p></description></item><item><title>GitLab DevSecOps Teil 11: Scheduled Pipelines für den Produktionscode</title><link>https://romanoroth.com/de/blogs/gitlab-devsecops-schedule-pipeline/</link><pubDate>Wed, 09 Nov 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/gitlab-devsecops-schedule-pipeline/</guid><description>&lt;p>In zehn Sessions haben wir sechs Security-Tools in eine GitLab-Pipeline verdrahtet, die auf jedem Commit und jedem Merge Request feuert. Sind wir damit fertig? Nicht ganz. Code, der in Produktion läuft, bleibt dort Wochen oder Monate liegen, und in dieser Zeit finden Security-Researcher laufend neue CVEs in genau den Dependencies, die du längst ausgeliefert hast. In Teil 11 der GitLab DevSecOps Serie bauen Patrick Steger und ich eine Scheduled Pipeline, die den Production-Branch automatisch erneut scannt — ohne dass jemand pushen muss.&lt;/p></description></item><item><title>GitLab DevSecOps Teil 10: Wie man einen Merge Request richtig macht</title><link>https://romanoroth.com/de/blogs/gitlab-devsecops-merge-request/</link><pubDate>Wed, 02 Nov 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/gitlab-devsecops-merge-request/</guid><description>&lt;p>In den vorherigen neun Sessions haben Patrick Steger und ich eine GitLab DevSecOps-Pipeline gebaut, die SAST, Secret Detection, Software Composition Analysis, Container Scanning und DAST ausführt. Nützlich — aber nur dann, wenn sie Probleme tatsächlich findet, &lt;em>bevor&lt;/em> der Code im Default-Branch landet. In Teil 10 schliessen wir diesen Loop: Wir hängen die Pipeline an Merge Requests, sodass jede Änderung gescannt wird, die Deltas gegen den Default-Branch sichtbar sind, und Freigaben erforderlich werden, wenn neue High- oder Critical-Vulnerabilities auftauchen.&lt;/p></description></item><item><title>GitLab DevSecOps Teil 9: Vulnerability Management Herausforderungen meistern</title><link>https://romanoroth.com/de/blogs/gitlab-devsecops-vulnerability-management/</link><pubDate>Wed, 12 Oct 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/gitlab-devsecops-vulnerability-management/</guid><description>&lt;p>Nach acht Sessions, in denen wir Scanner in unsere GitLab-Pipeline eingebaut haben — SAST, Secret Detection, SCA, License Compliance, Container Scanning, DAST — haben wir jetzt ein anderes Problem. Wir haben hunderte von Vulnerability-Findings. In Teil 9 schauen Patrick Steger und ich uns das eingebaute Vulnerability Management von GitLab an: was es liefert, wo es schwächelt und wie man Findings tatsächlich triagiert, ohne den Überblick zu verlieren.&lt;/p></description></item><item><title>GitLab DevSecOps Teil 8: Dynamic Application Security Testing (DAST)</title><link>https://romanoroth.com/de/blogs/gitlab-devsecops-dast/</link><pubDate>Wed, 05 Oct 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/gitlab-devsecops-dast/</guid><description>&lt;p>Alles, was wir bisher in der GitLab DevSecOps Pipeline gemacht haben, war statisch — Analyse von Source Code, Dependencies, Containern und Konfiguration. In Teil 8 überschreiten Patrick Steger und ich die Linie zu Continuous Delivery und ergänzen Dynamic Application Security Testing. DAST heisst: Wir deployen die Anwendung, starten sie und greifen sie von aussen mit einem automatisierten Penetration-Testing-Tool an. GitLab liefert das Feature out of the box mit OWASP ZAP.&lt;/p></description></item><item><title>GitLab DevSecOps Teil 7: Secrets im eigenen Code finden mit Secret Detection</title><link>https://romanoroth.com/de/blogs/gitlab-devsecops-secret-detection/</link><pubDate>Wed, 28 Sep 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/gitlab-devsecops-secret-detection/</guid><description>&lt;p>Hardcodierte Passwörter und API-Keys sind nach wie vor einer der häufigsten Wege, auf denen Credentials nach aussen gelangen. Sie werden versehentlich committet, bleiben für immer in der Git-History und tauchen meist erst dann auf, wenn sie schon ausgenutzt werden. In Teil 7 unserer GitLab DevSecOps Serie ergänzen Patrick Steger und ich die bestehende Pipeline um Secret Detection — eine Zeile YAML — und schauen dann ehrlich hin: Was findet GitLeaks tatsächlich, was übersieht es still, und was tun wir damit?&lt;/p></description></item><item><title>GitLab DevSecOps Teil 6: Wie man Container Scanning einsetzt</title><link>https://romanoroth.com/de/blogs/gitlab-devsecops-container-scanning/</link><pubDate>Tue, 06 Sep 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/gitlab-devsecops-container-scanning/</guid><description>&lt;p>Wir haben SAST, Secret Detection und Software Composition Analysis bereits in die GitLab-Pipeline integriert. Diese Checks decken Quellcode und Dependencies ab — aber das Artefakt, das wir tatsächlich ausliefern, ist ein Container-Image. Betriebssystem-Pakete, das Base-Image und alles, was im Lauf des Builds hineinkopiert wird, können eigene Schwachstellen mitbringen. In Teil 6 unserer Serie ergänzen Patrick Steger und ich die Pipeline um Container Scanning, bauen ein Docker-Image aus dem zuvor kompilierten Jar und schicken es durch Trivy und Grype.&lt;/p></description></item><item><title>GitLab DevSecOps Teil 5: Static Application Security Testing (SAST)</title><link>https://romanoroth.com/de/blogs/gitlab-devsecops-sast/</link><pubDate>Wed, 31 Aug 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/gitlab-devsecops-sast/</guid><description>&lt;p>Software Composition Analysis kümmert sich um die Bibliotheken, die du einbindest. Aber was ist mit dem Code, den dein Team selbst schreibt? Genau dafür ist Static Application Security Testing da. In Teil 5 unserer GitLab DevSecOps Serie integrieren Patrick Steger und ich SAST in die Pipeline, bauen ein paar realistische Schwachstellen in unser Spring-Boot-Beispiel ein und schauen zu, wie GitLab sie aufgreift.&lt;/p></description></item><item><title>GitLab DevSecOps Teil 4: Wie sichert man License Compliance?</title><link>https://romanoroth.com/de/blogs/gitlab-devsecops-license-compliance/</link><pubDate>Wed, 24 Aug 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/gitlab-devsecops-license-compliance/</guid><description>&lt;p>Du lieferst eine Java-Anwendung aus, die von Spring Boot abhängt, das wiederum von dutzenden weiteren Bibliotheken abhängt — jede mit ihrer eigenen Lizenz. Und die meisten Teams können dir nicht sagen, welche Lizenzen das eigentlich sind. In Teil 4 unserer GitLab DevSecOps Serie ergänzen Patrick Steger und ich die Pipeline um License Compliance, sodass diese Frage bei jedem Commit automatisch beantwortet wird. Die gute Nachricht: Mit GitLab Ultimate ist das eine Template-Zeile.&lt;/p></description></item><item><title>GitLab DevSecOps Teil 3: Software Composition Analysis mit Gemnasium</title><link>https://romanoroth.com/de/blogs/gitlab-devsecops-sca/</link><pubDate>Wed, 17 Aug 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/gitlab-devsecops-sca/</guid><description>&lt;p>Dein Code ist der kleine Teil. Die Libraries, die du reinziehst, sind der grosse Teil — und genau dort steckt der Grossteil deiner CVEs. In Teil 3 der GitLab DevSecOps Serie bauen Patrick Steger und ich eine kleine Spring-Boot-Demo auf, hängen sie in eine GitLab-Pipeline und ergänzen anschliessend Software Composition Analysis mit einer einzigen Include-Zeile.&lt;/p></description></item><item><title>GitLab DevSecOps Teil 1: Was ist GitLab und warum Security nach links verschieben?</title><link>https://romanoroth.com/de/blogs/gitlab-devsecops-einfuehrung/</link><pubDate>Wed, 10 Aug 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/gitlab-devsecops-einfuehrung/</guid><description>&lt;p>Warum wird Security immer noch am Ende des Entwicklungsprozesses angeflanscht — und wie können wir sie nach vorn verschieben, ohne die Teams auszubremsen? In Teil 1 unserer GitLab DevSecOps Serie legen Patrick Steger und ich die Grundlage: Was GitLab ist, was Shift Left wirklich bedeutet und welche CI/CD-Konzepte man verstanden haben muss, bevor man eine DevSecOps-Pipeline bauen kann, die in der Praxis funktioniert.&lt;/p></description></item><item><title>GitLab DevSecOps Teil 2: Ein einfaches Projekt und die erste Pipeline erstellen</title><link>https://romanoroth.com/de/blogs/gitlab-devsecops-projekt-erstellen/</link><pubDate>Wed, 10 Aug 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/gitlab-devsecops-projekt-erstellen/</guid><description>&lt;p>Bevor wir irgendwelche Security-Checks nach links verschieben können, brauchen wir ein Projekt, ein Repository und eine Pipeline, die tatsächlich etwas baut. In Teil 2 unserer GitLab DevSecOps Serie loggen sich Patrick Steger und ich in GitLab ein, legen ein neues .NET-Core-Projekt aus einem Template an und schauen uns die &lt;code>.gitlab-ci.yml&lt;/code> an, die GitLab automatisch für uns generiert — inklusive Build- und Test-Job, die das Fundament für alles werden, was wir später ergänzen.&lt;/p></description></item><item><title>DevOps erklärt: Was machen "DevOps Engineers" eigentlich bei Zühlke?</title><link>https://romanoroth.com/de/blogs/devops-erklaert-was-machen-devops-engineers-bei-zuehlke/</link><pubDate>Fri, 17 Jun 2022 15:59:46 +0000</pubDate><guid>https://romanoroth.com/de/blogs/devops-erklaert-was-machen-devops-engineers-bei-zuehlke/</guid><description>&lt;p>Hast du dich jemals gefragt, was &amp;ldquo;DevOps Engineers&amp;rdquo; eigentlich tun? Was bedeutet &amp;ldquo;DevOps&amp;rdquo; überhaupt? Dieser Blogbeitrag soll das Konzept von DevOps erklären und den Wert aufzeigen, den es einer Organisation bringt.&lt;/p></description></item><item><title>Feature Toggles: Was, warum, wie?</title><link>https://romanoroth.com/de/blogs/feature-toggles-was-warum-wie/</link><pubDate>Wed, 30 Mar 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/feature-toggles-was-warum-wie/</guid><description>&lt;p>Feature Toggles sind eines dieser Konzepte, die auf den ersten Blick einfach klingen, aber in der Praxis enormes Potenzial entfalten. In dieser Session des DevOps Meetup Zürich spreche ich gemeinsam mit Ben Rometsch, dem Gründer von Flagsmith, über das Was, Warum und Wie von Feature Toggles. Wir behandeln die grundlegenden CI/CD-Konzepte, die Feature Toggles notwendig machen, den Unterschied zwischen Deployment und Release, und wie moderne Feature-Flagging-Plattformen progressive Rollouts, User-Segmentierung und A/B Testing ermöglichen.&lt;/p></description></item><item><title>Was ist Continuous Deployment (CD)?</title><link>https://romanoroth.com/de/blogs/was-ist-continuous-deployment/</link><pubDate>Thu, 06 Aug 2020 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/was-ist-continuous-deployment/</guid><description>&lt;p>Continuous Deployment ist der finale, aggressivste Schritt in der CI/CD-Progression. CI beweist, dass der Code baut und die Unit Tests grün sind. Continuous Delivery beweist, dass das Artefakt in einer produktionsähnlichen Umgebung funktioniert. Continuous Deployment entfernt den letzten manuellen Checkpoint: Wenn alle Tests auf dem Weg grün sind, geht die Änderung direkt in Produktion. Kein &amp;ldquo;Deploy&amp;rdquo;-Button, kein Freitagnachmittag-Release-Fenster, kein Mensch im Loop für den letzten Schritt.&lt;/p></description></item><item><title>Was ist Continuous Delivery (CD)?</title><link>https://romanoroth.com/de/blogs/was-ist-continuous-delivery/</link><pubDate>Wed, 05 Aug 2020 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/was-ist-continuous-delivery/</guid><description>&lt;p>Continuous Integration endet mit einem getesteten Artefakt. Das klingt gut, aber ein grüner Build heisst nicht, dass die Software in einer realistischen Umgebung tatsächlich funktioniert. Unit Tests laufen isoliert. Integrationstests laufen gegen Mocks. Solange man die Software nicht irgendwo hinstellt, das aussieht wie Produktion, und sie unter echten Bedingungen ausführt, hat man eigentlich noch nichts bewiesen. Continuous Delivery ist der Schritt, der diese Lücke schliesst.&lt;/p></description></item><item><title>Was ist CI/CD?</title><link>https://romanoroth.com/de/blogs/what-is-ci-cd/</link><pubDate>Tue, 04 Aug 2020 18:49:47 +0000</pubDate><guid>https://romanoroth.com/de/blogs/what-is-ci-cd/</guid><description>&lt;p>In der traditionellen Softwareentwicklung wird Software von allen Entwicklern in einem grossen einzigen Integrationsschritt zusammengeführt und getestet, der in der Regel Wochen oder gar Monate dauert. Da dies nur alle paar Monate passiert, ist dieser Schritt sehr zeitaufwändig.&lt;/p></description></item><item><title>Was ist Continuous Integration (CI)?</title><link>https://romanoroth.com/de/blogs/was-ist-continuous-integration/</link><pubDate>Tue, 04 Aug 2020 00:00:00 +0000</pubDate><guid>https://romanoroth.com/de/blogs/was-ist-continuous-integration/</guid><description>&lt;p>In der klassischen Softwareentwicklung war Integration ein einziges, schmerzhaftes Ereignis. Jeder Entwickler arbeitete wochen- oder monatelang isoliert, und am Ende wurde alles in einem grossen Big Bang zusammengeführt. Dieser Integrationsschritt dauerte Wochen, manchmal Monate. Konflikte häuften sich an, Bugs versteckten sich in den Nahtstellen zwischen Modulen, und niemand konnte mit Sicherheit sagen, ob das System tatsächlich funktionierte. Continuous Integration wurde erfunden, um genau diesen Schmerz aufzulösen.&lt;/p></description></item></channel></rss>