:quality(80)/images.vogel.de/vogelonline/bdb/1792200/1792204/original.jpg)
Automation fĂŒr besseren Code Continuous Integration und Continuous Delivery
Mit Continuous Integration, Delivery und Deployment können sich Entwickler mehr auf ihre eigentlichen Aufgaben konzentrieren. Die Validierung und Integration des Codes erfolgt automatisiert.
Firmen zum Thema

Bei Continuous Integration (CI) und Continuous Delivery (CD) gibt es genau festgelegte ArbeitsablÀufe, die definieren, in welchen ZeitrÀumen der Code automatisiert getestet und in die Produktionsumgebung integriert wird. Die automatisierten Tests beginnen direkt mit dem Einchecken in die Codeverwaltung.
Das Einchecken erzeugt eine neue Version, die entsprechend automatisiert getestet wird, unter UmstĂ€nden wird auch das Verteilen in eine Produktionsumgebung gesteuert. Damit CI genutzt werden kann, mĂŒssen die Entwickler mit einer gemeinsamen Code-Basis arbeiten. Um diese gemeinsame Basis sicherzustellen, wird der Code regelmĂ€Ăig eingecheckt und durch eine Versionsverwaltung eingegliedert.
Continuous Integration sorgt also dafĂŒr, dass Ănderungen am Quellcode durch automatisierte Tests inklusive schneller Feedbacks erfolgen können. Entwickler erhalten eine grundlegende Sicherheit der StabilitĂ€t ihres Codes. Da das Vorgehen immer gleich ist und die meisten VorgĂ€nge automatisiert ablaufen, können sich in die AblĂ€ufe selbst so gut wie keine Fehler einschleichen. Die QualitĂ€t der Anwendungen wird besser, die Bereitstellung erfolgt schneller.
Continuous Integration und Nightly Builds
Arbeiten Unternehmen mit Continuous Integration, sollte in regelmĂ€Ăigen AbstĂ€nden dafĂŒr gesorgt werden, dass der Code tatsĂ€chlich eingecheckt wird. Bei diesem Vorgang wird eine neue Version erzeugt, was wiederum automatisierte Tests auslöst. Dieser Vorgang ist vor allem bei der Arbeit in Teams wichtig.
Viele Open-Source-Projekte, aber auch andere Entwickler, arbeiten dazu mit âNightly Buildâ-Versionen. Diese umfasst den Stand der Entwicklung zum Abschluss des Tages. Continuous Integration arbeitet in den meisten FĂ€llen mit teils noch kĂŒrzeren Entwicklungsphasen. Je kĂŒrzer die Integrations-Intervalle sind, umso stabiler wird die Entwicklung, da keine Entwicklungsschritte verloren gehen, und der neuste Code immer erfasst und getestet werden kann.
Im Rahmen des Check-Ins wird der Code im Rahmen vollstĂ€ndig automatisierter AblĂ€ufe geprĂŒft. Zugriff auf die Testergebnisse und die Möglichkeiten zum Test haben neben der Entwicklungsabteilung auch andere Anwender. Durch die zentrale PrĂŒfung haben auch in DevOps-Umgebungen alle relevante Mitarbeiter immer einen kompletten Ăberblick ĂŒber den aktuellen Entwicklungsstand.
Da die Anwendungen bereits in der Entwicklung getestet werden, erhalten die Entwickler regelmĂ€Ăiges Feedback. Auf diese Weise lassen sich Fehler und Probleme schneller erkennen, sodass Korrekturen und Reverts wieder in die Entwicklung mit einflieĂen. Wichtig ist dabei, dass die Testumgebung im Wesentlichen der Produktionsumgebung entspricht, natĂŒrlich nicht in der gleichen Skalierung. AuĂerdem mĂŒssen alle beteiligten Produkte auf einem aktuellen Stand gehalten werden.
Continuous Delivery baut auf CI auf
Continuous Delivery (CD) ist der nĂ€chste Schritt, wenn Unternehmen auf Continuous Integration (CI) setzen. Damit CD eingesetzt werden kann, muss die Software das Implementieren von neuen Features in regelmĂ€Ăigen AbstĂ€nden ermöglichen.
Durch das Sicherstellen dieser PrioritĂ€t können regelmĂ€Ăig neue Versionen im Rahmen von CI implementiert und mit CD bereitgestellt werden. Damit erreichen Unternehmen also eine vollstĂ€ndige Planung und teilweise auch Automatisierung der Bereitstellung von neuen Versionen.
Einfach ausgedrĂŒckt ist Continuous Delivery die konsequente WeiterfĂŒhrung von Continuous Integration, da hier auch die Bereitstellung geregelt ist, nicht nur Entwicklung und Test. CD integriert agile Entwicklung also in die Produktion. Wie bei CI spielt auch bei CD die Automatisierung eine wesentliche Rolle. Nur dadurch ist sichergestellt, dass der komplette Entwicklungsprozess effizient, schnell und fehlerfrei durchlĂ€uft.
Vorzugsweise sollte dabei auch die Bereitstellung der Test- und Produktionsumgebung automatisiert ablaufen. So ist sichergestellt, dass alle beteiligten Komponenten exakt den Stand widerspiegeln, den die einzelnen ArbeitsablÀufe in CI und CD entsprechen. Auch die Produktionsumgebung sollte den gleichen Stand abbilden. Hier helfen Tools wie Ansible, Chef, Puppet oder Saltstack. Durch die Pipeline wird sichergestellt, wie die Bereitstellung des neuen Codes zu erfolgen hat.
Damit die VorgĂ€nge funktionieren, mĂŒssen die Tests der neuen Features schnell und automatisiert erfolgen. Entwickler erhalten dadurch regelmĂ€Ăig Feedback, das wiederum in neuen Code integriert werden kann. Alle vorhandenen Versionen mĂŒssen dazu ohne Probleme schnell und einfach bereitstellbar sein. Vor allem CD baut stark auf der DevOps-Idee auf, da bei der Bereitstellung neuer Versionen in der Produktivumgebung natĂŒrlich auch die Anwender, Administratoren und anderen IT-Angestellten eingebunden werden mĂŒssen.
Um Fehler im Bereitstellungsprozess zu vermeiden, erfolgt auch CD automatisiert. Zusammen mit der automatisierten CI ergibt sich eine Deployment-Pipeline, in der neue Features schnell in den Code integriert und getestet werden, und in der die meisten Bereiche automatisiert werden.
Durch CI, CD und der damit einhergehenden Automatisierung entsteht eine Transparenz im Entwicklungsprozess. Die Versionen und SoftwarestĂ€nde sowie deren Funktionen sind jederzeit nachvollziehbar. Das gilt auch fĂŒr die Testergebnisse und damit das zu erwartende Ergebnis bei der Bereitstellung im Produktionsbetrieb. Durch die wesentlich schnelleren Bereitstellungszyklen erhalten Entwickler schnell Feedback zur Anwendung, das fĂŒr eine bessere Entwicklung genutzt werden kann.
Continuous Delivery versus Continuous Deployment
Eine weitere Steigerung des Bereitstellungsprozesses wird mittels Continuous Deployment erreicht. WĂ€hrend bei Continuous Delivery die Entscheider festlegen können, wann neue Versionen und damit neue Funktionen in die Produktionsumgebung ĂŒberfĂŒhrt werden, wird beim Einsatz von Continuous Deployment auch dieser Prozess vollstĂ€ndig automatisiert.
Neue Features und damit Versionen werden automatisch bereitgestellt. Es findet kein Entscheidungsprozess mehr statt, wann eine neue Version oder ein neues Feature in der Produktionsumgebung zur VerfĂŒgung gestellt wird. Sobald eine neue Version eingecheckt wird, starten die notwendigen Prozesse, um eine neue Version der Anwendung auch in der Produktionsumgebung bereitzustellen.
(ID:44750725)