Blog

Le cycle de vie d'un service

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

Les services sont l'épine dorsale de nos systèmes. Qu'il s'agisse de microservices fonctionnels ou de composants logiques d'une application traditionnelle, ils constituent les éléments qui composent nos activités. Nous ne pouvons pas faire de l'informatique sans services.

Mais qui est responsable de la gestion d'un service dans votre entreprise ou organisation ? Les différents acteurs impliqués dans le cycle de vie d'un service ne se limitent pas aux ingénieurs logiciels. Il peut s'agir de responsables de programme, de propriétaires de produits, d'équipes de développement durable (ingénieurs SRE/opérations) et de parties prenantes de l'entreprise, pour n'en citer que quelques-uns.

Les personnes occupant ces postes apportent différents types de contributions au fil du cycle de vie de nos services. Lorsque nous réfléchissons à la manière dont ces contributions évoluent au cours du « cycle de vie » d'un service, nous devons tenir compte de trois phases principales : la conception, l'exécution et la fin de vie.

Conception

Il s'agit du début d'un service, lorsqu'il en est à ses balbutiements. Au cours de cette phase, nous devons prendre en compte quelques facteurs clés, notamment les besoins des clients, les exigences de pré-production et la préparation à la production.

Les besoins du consommateur

Chaque service, même celui qui se trouve au plus profond de la pile interne de votre entreprise, a quelqu'un ou quelque chose qui le consomme et attend un résultat donné. Ces quelqu'un ou quelque chose sont ses clients. Les équipes de gestion de services complets doivent s'efforcer de comprendre leurs clients. Leurs besoins sont-ils satisfaits ? Le service pourrait-il leur être plus utile ? Parfois, ces consommateurs de votre service ne savent même pas quoi demander pour que votre service leur soit plus utile.

Comprendre les besoins des clients nécessite d'adopter une mentalité de produit. Peu importe que les consommateurs de votre service s'inscrivent sur votre site Web et vous paient de l'argent ou que votre service soit consommé par d'autres applications internes, il faut adhérer aux principes de gestion de produits contribuera à garantir une expérience formidable à tous les consommateurs du service.

Pré-production

Avant que votre service soit prêt à être dévoilé, vous avez besoin d'un endroit pour le tester et le comprendre. Il est essentiel que vos environnements de pré-production soient aussi similaires que possible au « monde réel » : ils n'ont pas besoin d'être configurés pour la même échelle, mais des différences majeures entre la pré-production et la production entraîneront des maux de tête à l'avenir. Les préceptes de Livraison continue exige que tous les environnements de préproduction correspondent à la production, à l'exception de l'échelle. N'oubliez pas : dans les environnements de niveau inférieur, nous ne testons pas seulement notre code, mais également le processus de déploiement.

Préparation à la production

Lorsqu'il est temps de lancer un nouveau service, il est essentiel de faire preuve de discipline en matière de préparation, également appelée « préparation à la production ». Voici quelques éléments clés que nous recommandons :

  • S'engager avec le nécessaire équipes de production (Équipes SRE, Opérations, Développement Durable)
  • Définir (et tester) les notifications d'alerte
  • Rédaction d'une première cahier d'exécution
  • Réalisation d'examens internes (audits de sécurité, etc.)

Durée

Une fois qu'un service est déployé en production, la phase de conception ne se termine pas réellement. N'oubliez pas que les services ne sont jamais « terminés » ; nous les améliorons constamment. Cependant, leur déploiement en production introduit également de nombreuses opérations quotidiennes de votre service, telles que la maintenance, l'itération et le déploiement de 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.

En plus de la conception en cours, certaines contributions supplémentaires sont nécessaires une fois que votre service est opérationnel en production. Plus important encore, maintenant que votre service est utilisé par de vrais clients, la façon dont vous communiquez avec eux est essentielle.

Versionnage

L'une des principales façons de communiquer avec les consommateurs de votre service est d'adopter une stratégie de gestion des versions solide et claire. Cela permet à vos clients de comprendre ce qu'ils peuvent attendre de votre service et de ne pas être surpris par les changements. Par exemple, si votre service présente une API, envisagez d'utiliser Gestion sémantique des versions d'API pour aider les consommateurs à comprendre les fonctionnalités et les capacités qui leur sont proposées et leur permettre de migrer en douceur vers des versions plus récentes.

Communication

