Skip to content

Latest commit

 

History

History
708 lines (703 loc) · 20.2 KB

cct-exigences.md

File metadata and controls

708 lines (703 loc) · 20.2 KB

Référentiel des exigences applicables

Note: le terme développeur est générique et fait référence à l’individu ou l’organisation pluridisciplinaire qui est chargée de produire et maintenir : la base de code, le corpus de tests et les fichiers de description d’infrastructure et les documentation technique et usager.

Il est responsable de l'adéquation et de la qualité de la solution au besoin des usagers en collaborant de manières étendues avec les autres acteurs impliqués.

ID Type Exigence Nature Catégorisation
EX1 I Respect des standards et des normes applicables industrielles, européennes et étatiques, pour la conception de solutions numériques hébergées dans le cloud native (kubernetes), Design Système de l’État, RGAA, RGS, RGI, doctrine Cloud au centre. Ministériel Autres normes et standards
EX2 P Principe de non déviance et de non fragmentation des normes. Les éventuelles instructions de niveaux inférieurs ne peuvent prévaloir sur les présentes exigences. Ministériel Autres normes et standards
EX3 P Dans le cadre d’un appel d’offre en cas d’incohérence entre les documents, le cct et la liste des exigences sont supérieurs. Le lecteur est invité à vérifier s’il dispose de la version la plus à jour. Ministériel Autres normes et standards
EX4 P Conformité au modèle de responsabilité Cloud Pi Native. Les développeurs/concepteurs sont responsables de la partie développement, du maintien en continu d’une qualité constante de la solution, l’absence de défaut de sécurité et de correction avant toute mise en production. Ministériel Modèle d'Opération
EX5 P Intégration technique de l’usine logicielle à la chaîne De SecOps, maintien par le développeur en condition de disponibilité et de sécurité du point de vérité du logiciel et code d’infrastructure. Exigence limitée à la durée du marché pour un opérateur économique, mais permanent pour la direction d’application. Ministériel Modèle d'Opération
EX6 I Conformité au modèle de responsabilité “you built it - you run it”

Les développeurs/concepteurs sont responsables du bon fonctionnement de l’application en production. ( il collabore avec l’hébergeur le cas échéant)

Ministériel Modèle d'Opération
EX7 P L’orchestration de la sauvegarde est de la responsabilité de l’application Ministériel Modèle d'Opération
EX8 I L’équipe projet teste régulièrement sa capacité à restaurer l’ensemble de l’architecture et des données de l’application avec un scénario de test connu à l’avance Ministériel Modèle d'Opération
EX9 I Couverture fonctionnelle des tests du front end permet de s’assurer de non-régression majeure. (exigence à affiner) Ministériel Modèle d'Opération
EX10 I La couverture fonctionnelle des tests unitaires du back end est de 100% Ministériel Modèle d'Opération
EX11 I Le développeur, usagers de la chaîne de livraison logicielle, signale les éventuels défauts ou besoin d’évolution, il soumet le cas échéant une rectification ou une évolution sur le dépôt de code après l’avoir testé. Ministériel Modèle d'Opération
EX12 P Mise en place organisationnelle et technique de modalité de collaboration étendue continue intégrant le flux d’erreur de la chaîne de DevSecOps Ministérielle. (« shift-lent »)

Exigence limitée à la durée du marché pour un opérateur économique, mais permanente pour la direction d’application.

Ministériel Modèle d'Opération
EX13 P Conformité au modèle de responsabilité Cloud Pi Native L'opérateur de la chaîne CI/CD est responsable du build, de l'exécution des tests fournis et du déploiement de l'application Ministériel Modèle d'Opération
EX14 P Le développeur prend en compte qu’aucune modification n’est effectuée directement en production. Il n’accède pas à l’API kubectl.

Toute modification en production doit être effectuée via un versionning du point de vérité GitOps

