Nach einigen Jahren habe ich heute mal wieder die CeBIT besucht. Besonders interessant fand ich, dass mit der Heise Developer World das Thema Softwareentwicklung endlich auch wieder eine größere Rolle spielt. Das Thema wurde lange Zeit nicht als so relevant für das Publikum der CeBIT erachtet, da die Besucher sich mehrheitlich für die Themen Infrastruktur, technische Innovationen und Sicherheitstechnik interessieren. Durch die Heise Developer World könnte sich dies jedoch nun wieder ändern.
Meinen Tag auf der CeBIT verbrachte ich überwiegend beim Forum der Heise Developer World in Halle 11 und im Open-Source-Forum in Halle 4.
Im folgenden will ich einen kurzen Überblick über die Vorträge, die ich besucht habe, und den für mich interessanten Kernaspekten geben:
Docker in der Cloud (Sacha Möllering von zanox)
- Kurze Vorstellung von Docker und der technischen Grundlagen
- LXC als Basis von Docker
- Zusammenhang zwischen Dockerfile, Image und Containern
- Vorstellung des Immutable-Server-Patterns
- ein Server kann vernichtet und einfach neu aufgesetzt werden
- es werden keine spontanen Konfigurationsänderungen an laufenden Servern durchgeführt
- das Docker-Image bildet immer den aktuellsten Stand und dokumentiert dadurch die Konfiguration vollständig
Data as a Service für DevOps (Karsten Stöhr von Delphix)
- Testdaten für einen Integrationstest sind zumeist unzureichend, da sie nur einen kleinen Ausschnitt der realen Daten abbilden
- Fehlerbehebung wird teurer je später diese Fehler im Entwicklungsprozess auffallen
- eine komplette Kopie der Daten aus einer Produktionsumgebung ist Bedarfsfall kosten- und zeitaufwändig
- besser ist eine Technologie zur Bereitstellung von Testdaten als Service innerhalb der IT (Data as a service)
- die Lösung der Firma Delphix bietet einen Ansatz bei dem die Daten einmal kopiert werden und dann jeweils nur das Delta verändert wird
- für Tests können die Entwickler nach dem Self-Service-Pinzip Testdaten zu einem bestimmten Zeitpunkt nutzen, Änderungen während des Tests werden in einem separaten Storage-Bereich geschrieben und können jederzeit verworfen werden
- durch diesen Ansatz können die Ressourcen für die Bereitstellung von Testdaten und -umgebungen reduziert werden und realitätsnahe Integrationstest realisiert werden, die Software-Qualität steigt dadurch signifikant
Die API-Industrie (Kai Spichale von adesso)
- Nutzen und Aufgabe einer API
- Entkoppelung und Abstraktion
- Beschreibung einer Schnittstelle
- Kommunikationsbasis aus Nutzersicht
- Gründe für die Einführung
- Skalierbarkeit
- Wiederverwendbarkeit für mehrere Plattformen
- Marketing und Etablierung einer Platt (z.B. Twitter-API, Fedex)
- API als Produkt
- Herausforderungen
- Veränderbarkeit
- Versionierung
- Dokumentation
- Skalierbarkeit
- Architektur
- Tipps für die API-Dokumentation
- Zielgruppenorientierung
- Arbeiten mit Beispielen (Tutorials, komplette Anwendungsszenarien, Snippets) nach dem Learning-by-Doing-Prinzip
- Bestandteile einer vollständigen Dokumentation
- API-Guide
- Referenzbeispiele
- Versionsinformationen
- Verwendung von formalen Beschreibungen z.B. Swagger
- Tipps für die Versionierung
- Varianten
- Query-Params
- URI
- Content-Type
- nur die Variante 3 entspricht dem RESTful-Paradigma, aus pragmatischen Gründen werden jedoch die anderen beiden Varianten in der Praxis häufiger verwendet (z.B. Twitter-API)
- Varianten
Realitätscheck: Brauchen wir Docker wirklich? (Nils Magnus von inovex GmbH)
- Docker ist keine traditionelle Virtualisierungstechnologie
- Performanz und Sicherheit sind keine Entscheidungsgründe für den Einsatz von Docker
- Gründe für Docker:
- Verkürzung der Time-To-Market
- Verbesserung der Software-Qualität
- Produktorientierung
- Starke Verbindung zum DevOps-Paradigma:
- Stärkung der Zusammenarbeit zwischen Entwicklern (Dev) und Betrieb (Ops)
- Vereinfachung der Kommunikation
- Vermeidung von Konfigurationsänderungen an laufenden Server und dadurch Reproduzierbarkeit von Deployments
- Kulturveränderung der gesamten IT hinzu fließenden Übergängen in den Prozessen zwischen Devs und Ops
- Einsatzgebiete für die Docker einen echten Mehrwert bringt:
- Vereinfachung der Bereitstellung von produktionsnahen Test- und Entwicklungsumgebungen
- Proof-of-Concept (POC)
- Moderne Anwendungen nach dem Pinzip der Microservices
- Docker löst folgende Probleme nicht:
- Verbesserung der Sicherheit von Anwendungen
- Optimierung der Hardware-Ressourcen
- Drop-in-replacements für bestehende Systeme
- Reduzierung der Komplexität von Anwendungen
Alles in allem fand ich den Besuch auf der CeBIT 2015 sehr informativ. Ich werden im nächsten Jahr wieder einen Tag frei schaufeln und mir neue Eindrücke auf der CeBIT 2016 holen.