Mobile DevOps in der Praxis

Hallo Habr! Heute teilen wir Ihnen eine einfache und verständliche Anleitung zur praktischen Umsetzung von Mobile DevOps mit. Neben dem Papierhandbuch finden Sie unter dem Schnitt auch Videoaufnahmen der gleichnamigen Werkstatt, die alle Aspekte von DevOps in Bezug auf die mobile Entwicklung abdecken.



Ich gebe dem Autor Wjatscheslaw Tschernikow das Wort.

Mobile DevOps: Ein Leitfaden zum Handeln


Grüße an Sie, Leser. Der Sommer flog wieder mit der Geschwindigkeit eines Kometen vorbei, und zusammen mit dem Herbst ist es Zeit, zu 150% der Produktivität zurückzukehren. Bereits im Frühjahr haben Microsoft und ich einen Leitfaden „Mobile DevOps in der Praxis“ erstellt, in dem erläutert wird, wie der Prozess der Entwicklung mobiler Anwendungen maximal automatisiert werden kann. Das Folgende ist ein Informationsblatt aus dem vollständigen Handbuch.

1. Über DevOps


1.1 Über DevOps Culture


DevOps selbst geht langsam in flexiblen Managementtechniken um den Planeten. Wenn Sie jedoch etwas genauer hinschauen, ist DevOps in erster Linie eine Kultur, in der das gesamte Team, das ein IT-System entwickelt und wartet, als Ganzes arbeitet. Es ist die Kommunikation innerhalb des Teams, die erforderlich ist, um eine gesunde Interaktion zwischen Unternehmen, Programmierern, Systemadministratoren und Testern aufzubauen.

Das zweite wichtige Element eines DevOps-Prozesses ist das Teamtraining. In einer idealen Welt sollte ein Team (beginnend mit einem Unternehmen) lernen, die Bedürfnisse des Endbenutzers besser zu erfüllen und Wert für den Verbraucher zu schaffen. In der Praxis muss aber auch „Wert“ gelernt werden, um daraus kompetente Schlussfolgerungen zu ziehen. Für die Schulung ist in jedem Fall das Feedback von echten Benutzern erforderlich. Eine solche Verbindung sind kontinuierliche Überwachungssysteme für die Lebensfähigkeit von IT-Systemen und eine Vielzahl von Protokollierungssystemen.

Und damit dieses DevOps nicht nur in den Köpfen der Entwickler existiert, muss es mit Tools umgesetzt werden, die für die Anforderungen der Aufgabe geeignet sind. Teil der DevOps-Kultur ist auch der Wunsch, Routinetätigkeiten zu automatisieren. Dies macht den Prozess der Entwicklung und Entwicklung von IT-Systemen weniger schmerzhaft und effizienter.

1.2 Was ist der Unterschied zwischen DevOps und Mobile DevOps?


DevOps selbst erschien als Ansatz für große Teams und Unternehmen, die an großen IT-Systemen arbeiten, die aus einer großen Anzahl von Modulen bestehen, die häufig in verschiedenen Programmiersprachen geschrieben und für verschiedene Laufzeitumgebungen entwickelt wurden. Als der Begriff und der Ansatz jedoch populärer wurden, wurde DevOps von verschiedenen Teams angepasst, um eine Vielzahl von Problemen zu lösen.

Am häufigsten wird DevOps mit großen digitalen Produkten in Verbindung gebracht, deren Entwicklung und Wartung von Dutzenden, Hunderten und manchmal Tausenden von Spezialisten durchgeführt wird. Viele Teams haben bereits eigene Verfahren und Tools entwickelt, um den DevOps-Prozess zu unterstützen - ein System für die automatische Montage, Prüfung, Bereitstellung und Überwachung. Normalerweise wird dies alles auf einer eigenen Infrastruktur erstellt, aber auch CI / CD-Cloud-Tools werden aktiv entwickelt.



Abbildung 1. Unterschied zwischen Mobile DevOps und Enterprise DevOps

All dies ist wenig mit der Entwicklung mobiler Anwendungen verbunden. Mobile DevOps ist eine „kleinere“ Version von regulären DevOps, da mobile Anwendungen in erster Linie eine bequeme Schnittstelle für die Interaktion mit externen IT-Systemen darstellen. Der kleinere Umfang des Teams und seine spezifischen Probleme für mobile Anwendungen (siehe Abbildung 1):

  • - verschiedene Plattformen;
  • - verschiedene Geräte.

1.3 Einheitliche Dokumentation und eine einzige Sprache


Damit DevOps funktioniert und eine echte Interaktion zwischen den Teams besteht, benötigen Sie eine einzige Sprache und eine einzige Arbeitsdokumentation, die für alle Teilnehmer verständlich ist. Hier gibt kein Ansatz klare Richtlinien vor, und die Systeme sind alle unterschiedlich. Es ist jedoch die Dokumentation, die mit dem Projekt den gesamten Lebenszyklus zusammenlebt und ein Werkzeug für die Kommunikation und Teaminteraktion ist.



Abbildung 2. Arbeitsdokumentation

Kompetente Arbeitsdokumentation kann die Entwicklung des Projekts vereinfachen und beschleunigen. Dieser Vorgang wird in unserem Handbuch Nr. 2 " Technisches Design mobiler Anwendungen " ausführlicher beschrieben.

