Was ist Continuous Integration ?

Kontinuierliche Integration in der agilen Softwareentwicklung Die Probleme der Integration sind in der Softwareentwicklung bekannt. Der neue Code ist geschrieben und damit ist die Arbeit eigentlich erledigt. Der Quelltext muss jetzt nur noch in das große Vorhaben eingefügt werden und alle hoffen, dass dabei keine Probleme auftreten und alles zusammenpasst. Um die Katastrophe nach einer langen Entwicklungsphase zu vermeiden, entscheiden sich immer mehr Teams für Continuous Integration. Dadurch werden Änderungen täglich in das Projekt eingefügt, im Idealfall sogar mehrmals täglich. Definition Continuous Integration (CI)? Continuous Integration ist eine Technik der agilen Softwareentwicklung. Auf Deutsch würde man es wohl am ehesten kontinuierliche Integration oder permanente Integration nennen. Die in kleineren Schritten vorgenommenen Änderungen werden in der Praxis regelmäßig zusammengeführt. Dabei erfolgt die Einspeisung in ein unterteiltes Code Repository. Die jeweils aktuellste Code-Version wird durch einen automatisierten Build-Prozess übernommen, was zu regelmäßigen Versionskontrollen führt. Folgendes Szenario könntest Du Dir beispielsweise vorstellen: Für einen Kunden arbeitet das Unternehmen an einer umfangreichen und komplexen Software. Die Entwickler programmieren einzelne Funktionen, während separate Teams Teilaspekte erarbeiten. Nach sehr langer, vielleicht monatelanger Arbeit wird dann alles zusammengefügt. Treten dann Probleme auf, kann es bis zum finalen Testing und dem schlussendlichen Deployment im schlimmsten Fall wieder Monate dauern, bis Fehler aufgespürt und bereinigt und die einzelnen Funktionen, quasi als Code-Schnipsel, wieder zusammengefügt sind. Arbeitet man für dasselbe Projekt mit Continuous Integration, wird neuer Code sämtlicher Beteiligter nicht erst nach Fertigstellung der Teilbereiche eingebunden, sondern viel früher. Den fertiggestellten Code fügen die Entwickler je nach Bedarf einmal oder mehrmals täglich in die Mainline ein. Dieser Quelltext steht allen am Projekt beteiligten Programmierern offen. Diese Integration fällt dann eher kurz aus, schließlich handelt es sich dabei jeweils um relativ kleine Code-Abschnitte. Der Entwickler braucht also nur wenige Minuten, um sein Teilergebnis dem übrigen Team zugänglich zu machen. Es liegt auf der Hand, dass eventuelle Fehler so schneller aufgespürt und behoben sind. Welche Vor- und Nachteile hat Continuous Integration (CI)? Trotz vieler positiver Aspekte zeigt sich im Arbeitsalltag oft, dass Continuous Integration nicht nur Vorteile hat. Sicher kann die langwierige Integrationsphase am Ende eines Projekts abgekürzt werden. Probleme können frühzeitig in Angriff genommen werden. Für eingespielte Teams stellt sich eine Umstellung auf Continuous Integration aber oft als schwierig heraus. Anstatt Zeit zu sparen, kann das Verfahren dann sogar mehr Zeit kosten. Vorteile Fehlersuche frühzeitig möglichStändiges FeedbackBei Integration zum Abschluss keine ÜberforderungÄnderungen werden genau aufgezeichnetAktuelle und funktionierende Version stetig verfügbarGranulares Arbeiten wird gefördert Nachteile Umstellung vom gewohnten ProzessZusätzliche Server und Umgebungen werden benötigtGeeignete Test-Abläufe müssen erarbeitet werdenWartezeiten, wenn mehrere Entwickler gleichzeitig integrieren möchten Welche Tools gibt es für Continuous Integration (CI)? Continuous Integration lässt sich im Prinzip manuell ohne spezielle Werkzeuge managen. Das ist aber sehr aufwendig und erfordert sehr viel Disziplin. Einfacher ist es, sich die Arbeit mit nützlichen Tools zu erleichtern. Meist helfen diese beim Building und der Versionskontrolle und stellen oft einen Server zur Verfügung. Jenkins: Sehr populäres Java-Programm. Ein Fork von Hudson, wird aber nicht mehr weiterentwickelt.Travis CI: Besonders wegen der reibungslosen Funktion mit GitHub beliebt. Für Open-Source-Projekte kostenlos. Für andereVorhaben kostenpflichtig.Bamboo: Software auf Java Basis. Das normalerweise kostenpflichtige Programm steht für Open-Source-Projekte auch kostenloszur Verfügung.Gitlab CI: Programm zur kontinuierlichen Integration. Funktioniert mit der bekannten Versionsverwaltung.CircleCI: Bietet zwei Versionen für die Continuous Integration an. Entweder in der Cloud des Anbieters oder über einen eigenenlokalen Server.CruiseControl: Die freie Software basiert auf Java mit eigenem Dashboard für Entwickler.Codeship: Basiert auf der Container-Technologie. Zwei verschiedene Versionen, Basic und Pro.TeamCity: Kommerzielle Software, die sehr viel Wert auf Interoperabilität mit anderen Werkzeugen legt. Einsatzgebiete/Fazit Sehr beliebt ist Continuous Integration vor allem im Umfeld von agiler Softwareentwicklung. Die moderne Herangehensweise hat immer zum Ziel in kleinen Schritten zu arbeiten, den Entwicklungsprozess selbst effektiver zu gestalten um dadurch flexibler auf Änderungen reagieren zu können. Mittlerweile lässt sich sagen, dass Continuous Integration in der Praxis ein erprobtes Mittel zur Optimierung der Softwareentwicklung ist. Es gibt keinen Grund, Softwareentwicklung ohne einen Continuous-Integration-Prozess zu betreiben. Dies auch dank eines breiten Erfahrungsschatzes sowie einer großen Palette fertiger Werkzeuge. Continuous Integration funktioniert aber nur, wenn alle Team-Mitglieder das System mittragen. Kommunikation ist also ein sehr wichtiger Faktor. Hält man sich gegenseitig auf dem neusten Stand, sind kleine Schwierigkeiten schnell behoben. Das Thema bleibt auch in Zukunft spannend, da aktuelle Entwicklungen in Richtung Continuous Delivery und ALM zeigen. Der Beitrag Was ist Continuous Integration ? erschien zuerst auf IT-Talents.de.

