Softwarequalität Erhöhen Durch DevOps

Transcription

Softwarequalität erhöhen durch DevOpsLeipzig, 31.03.2017Jeremias Hackbeil Softwareforen Leipzig GmbH1www.softwareforen.de

Nur wer schnell ist, überlebt im Markt.Dafür braucht es neue Arbeitsstrukturen.Computerwoche vom 03.06.2015Foto: alphaspirit - Fotolia.com Softwareforen Leipzig GmbH2www.softwareforen.de

InhaltSoftwarequalität erhöhen durch DevOps Worum geht es? Worum geht es nicht?›Aufklärung / Verständnis von Begriffen›vollständige Definitionen der Begriffe›Softwarequalität›Einführung in Docker, Vagrant o.ä.›verschiedene Ausprägungen DevOps›Wie führe ich DevOps ein?›Aufzeigen warum sich die Qualität durch DevOps erhöht Softwareforen Leipzig GmbH3www.softwareforen.de

Agenda1.1Begriffe2.2DevOps3.3Tools Softwareforen Leipzig GmbH4www.softwareforen.de

BegriffeSoftwarequalitätIT-Service-Management IT-Betrieb Gesamtheit der Merkmale und Eigenschaften einesSoftwareprodukts, die die Erfordernisse erfüllen (nach Wikipedia) Maßnahmen und Methoden zur Unterstützung derGeschäftsprozessez.B. Bereitstellung von IT-Infrastruktur besteht aus Funktionalität, Zuverlässigkeit, Benutzbarkeit,Änderbarkeit, Übertragbarkeit und Effizienz (nach ISO 9126)Software-Entwicklung Software-EngineeringDevOps Tätigkeiten zur Herstellung und Entwicklung von Software kommt von Development und IT Operations im weiteren Sinne alle Tätigkeiten, wie Projektmanagement,Qualitätsmanagement, Anforderungserhebung, Konzeption,Implementierung, Testen, Inbetriebnahme und Wartung bezeichnet die Zusammenarbeit der beiden Bereiche in engeren Sinne nur Implementierung Softwareforen Leipzig GmbH5www.softwareforen.de

BegriffeSoftwarequalität nach ISO 9126viele Kriterien und hohe Komplexität Softwareforen Leipzig GmbH6www.softwareforen.de

BegriffeQualität in verschiedenen BereichenCleanCodeArchitekturTesten variiere bekannte vs. neue Architektur UnitTests tue das Nötige Bewertung der Architektur Integrationstests isoliere Aspekte Funktionale Gliederung Systemtests bilde wenig Abhängigkeiten Modularität Akzeptanztests halte dich an Angaben / Versprechen Monitoring Regressiontest Softwareforen Leipzig GmbH7www.softwareforen.de

tinuousIntegrationRobustheitder SoftwareContinuousDelivery Softwareforen Leipzig GmbH8www.softwareforen.de

DevOpsKontexte (vereinfacht)kleinere Projekte / kleinere Unternehmengrößere Projekte / größere Unternehmen Einführung ist einfacher, weniger Entscheidungshemmnisse Einführung ist schwieriger, weil mehr Blockaden vorhanden sind Erfolgserlebnisse sind schnell spürbar mehr Formalisierungen, Standards, Spezialisierungen vorhanden mehr Vorgaben, weniger Freiheiten Softwareforen Leipzig GmbH9www.softwareforen.de

DevOpsWege zum Einsatzschnell und Schritt für Schrittalles auf Einmal Pro Pro›es kann gleich losgehen›Konzentration liegt auf einem Thema›Fehlentscheidungen werden schneller erkannt›Alle Beteiligten können sich darauf konzentrieren›an den Bedürfnissen ausgerichtet Contra›wirkt weniger Professionell›läuft evtl. „nebenbei“ Softwareforen Leipzig GmbH10Contra›lange Vorbereitung›alles theoretisch durchdenkenwww.softwareforen.de

DevOpseinfacher geht’s nichtDie One-Man-ShowCode schreibenLokalerBuildprozess mitAnweisung zumUpload KompilatAktualisierung Softwareforen Leipzig GmbH11www.softwareforen.de

DevOpsNah am EntwicklerEntwickler: IDEpushÜbertragen des Codezum BuildserverSCV - pullbuildBuildserververöffentlicht aufZielserver Softwareforen Leipzig GmbHBuildserver baut Code,analysiert (und gibtFeedback)deploy12www.softwareforen.de

DevOpsFeedback /ProjektmanagementGesamtprozessEntwicklung /TestDeployment Softwareforen Leipzig GmbH13www.softwareforen.de

DevOpsQualität durch DevOps›Hoher Grad an Standardisierung›Automatisierung mit Abbruch bei Problemen (Tests, Quellcodeanalyse)›Toolunterstützung›häufige Releases möglich(nicht nur 2x pro Jahr)›Strukturierte Aufgabenabarbeitung(je nach Entwicklungsmodell, zB Wasserfall, Kanban, Scrum, ) Softwareforen Leipzig GmbH14www.softwareforen.de

ToolsToolchain Sammlung an Tools, die mit- und nacheinander arbeiten IDE (Eclispe, Netbeans, IntelliJ, ) Sourcecodeverwaltung (z.B. git, Bitbucket) Buildserver (z.B. Jenkins, Hudson, Bamboo) Quellcode-Analyse (z.B. SonarQube) Build-Tool (z.B. maven) Dokumentation (z.B. Confluence, Wiki) Ticketsystem (z.B. Jira, redmine, mantis) Virtualisierung des OS (z.B. Vagrant) Virtualisierung von Containern auf dem OS (z.B. Docker) Softwareforen Leipzig GmbH15www.softwareforen.de

EndeSoftwareforen Leipzig GmbHHainstraße 16, 04109 Leipzig I www.softwareforen.de E info@softwareforen.de Softwareforen Leipzig GmbH16www.softwareforen.de

bekannte vs. neue Architektur Bewertung der Architektur Funktionale Gliederung Modularität Monitoring Testen UnitTests Integrationstests Systemtests Akzeptanztests Regressiontest variiere tue das Nötige isoliere Aspekte bilde wenig Abhängigkeiten halte dich an Angaben / Versprechen