Pokémon Go und der DevOps Case
Joggen in der Abenddämmerung. Seltsame Gestalten, von unten blau beleuchtet, kommen aus den Büschen – eindeutig im Pokémon Go-Fieber. Was kaum einer weiß: Publikumslieblinge wie Taubsi, Hornliu, Rattfratz und Pikachu lassen sich mit einem neuen Ansatz besser umsetzen: DevOps.
Unternehmen, denen es gelingt, Menschen, Prozesse und Technologie unter einen Hut zu bringen, schaffen Erfolge, die sich vielleicht sogar mit Pokémon Go vergleichen lassen. Was dabei zum Tragen kommt ist Zusammenarbeit – und genau das ist auch der Hintergrund von DevOps, einem Konzept, das ebenso wie “Agile” den Menschen in den Mittelpunkt stellt.
So war das auch im Fall von Pokémon Go: Der Code wurde geschrieben und in Produktion gegeben, dabei aber laufend modifiziert, denn es gab Anwenderfeedback zu berücksichtigen. Und man musste – angesichts des immensen Erfolgs der App – mehrfach an der Workloadleistung arbeiten.
Immer wieder testen und verbessern
Neue Applikationen wie Pokémon Go entstehen nicht in einem Wurf. Sie durchlaufen mehrere Entstehungszyklen; in der ständigen Wiederholung von Umsetzungen und Tests wird erweitert, optimiert, angepasst. In der traditionellen Programmierung brauchen diese Zyklen viel Zeit – Zeit, die man in der Ära der digitalen Transformation nicht hat. Und so werden nicht alle möglichen Anwendungsfälle ausprobiert – eben keine variierenden Geolocations, Geräte, Betriebssysteme, Hardware oder Transaktionen.
Das ist nicht weiter erstaunlich, denn die richtigen Testdaten und Testumgebungen bereitzustellen ist aufwändig. Ein Zwiespalt: Denn testet man solide, kann das heißen, man kommt zu spät auf den Markt. Tut man es nicht, hat man vielleicht eine App, die bei Kunden nicht ankommt.
Mit Service-Virtualisierung wird es möglich, nicht-verfügbare Systeme zu simulieren – also Tests auszuführen, für die es keine Live-Umgebung gibt. Eventuelle Fehler werden so einfach gefunden und dank DevOps können Entwickler, Tester, Integratoren und die Performance-Teams parallel arbeiten. Die Time-to-Market sinkt, während die Kunden zufriedener werden, weil ihr Input schneller in Aktion umgesetzt wird.
Skalierbar bleiben
Was einmal passt, muss nicht immer passen. Deshalb ist Flexibilität auch dann wichtig, wenn die App bereits produktiv ist. Die Entwickler bei Niantic waren überrascht vom gewaltigen Erfolg ihrer App und hatten entsprechend mit Performance-Problemen im Feld zu kämpfen, als das Spiel im Juli in weiteren 26 Ländern gestartet wurde. Das zeigt: Ein Unternehmen sollte von Anfang an Skalierbarkeit mitdenken. Der DevOps-Ansatz sieht vor, bereits beim Entwickeln der App ihre Anforderungen an Computing-, Netz- und Speichersysteme zu berücksichtigen – als eines der Resultate des intensiveren Kontakts zwischen Entwicklern und Betriebsexperten (Operatoren). Damit wird Skalierbarkeit teilweise vorweg genommen.
Eine weitere Voraussetzung: agile Infrastrukturen. Eine traditionelle Infrastruktur – sei es on-premise oder co-located in einem Rechenzentrum – wird Probleme haben, extrem schnell mitzuwachsen. Selbst eine virtualisierte Plattform kann an ihre Hardware-Grenzen stoßen. Und bei der Migration zu einem Cloud-Provider wie Amazon Web Services oder Microsoft Azure gilt es, auf Faktoren wie Auto-Scaling virtueller Instanzen oder auf Containerisierung zu achten.
Vorsicht mit den APIs
Ein Großteil des Erfolgs von Pokémon Go beruht auf der engen Integration mit Google Maps – was nichts anderes heißt, als dass eine bestimmte API erfolgskritisch ist. Nur: Niantic hatte die Existenz dieser offenen API kaum zur Kenntnis genommen. Erfolg bringt Aufmerksamkeit mit sich, und so ist es einigen Entwicklern gelungen, die API nachzubauen und neue Apps auf dieser Basis anzubieten – wie etwa Pokevision. Als Niantic merkte, dass mit ihrer API wirtschaftlicher Erfolg generiert wurde, sind sie gegen diese Apps vorgegangen – zum Ärger und zur Frustration der Pokémon Go Spieler, die sich daran gewöhnt hatten, mit diesen Dritt-Apps ihre Reality-Gaming Erfahrung zu verstärken.
Wie hätte es anders laufen können? Erkennt man das Potenzial einer API und hält man sich an die API-Spielregeln, kann man durchaus Nutzen daraus ziehen. So hätte Niantic die Dritt-Entwickler unterstützen und von ihrem Wachstum profitieren können. Denn wenn man eine Mobile App für Consumer launcht, wird man höchstwahrscheinlich auch über Web zugängliche Services anbieten – über eine API.
Was spricht dagegen, sie für externe Nutzung zu öffnen, also zu dokumentieren und Dritte ins Boot zu lassen, wenn es sinnvoll ist? Natürlich muss man die API schützen. Nicht jede Idee eines Entwicklers ist gut und nicht jede App passt. Man braucht also die Möglichkeit, den Zugriff auf die API zu beschränken und die Nutzung zu kontrollieren. Das erfordert Nutzungsbestimmungen und die Möglichkeit, diese Bestimmungen durchzusetzen. Und noch besser: Man kann anhand der Nutzung die API immer weiter optimieren und die eigene App Community ausbauen.
Lernen von Pokémon Go
Bei Pokémon Go geht es nicht nur darum, eine gute Idee für ein Spiel zu haben. Es geht darum, diese Idee auch nachhaltig umzusetzen – schnell und hochwertig. Und das geht in der Application Economy nicht mehr ohne DevOps. Auch Niantic wird den viralen Effekt nur fortsetzen können, wenn sie weiterhin agil handeln. Auch das ist mit einem automatisierten DevOps-Prozess möglich: Developer verfeinern den Code und die Art und Weise, wie der Code produktiv gemacht wird, immer weiter. Und die Administratoren stellen sicher, dass die Leistungsfähigkeit der IT-Infrastruktur adäquat bleibt –gemeinsam stark also für eine größere Kundenzufriedenheit.