CI/CD-Lücke in der Embedded-Systems-Entwicklung

Embedded DevOps mit Containern und Automatisierung skalieren

Traditionelles CI/CD hält dem hohen Zeit- und Innovationsdruck bei der Entwicklung von komplexen und oftmals sicherheitsrelevanten Embedded-Systemen heute nicht mehr stand. Kleine und große Entwicklungsteams sollten daher auf Workflows mit Containern, Automatisierung und DevSecOps setzen.

Was bremst CI/CD in Embedded-Systemen aus? Mit Containern und DevSecOps lassen sich Automatisierung und Sicherheit effizient kombinieren.
Was bremst CI/CD in Embedded-Systemen aus? Mit Containern und DevSecOps lassen sich Automatisierung und Sicherheit effizient kombinieren.

Die Entwicklung von Embedded-Systemen hat sich in den letzten Jahren grundlegend verändert. Ob Medizintechnik, industrielle Automatisierung oder Automotive-Steuergeräte: Die Produkte sind intelligenter und vernetzter denn je und werden häufig in kritischen Umgebungen eingesetzt. Doch während sich die Hardware-Fähigkeiten und die Konnektivität rasant weiterentwickelt haben, sind viele Methoden in der Embedded-Systems-Entwicklung immer noch von gestern.

Starre CI/CD-Pipelines (Continuous Integration / Continuous Delivery/Deployment), manuelles Toolchain-Management und inkonsistente Umgebungen bremsen den Fortschritt. Gleichzeitig werden die Anforderungen an Sicherheit, Compliance und schnellere Release-Zyklen immer höher. Diese Diskrepanz zwischen wachsender Komplexität und veralteten Workflows ist zu einer der größten Herausforderungen der Embedded-Entwicklungsteams geworden.

Traditionelles CI/CD bei Embedded-Systemen scheitert häufig an fragmentierten Toolchains, inkonsistenten Umgebungen und Verzögerungen bei der Compliance.
Traditionelles CI/CD bei Embedded-Systemen scheitert häufig an fragmentierten Toolchains, inkonsistenten Umgebungen und Verzögerungen bei der Compliance.

Viele Unternehmen experimentieren mit DevOps (Development Operations), aber die Übertragung dieser Prinzipien auf reale Embedded-Systeme ist kompliziert. Fragmentierte Toolchains, hohe Zertifizierungsanforderungen und unterschiedliche Hardwareplattformen sorgen für zusätzliche Reibungsverluste, mit denen sich Teams, die in Cloud-Umgebungen („cloud-native“) zusammenarbeiten, häufig konfrontiert sehen. Das Problem ist offensichtlich: Alles, was eine Embedded-Software an Zuverlässigkeit, Sicherheit und Geschwindigkeit bieten muss, wird oft wieder durch veraltete Prozesse in der Entwicklung beeinträchtigt. 

Die Realität kleiner Teams

Mit dieser Problematik sehen sich nicht nur große Unternehmen konfrontiert. In der Embedded-Branche sind es nicht selten kleine Teams, die die komplexesten und leistungsfähigsten Produkte entwickeln. Dabei ist ihre Infrastruktur oftmals begrenzt: Software-Entwickler übernehmen mehrere Aufgaben als Tester, Integratoren und Release-Manager. Die Einarbeitung erfolgt über Screenshots und freigegebene Ordner. Die Toolchains variieren von Laptop zu Laptop.

Was einst in hardwareorientierten Arbeitsabläufen funktionierte, reicht heute nicht mehr aus. Es ist inzwischen die Software, die für eine wettbewerbsentscheidende Produktdifferenzierung sorgt. Die Fähigkeit, in der Entwicklung schnell zu iterieren und dabei Compliance und Zuverlässigkeit zu gewährleisten, ist heute von entscheidender Bedeutung. Die Herausforderung besteht darin, dass viele kleine Teams Embedded CI/CD, Container oder strukturiertes Debugging als Luxus betrachten, der größeren Akteuren vorbehalten ist. In Wirklichkeit können diese Praktiken die Produktivität transformieren, ohne dass ein dediziertes DevOps-Team oder ein riesiges Budget erforderlich ist.

