Quand on pense DevOps on pense souvent Cloud, Infra, Web, Backend, mais le monde du mobile a ses propres contraintes et ses propres outils. Nous allons voir quels sont les critères qui vont nous permettre de choisir la plateforme idéale.
Plusieurs questions viennent en tête au moment de choisir la meilleur plateforme, comme est-ce que la solution répond à l’ensemble de mes besoins ? Combien ça va me coûter ? Quelles ressources seront nécessaires pour faire tourner le bouzin ? Combien de temps ça va faire gagner à mes équipes (ROI pour les businessmen) ? Qui contacter en cas de pépin ? Comment assurer la pérennité de mon investissement ? Et j’en passe !
On vous propose de répondre à ces questions via un Benchmark maison !
Pour commencer (parce qu’il faut bien commencer quelque part), qu’est-ce qu’on entend par CI/CD et par Mobile ?
1 ) D’après Wikipédia, l’intégration continue est un ensemble de pratiques utilisées en génie logiciel consistant à vérifier à chaque modification de code source que le résultat des modifications ne produit pas de régression dans l’application développée.
En résumé dans notre contexte, ça veut dire qu’on veut builder nos applications, vérifier que la qualité du code est bonne, que nos fonctionnalités sont utilisables via des tests automatisés et que l’on est capable de publier tout ça à nos utilisateurs automatiquement.
À date, les principales plateformes disponibles sont :
Présentation des plateformes pour ceux qui ne les connaissent pas :
Dans leurs modes de fonctionnement on peut regrouper ces plateformes selon 3 catégories :
2) Mobile, toujours d’après Wikipédia, qualifie tout objet apte à se déplacer.
Bon ça va pas nous aider… On va vous donner notre version ; par technologies mobiles on entend les principaux moyens de créer une application mobile à faire tourner sur vos précieux smartphones (du coup je parle pas de Windows Phone 😉 ).
De nos jours, actuellement, en 2019, au jour d’aujourd’hui, ça veut dire :
Android Natif, iOS Natif, Cordova (et bien souvent Ionic), React Native, Flutter, Xamarin à la limite, et point barre.
Notez que l’on a aussi besoin des outils qui les accompagnent, dont : XCode, le SDK Android, les différents frameworks que vous utilisez, plus les utilitaires dont vous pourriez avoir besoin (Git, Java, Gradle, Ruby, CocoaPods, etc…).
Quelques chiffres sur le monde du mobile pour ceux que ça intéresse :
Maintenant qu’on a dit ça, voyons comment affiner notre choix en fonction de nos besoins.
Est-ce qu’il est roux ? Non ? Ok je retire Gitlab CI.
Plus sérieusement, la première question à se poser est : quelles sont les technologies que la plateforme doit supporter ?
Rien de mieux qu’un bon vieux tableau comparatif pour représenter ça.
Nous avons testé pour vous l’ensemble des plateformes, mais dans un souci de temps de lecture nous allons passer directement aux conclusions.
Suite à notre analyse et comme le montre bien le tableau ci-dessus, il ressort d’emblée que TeamCity et Codeship ne sont pas du tout adaptés au monde du Mobile.
Ensuite, en considérant nos 4 critères de départ, plus le titre de cet article, on peut également dire que les plateformes On-Premise ne nous semblent pas adaptées. Non pas qu’elles ne soient pas performantes bien au contraire, nous en avons mises en place chez de nombreux clients et continuons à les utiliser, mais à moins que vous n’ayez un plateau de 20 développeurs, des budgets importants et des équipes dédiées à leur mise en place/administration/maintenance je ne pense pas que ces solutions soient faites pour vous (si c’est votre cas contactez-nous, on peut vous aider!).
La gestion de l’infrastructure est à votre charge, même si c’est un aspect positif pour certains cela représente un coût important autant en matériel qu’en ressources humaines.
Le fait de devoir gérer des applications iOS par exemple nécessite du matériel qui coûte cher.
D’expérience un Mac Mini est rarement suffisant donc il vous faudra regarder du côté des Mac Pro : ticket d’entrée 3 300€ minimum
En terme de Run ça vous fait un outil de plus à faire tourner et à administrer, ce qui entraine également des problèmes de gouvernance.
Spécificité de Gitlab CI, vous restez dans l’univers Gitlab, impossible de connecter une autre source de code (comme Github ou BitBucket par exemple).
Pour finir notre “Qui est-ce?”, Travis CI, Github Actions et Circle CI étant très similaires dans leur approche
nous n’allons conserver que Travis CI pour la catégorie des outils Modulaires.
Bitrise, App Center et Travis CI
sont donc les finalistes pour notre Benchmark !
On a fait 80% du boulot en répondant aux questions précédentes maintenant, comme le veut la loi de Pareto, les ennuis commencent ! Pour simplifier je vous ai mis à disposition un repo Android pour faire un cas concret d’utilisation.
Pour départager nos finalistes on a isolé 5 critères :
Impossible de faire des pages publiques… DM pour que je vous ajoute sur ma Team App Center
Comment bien choisir sa CI/CD Mobile en 2019 ?