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 |