Gar nicht wolkig – Was für die Cloud-Entwicklung zählt · 2019. 9. 27. · Business • Neue...
Transcript of Gar nicht wolkig – Was für die Cloud-Entwicklung zählt · 2019. 9. 27. · Business • Neue...
© 2018 andrena objects ag
Experts in agile software engineering
Daniel Knapp23.04.2018Objektforum München
Gar nicht wolkig –Was für die Cloud-Entwicklung zählt
© 2018 andrena objects ag
2
Forschungsprojekt „cloud und crowd“
24.04.18
Verbund:
• ISF München• Universität Kassel• LMU München• IG Metall• ver.di• andrena objects ag
Value- und Praxispartner:
• Audi• BWM Group• Crowdsourcing-Verband• Daimler• jacando• SAP• T-Systems• Testbirds• Test IO• Upwork
© 2018 andrena objects ag
3
„cloud und crowd“- Vorgehen u. Ziele
Technologie• Welche Cloud-Plattformen sind von
Interesse? • Warum sind diese von Interesse?• Welche Architekturansätze werden von der
Plattform unterstützt und aktiv genutzt?• Welche Lücken existieren?• ...Empowerment• Bewerten von Techniken und Methoden nach
Relevanz hinsichtlich des Themas Softwareentwicklung für die Cloud...
• Wie weit sind Ihre Teams empowered (agile) Techniken im Cloud-Umfeld anzuwenden? Werden diese trainiert?
• Was hat sich aus der Sicht der Entwickler und der Organisation geändert?
• Wie steht es mit der Qualifizierungsfähigkeit?• ...
24.04.18
Phase 1• Interne Vorarbeiten
• Identifikation Kernmethoden und -technologien
• Strukturierte Befragung von Projektteams mit andrena Beteiligung
• Strukturierte Befragung von digitalen Vorreiterunternehmen
Phase 2• Identifikation von Empowerment-Defiziten
und Potenzialen• Ermittlung Erfolgsfaktoren und Good
Practices
Phase 3• Softwareentwicklung Empowerment
Programme für Cloud-Stacks• Erprobung / Verwertung / Transfer
© 2018 andrena objects ag
4
Erkenntnisse
24.04.18
• Es existiert nicht DER Einsatzzweck für die Cloud in der Softwareentwicklung
© 2018 andrena objects ag
5
Beobachtete Einsatzzwecke
Business• Neue Geschäftsmodelle und Marktexperimente• Innovation ermöglichen
Infrastruktur• Skalierbare Infrastrukturen und Anwendungen (on demand) ermöglichen• Ausfallsicherheit• (No)Ops
Organisation• Abbau organisatorischer Hürden• Self Service Infrastruktur
24.04.18
© 2018 andrena objects ag
6
Cloud als Enabler
Chancen• Innovation (-sfreiheit)• Höhere (Innovations-) Geschwindigkeità bessere Time to market• Skalierbarkeit / Verfügbarkeit
24.04.18
© 2018 andrena objects ag
7
Erkenntnisse
24.04.18
• Es existiert nicht DER Einsatzzweck für die Cloud• Es existiert nicht DIE Nutzungsart für den Einsatz Cloud
© 2018 andrena objects ag
8
Nutzungsarten – XAAS
24.04.18
SAASCloud basierte Software
PAASVerteilung, Ausführung und
Verwaltung von Apps, SE-APIs,
Laufzeitumgebung und Dienste
IAASEinrichten und Verwalten von
virtuellen Maschinen auf
Virtualisierungs-Servern Betrieb
Entwicklung
Kunde
Simon Wardley (@swardley) auf Twitter
© 2018 andrena objects ag
9
PAAS - Klassifikationskriterien
24.04.18
Unterschiede im wesentlichen:
• Public vs. Private vs. Hybrid
• Portabilität (offen, geschlossen)
• Unterstützung Programmiermodelle (Sprachen, Frameworks)
• Unterstützung Deploymentmodelle (Apps, Container, Functions)
• Tooling (IDE, CLI...)
• Datastores / Services (SQL, KeyValue, Graph-DB, Messaging…)
• Integrationsservices (UAM, Security, Legacy-Services…)
• Managementdienste (Logging, Automatisierung…)
• Workload (Analytics, Transactions, Networking...)
• Angebotene SLAs (Availability etc)
• Abrechnungsmodelle (Investion vs. nutzungsabhängige)
• Differenzierung durch Services (KI, Machine Learning, Deep Learning…)
© 2018 andrena objects ag
10
Cloud Plattformen
24.04.18
IAAS Provider mit (geschlossenen, eng gekoppelten) PAAS Angeboten• Amazon AWS (EC2, Lambda)• Microsoft Azure (Azure PAAS, Azure Functions)• Google Cloud Plattform (Google SDK, Cloud Functions)• ...
PAAS-Plattformen (offen, ggf. portabel)• CloudFoundry (Public Cloud)• Docker Cloud / Kubernetes• RedHat OpenShift
PAAS Plattformen (private / hybride, ggf. portabel) • Microsoft Azure (beta)• CloudFoundry (auf eigener privater und öffentlicher Infrastruktur)• RedHat OpenShift• Docker (Kubernetes)
© 2018 andrena objects ag
11
Cloud Plattformen im Einsatz...
24.04.18
IAAS Provider mit (geschlossenen, eng gekoppelten) PAAS Angeboten• Amazon AWS (EC2, Lambda)• Microsoft Azure (Azure PAAS, Azure Functions)• Google Cloud Plattform (Google SDK, Cloud Functions)• ...
PAAS-Plattformen (offen, ggf. portabel)• CloudFoundry (Public Cloud Anbieter)• Docker / Kubernetes (Public Cloud Anbieter)• RedHat OpenShift
PAAS Plattformen (private / hybride, ggf. portabel) • Microsoft Azure (beta)• CloudFoundry (auf eigener privater und öffentlicher Infrastruktur)• RedHat OpenShift• Docker (Kubernetes)
© 2018 andrena objects ag
12
...und damit einhergehend für die Entwicklerteams...
24.04.18
... neue Architekturparadigmen • Cloud native Anwendungen und 12 Factor Apps (https://12factor.net) • Micro Services, Functions as a service• Reaktive und event-getrieben Anwendungen• Eventual Consistency
... neue (alte) Vorgehens- und HerangehensweisenAgile Softwareentwicklung (XP, Pairprogramming, TDD, TA, CICD) und OrganisationDevOps („You build it, you run it“)Domain Driven Design
... neue Verantwortlichkeiten und BefugnisseContinuous Delivery (-Strategien)InfrastrukturMonitoring, Logging und Tracing in der Cloud...
© 2018 andrena objects ag
13
...und damit einhergehend für die Entwicklerteams...
24.04.18
... neue Architekturparadigmen • Cloud native Anwendungen und 12 Factor Apps (https://12factor.net) • Micro Services, Functions as a service• Reaktive und event-getrieben Anwendungen• Eventual Consistency
... neue (alte) Vorgehens- und Herangehensweisen• Agile Softwareentwicklung (XP, Pairprogramming, TDD, TA, CICD) und Organisation• DevOps („You build it, you run it“)• Domain Driven Design
... neue Verantwortlichkeiten und BefugnisseContinuous Delivery (-Strategien)InfrastrukturMonitoring, Logging und Tracing in der Cloud...
© 2018 andrena objects ag
14
...und damit einhergehend für die Entwicklerteams...
24.04.18
... neue Architekturparadigmen • Cloud native Anwendungen und 12 Factor Apps (https://12factor.net) • Micro Services, Functions as a service• Reaktive und event-getrieben Anwendungen• Eventual Consistency
... neue (alte) Vorgehens- und Herangehensweisen• Agile Softwareentwicklung (XP, Pairprogramming, TDD, TA, CICD) und Organisation• DevOps („You build it, you run it“)• Domain Driven Design
... neue Verantwortlichkeiten und Befugnisse• Continuous Delivery (-Strategien)• Infrastruktur• Monitoring, Logging und Tracing in der Cloud...
© 2018 andrena objects ag
15
...und damit einhergehend für die Entwicklerteams...
24.04.18
... im allgemeinen eine gestiegene Komplexität im Vergleich zur klassischen Enterprise Entwicklung...
... wobei sich das (Cloud-) Ausbildungs- und Wissensniveau auf Grund der Heterogenität und Veränderungsrate der Cloud-Plattformen nicht auf dem klassischer Enterprise Stacks befindet.
© 2018 andrena objects ag
16
Erkenntnisse
24.04.18
• Es existiert nicht DER Einsatzzweck für die Cloud• Es existiert nicht DIE Nutzungsart für den Einsatz Cloud• Mehrere gemeinsame Erfolgsfaktoren lassen sich ableiten
© 2018 andrena objects ag
17
Erfolgsfaktoren digitaler Vorreiter
24.04.18
Empowerment der Entwicklungsteams – Komplexität adressieren• „Dürfen“: Entwicklungsteams mit erforderlichen Befugnissen und
organisatorischen Rahmenbedingungen• „Können“: Entwicklungsteams mit dem richtigen Handwerkszeug
© 2018 andrena objects ag
18
Erfolgsfaktor Befugnisse und Rahmenbedingungen
24.04.18
Empowerment der Entwicklungsteams – Komplexität adressieren• „Dürfen“: Entwicklungsteams mit erforderlichen Befugnissen und
Rahmenbedingungen• „Können“: Entwicklungsteams mit dem erforderlichen Handwerkszeug
© 2018 andrena objects ag
19
Erfolgsfaktor Befugnisse und Rahmenbedingungen
24.04.18
Konsequenter Einsatz agiler Organisationsformen und -strukturen• Iterativ-inkrementelle Entwicklung mit kontinuierlichem Marktfeedback:
• Bietet eine strukturierte Herangehensweise an das Thema Veränderung• Agilität fördert (kontrollierte) Experimentierbereitschaft in sich ändernder
Umgebung
• Self-organized, cross-functional Teams:
• Teams sind in der Lage (fortlaufend) alle an sie gestellten Anforderungen zu erfüllen
• Wirkt (potenziellem organisatorischem Bottleneck) Expertentum entgegen
• Selbstbefähigung der Teams ermöglichen, organisiertes Lernen alleine nicht dauerhaft ausreichend (geringe Halbwertszeit des bestehenden Spezial-Wissens)
© 2018 andrena objects ag
20
Erfolgsfaktor Handwerkszeug
24.04.18
Empowerment der Entwicklungsteams – Komplexität adressieren• „Dürfen“: Entwicklungsteams mit erforderlichen Befugnissen und
Rahmenbedingungen• „Können“: Entwicklungsteams mit dem erforderlichen Handwerkszeug
© 2018 andrena objects ag
21
Erfolgsfaktor Handwerkszeug
24.04.18
... liegt insbesondere bei allem, was vor dem Deployment in die Cloud geschehen muss - sonst erfüllen sich die Versprechen der Cloud nicht.
Konsequenter Einsatz von agilem Softwareengineering• XP, testgetriebene Entwicklung, Testautomatisierung gemäß der Testpyramide
(https://martinfowler.com/bliki/TestPyramid.html), PairProgramming, Continuous Integration, Erhebung schlanker Software-Metriken
Konsequenter Einsatz von DevOps und Delivery-Techniken• Eigenverantwortete Release-Pipelines und Deployment, Continuous Delivery (als
Fähigkeit), Einsatz v. Infrastructure as Code, Monitoring und Logging
Konzeptionelle Offenheit und Bereitschaft zur Veränderung
© 2018 andrena objects ag
22
Erfolgsfaktoren
24.04.18
... und unterschiedliche Herangehensweisen der Unternehmen:
- nicht exklusiv -:• Umfangreiche (Basis-) Empowerment-Curricula mit umfangreichen
Konsumoptionen (“Anytime, anywhere...“), teils extern beauftragt oder besucht.
• „Innovations-Garagen“ mit vorwiegend junger, neugieriger Belegschaft
• Ermöglichen netzwerkartiger, selbstorganisierter und ggf.
unternehmendübergreifender Communities zu (temporären)
Interessensschwerpunkten
• Kontinuierliche Unterstützung durch Plattform-Anbieter für Cloud Spezifika
© 2018 andrena objects ag
23
Fazit
24.04.18
• Agilität und Selbstorganisation durch Befugnisse ermöglichen das „Selbst-Empowerment“ der Teams im Kontext einer sich ständig ändernden Umgebung
• Handwerkliche Fähigkeiten und ein echtes agiles Mindset als Grundvoraussetzungfür nachhaltige Implementierung Cloud (-Plattform) – spezifischer Themen
• Diesen Cloud-Anforderungen können und müssen sich die Teams auf Grund der Veränderungsrate der Plattformen permanent stellen und benötigen geeignete Strukturen.
• Beherrschung von Cloud-Spezifika sind nicht DER (einzige) Erfolgsfaktor bei der Softwareentwicklung in der Cloud
© 2018 andrena objects ag
24
Ausblick
24.04.18
• Beim Empowerment unterstützen...
• ...durch weitere Beiträge in der OF-Reihe „Tackling the cloud“ • Cloud und MicroServices am Beispiel Cloud Foundry
• Monitoring und Logging in der Cloud
• Erfahrungsbericht „DDD und MicroServices“
• Agile Testarchitekturen für die Cloud
• spezifische Team-Empowerment-Stacks (https://www.andrena.de)
© 2018 andrena objects ag
Experts in agile software engineering
Anhang
Gar nicht wolkig –Was für die Cloud-Entwicklung zählt
© 2018 andrena objects ag
26
Cloud native Anwendungen - 12 Factor Apps (https://12factor.net)
24.04.18