Aller au contenu
Services / Plateforme et infrastructure

L'environnement d'exécution dessous, reconstructible depuis les sources.

Provisionnement, conteneurs, pipelines et chemin du commit au service en fonctionnement. Construit pour qu'un environnement puisse être recréé depuis le dépôt plutôt que reconstitué de mémoire par une seule personne, et pour qu'une mauvaise version puisse être annulée.

01 : À qui cela s'adresse

Les situations qui conviennent.

Arrive d'ordinaire sous la forme d'un symptôme plutôt que d'une demande : les déploiements font peur, ou personne ne sait reconstruire la préproduction.

  • Une infrastructure montée à la main une fois et que seule une personne comprend désormais.
  • Un processus de déploiement assez effrayant pour que les versions soient regroupées, ce qui rend chacune plus risquée que la précédente.
  • Un environnement qui ne peut pas être recréé, de sorte que la préproduction et la production ont discrètement divergé.
  • Un produit qui va bientôt avoir besoin de plus d'une seule machine, où la prochaine étape doit être décidée plutôt qu'improvisée.
  • Un historique d'incidents dont le thème récurrent est que rien n'a remonté tant qu'un utilisateur ne l'avait pas signalé.
02 : Ce que cela traite

Là où les environnements d'exécution dérapent.

L'infrastructure se dégrade en silence. Une modification faite dans la console pendant un incident ne revient jamais dans la configuration, et l'écart entre ce qui est écrit et ce qui tourne se creuse jusqu'à ce que la version écrite soit une fiction. Le moment qui compte est celui où il faut reconstruire, et où l'on découvre que c'est impossible.

Le deuxième problème est que le retour arrière est le plus souvent théorique. Un chemin de déploiement auquel tout le monde fait confiance a presque toujours été testé dans le sens aller et jamais dans le sens retour : la première vraie tentative d'annuler une version a donc lieu sous pression, au pire moment, par quelqu'un qui lit une documentation qu'il n'a jamais utilisée.

Le troisième est une observabilité qui rapporte la santé plutôt que la vérité. Des tableaux de bord indiquent que le processus tourne, alors que la file derrière lui a grossi en silence pendant six heures. Ce qui mérite d'être instrumenté, c'est ce qui serait faux en premier, et cela suppose de savoir comment le système tombe en panne, pas seulement qu'il est en ligne.

03 : La forme

La pile, et la place de cette catégorie.

Cette catégorie commence sous le produit et descend. Ce qui se trouve au-dessus est nommé aussi, pour que la frontière soit visible plutôt que supposée.

Une architecture de référence, c'est-à-dire la forme sur laquelle le travail est conçu, et non un relevé de systèmes livrés. Elle nomme des couches et des responsabilités, jamais des produits : ce qui tourne à une couche donnée est une décision prise avec vous pendant le cadrage, pas ici à l'avance.

l'échelle partagée, marquée pour la plateforme et l'infrastructure
reconstructible depuis les sources
  • L5

    Surface produit

    Couverture: Hors périmètre

    La surface produit est construite dans l'ingénierie produit. Cette catégorie commence en dessous.

  • L4

    Services et API

    Couverture: Partiel

    La façon dont les services sont empaquetés, démarrés, limités et publiés, plutôt que ce qu'ils font.

  • L3

    Données et état

    Couverture: Partiel

    Où vit l'état, et si un environnement qui le porte peut être recréé depuis le dépôt plutôt que reconstitué de mémoire par une seule personne.

  • L2

    Modèles et agents

    Couverture: Hors périmètre

    Le travail sur les modèles et les agents relève de l'IA et de l'automatisation. Rien ici ne suppose qu'un produit en ait.

  • L1

    Exécution et infrastructure

    Couverture: Pris en charge

    Provisionnement en code, mise en place des conteneurs et de l'environnement d'exécution, pipelines, et chemin du commit au service en fonctionnement avec un retour arrière éprouvé. Cela construit la plateforme et la remet ; ce n'est pas un contrat de support.

  • L0

    La couche du dessous

    Couverture: Partiel

    Comportement des processus, limites de ressources et modes de défaillance lus là où ils se décident, pour que l'environnement d'exécution corresponde aux défaillances que le produit a réellement plutôt qu'à celles que l'on attend.

Ce que signifient les repères

