Mobile DevOps : au coeur de la transformation numérique des entreprises
Au coeur de la transformation numérique des entreprises
De plus en plus d’entreprises mettent en place une chaîne d’intégration continue pour développer des applications mobiles. Néanmoins, développer des « apps » présente quelques spécificités qui poussent les équipes DevOps vers des solutions spécialisées.
Àl’heure de la transformation numérique, de plus en plus d’entreprises veulent proposer à leurs clients un portefeuille d’applications mobiles performantes. Après une première vague d’applications marketing peu connectées au système d’information, les applications de nouvelle génération sont de plus en plus intégrées aux processus. Néanmoins, maintenir et faire évoluer à un rythme élevé ces applications reste un défi. « Nous sommes en train de vivre un véritable virage » , commente Sabir Jakib, fondateur de DevOpsTeam. « Les entreprises ont maintenant bien conscience que, si elles ne vont pas vers DevOps, le Cloud et le mobile dès aujourd’hui, elles se feront distancer irrémédiablement. » Afin de répondre à ce besoin d’agilité et de rapidité de réaction demandé par les métiers, les DSI sont allés vers DevOps depuis quelques années pour booster le rythme de développement de leurs applications stratégiques et cherchent à transposer cette approche aux applications mobiles dont le développement à longtemps été sous- traité à des agences externes. « Les grandes DSI qui faisaient développer leurs apps en externe, parfois en offshore, ont maintenant compris qu’il fallait ramener ces développements en interne pour être plus réactifs. » Pour Sabir Jakib, utilisateur du triptyque Ansible / Jenkins / Vagrant, une chaîne d’intégration, communément utilisée pour développer des applications cloud, peut aussi être mise en oeuvre dans le contexte du développement d’applications mobiles. « Il est possible d’utiliser les mêmes outils d’automatisation que pour le déploiement d’applications web, même s’il y a quelques limites. »
Jenkins vs les solutions spécialisées mobile
Parmi les entreprises à avoir misé sur Jenkis, Voyages- SNCF, dont le pipeline de déploiement s’appuie sur RunDeck, Jenkins et Hesperide, un outil développé en interne pour la
gestion des propriétés. « Notre chaîne d’intégration continue est à 100 % opérationnelle sur tout le hors production, c’est- à- dire l’environnement de développement, d’intégration, la recette et la pré- production » , explique Alexandre Pilorget, ingénieur Systèmes d’information chez Voyages- sncf. com. « Notre cible pour la fin de l’année est de propager cette automatisation côté production. Tous les tests sont automatisés dans notre chaîne d’intégration continue. En revanche, côté mobile, si Android a aussi toute une batterie de tests automatisés, nous n’avons pas trouvé de solution véritablement stable pour automatiser les tests iOS. » En effet, s’il est possible de mettre en place une chaîne d’intégration continue basée sur Jenkins pour livrer des applications Android, iOS, les premiers à l’avoir fait se sont heurtés à quelques limites de la solution, des limites liées à la nature des applications mobiles dont on ne contrôle pas directement le déploiement. De nombreuses équipes DevOps se sont tournées vers des plates- formes d’intégration continue conçues pour le mobile, comme Greenhouse CI, Bitrise, CircleCI, Travis CI ou encore BuddyBuild. Vincent Saluz zo, L ead Developpeur chez Itelios qui chapeaute l’équipe des développeurs iOS d’Itelios a privilégié la plate- forme Bitrise : « Il y a quelques mois, seules deux plates- formes d’intégration continue mobiles se distinguaient vraiment sur le marché. Il s’agissait de Bitrise et Greenhouse. Depuis, l’éventail de solution s’est élargi et si Bitrise reste parmi les solutions les plus fréquemment choisies. » Depuis, des projets open source tels que Fastlane ont notoirement simplifié la mise en place d’une chaîne d’intégration mobile 100 % open source, mais, à l’image de l’essor récent de la solution BuddyBuild, la demande des développeurs reste forte pour des solutions spécifiquement bâties pour le mobile.
Le cross- platform, une approche enfin viable
Dans le monde Microsoft, bien que Windows Phone ne soit plus considéré comme une cible significative l’éditeur de Redmond propose aux développeurs une plate- forme de développement multi plateforme performante pour le mobile : Microsoft Visual Mobile Center. Philippe Ensarguet, directeur technique d’Orange
Applications for Business, mise sur la plate- forme Microsoft en s’appuyant sur le framework Xamarin pour délivrer des apps pour Android et iOS: « Xamarin nous permet d’avoir un seul et unique modèle de développement pour chaque projet, un seul langage, C# en l’occurrence, mais la capacité d’accéder à l’intégralité des SDK de toutes les plates- formes mobiles. Seul le volet GUI/ UX est spécifique à chaque plate- forme. C’est de cette façon que nous avons réussi à avoir une part de factorisation extrêmement significative de nos développements. » Le choix d’Orange Applications for Business sur Xamarin est significatif de la maturité de ce framework multi plate- forme. Pour certaines applications moins stratégiques, des frameworks de type web mobile comme Apache Cordova, PhoneGap, Ionic apportent une solution viable, de même React Native, un framework notamment utilisé par Facebook, Instagram, Tesla et Airbnb… Pour tirer profit de la démarche DevOps dans le développement mobile, l’équipe DevOps de Philippe
Ensarguet travaille depuis plus d’un an avec la R & D produit de Microsoft sur la mise au point de Visual Studio Mobile Center, dont la General Availability est attendue pour la fin de l’année. « Dès lors, les entreprises pourront déployer Mobile Center soit en internet soit dans le Cloud, ou dans une approche hybride. C’est le choix que nous avons fait avec une partie des services Mobile Center consommés en interne, et d’autres consommés dans le Cloud, pour mener des tests
sur des fermes de mobile. » Avec l’offre Xamarin Test Cloud, Microsoft propose une plateforme de test qui comprend plus de 2 000 types de smartphones, tant sous Android que iOS. Ce type de services accessibles dans le Cloud s’est multiplié ces dernières années. IBM, avec son offre Rational DeviceAnywhere propose lui aussi une ferme de mobiles et même Amazon Web Service aligne désormais un tel service au sein de son portefeuille. Son offre AWS Device Farm. Cette offre, facturée
à la minute d’utilisation par mobile était initialement composée de terminaux Android seulement, mais elle s’est élargie à iOS. Autre exemple, celui de CA Technologies qui propose des outils d’automatisation de test avec sa solution DevTest Perfecto Mobile, une plate- forme de test dans le Cloud qui simule les smartphone. En parallèle, elle propose de mener des tests de charge sur les API appelées par les applications via sa solution CA Blazemeter, ou la solution OnScope qui va permettre de vérifier que les API vont tenir la charge.
Le Mobile App Analytics, brique indispensable du DevOps Mobile
Mais outre les spécif ici - tés liés aux tests, DevOps Mobile implique d’outiller les applications afin de capter des données de fonctionnement. Contrairement à une application classique, impossible d’analyser les logs pour connaître le comportement exact des utilisateurs. Le directeur technique de CA Technologies précise : « Nous fournissons un SDK mobile qui permet de remonter des informations depuis les applications. On sait alors géolocaliser les utilisateurs, quelles sont les versions de leurs OS mobile, leurs terminaux. Les développeurs disposent des informations relatives aux crash de l’application, mais aussi retracent sa navigation avant le crash. Notre SDK délivre même des informations relatives à l’ergonomie. Nous sommes capables de visualiser les hot points, c’està- dire les endroits de l’application où l’utilisateur a cliqué. Cela permet de valider la qualité d’un design. » Eurosport a mis en oeuvre cette solution pour son application « cycling » qui propose aux fans de cyclisme de suivre le Tour de France, la Vuelta ou le Giro en temps réel sur leur mobile. Le SDK leur permet de visualiser le comportement de l’application et la qualité de l’expérience utilisateur en temps réel. Autre éditeur à proposer ce type d’outil, Dynatrace qui prône une continuité d’information entre les serveurs en production et les applications mobiles : « Nous proposons une nouvelle génération d’APM basé sur un agent unique et universel par serveur là où, auparavant, il fallait déployer des agents par technologies, avec un agent Java, un agent . NET » , explique Patrick Redoute, responsable de l’offre APM de Dynatrace. « L’agent découvre automatiquement tous les circuits de dépendance entre serveurs et toutes les couches logicielles installées sur ce serveur. Côté application mobile, le développeur place les balises Dynatrace avant de compiler son code. Dès lors, tous les “touch ” sur le mobile sont alors tracés et on va avoir des mesures de performances des échanges entre le mobile et le backend et surtout pouvoir comprendre et interpréter tout le parcours de l’utilisateur dans l’application, du premier clic jusqu’au dernier. » Les DSI disposent de tous les moyens techniques pour mettre en place des chaînes d’intégration continue totalement automatisées et intégrer les exploitants dans ces processus DevOps tant sur les applications classiques qu’avec les applications mobiles. Il est désormais temps pour les DSI d’opérer leur propre transformation numérique. ❍