Start-Up : Comment mettre en place une organisation Devops

Déficit de temps, de moyens, de connaissances… pour bien démarrer leur projet digital, les start-up ont besoin de se concentrer sur leur métier. C’est l’objectif notre démarche kit start-up : proposer une infrastructure et des outils clé en main en utilisant les bests practices du moment, pour se concentrer directement sur la valeur. Autrement dit, sur la livraison de fonctionnalités, et donc de code et son déploiement.

Cependant sans méthodes et pratiques associées, les outils peuvent parfois être inutiles ou vus comme des outils «magiques» du changement et donc mal interprétés, et c’est pourquoi il est essentiel de mettre en place dès le départ une démarche devops. Ceci est très fortement lié aux méthodes agiles…

Après avoir abordé le sujet des déploiements automatisés avec Ansible, nous vous proposons aujourd’hui de faire le point sur le Devops et de voir comment cette organisation peut aider la start-up à livrer de la valeur ajoutée plus régulièrement.

Devops : un état d’esprit, plutôt qu’un ensemble d’outils

Disposer d’une usine de développement pour construire les livrables, déployer de façon sécurisée, gérer les sources et les livrables est en effet nécessaire pour que la startup puisse délivrer de la valeur ajoutée régulièrement. Mais encore faut-il penser à l’impact de la mise en place de ces outils, et surtout se poser la question : est-ce qu’il répond vraiment à mon besoin ? Ou bien n’est-ce pas plutôt mon choix d’outil qui va « driver » mon besoin ?

Plutôt que de mettre en place (et souvent imposer) une stack technique et voir ce qu’elle apporte, ou pas, en terme de valeur, mieux vaut dès le départ tenter de répondre à cette question. Et anticiper les impacts en termes de répartition des rôles, d’organisation (par rapport au fonctionnement standard), afin que chacun soit impliqué de manière à faciliter l’adoption des outils ou méthodes.

D2SI_Blog_Image_Devops3

Source : Devops.com

Ce qui sépare les dev des ops

Dans une grosse structure, le plus souvent les compétences sont très silotées. D’un côté des développeurs qui génèrent du code et veulent le déployer le plus rapidement possible… et des ops qui gèrent le déploiement et dont le but premier est que la production soit le plus stable possible et le reste, quitte à freiner les déploiements… La fameuse frontière dev/ops.

Le problème, c’est que les ops n’ont pas toujours la connaissance de ce qui a été fait en amont. Que livre-t-on ? Est-ce que tout a bien été testé ? De même les développeurs n’ont pas forcément la connaissance des contraintes et des processus de déploiement, et pire encore, ne s’intéressent pas forcément à ce que peut devenir leur code.

C’est pourquoi il est essentiel de travailler à la collaboration Devops. Tous doivent se voir comme une seule et même équipe, avec des objectifs partagés, et capitaliser sur les expériences et les bonnes pratiques de chacun. Par exemple l’intégration continue et le versionning du code est un sujet maitrisé côté développement mais pas forcément côté ops, à l’inverse l’automatisation l’est plus côté ops.

Les bonnes pratiques Devops

Cela implique un changement d’état d’esprit profond de la part de chacun. Des développeurs, qui doivent pouvoir impliquer et fournir informations et indicateurs permettant aux ops de mettre en production dans de bonnes conditions. Le package est-il complet ? Les tests effectués et pertinents ? Quelles nouvelles fonctionnalités sont livrées ? Des ops, qui doivent également s’impliquer et impliquer les devs dans leur processus de déploiement. L’idée est de collaborer en amont pour améliorer le processus de livraison, de façon à ce que tout le monde soit confiant sur la livraison, au travers par exemple de démo, de retrospectives mais également de travailler ensemble sur des sujets transverses comme la métrologie. On perd parfois de vue que développeurs et ops ont le même objectif : fournir de nouvelles fonctionnalités aux utilisateurs.

Pourquoi favoriser le Devops en start-up ?

Bien sûr, une startup n’a pas l’historique d’une grosse structure et n’aura pas nécessairement à gérer les mêmes problèmes de communication entre développeurs et ops. Du moins, à ses débuts, car la startup est appelée à grandir. D’où la nécessité d’adopter dès le départ la bonne démarche, et de favoriser les échanges entre développeurs et ops.

Mettre en place le Devops dans une start-up

La première étape consiste à bien identifier les rôles et à avoir une vision commune. Que veut-on faire en priorité ? Qui fait quoi, quelle est la taille des équipes ? Qui développe ? Est-ce que les développeurs déploient également ? Souvent dans une startup nous avons un « ops » pour plusieurs développeurs. Dans ce cas, il sera plus simple de les sensibiliser à la complexité du déploiement.

Comme dit précédemment, les développeurs doivent être sensibilisés à ce que va devenir le code (intégration continue, tests, déploiements jusqu’en production); être conscient que plusieurs profils peuvent etre impactés tout au long du cycle. Il s’agit de ne pas perdre de vue ce que va devenir le code, et rester impliqué sur l’ensemble de la chaîne de développement et déploiement. Pour piloter l’ensemble du workflow, chacun doit s’intéresser aux outils mis en place.

Dans le cadre du kit start-up, l’objectif est de mettre en place un pipeline de déploiement sécurisé (intégration continue, déploiement continue, stratégie de tests automatisés, metrologie) qui servira à la future infrastructure. Ainsi l’équipe peut commencer directement à livrer des fonctionnalités et de la valeur ajoutée.

Dans nos prochains articles consacrés aux outils pour startup, nous verrons comment mettre en place un cluster Docker Swarm, avant d’aborder le sujet de l’usine de développement et d’intégration continue sous l’angle Devops.

Commentaires :

A lire également sur le sujet :