Verteilte Entwicklung Herausforderung, Betrachtungen und Lösungansätze Embedded Computing Conference 2016 Winterthur, Schweiz 31 Mai 2016 Philip Zollinger Was bewegt mich darüber zu sprechen Administrativer Aufwand für verteilte Entwicklungs nimmt überproportional zu Zusammenarbeit nimmt ständig zu Globalisierung nimmt zu Entwicklungs-Takt und -Schnelligkeit nimmt ständig zu Zugriff auf korrekte „Entwicklungsdaten“ Ressourcen, ortsunabhängig ist kritisch Fokus auf Kernkompetenzen ist wichtig Sicherheitsaspekte Stabile, robuste „Infrastruktur“ immer wichtiger Flexibilität / Agilität nimmt einen immer höheren Stellenwert Entwickler müssen einfach zu den Information kommen 1 - © EVOCEAN www.evocean.com EVOCEAN – www.evocean.com 2 - © EVOCEAN www.evocean.com Internet of Things Threat Detection Continuous Improvement Lean & Agile Improving Software-, Productand Systems Engineering. Requirements Management 3 - © EVOCEAN www.evocean.com Configuration Management Model Driven Development Quality Management SORRY – Meine Folien sind in deutsch und englisch … 5 - © EVOCEAN www.evocean.com Treiber einer verteilten Entwicklung Wachstum Akquisition Zusammenarbeit mit Partner Zugriff auf Ressourcen Flexibilität von Arbeitsmodellen Innovativ bleiben Lokal sein auch wenn global 6 - © EVOCEAN www.evocean.com Einfluss von aktuellen Trends Agilität – Continuous Delivery – DevOps – Collaborative Eng. Agilität schneller, Feedback, adaptieren Continuous Integration / Delivery braucht „zentrale“ Infrastruktur DevOps / „DevProd“ Kleine Schritte - Zusammenarbeit zwischen Entwicklung und Operations / bzw. Produktion Collaborative Engineering über mehrere Disziplinen (Systems Engineering) https://www.zukunftsinstitut.de/dossier/megatrends/ IoT , Industrie 4.0 wird dies verstärken 7 - © EVOCEAN www.evocean.com Herausforderung unterschiedliche Stakeholder Anforderungen Developer Productivity Production Needs 8 - © EVOCEAN www.evocean.com Non-Technical Contributor Productivity Corporate Goals Quality and Security Was braucht die Entwicklung Aus Entwicklersicht Einfacher Zugriff auf Daten Klare Kommunikation von Produktstrategie, Aufgaben und Prioritäten Möglichst schneller Feedback auf Arbeit Einfache Zusammenarbeit im Kontext mit anderen Zufriedene Entwickler sind sehr wichtig für Produktivität 9 - © EVOCEAN www.evocean.com Was braucht die Entwicklung aus IT Adminsicht Schlanke Admin der Infrastruktur Sicherstellung der Verfügbarkeit der Infrastruktur und Zugriff Sie will sicherstellen dass User immer arbeiten können Monitoring zwecks schnellem agieren bei Problemen Hybrid Cloud Strategie – möglichst offene Standards 10 - © EVOCEAN www.evocean.com Was braucht die Entwicklung aus Entwicklungsleitungssicht Sichere robuste Infrastruktur, damit die Entwicklung arbeiten können – hoher SLA. - klare HA/DR Strategie Klare Produkt Linien, bzw. Plattform Strategie -> Wiederverwendung Klare System- / Produkt- / Software-Entwicklungs Lifecycle Strategie, Change Management Schlanke Prozesse die keinen unnötigen Ballast haben Raum für Innovation, klare Prioritäten, Ziele Automatisation wo sinnvoll Möglichst einfach skalierbar Infrastruktur, flexibles Ressourcenplanung Schlankes zielorientiertes Reporting. Klare transparente Sicht „wo“ die Projekte stehen, was fehlt … Verbesserungsinitiativen: Schnelligkeit, Produktivität, Zusammenarbeit 11 - © EVOCEAN www.evocean.com Was braucht die Entwicklung aus Unternehmersicht Schutz von IP / Daten Möglichst einfach skalierbare Infrastruktur Konformität bezüglich gesetzlichen Regulatorien (Compliance / Standards) Schlankes zielorientiertes Reporting GL will zu jedem Zeitpunkt wissen „wo“ die Projekte sind. Produkt (Portfolio) / Markt / Innovation-Strategie Verbesserungs-Initiativen bezüglich Time to Market, Innovation, Produktivität 12 - © EVOCEAN www.evocean.com Was wir öfters antreffen …. Repository sprawl • • • Teams use their own stores SCM tool limits force artificial splits Siloes, poor visibility, no sharing, low security, broken builds Inefficient CI / DevOps • • • Little/no CI Slow, broken builds Multiple security models Poor scaling for distributed teams • • • 13 - © EVOCEAN www.evocean.com Add-ons needed Complex setup, on-going management Poor performance Techniken Lean, agile Prinzipien Requirements Engineering Klare Produktlinienstrategie , bzw. Platformstrategie zwecks Wiederverwendung Versionieren, Varianten Management über alle Artefakte Keywords „Streams“ bzw. „global Configurations“ Visual Management – Boards Collaboration im Kontext– Reviews, Konversationen über Artifakte Systems Engineering – Model Based Systems Engineering, Model Driven Development Continuous Integration / DevOps / Continuous Delivery (Automated Testing: PreComit, PostComit) 14 - © EVOCEAN www.evocean.com Vision – Single Source of Truth Development Operations Source Code Repository Release Management Unit testing configurations Production state flags Automated Installs MonoRepo Development tools/scripts Drawings etc. Automated Deployments for dev/QA/production Source code repository Operation scripts Asset Storage DBAs Logging for all automation Historical reporting repository Systems Engineering Quality Assurance Oracle scripts Puppet manifests SQL server scripts QA application configurations SQL server packages All installs taken from Perforce Puppet logs SAE scripts Asset Storage as “Nerve Center” for entire Organization 15 - © EVOCEAN www.evocean.com Lösungsvision Collaboration - Realtime Reporting - Traceabilty Planning Task Man. Requirements Development Quality Assurance Digital Asset Storage 16 - © EVOCEAN www.evocean.com Deployment Maintenance Verteilte Infrastruktur (Digital Storage) Replication Service D/R Versioning Service Build Replica Proxy 17 - © EVOCEAN www.evocean.com Proxy Verteilte Infrastrukur - Narrow cloning Jill’s Helix repo Shared Helix Code Core iOS Art Tests Code Core John’s Helix repo iOS Win Tests Code Core Win Tests 18 - © EVOCEAN www.evocean.com Any file type Any number of files Any size of history Verteilte Infrastruktur - Shallow cloning #1 clone –m 2 #2 #3 #3 #4 #4 #1 #2 #2 #3 #3 shared 19 - © EVOCEAN www.evocean.com local Infrastruktur optimiert für Continuous Delivery Trunk Based Development Continuous Integration DevOps Infrastructure as Code 20 - © EVOCEAN www.evocean.com CSO Continuous Testing Challenge: Tool Integration Open Service Lifecycle Management (OSLC) Open Standard to share data more easily Better integration between tools Flexible, robust connections Exposing more data Many contributors from many industires Simple specifications as a common baseline which can be extended Inspired by the web and linked data standards http://www.oasis-oslc.org http://www.open-services.net 21 - © EVOCEAN www.evocean.com Access with RESTful services throuh URL Engineering teams are meeting the challenge with Continuous Engineering platform Requirements Validation & Verification Design Tracking, planning, change management Configuration management Reporting and analysis 22 - © EVOCEAN www.evocean.com Verteilte Entwicklung: Streams Enforce trunk-based development principles Built-in tracking of parent-child relationships Automate trunk integration, everyone in sync Task streams for per-task branching Quick context-switching 23 - © EVOCEAN www.evocean.com Component-based development (CBD) • Complex project broken down into smaller independent components • Each component has its own lifecycle • There can be multiple releases • CBD assembles components in configurations 24 - © EVOCEAN www.evocean.com Component-based development import radio/... //Comp/Radio/Radio.rel2/... import satnav/... //Comp/SatNav/main/...@lastgood import display/... //Comp/Display/dev1/... • Streams are the versioned • Streams areof the versioned configurations components configurations of components 25 - © EVOCEAN www.evocean.com Collaboration in Context - Code Review &Conversations Fast, rich code review Conversations & history stored with the code Group approvals/quora CI Integration 26 - © EVOCEAN www.evocean.com Visual Management – Developer View See what are my tasks , who is working on what 27 - © EVOCEAN www.evocean.com Visual Management – Product Owner View Create Product Roadmaps 28 - © EVOCEAN www.evocean.com Visual Management – Program Manager Define Programs and Business Intiatives 29 - © EVOCEAN www.evocean.com Case Study 1 - kleine Firma MCS Engineering – Überblick Software-Entwicklung für CAM und CNC. 3 Standorte in der Schweiz. Ca. 30 Personen 30 - © EVOCEAN www.evocean.com Praxisbeispiel 1 – Kleine Firm MCS Engineering - Herausforderung Aufrechterhaltung von 2 Entwicklungsinfrastrukturen. Internetverbindungn zwischen Standorten bezüglich uptime nicht kritisch. Da Artefakte zum Teil gross /bzw Menge sollend diese lokal zur Verfügung stehen. (Internetverbindung nicht genügend performant) Kein Budget für Dienstleistungen, Trainings 31 - © EVOCEAN www.evocean.com Praxisbeispiel 1 – Kleine Firma MCS Engineering – Lösungsansatz und Resultate Versionierungssystem mit integrierter Unterstützung von verteilter Infrastruktur. Adminaufwand von 2tem Standort gleich Null Adminaufwand von Hauptstandort vernachlässigbar klein. Vorteile gegenüber Opensource 1 Produkt deckt mehrere Anforderungen an Infrastruktur. Adminaufwand sehr viel kleiner (deckt bei weitem Lizenzkosten) Zusätzlicher Benefit: Exzellenter Produktsupport 32 - © EVOCEAN www.evocean.com mcs engineering - Zitate „Wir arbeiten zunehmend in verteilten Teams an verschiedenen Standorten. Daher brauchten wir eine Lösung, mit der mehrere Personen gleichzeitig an einem Projekt arbeiten können – effizient und Standort unabhängig“ “Es ist sehr einfach, einen Proxy-Server für das Arbeiten mit geographisch verteilten Teams aufzusetzen und zu betreiben. Auch der Download von Daten ist ein Kinderspiel. Wir waren erstaunt, wie viel Zeit wir einsparen konnten“ Eric Gutmann - Projektleiter 33 - © EVOCEAN www.evocean.com Praxisbeispiel 2 – Mittelgrosse Firma u-blox - Herausforderung Firma hatte damals 6 (heute ca. 10) Entwicklungstandorte, gewachsen durch Acquisitionen Internetverbindungn zwischen Standorten bezüglich uptime zum Teil kritisch (zum Beispiel 1 Standort in Lahore – Pakistan). Verschiedene Tools im Einsatz für Versionierung: Git, Subversion, Clear-Case und andere …und für Collaboration: Gerrit, Bitbucket(Stash) Entwicklungen über mehrere Standorte: „Cross Team“ und „Cross-Product“ Ca. 270 auf 6 Standorten 34 - © EVOCEAN www.evocean.com Praxisbeispiel 2 – Mittelgrosse Firma u-blox AG – Lösungsansatz Versionierungs-/Kollaborationssystem mit unterstützung von verteilter Infrastruktur, inkl. Aufrechterhaltung von verteilten Standorten bei Internetverbindungsabbruch. Einführung von „Stream“ Philosophie für vereinfachte Zusammenarbeit. Zentraler Continous Integration Server (Jenkins) mit „Edge Server“ zwecks Performance – Lastverteilung. Collaboration/Review à la Facebook um Artefact mit Pre-Comit und Post-Comit Review integration. Bild von http://de.slideshare.net/perforce/perforce-on-tour-2015optimising-the-developer-pipeline-at-ublox Architektur von Lösungsansatz hat keinen Einfluss auf Kosten (flat cost model per human user) Zentraler Server in Thalwil Nur Standard Hardware für Server 35 - © EVOCEAN www.evocean.com Praxisbeispiel 2 – Mittelgrosse Firma u-blox AG – Resultate - heute Ca. 350 User, > 6 Standorte Seit Einführung 3 Tage Trainings und 6 Tage Workshops TOTAL. Adminaufwand ca. 0.5 Personen. Vorteile gegenüber anderen Lösungen. 1 Produkt deckt mehrere Anforderungen an Infrastruktur. Bild von http://de.slideshare.net/perforce/perforce-on-tour-2015optimising-the-developer-pipeline-at-ublox Skalierung, Unterstützt hohe Anforderung an Performance von Continuous Integration. Zusätzlicher Benefit: Exzellenter Productsupport 36 - © EVOCEAN www.evocean.com u-blox „Perforce bietet uns die Leistungsfähigkeit, die wir für jedes Element unserer hochgradig verteilten Umgebung benötigen. Das System ist in der Lage, mit grossen binären Assets umzugehen, wodurch wir Dateien unabhängig von Typ oder Größe versionieren können", fügt Vesnaver an. „Wir waren beeindruckt, wie einfach die Installation ablief und wie gut sich die Lösung in unsere bestehende IT-Umgebung einfügt.„ „Perforce erfüllt alle unsere strengen Kriterien, von denen wir die Wahl unseres neuen Versionsmanagementsystems abhängig gemacht haben. Der Replikations- und Proxyserver von Perforce ermöglicht uns eine herausragende Remote-Site-Performance ganz ohne zusätzliche Kosten.“ „Perforce unterstützt von allen Systemen, die wir evaluiert haben, die Funktionalitäten für das Verzweigen und Zusammenführen von Entwicklungspfaden am besten. Der feingranulare und berechtigungsbasierte Dateizugang der Lösung ermöglicht uns eine sehr gute Kontrolle über die Nutzung, sowohl auf Branch- bzw. Repository-Ebene, wie auch auf Ebene der einzelnen Dateien. Das Konfigurieren von Berechtigungen und der Sicherheitsmechanismen erfüllten ebenfalls unsere Anforderungen.„ Fabio Vesnaver – Manager of Strategic Purchasing and Partnerships 37 - © EVOCEAN www.evocean.com Outlook: Hybrid Cloud und PAAS 38 - © EVOCEAN www.evocean.com Cloud Muss hybride Cloud Strategie unterstützen Local Cloud Dedicated Cloud 39 - © EVOCEAN www.evocean.com Public Cloud Cloud Based Development zum Beispiel Bluemix The Bluemix Watson OoT Foundation is one of (many) services inside Bluemix that allows you to rapidly build server based Application 40 - © EVOCEAN www.evocean.com IBM Watson IoT Foundation With the the IBM IoT Foundation for example we can rapidly establish a cloud based MQTTBroker, connect Devices and Applications 41 - © EVOCEAN www.evocean.com Schluss Bemerkungen Verteilte Entwicklung als Chance nehmen. Infrastruktur muss verteilte Entwicklung unterstützen. Team hat Einfluss auf Vorgehen. Immer auf Wert achten und möglichst schnelles Feedback. Collaborative Engineering Techniquen, Model basiertes Systems Engineering, Archtektur uancen von verteilter Entwicklung nutzen. Mit den richtigen Werkzeugen kann verteilte Entwicklung sehr gut ablaufen. Ständige Verbesserung hilft: Kleine Schritte zum Erfolg. 42 - © EVOCEAN www.evocean.com THANK YOU Philip Zollinger EVOCEAN Mobile: +41 78 800 03 88 Email: [email protected] linkedin.com/philipzollinger xing.com/philipzollinger www.facebook.com/evocean @philzol @EVOCEAN_GmbH 43 - © EVOCEAN www.evocean.com