Embedded DevSecOps: Mehr als ein Schlagwort

Bei dieser Umstellung geht es nicht nur um die Einführung von Embedded DevOps, sondern um die Einführung von Embedded DevSecOps (Development Security Operations). Dies bedeutet die Integration von Sicherheit und Compliance direkt im Entwicklungszyklus selbst. Anstatt Schwachstellen und Zertifizierungen erst nachträglich zu behandeln, verschiebt Embedded DevSecOps nach dem Shift-Left-Prinzip den Fokus nach links auf dem Entwicklungszeitstrahl und integriert Tests, sichere Builds und Compliance-Prüfungen bereits in der frühesten Phase der Entwicklung.

Für die Embedded-Entwicklung ist das von entscheidender Bedeutung. Ob in Automotive-Systemen gemäß ISO 26262, medizintechnischen Geräten gemäß IEC 62304 oder industriellen Steuerungen gemäß IEC 61508 – Entwicklungsteams müssen strenge Safety- und Cybersicherheitsstandards erfüllen. Embedded DevSecOps stellt sicher, dass sicheres Booten, Firmware-Signierung, Verschlüsselung und auditfähige Rückverfolgbarkeit Teil des täglichen Arbeitsablaufs werden, ohne den Gesamtprozess zu verlangsamen.

Container als Gamechanger

Einer der wichtigsten Bausteine für Embedded DevSecOps ist die Containerisierung. Mit Tools wie Docker können Teams ihre Entwicklungsumgebungen über Desktops, selbst gehostete Server und Cloud-Runner hinweg standardisieren.

Damit lässt sich das gefürchtete „Es-funktioniert-auf-meinem-Rechner-Problem“ beseitigen. Jeder Build läuft in einer identischen Umgebung, was die Reproduzierbarkeit verbessert, das Integrationsrisiko verringert und die Fehlersuche vereinfacht. Container starten schneller als virtuelle Maschinen, verbrauchen weniger Ressourcen und können zusammen mit dem Quellcode versioniert werden. Dies gewährleistet eine langfristige Reproduzierbarkeit für Wartungs- und Audit-Zwecke.

In kleinen Teams machen sich die Vorteile unmittelbar bemerkbar: Die Einarbeitung neuer Mitarbeiter erfolgt schneller, neue Entwickler können einen Container abrufen und sofort mit der Arbeit beginnen, ohne Tage mit der Replikation von Umgebungen zu verschwenden. Für große Teams vereinfachen Container die standortübergreifende Zusammenarbeit und die Lieferanten-Ökosysteme. In regulierten Industrien sorgen die Container für die Konsistenz, die zur Erfüllung der Zertifizierungsanforderungen erforderlich ist.

Containerisierte Toolchains standardisieren Umgebungen über Teams und Standorte hinweg, löst das „Es-funktioniert-auf-meinem-Rechner-Problem“ und gewährleisten Reproduzierbarkeit für Audits.
Containerisierte Toolchains standardisieren Umgebungen über Teams und Standorte hinweg, lösen das „Es-funktioniert-auf-meinem-Rechner-Problem“ und gewährleisten Reproduzierbarkeit für Audits.

Standardkonform ohne Zeitverlust

Sicherheit und Compliance sind keine Option mehr, sondern unverzichtbar. Sie müssen Teams aber nicht ausbremsen. Mit den richtigen Workflows können statische Code-Analysen, Laufzeitprüfungen und Code-Qualitätskontrollen bei jedem Commit ausgelöst werden.

Automatisierte Richtlinien sorgen für Konsistenz unabhängig von Entwicklern und Standorten, während die Bereitstellung, Schlüsselverwaltung und Firmware-Signierung direkt in CI/CD-Workflows integriert werden können. Jede Veröffentlichung ist nicht nur zuverlässig, sondern auch auditfähig, was den manuellen Aufwand und das Risiko von Compliance-„Last-Minute-Feuerwehreinsätzen“ reduziert.

Flexibles Embedded CI/CD

