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.
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é.
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.
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.
- L5
Surface produit
Couverture: Hors périmètreLa surface produit est construite dans l'ingénierie produit. Cette catégorie commence en dessous.
- L4
Services et API
Couverture: PartielLa 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: PartielOù 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ètreLe 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 chargeProvisionnement 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: PartielComportement 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.
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.
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.
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.
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.
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é.
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.
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.
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.
Les preuves derrière cette page.
La réalisation, le document et les écrits auxquels cette page renvoie.
- RéalisationUn gestionnaire d'affichage à privilèges séparésLe niveau le plus bas qu'atteigne une réalisation : des parties indépendantes amenées à démarrer comme un seul système, et à continuer de démarrer après une mise à jour.
- DocumentsExemples de livrablesLa liste de contrôle de déploiement et de retour arrière, présentée comme le format avec ce qu'il consigne et le risque qu'il écarte.
- ServiceSécurité et profondeur systèmeLes frontières d'accès et la gestion des identifiants qui accompagnent le travail sur l'environnement d'exécution.
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.