zum Artikel gehen

Schulung: Unit Testing- und Test Driven Development (TDD)-Grundlagen

# Konzepte - Motivation fr Unit Tests - Grundkonzept Unit Testing - Unittest vs. Integrationstest - White-Box-Test vs. Black-Box-Test - Unit Testing versus Test Driven Development (TDD) - Testfallfindung / User-Stories als Dreh- und Angelpunkt zur

zum Artikel gehen

Tattu New Arrival —2305 2450KV Brushless Fpv Motor

Tattu just released a new FPV part - Tattu 2305 2450KV brushless Motor. It is a great and powerful motors that suitable for FPV racing drone. Each motor has been carefully balanced and tested in the factory. And Tattu motor will tested by many pilots. Mea

zum Artikel gehen

Schulung: Unit Testing / Testgetriebene Entwicklung / Test Driven Development (TDD) mit den Microsoft Testwerkzeugen in Visual Studio

# Konzepte - Motivation fr Unit Tests - Grundkonzept Unit Testing - Unittest vs. Integrationstest - White-Box-Test vs. Black-Box-Test - Unit Testing versus Test Driven Development (TDD) - Testfallfindung / User-Stories als Dreh- und Angelpunkt zur

zum Artikel gehen

Schulung: Microsoft 365 für Softwareentwickler (Microsoft 365 Development)

Optional: Vermittlung der notwedigen Kenntnisse in .NET, C#, Visual Studio, ASP.NET, HTML und JavaScript Architektur - berblick ber die Office 365 APIs - Office 365 App Modell - REST-Dienste und Wrapper-SDKs - Office 365 Dashboard Werkzeuge - W

zum Artikel gehen

Integration with PayPal for quick purchasing

Waiting for you in ActiveTrail's editor is the option of integration with PayPal, for quick, convenient payment directly from an email campaign or a landing page, without going through the shop! L’article Integration with PayPal for quick purchasing est a

zum Artikel gehen