Im Gegensatz zu herkömmlicher Cloud-Software muss Embedded CI/CD einzigartige Herausforderungen berücksichtigen: multiple Architekturen, Hardware-in-the-Loop-Tests, sicherheitszertifizierte Tools und sogar Air-Gapped-Umgebungen, bei denen Systeme aus Sicherheitsgründen vollständig vom Internet getrennt sind. Flexibilität ist dabei entscheidend: Toolchains müssen architekturunabhängig sein, Pipelines müssen sich an hybride Cloud-/On-Prem-Setups anpassen und Orchestratoren wie GitHub Actions, GitLab CI oder Jenkins müssen sich in Hardware-Testumgebungen integrieren lassen.

Containerisierte Toolchains in Kombination mit modernen Orchestratoren und Editor-Integrationen (wie Visual Studio Code-Erweiterungen) schaffen konsistente, skalierbare und hardwarebewusste Pipelines. Sichere Builds, statische Analysen, Packaging und On-Target-Tests können alle innerhalb desselben Workflows automatisiert werden, ohne die Rückverfolgbarkeit oder Leistung zu beeinträchtigen.

Aktuelle DevSecOps-Pipelines in Embedded Cloud-Runners, lokalen Servern und hybriden Setups, die Codierung, Analyse, Tests und Bereitstellung nahtlos integrieren.
Aktuelle DevSecOps-Pipelines in Embedded Cloud-Runners, lokalen Servern und hybriden Setups, die Codierung, Analyse, Tests und Bereitstellung nahtlos integrieren.

Kostenintensive manuelle Workflows

Zu viele Teams, insbesondere kleinere, sind nach wie vor stark auf manuelle Prozesse angewiesen. Entwickler kompilieren lokal, übermitteln Binärdateien per E-Mail oder über gemeinsam genutzte Laufwerke und debuggen reaktiv unter Termindruck. Diese manuellen Workflows führen zu Verzögerungen, Inkonsistenzen und versteckten Nacharbeiten, die die Produktivität beeinträchtigen.

Die Einarbeitung ist mühsam, Wissen wird nur ungenügend geteilt und die Qualität schwankt unvorhersehbar. In schnelllebigen Märkten summieren sich diese Ineffizienzen, sodass Teams Schwierigkeiten haben, mit den Erwartungen der Kunden und den Compliance-Anforderungen Schritt zu halten.

Im Gegensatz dazu kann selbst eine bescheidene Automatisierung, wie beispielsweise ein einziger automatisierter Build, der bei jedem Commit ausgelöst wird, Stunden manueller Arbeit einsparen und eine stabile Grundlage für Qualität schaffen.

 Intelligentes Debugging

Das Debugging ist nach wie vor einer der größten Engpässe für Embedded-Teams. Moderne Debugging-Umgebungen können jedoch die Effizienz erheblich verbessern. Funktionen wie Live-Variablenverfolgung, Speicherüberprüfung, Echtzeit-Tracing und RTOS-Erkennung ermöglichen es Entwicklern, das Systemverhalten während der Ausführung zu beobachten, und nicht erst nach Auftreten eines Fehlers.

Fortschrittliches Debugging mit Live-Systemtransparenz und RTOS-Erkennung liefert umsetzbare Ergebnisse und reduziert aufwändige Nacharbeiten vom Schreibtisch bis zu CI-Pipelines.
Fortschrittliches Debugging mit Live-Systemtransparenz und RTOS-Erkennung liefert umsetzbare Ergebnisse und reduziert aufwändige Nacharbeiten vom Schreibtisch bis zu CI-Pipelines.

In Kombination mit statischer Analyse und Laufzeitprüfungen können Teams Probleme früher erkennen, Nacharbeiten reduzieren und Releases stabilisieren. Heute erfordern viele dieser Funktionen keine aufwendigen Unternehmenssetups mehr, sondern können direkt in Container, CI/CD-Pipelines oder kompakten IDEs wie Visual Studio Code integriert werden.

Embedded CI/CD über Architekturen skalieren

Ein Kunde stand kürzlich vor der Herausforderung, mehrere Projekte mit unterschiedlichen Architekturen – Arm, RISC-V und Renesas RL78 – in einem einzigen Repository zu verwalten. Die bestehenden manuellen Arbeitsabläufe verlangsamten die Entwicklung und machten es schwierig, die Sicherheits- und Compliance-Anforderungen ohne Verzögerungen zu erfüllen.

