Blog

Le cycle de vie d'un service

par Matt Stratton 19 février 2020 | 7 min de lecture

Les services constituent l'épine dorsale de nos systèmes. Qu'il s'agisse de microservices fonctionnels ou de composants logiques d'une application traditionnelle, ils sont les éléments constitutifs de nos activités. Sans services, l'informatique est impossible.

Mais qui est responsable de la gestion d'un service au sein de votre entreprise ou organisation ? Les acteurs impliqués dans le cycle de vie d'un service ne se limitent pas aux seuls ingénieurs logiciels. Ils peuvent inclure, entre autres, les chefs de projet, les responsables produit, les équipes de maintenance (ingénieurs SRE/d'exploitation) et les parties prenantes métiers.

Les personnes occupant ces rôles apportent différents types de contributions tout au long du cycle de vie de nos services. Pour comprendre l'évolution de ces contributions au fil du cycle de vie d'un service, il convient de considérer trois phases principales : la conception, l'exécution et la mise hors service.

Conception

Il s'agit du lancement d'un service, à ses débuts. Durant cette phase, il est essentiel de prendre en compte plusieurs facteurs clés, notamment les besoins des clients, les exigences de préproduction et l'état de préparation à la production.

Besoins des clients

Chaque service, même le plus enfoui au cœur de votre infrastructure interne, a des utilisateurs qui attendent un résultat précis. Ces utilisateurs sont vos clients. Les équipes en charge de l'ensemble du service doivent s'efforcer de comprendre leurs clients. Leurs besoins sont-ils satisfaits ? Le service pourrait-il leur être plus utile ? Parfois, ces utilisateurs ne savent même pas ce qu'ils pourraient demander pour améliorer votre service.

Comprendre les besoins des clients exige d'adopter une approche produit. Que les utilisateurs de votre service s'inscrivent sur votre site web et vous paient, ou que votre service soit utilisé par d'autres applications internes, il est essentiel de respecter les principes suivants : principes de gestion des produits contribuera à garantir une excellente expérience à tous les consommateurs du service.

Préproduction

Avant de lancer votre service, vous avez besoin d'un environnement de test et de compréhension. Il est essentiel que vos environnements de préproduction soient aussi proches que possible de l'environnement réel. Ils n'ont pas besoin d'être configurés à la même échelle, mais des différences majeures entre la préproduction et la production entraîneront des problèmes ultérieurement. Les principes de Livraison continue Il est impératif que tous les environnements de préproduction soient identiques à ceux de production, à l'exception de la mise à l'échelle. N'oubliez pas : dans les environnements de test, nous ne testons pas seulement le code, mais aussi le processus de déploiement.

Préparation à la production

Lorsqu'il est temps de lancer un nouveau service, un élément clé est de faire preuve de rigueur dans la préparation, également appelée « préparation à la production ». Voici quelques éléments clés que nous recommandons :

  • S'engager avec les éléments nécessaires équipes de production (Équipes SRE, Opérations, Développement durable)
  • Définition (et test) des notifications d'alerte
  • Rédiger une première manuel d'exploitation
  • Réaliser des audits internes (audits de sécurité, etc.)

Durée d'exécution

Une fois un service déployé en production, la phase de conception ne s'arrête pas pour autant. En effet, les services ne sont jamais vraiment « terminés » ; nous les améliorons constamment. Toutefois, le déploiement en production implique également de nombreuses opérations quotidiennes, telles que la maintenance, l'itération et le déploiement des mises à jour. La phase de conception se poursuit tout au long de la phase d'exécution, à la fois pour développer de nouvelles fonctionnalités et pour résoudre les problèmes liés aux fonctionnalités existantes, découverts après la mise en production du service.

Outre la conception continue, des contributions supplémentaires sont nécessaires une fois votre service en production. Surtout, maintenant que votre service est utilisé par de vrais clients, la manière dont vous communiquez avec eux est primordiale.

Versionnage

L'un des principaux moyens de communiquer avec les utilisateurs de votre service est de mettre en place une stratégie de versionnage claire et robuste. Cela permet à vos clients de comprendre ce qu'ils peuvent attendre de votre service et d'éviter les surprises liées aux changements. Par exemple, si votre service propose une API, envisagez d'utiliser Versionnage sémantique des API pour aider les consommateurs à comprendre les fonctionnalités et les capacités dont ils disposent, et leur permettre de migrer en douceur vers les versions plus récentes.

Communication

Bien que le versionnage soit une méthode implicite de communication avec les utilisateurs d'une API, il ne suffit pas de versionner vos points de terminaison. Vous devez également communiquer avec vos clients pour définir leurs attentes. La manière de procéder dépendra des besoins de ces derniers. Toutefois, il est généralement conseillé de disposer d'au moins deux moyens différents (en plus du versionnage) pour annoncer à vos clients le déploiement de nouvelles fonctionnalités ou l'introduction de modifications, notamment si celles-ci sont incompatibles avec le système.

Deux méthodes simples et personnalisées pour établir ce type de communication consistent à fournir à la fois des listes de diffusion et journaux des modifications Offrir aux clients la possibilité de s'abonner aux annonces de changement par e-mail peut sembler superflu compte tenu des autres mécanismes disponibles. Cependant, toutes les informations que vous souhaitez communiquer aux utilisateurs de votre service ne sont pas nécessairement liées à une modification publiée. Les listes de diffusion vous permettent de gérer efficacement les situations exceptionnelles. À l'inverse, la tenue d'un journal des modifications détaillé offre aux clients la possibilité de s'abonner aux changements spécifiques apportés au fil du temps et de les consulter. Vos clients peuvent ainsi choisir le niveau de communication qui leur convient le mieux.

Tirer des leçons des incidents

Aucun service n'est parfait. Des incidents se produiront, mais ils constituent d'excellentes occasions d'en apprendre davantage sur le service et ses consommateurs, à condition de savoir les exploiter.

Par exemple, en cas d'incident de service, une pratique essentielle consiste à se produisant régulièrement autopsies pour comprendre ce qui s'est passé. Lorsque des actions sont identifiées lors d'une analyse post-mortem, elles doivent être priorisées. flux de travail de l'équipe de service Équipe de service Responsables de produit devraient participer aux réunions de débriefing afin de bien contextualiser et de contribuer à prioriser ces actions.

Coucher de soleil

Bien qu'il soit rarement agréable de dire au revoir, il peut arriver que votre équipe ou votre organisation décide d'arrêter un service. Il est important de mettre en place un plan et une procédure cohérente pour l'arrêt d'un service, qui ne se limite pas à le désactiver.

Dépréciation vs. Retraite

Allez-vous maintenir le service en fonctionnement, mais sans plus l'améliorer ? Dans ce cas, vous pourriez envisager de le rendre obsolète. Cette méthode permet de modifier les attentes des utilisateurs tout en leur permettant de continuer à bénéficier du service.

Si vous prévoyez d'arrêter définitivement le service, vous le mettrez hors service à une date précise. Il est courant de rendre un service progressivement obsolète avant son arrêt définitif afin de laisser aux utilisateurs le temps de migrer vers une autre solution.

Identification des clients et détermination de l'impact commercial

Avant de mettre fin à votre service, assurez-vous de pouvoir identifier les utilisateurs qui le consomment encore. Vous pouvez le faire grâce à des méthodes telles que les journaux d'activité ou d'autres approches programmatiques.

En plus d'identifier les clients à contacter pour les informer de la dépréciation/du retrait de ce service, cette démarche vous permettra de mieux comprendre l'impact commercial de son arrêt. Travaillez avec haute direction Au sein de votre organisation, il est important de communiquer et de quantifier l'impact commercial de l'arrêt du service. La direction devrait faciliter les échanges avec les autres services (ventes, support, fidélisation client, etc.) afin d'appréhender pleinement cet impact.

Désinscription des clients

Il est essentiel, pour la satisfaction client et la réputation de votre entreprise, de communiquer avec professionnalisme et empathie l'arrêt d'un service. Prévoyez un délai suffisant avant l'arrêt pour permettre aux clients de migrer vers une autre solution, de préférence une solution pour laquelle vous pouvez fournir des instructions ou des recommandations de migration. Une communication claire et utile à ce stade du processus est déterminante pour la satisfaction client.

Vous souhaitez en savoir plus sur tous les composants et les équipes impliqués dans le cycle de vie des services ? Consultez le site de PagerDuty. guide sur la propriété avec service complet pour un aperçu complet de tout ce qu'implique la possession, la construction et l'exploitation d'un service en production.