Pris en charge
Cette catégorie est responsable de la couche. Elle est conçue, construite et remise dans le cadre de la mission.
Partiel
Le travail atteint la couche autant que la réalisation l'exige, et la profondeur ici relève d'une des autres catégories.
Hors périmètre
Volontairement hors de cette catégorie. La note du palier indique où va le travail à la place.
04 : Ce qui est livré

Ce que la mission produit.

L'infrastructure comme un artefact que vous gardez, pas comme une configuration dont quelqu'un se souvient.

  • Un provisionnement en code, pour qu'un environnement soit défini dans le dépôt plutôt que dans une console.
  • Une mise en place des conteneurs et de l'environnement d'exécution, avec les limites de ressources et le comportement en cas de défaillance rendus explicites.
  • Des pipelines CI/CD : ce qui s'exécute à chaque commit, ce qui conditionne une version, et ce qui l'arrête.
  • Un chemin de déploiement et de retour arrière, le retour arrière étant éprouvé plutôt que supposé.
  • Une journalisation, des métriques et une observabilité visant les défaillances que ce système a réellement.
  • Une liste de contrôle de déploiement et de retour arrière, pour que la procédure survive à la personne qui l'a écrite.
05 : Risque écarté

Ce à quoi vous n'êtes plus exposé.

Chaque élément est une défaillance qui porte un nom parce qu'elle est courante.

  • Un environnement que personne ne peut reconstruire, où la seule copie de la configuration est le système en cours d'exécution.
  • Découvrir pendant un incident que le chemin de retour arrière était théorique.
  • Un processus de livraison si risqué que les versions sont regroupées, ce qui aggrave le risque qu'il cherchait à éviter.
  • La défaillance silencieuse : un système qui se déclare sain pendant que le travail derrière lui s'accumule.
  • Une infrastructure qui vit dans le compte d'un fournisseur plutôt que dans le vôtre, de sorte que l'accès est quelque chose que vous devez demander.
06 : Ce que ce n'est pas

Le travail que nous refusons.

Les demandes d'infrastructure qui sont d'ordinaire mal formulées.

  • Une astreinte permanente 24 h/24, 7 j/7, ou un contrat d'infogérance. Cela construit la plateforme et la remet ; ce n'est pas un contrat de support.
  • Une migration vers le cloud choisie pour elle-même, sans problème à résoudre. Elle est cadrée d'abord comme une décision, et la réponse est souvent de ne pas migrer.
  • Kubernetes parce que c'est attendu. L'environnement d'exécution doit correspondre aux modes de défaillance que le produit a réellement, et c'est souvent quelque chose de plus petit qui convient.
  • Une mission de réduction des coûts où le chiffre cible est fixé avant que quiconque ait regardé ce qui tourne.
  • Un travail d'infrastructure dans un compte auquel nous ne pouvons pas recevoir un accès correctement délimité. Des identifiants permanents et étendus ne sont pas une solution de contournement.
07 : Passation

Ce qui reste entre vos mains.

L'infrastructure est la chose la plus facile à laisser dans un état que seul son auteur comprend : c'est donc là que la passation compte le plus.

  1. Tout dans vos comptes

    L'infrastructure tourne dans des comptes que vous possédez dès le départ. Rien n'est hébergé chez nous puis migré plus tard : il n'y a donc ni bascule ni dépendance à notre pérennité.

  2. La configuration dans le dépôt

    Le provisionnement en code signifie que l'environnement a une définition que votre équipe peut lire, relire et modifier. Reconstruire, c'est exécuter le code, pas reconstituer un souvenir.

  3. Une procédure de livraison qui a été exécutée

    Le chemin du commit à la production, les contrôles qui le jalonnent et les étapes exactes pour annuler une version, éprouvés pendant la mission plutôt que documentés et espérés.

  4. Les conditions qui déclenchent un retour arrière

    Pas seulement comment annuler une version, mais quand le faire : ce qu'il faut surveiller après un déploiement, et quelle valeur signifie qu'il faut s'arrêter. Un jugement écrit pendant qu'il est frais.

09 : Prochaine étape

Commencez par la contrainte.

Décrivez ce qui tourne aujourd'hui et ce que vous ne pouvez pas reconstruire pour le moment. Cela suffit d'ordinaire à cadrer la première étape.