Zur Lösung des Problems führte das Team containerisierte Toolchains ein und richtete für jede Architektur dedizierte CI/CD-Pipelines ein. Die Kombination von GitHub- und selbst gehosteten Runnern erlaubte es den Entwicklern, flexibel in der Cloud zu arbeiten und gleichzeitig ihre lokale Infrastruktur weiter zu nutzen.

Die wichtigsten Elemente des neuen Workflows:

  • eine automatisierte statische Analyse, die bei jedem Push ausgelöst wird und Regressionsrisiken reduziert,
  • ein sicherer Start und Firmware-Signierung, integriert in den CI/CD-Workflow des Arm-Projekts, um von Anfang an die Compliance sicherzustellen, sowie
  • rückverfolgbare Build-Artefakte, die automatisch gespeichert werden und die Vorbereitung von Audits sowie Zertifizierungsprozesse vereinfachen.

Das Ergebnis war eindeutig: Durch die Einführung des containerfreundlichen CI/CD-Prinzips konnte der Kunde das Integrationsrisiko reduzieren, die Fehlerbehebung beschleunigen und Vertrauen in seine Standardkonformität aufbauen, ohne ein großes DevOps-Team installieren zu müssen.

Ohne DevOps-Team

Denn die gute Nachricht ist, dass hierfür kein dediziertes DevOps-Team erforderlich ist. Die Entwickler können klein anfangen, indem sie einen Build automatisieren, containerisierte Toolchains einführen oder statische Analysen integrieren. Von dort aus können Pipelines weiterentwickelt werden, um automatisierte Unit-Tests, Firmware-Bereitstellungen, sichere Builds und Compliance-Prüfungen einzubeziehen.

Diese schrittweisen Maßnahmen legen den Grundstein für nachhaltige Entwicklungsstrategien, mit denen selbst kleine Teams mit der Geschwindigkeit und Zuverlässigkeit viel größerer Unternehmen mithalten können.

Umstellung mit den richtigen Tools

Mit Plattformen, die speziell für die Embedded-Entwicklung entwickelt wurden, ist die schrittweise Einführung der neuen Praktiken wesentlich einfacher. So bietet die IAR Embedded-Plattform ein einheitliches Ökosystem für CI/CD-Automatisierung, Docker-basierte Entwicklung, integriertes Debugging, Laufzeitanalyse und Sicherheitsintegration. Sie unterstützt mehr als 20 Architekturen, darunter Arm, RISC-V, RX und RL78, und bietet TÜV-zertifizierte Tools für sicherheitskritische Projekte.

Unabhängig davon, ob lokal, in der Cloud oder über eine hybride Infrastruktur gearbeitet wird, gewährleistet die Plattform Konsistenz und Compliance. Flexible Lizenzmodelle, benutzer- oder kapazitätsbasiert, machen sie sowohl für kleine als auch große Teams anpassbar. Mit containerfähigen Images, Visual Studio Code-Erweiterungen und cloudfähigen Workflows ermöglicht die IAR-Plattform Embedded-Teams eine effiziente Skalierung von DevSecOps, ohne die Kontrolle zu verlieren.

Fazit

Die Embedded-Branche steht an einem Scheideweg. Die zu entwickelnden Geräte sind so komplex und gefährdet wie nie zuvor, aber veraltete Prozesse bremsen die Innovationsgeschwindigkeit. Durch den Einsatz von Containern, Automatisierung und DevSecOps-Prinzipien können Embedded-Teams unabhängig von ihrer Größe CI/CD-Engpässe beheben.

Die Einstellung großer DevOps-Teams muss hier nicht die Lösung sein. Vielmehr geht es darum, die richtigen Tools einzusetzen, klein anzufangen und selbstbewusst zu skalieren. Mit modernen Workflows und Plattformen wie denen von IAR können Embedded-Entwickler sichere, standardkonforme und zuverlässige Software mit der Geschwindigkeit liefern, die die Märkte heute und in Zukunft verlangen. (na)

Autor:

Rafael Taubinger, Product Marketing Manager bei IAR