Hier identifizieren wir die Hauptdokumente (siehe Abbildung 2):

- Liste der Bildschirme;
- Karte der Übergänge und Zustände;
- Bildschirmtabelle.

Die Verwendung von End-to-End-Namen und -Nummern in diesen Dokumenten ist wichtig. Dies vereinfacht und beschleunigt den Kommunikationsprozess innerhalb des Teams. Ein weiterer wichtiger Faktor ist der Compliance-Dokumentationscode, der die Kommunikation des Geschäfts mit Entwicklern verdeutlicht.

2. Funktionen von Mobile CI / CD


Also haben wir uns für die Kultur der Interaktion und der Arbeitsdokumentation entschieden und können nun zur instrumentellen Unterstützung in Form einer CI / CD-Pipeline übergehen. Je mehr Vorgänge Sie automatisieren können, desto besser.

2.1 Probleme Mobile Dev


Die mobile Entwicklung hat drei unterschiedliche Problembereiche:

  • Verschiedene Betriebssysteme und deren Versionen. Die Anwendung sollte auf einer Vielzahl verschiedener Betriebssysteme ordnungsgemäß funktionieren, von denen jedes seine eigenen Eigenschaften und Einschränkungen aufweist.
  • Verschiedene Optionen für die Architektur des Zentralprozessors. Die Hardware von Smartphones und Tablets wird ständig verbessert, aber vergessen Sie nicht die "alten Leute" vor fünf Jahren, die möglicherweise in den Händen Ihrer echten Benutzer liegen.
  • Unterschiedliche Bildschirmauflösungen von Geräten. Unabhängig von der Anzahl der Pixel oder dem Seitenverhältnis muss die Benutzeroberfläche der mobilen Anwendung auf allen Geräten korrekt angezeigt werden.

Im Allgemeinen ist das Testen und Debuggen auf einer großen Flotte realer Geräte unverzichtbar.

2.2 Was kann automatisch getestet werden?


In der Praxis ist ein manueller Test auf Smartphones oder Tablets nicht möglich. Ein Teil des Codes kann jedoch leicht durch automatisierte Tests abgedeckt werden, die auf Unit-Tests basieren (im Folgenden einfach Unit-Tests). Schauen wir uns die typische Architektur der meisten Anwendungen an - Abbildung 3.



Abbildung 3. Klassische dreistufige Architektur

Tests mit vollständiger Abdeckung Es ist klüger, Tests in zwei Richtungen durchzuführen:

  • Unit-Tests (Funktion, Integration) für die Datenzugriffsschicht oder die Repositorys.
  • UI-Tests (funktional, Regression) für Business Logic- und User Interface-Ebenen.

Es ist nicht möglich, alles mit Komponententests in mobilen Anwendungen abzudecken, und dies verringert die Geschwindigkeit der Entwicklung und Aktualisierung des Systems. Für die automatische Unit-Test-Phase der CI / CD-Pipeline ist es hilfreich, die folgenden DAL-Schichtmechanismen abzudecken:

  • Backend-API-Zugriffsmethoden
  • Datenzugriffsmethoden (Repositories);

Wenn wir über automatische UI-Tests sprechen, können wir Folgendes testen:

  • Funktionsfähigkeit der Anwendung auf realen Geräten mit den erforderlichen Eigenschaften;
  • die Fähigkeit, wichtige Geschäftsszenarien auszuführen.

Basierend auf den Ergebnissen von UI-Tests werden Screenshots mit jedem Schritt auf jedem Gerät gesammelt. Auf ihrer Grundlage kann ein QS-Techniker das korrekte Layout der Anwendung manuell mit unterschiedlichen Auflösungen und Bildschirmgrößen anzeigen.

Die Bequemlichkeit, Glätte von Animationen und andere benutzerspezifische Merkmale lassen sich nur schwer für Autotests verwenden, da sie besser Live-Testern und Beta-Benutzern überlassen bleiben.

Ende des Fact Sheets.



Nützliche Materialien


Buchen Sie Mobile DevOps in der Praxis




Die volldigitale Version des Papierleitfadens „Mobile DevOps in der Praxis“ .

Videomaterial des Workshops „Mobile DevOps in der Praxis“ (4 Teile für 3,5 Stunden)


Teil 1




Teil 2




Teil 3




Teil 4




DevOps-Gipfel


Ich möchte Mobile DevOps live diskutieren oder Fragen stellen - ich freue mich, Sie auf dem Microsoft DevOps Summit am 13. September in Moskau ( Registrierung ) oder an den DevOps Days am 14. und 15. September in Kasan ( mehr ) zu sehen.

Wie immer bin ich dankbar für das Feedback und die Fragen in den Kommentaren! Bleib in Kontakt!

Über den Autor


Vyacheslav Chernikov ist Leiter der Entwicklungsabteilung bei Binwell , Microsoft MVP und Xamarin Certified Developer. In der Vergangenheit war einer von Nokia Champion und Qt Certified Specialist, derzeit Spezialist für Xamarin- und Azure-Plattformen. Er kam 2005 in die mobile Sphäre, seit 2008 entwickelt er mobile Anwendungen: Er begann mit Symbian, Maemo, Meego, Windows Mobile und wechselte dann zu iOS, Android und Windows Phone.

Sie können auch Vyacheslavs Artikel im Blog auf Medium lesen.

Source: https://habr.com/ru/post/de421465/


All Articles