Verteilte Entwicklung

Werbung
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
Herunterladen