Bien que la gestion des versions soit une méthode implicite de communication avec les consommateurs d'une API, vous ne pouvez pas simplement gérer les versions de vos points de terminaison et en rester là. Vous devez également communiquer avec vos clients pour définir les attentes. La manière exacte dont vous procéderez variera en fonction des besoins de ses consommateurs. Mais en règle générale, vous souhaiterez disposer d'au moins deux moyens différents (au-delà de la gestion des versions) pour annoncer à vos clients les fonctionnalités déployées ou les modifications introduites, en particulier s'il s'agit de modifications « de rupture ».

Deux méthodes peu exigeantes et très interactives pour établir ce type de communication consistent à fournir à la fois des listes de diffusion et journaux des modifications . Donner aux clients la possibilité de s'abonner aux annonces de modifications par courrier électronique peut sembler redondant en raison des autres mécanismes dont nous disposons. Mais la réalité est que tout ce que vous devez annoncer aux utilisateurs de votre service n'est pas nécessairement directement lié à une modification publiée. Les listes de diffusion vous permettent de gérer avec élégance les situations inhabituelles. En revanche, la tenue d'un journal des modifications détaillé donne aux clients la possibilité de s'abonner et de référencer des modifications spécifiques introduites au fil du temps. Vos clients peuvent décider du niveau de communication adapté à leurs besoins.

Apprendre des incidents

Aucun service n’est parfait. Des incidents peuvent survenir, mais ils constituent une excellente occasion d’en apprendre davantage sur le service et ses utilisateurs, à condition de tirer parti de ces opportunités.

Par exemple, lorsque des incidents de service se produisent, une pratique essentielle est effectuer régulièrement autopsies pour comprendre ce qui s'est passé. Lorsque des éléments d'action sont découverts dans le cadre d'une autopsie, ils doivent être hiérarchisés dans flux de travail de l'équipe de service . Équipe de service Propriétaires de produits devraient participer à des réunions d’autopsie afin de contextualiser pleinement et d’aider à prioriser ces éléments d’action.

Coucher de soleil

Même si ce n'est généralement pas agréable de dire au revoir, il peut arriver que votre équipe ou votre organisation décide de mettre un service hors service. Il est important de mettre en place un plan et un processus cohérent pour le retrait d'un service qui ne se limite pas à « l'arrêter ».

Dépréciation ou retraite

Vous comptez maintenir le service en service, mais ne plus y apporter d'améliorations ? Dans ce cas, vous pouvez envisager de le rendre obsolète. Il s'agit d'une méthode permettant de définir des attentes différentes pour les consommateurs du service, tout en lui permettant de leur apporter une certaine valeur ajoutée.

Si vous envisagez de fermer complètement le service, vous le retirerez à une date précise. Il est généralement courant de déprécier un service pendant un certain temps avant son retrait complet afin que les consommateurs aient le temps de passer à une autre solution.

Identifier les clients et déterminer l'impact sur l'entreprise

Assurez-vous de pouvoir identifier les personnes qui utilisent encore votre service avant de le supprimer. Vous pourrez peut-être le déterminer à l'aide de méthodes telles que les journaux d'activité ou d'autres approches programmatiques.

En plus d'identifier les clients à contacter pour une communication d'obsolescence/retraite, cela vous aidera à comprendre l'impact commercial de la fermeture de ce service. la haute direction au sein de votre organisation pour faciliter la communication et la quantification de l'impact commercial de la suppression du service. La haute direction doit faciliter les discussions avec d'autres services de l'organisation (par exemple, les ventes, le support, la réussite client) pour créer une compréhension plus complète de l'impact commercial de la suppression d'un service.

Débarquement des clients

Il est essentiel pour la satisfaction des clients et pour la perception et la réputation de votre organisation de communiquer l'abandon/le retrait d'un service de manière professionnelle et bienveillante. Prévoyez suffisamment de temps avant le retrait pour permettre aux clients de passer à une autre solution, de préférence une solution pour laquelle vous êtes en mesure de fournir des instructions ou des recommandations de migration. Des communications claires et utiles dans cette partie du processus peuvent faire la satisfaction du client ou l'empêcher.

Vous souhaitez en savoir plus sur tous les composants et équipes impliqués dans le cycle de vie des services ? Découvrez le guide de PagerDuty Guide de la propriété à service complet pour un aperçu complet de tout ce qui concerne la possession, la création et l'exécution d'un service en production.