Êtes-vous prêts pour votre transformation vers le DevOps?

« Des livraisons plus rapides, plus fréquentes et plus fiables ». Telles sont les promesses du DevOps; mais votre organisation est-elle prête à effectuer les changements nécessaires pour y parvenir?

Voici quelques exemples de changements que votre organisation devra adopter afin de tirer le maximum de votre initiative DevOps.

Architecture

Vos applications sont-elles suffisamment découplées et autonomes afin d’évoluer facilement? Les applications monolithiques sont difficiles à modifier, à tester et à déployer. C’est pour cette raison que les microservices représentent une architecture de choix pour le DevOps. Sans nécessairement procéder à la réingénierie complète de vos applications existantes en microservices, il serait intéressant de commencer dès maintenant à les briser en plus petits segments afin d’en faciliter le cycle de vie (évolution et exploitation).

Vos applications sont-elles compatibles avec l’infonuagique? La volatilité des serveurs dans un PaaS peut provoquer des pertes de données si ceux-ci conservent l’état des applications. Il faudra corriger vos applications afin d’éviter une journalisation locale, l’écriture des données dans des fichiers du système et des informations de la session des clients, etc. La méthodologie 12 Factor App peut servir d’excellent guide afin de vous assurer du bon fonctionnement de vos applications dans l’infonuagique.

Intégration continue

Il n’est pas suffisant d’avoir un orchestrateur d’intégration continue (par exemple Jenkins) afin de fusionner régulièrement les branches créées par les équipes de développement.

Les développeurs doivent s’assurer d’envoyer régulièrement leurs modifications locales vers le gestionnaire de source centralisé (« commit »). Idéalement, ils doivent effectuer un seul changement à la fois. Les changements apportés aux schémas de bases de données sont-ils intégrés au processus d’intégration continue? Est-ce que les développeurs attendent trop longtemps dans leurs branches avant de remettre au tronc principal? La couverture de tests unitaires est-elle suffisante?

Si vous répondez non à l’une ou plusieurs de ces questions, sachez que les différents mécanismes d’automatisation apportés par les outils DevOps n’apporteront que très peu de valeur. Il vous faudra donc corriger ces situations avant d’avancer dans votre transformation au risque de ne pas atteindre les objectifs visés, soit livrer plus rapidement, plus souvent et avec plus de fiabilité.

Automatisation des tests

L’automatisation des tests est probablement le talon d’Achille de la majorité des organisations. En effet, la croissance organique des systèmes existants ont fait que ces applications monolithiques comportent des milliers, voire des millions de lignes de code qui ont toujours été testées manuellement. Afin d’optimiser le DevOps, les organisations doivent impérativement réaliser des tests unitaires, intégrés, fonctionnels et non-fonctionnels (sécurité, charge, etc.) Cette tâche peut représenter un investissement important dont la valeur ajoutée ne se fera sentir qu’à moyen et à long terme. L’automatisation des tests est directement en lien avec les livraisons continues. Si les tests sont réalisés manuellement, c’est toute la chaine de livraison continue qui sera ralentie.

Gestion des bases de données

Vos migrations de bases de données sont-elles automatisées? Vos DBA possèdent-ils une parfaite maîtrise des scripts de migration et ceux-ci sont-ils gérés à l’aide de versions? Les procédures de retour en arrière sont-elles testées et fonctionnelles? Dans les automatismes proposés par le DevOps, les mises à jour des bases de données doivent suivre celles apportées par les applications afin d’atteindre les objectifs de livraison continue.

Analyse des besoins des clients

Si vous désirez opter pour une architecture en microservices, vous devrez vous assurer que vos analystes d’affaires maîtrisent la modélisation basée sur les capacités d’affaires. Pour y parvenir, des méthodes d’analyse telles que le « Domain-Driven-Design » facilitent cette modélisation. Vos analystes devront être aguerris avec ces techniques, autrement le découpage des microservices sera inadéquat (« high coupling »).

Structure des équipes de livraison (de la gestion de projet à la gestion de produit)

Vos équipes devront être partagées selon un modèle de gestion de produits et celles-ci seront responsables de toutes les étapes de la livraison (conception et exploitation). Un propriétaire du produit sera responsable d’établir la vision. Les organisations doivent donc envisager un financement non plus par projet mais par produit.

Culture

Une culture de valorisation des succès collectifs, de collaboration et de responsabilité commune est à la base des pratiques DevOps.

Il est essentiel d’aligner les motivations et les objectifs entre ces équipes afin d’établir la confiance et l’esprit de collaboration. Par exemple, des équipes alignées et collaborant activement au sein d’un seul projet et évaluées collectivement sur tous les aspects de son succès sont plus susceptibles d’être engagées à travailler efficacement ensemble, plutôt que d’être partagées. Bien que facile à acheter, l’outillage à lui seul ne procure pas les avantages d’une pratique DevOps. Les technologies doivent être utilisées dans le cadre d’une philosophie culturelle ancrée dans la collaboration et la responsabilité conjointe.

La création d’équipes pérennes responsables d’un ou de plusieurs produits facilite l’alignement de ces objectifs. Les équipes seront alors responsables de la conception et de l’exploitation de leurs applications selon le principe : « you build it, you run  it » (vous le construisez, vous l’exploitez).

Conclusion

Ce ne sont là que quelques exemples des points de vue technique, organisationnel et culturel auxquels les entreprises doivent s’attaquer tôt ou tard afin de faciliter leur transformation vers le DevOps.

Le véritable défi dans cette transformation est d’en accélérer son adoption avec un minimum de risque. Et c’est ici que notre expertise stratégique peut vous aider. En effet, notre équipe chevronnée peut vous accompagner dans toutes les étapes de cette transformation : à l’aide de notre grille d’évaluation de maturité DevOps, nous pouvons établir clairement les disciplines dans lesquelles votre organisation devra apporter plus d’attention pour ainsi concevoir un plan d’action réaliste. Nous pouvons aussi vous assister dans la conception de microservices, l’automatisation des tests, la construction des pipelines de livraison, la sélection de PaaS et IaaS ainsi que la surveillance et l’alertage de vos applications et infrastructures.

0

Qu’en pensez-vous?

Sans frais : 1 800 260-3311
info@esitechnologies.com

Sans frais : 1 800 401-TECH (8324)
tech@esitechnologies.com 

1550, rue Metcalfe, bureau 1100
Montréal (Québec) H3A 1X6

11, King St. West, 19e étage
Toronto (Ontario) M5H 4C7

2954, boul. Laurier, bureau 320
Québec (Québec) G1V 4T2