Ministériel Modèle d'Opération
EX15 P L'ensemble des éléments permettant de compilers / builder, tester et exécuter l'application ainsi que déployer l'infrastructure et ouvrir les flux réseaux doivent être fournis par le Développeur / Concepteur à l'opérateur de la chaîne CI/CD Ministériel Modèle d'Opération
EX16 I Intégration technique de l’usine logicielle à la chaine DevSecOps, maintien par le développeur en condition de disponibilité et de sécurité du point de vérité du logiciel et code d’infrastructure et du WebHook ”shift-left” par l’équipe de développement tout au long du contrat. Ministériel Modèle d'Opération
EX17 I L’agilité (à l’échelle) en tant que cadre de travail privilégié et mise en place d’un principe de livraison continue par lot de taille réduite. Ministériel Modèle d'Opération
EX18 P Mise en place d’un principe de collaboration étendue, continue et intégré des processus de livraisons, adéquation de la solution au besoin via l’observabilité, maintien de la qualité, de la disponibilité et de sécurité depuis le développement juste qu’à la production Ministériel Modèle d'Opération
EX19 P La disponibilité cible de l’application est de la responsabilité de la direction d’application qui définit l’architecture technique et organisationnelle en s’appuyant sur les services de l’opérateur et la disponibilité visée Ministériel Infrastructure
EX20 I Formation et de maintien réguliers des compétences des personnels à la technologie Cloud Native (kubernetes), l’agilité et au devsecops, intégration et contribution à la communauté de pratiques Cloud (pi) Native. Ministériel Modèle d'Opération
EX21 I Remontée des défauts, contribution à l’enrichissement de la chaîne DevSecOps et l’offre Cloud Native. Ministériel Modèle d'Opération
EX22 P Le code applicatif doit être testé avant d'être soumis à la chaîne CI/CD du ministère(fonctionnellement, techniquement et sécurité) Ministériel Code Applicatif & Image
EX23 P L’ensemble des logs techniques, fonctionnels et de sécurité doivent obligatoirement être centralisés en utilisant les patterns d'observabilité recommandés. Cela concerne les login d’utilisateur et de de consommation des API. Ministériel Code Applicatif & Image
EX24 P Le concepteur/développeur est libre d'utiliser le langage de programmation de son choix issu de la liste des langages autorisés. ( principaux langages ) Ministériel Code Applicatif & Image
EX25 P L’application doit pouvoir être monitorable techniquement et fonctionnellement (dont healthcheck) au travers du service de télémétrie mis à disposition

Mise à disposition obligatoire au sein de la solution des API de supervision auto descriptive /health (json+problem) et /metrics (prométheus) et Intégration obligatoire de la solution dans la (ou les) chaîne(s) de supervision

Ministériel Code Applicatif & Image
EX26 I Respect du guide d'éco-conception. La conception frugale vis à vis des ressources d’infrastructures consommées et l'impact vis-à-vis du terminal de la solution. Ministériel Code Applicatif & Image
EX27 I Le back-end la couverture des tests unitaires est 100% code sur et xx sur le front end les défauts éventuels rencontrés lors de l’usage sont implémentés sous la forme de test et capitalisés dans la base de cas de tests avant l’écriture d’un correctif. CloudNative Code Applicatif & Image
EX28 P Les pods “stateless” doivent pouvoir être redémarrés à tout instant sans perte de sessions, données ou de transactions. Ministériel Code Applicatif & Image
EX29 P Les sources d’OS servant à la constitution de images de l’application proviennent exclusivement de souche os ayant un support long terme (LTS) maîtrisé par un processus organisationnel à révision contrôlé. Ministériel Code Applicatif & Image
EX30 I Utilisation privilégiée de composants open-source et avec une communauté active Ministériel Code Applicatif & Image
EX31 I L’architecture de la solution est modulaire, le couplage organisationnel et technique est lâche entre les composants (ex APi)., les services de haut niveau ne dépendent pas de l’interface offerte de composants de niveau inférieur ( dépendance inversion principe) Ministériel Code Applicatif & Image
EX32 P Les conteneurs s'exécutent sans requérir à l’utilisateur root et les ports réseaux internes sont > 1024. ( l’exécution de conteneur non rootless est bloquée en production ) Ministériel Code Applicatif & Image
EX33 I Le point de présence et de vérité de la sauvegarde est assuré par un service de type S3 indépendant et résilient de l’architecte de production dont le Concepteur/Développeur s’assure régulièrement de sa capacité à restaurer. Ministériel Code Applicatif & Image
EX34 P La compilation et la certification des images est effectuée au sein de l’orchestrateur DevSecOps ministériel. Le développeur s’organise autour de cette contrainte. Ministériel Code Applicatif & Image
EX35 P Choix d’un hébergement adapté à la nature de la donnée manipulée et selon le cadre légal adapté. (Cloud public, Cloud Régalien référencé par la doctrine Cloud au centre, Dédié) Ministériel Infrastructure
EX36 I Les services applicatifs d'observabilité (logs et télémétrie), registre d'image et gestion des secrets mis à disposition doivent être utilisés. Ministériel Services Mutualisés
EX37 I Consommation systématique des données de référence ministérielles Ministériel Services Mutualisés
EX38 I Référencement des objets Métiers dans le catalogue des données Métier du MI Ministériel Services Mutualisés
EX39 P Les services applicatifs mis à disposition ne doivent pas être remplacés par un équivalent

Consommation systématique des services socles à enrollment automatisés : IAM, service d’échange (ident/authent, preuve probante/non-répudiation, exposition de services, référentiels, pfs SIG, ...)

Ministériel Services Mutualisés
EX40 I Le service de stockage objet doit systématiquement être utilisés pour les sauvegardes Ministériel Services Mutualisés
EX41 P Le bastion doit systématiquement être utilisé pour les accès applicatifs d'administration Ministériel Services Mutualisés
EX42 I L’application minimise le besoin d’échange synchrone, les échanges asynchrones sont réalisés via un bus de message. Ministériel Intéractions & Flux
EX43 Séparation des flux usagers, de services et d’administration, utilisation privilégiée du protocole http Ministériel Intéractions & Flux
EX44 I Toute API exposée doit l'être via le service API management mis à disposition qui identifie + authentifie les consommateurs. L’application met en place la traçabilité en s’appuyant sur la solution d’observabilité disponible. Ministériel Intéractions & Flux
EX45 I Les objets et données métiers doivent systématiquement être exposés via le service d'API management fourni.

Enrollement automatisé des objets métiers via API ( restful, GraphQL,gRPC) sur les passerelles API Cloud Native. La direction de programme fournit une description de son api et précise les conditions d’accès:

La direction de programme fournit un kit de proxification de l’APi de son service avec une donnée libre d’usage (Ex: Données anonymisees ) permettant de dérouler des cas de tests significatifs. Le kit livré est déployable sous la forme d’un micro-service déployable dans Kubernetes via chart Helm qui est inscrit au catalogue du mi.. (Voir les exemples de service d’accélération)

Ministériel Intéractions & Flux
EX46 P L’application est responsable de fournir un fichier de description (ex: open api / swagger ) qui respecte les standards, préalablement à l’enrôlement en production l’application une vérification est effectuée et l’application doit corriger les défauts. CloudNative Code Applicatif & Image
EX47 P Utilisation de la variabilisation des configuration d’environnement, des services de support (bdd, cache distribué,..), service externe, connectivités.. .la configuration de l’application ne doit jamais être codé en dur (Principe de Configuration) CloudNative Code Applicatif & Image
EX48 I Maximiser l'accès aux Services tiers et locaux au travers de chaînes de connexion standard (non spécifique au fournisseur de solutions pour favoriser les changements de Service sans impact utilisateur (Principe de d’architecture BackEnd) CloudNative Code Applicatif & Image
EX49 P L'application s'exécute sans état (Stateless). Ses processus/microservices sont indépendants les uns des autres. Les états sont stockés dans un magasin de données centralisé. Cela pour garantir un mise à l'échelle et continuité de service de l’application (Principe Stateless) CloudNative Code Applicatif & Image
EX50 P Garantir l’idempotence des transactions en cas d'arrêt progressif des services (SIGTERM). CloudNative Code Applicatif & Image
EX51 I S’efforcer de minimiser le temps de démarrage du processus/service en limitant l’environnement au juste nécessaire. (principe Jetable) CloudNative
EX52 I L’application est prévue pour un déploiement en continu, la conception du modèle de données permet à la version future et l’actuelle de coexister sans impact fonctionnel. CloudNative Code Applicatif & Image
EX53 I L’ensemble des services applicatifs/processus de l’application, et ses services de supports génèrent leurs propres flux d'événement bruts pour apporter une visibilité sur son comportement. La norme de nommage des fluxs d'événement est, sans condition, respectée. (Principe d’observabilité) CloudNative Code Applicatif & Image
EX54 P Toutes applications mise en ligne doit fournir une API clairement définie et documentée, pour faciliter sa consommation future des contrats d’interface (Principe de Api first) CloudNative Code Applicatif & Image
EX55 P La performance de toutes les transactions réalisées par l’application doit être mesurable en temps réel pour contrôler la qualité de services et soutenir les investigations en cas de dysfonctionnement. Il est préconisé d’assurer la surveillance de l’application à minima au travers de : Flux d'événement de performance applicative, flux d'événement et donnée pour analyse et reporting métier, journaux d’intégrité et du système (Principe de Télémétrie) CloudNative Code Applicatif & Image
EX56 P Identification utilisateur : L’application doit obligatoirement utiliser le SSO Agent disponible et/ou France connect pour les citoyens CloudNative Code Applicatif & Image