Aller au contenu principal

Spécification des Conditions requises pour l’Architecture

ProjetNouvelle architecture
ClientFoosus
TitreSpécification des Conditions requises pour l’Architecture
N° de Version du Document0.1
Date de Version du Document
Préparé parYoann Talon
Revu parAnthony Graignic
Date de Révision

Objet de ce document

La Spécification des Conditions requises pour l’Architecture fournit un ensemble de déclarations quantitatives qui décrivent ce qu'un projet de mise en œuvre doit faire pour se conformer à l'architecture. Le cahier des charges de l'architecture constitue généralement un élément majeur d'un contrat de mise en œuvre ou d'un contrat de définition plus détaillée de l'architecture.

Comme indiqué ci-dessus, le document de Spécification des Conditions requises pour l’Architecture accompagne le document de définition de l'architecture, avec un objectif complémentaire :

  • Le document de définition de l'architecture fournit une vue qualitative de la solution et vise à communiquer l'intention de l'architecte.
  • La spécification des exigences de l'architecture fournit une vue quantitative de la solution, en énonçant des critères mesurables qui doivent être respectés lors de la mise en œuvre de l'architecture.

*Source : TOGAF*

Conditions requises pour l’interopérabilité

L'interopérabilité est une condition essentielle pour l'architecture cible de Foosus.

Les différents services, API et systèmes internes doivent être capables de communiquer entre eux de manière fluide et transparente. Il est important de mettre en place des normes et des standards pour assurer la compatibilité entre les différents composants de l'architecture.

De plus, les développements doivent être réalisés en gardant à l'esprit l'interopérabilité, ce qui signifie que les équipes doivent travailler en étroite collaboration pour assurer la cohérence de l'ensemble du système.

Contraintes

La vision architecturale de Foosus se concentre sur la création d'une plateforme flexible, stable et extensible, basée sur les technologies actuelles, favorisant le meilleure rapport qualité/coût et offrant une expérience utilisateur exceptionnelle.

Pour réussir l'Etat Cible d'Architecture (ECA), il est essentiel de respecter les contraintes suivantes :

  • Maintenir la plateforme existante en mode "Maintenance" sans ajouter de nouvelles fonctionnalités,
  • Permettre la coexistence de deux plateformes pendant la période de transition,
  • Favoriser la croissance de l'entreprise en augmentant quotidiennement le nombre d'adhésions utilisateurs et d'adhésions de nouveaux fournisseurs,
  • Livrer plus rapidement de petits incréments dans la plateforme, et réduire le taux d'incidents en production à moins de 1/mois.

Hypothèses

IDHypothèseImpactPropriétaire
1Aucune nouvelle fonctionnalité ne sera développée dans la plateforme existante. Elle sera conservée en mode “Maintenance”ElevéCIO
2La nouvelle architecture sera construite en fonction des technologies actuelles.ModéréCIO
3L’architecture doit permettre d’obtenir le meilleur rapport Qualité-CoûtModéréCIO
4L’architecture peut inclure de nouveaux composants personnalisés ou des composants du commerce pour favoriser la flexibilité, la stabilité et l’extensibilité.FaibleCIO
5Les solutions open-source sont préférables aux solutions payantesFaibleCIO
6L'offre initiale impliquera la coexistence de deux plateformes et la montée en puissance empirique du volume d'utilisateurs qui migreront vers la nouvelle plateforme à mesure que le produit évoluera. Cette augmentation sera proportionnelle à l'évolution des fonctionnalitésElevéCPO
7La géolocalisation, si elle est modélisée suffisamment tôt dans la nouvelle plateforme, permettra d'introduire d'autres innovations en fonction de l'emplacement de l'utilisateur ou du fournisseur alimentaire.ModéréCPO

Mesure du succès

MétriqueTechnique de mesureValeur cibleJustification
Nombre d'adhésions d'utilisateurs par jourNombre d’inscription journalière à la plateformeAugmentation de 10%La nouvelle architecture doit accompagner la croissance de l’entreprise, notamment en augmentant le nombre d’adhésion quotidien.
Adhésion de producteurs alimentaires par moisNombre d’inscription à la plateforme4 adhésion / moisActuellement de 1,5/mois, nous souhaitons accélérer l’adhésion de nouveaux fournisseurs
Délai moyen de livraison en productionTemps entre chaque nouveau déploiementMoins d’une semaineActuellement à 3,5 semaines. Nous souhaitons livrer plus rapidement de petits incréments dans notre plateforme.
Taux d’incident en productionNombre d’incidents avérés en production sur 1 moisInférieur à 1/moisActuellement à plus de 25/mois, le taux d’incidence en production a une conséquence sur notre chiffre d’affaire.

Contrats de service (Business & Application)

Accords de niveau de service (SLA)

Le SLA est un contrat de service Business qui précise ce que le fournisseur de service (en l’état Foosus) promet à ses clients/utilisateurs en terme de temps de fonctionnement, de performance du service, réactivité, responsabilité, etc.

KPI et métriques

MétriqueEngagementMesure
Disponibilité97%Taux de disponibilité annuel
Récurrence d’incident en productionMoins de 1 / moisNombre d'incident en production

Niveau de service, Classification et Priorité

Niveau de sévéritéDescriptionRéponse cible
1. InterruptionServeur SaaS en panneImmédiat
2. CritiqueRisque élevé d'indisponibilité du serveurSous 10 minutes
3. UrgentImpact sur l'utilisateur final initiéSous 20 minutes
4. ImportantPotentiel d'impact sur les performances s'il n'est pas traitéSous 30 minutes
5. SupervisionProblème traité mais potentiellement impactant à l'avenirSous un jour ouvré
6. InformationnelRequête pour informationSous 48 heures

Réponse de service

ServiceDescriptionCible SLAMétrique de performance
1. InterruptionL’accès à la plateforme Foosus est impossibleImmédiatTemps de réponse entre le début du problème et la communication de Foosus
2. CritiqueRisque élevé de temps d’arrêt de la plateforme.En 10 minutesTemps de réponse entre le début du problème et la communication de Foosus
3. UrgentImpact de l’utilisateur final débuté.En 20 minutesTemps de réponse entre le début du problème et la communication de Foosus
4. ImportantRisque d'impact sur les performances en l'absence de mesures correctivesEn 30 minutesTemps de réponse entre le début du problème et la communication de Foosus
5. SupervisionProblème résolu mais potentiellement impactant pour le futurEn un jour ouvréTemps de réponse entre le début du problème et la communication de Foosus
6. InformationnelDemande d’informationEn 48 heuresTemps de réponse entre le début du problème et la communication de Foosus

Disponibilité du support de service

La couverture des services par Foosus, telle qu'elle est décrite dans le présent accord, suit le calendrier spécifié ci-dessous :

  • Support sur l’application : 9h à 18h, Lundi au Vendredi
  • Support téléphonique : 12 heures /jour, Lundi au Vendredi
  • Support par mail : 12 heures /jour, Lundi au Vendredi

Tableau des Objectifs et Indicateurs de niveau de service (SLO/SLI)

Les SLO définissent les objectifs que se fixe le propriétaire du service (Foosus) pour atteindre les accords de niveau de service (SLA) proposés aux .

CatégorieSLI (Service Level Indicator)SLO (Service Level Objectives)
API (Backends)
DisponibilitéProportion de requêtes réussies, telle que mesurées par les métriques des load-balancers Tout statut HTTP autre qu’entre 500-599 est considéré comme succès95% de succès
Temps de latenceLa proportion de requêtes suffisamment rapides, telle que mesurée par les métriques de l'équilibreur de charge.”Suffisamment rapide” est défini comme inférieur à 600ms ou inférieur à 1s90% des requêtes < 600ms; 99% des requêtes < 1s
HTTP Server (Frontends)
DisponibilitéProportion de requêtes réussies, telle que mesurées par les métriques des load-balancers Tout statut HTTP autre qu’entre 500-599 est considéré comme succès99% de succès
Temps de latenceLa proportion de requêtes suffisamment rapides, telle que mesurée par les métriques de l'équilibreur de charge.”Suffisamment rapide” est défini comme inférieur à 500ms ou inférieur à 900ms90% des requêtes < 500ms; 99% des requêtes < 900ms

Indicateurs de niveau de service (SLI)

Les SLI mesurent la conformité, via des indicateurs quantitatifs, aux objectifs de niveau de service (SLO).

Voir le tableau des SLO/SLI ci-dessus.

Implémentation

Ligne directrice pour l’implémentation

Les lignes directrices fixent des bonnes pratiques à suivre pour améliorer l’efficacité des équipes de développement et d’opération.

  • Quarterly and Weekly Planning : Planifiez vos activités en fonction de la roadmap de l’entreprise ou de vos services, afin d’évaluer sur 3 mois l’évolution et l’atteinte de vos objectifs. Planifiez également vos semaines de travail afin de fournir une transparence sur vos tâches quotidiennes et mesurer les étapes d’avancement semaine par semaine. Ces planifications permettent aussi aux équipes et personnes de mesurer, voir et d’apprécier de la progression au cours du temps.
  • Privilégier des échanges courts mais réguliers plutôt que des échanges longs mais ponctuels (Ateliers de conceptions, Example Mapping, Pair programming, etc). Cette directive permettra aux équipes de rester alignées dans le temps, et de stimuler l’intelligence collective.
  • Définir, partager et respecter des règles de développements, de syntaxe, de nommage des fichiers et du code, nomenclatures, qui soient communes afin de renforcer la lisibilité et la clarté.
  • Les processus de conception et développement doivent adopter une approche agile tel que DDD (Domain-Driven Design), BDD (Behaviour-Driven Design) et TDD (Test-Driven Development), DevOps, Lean, Craftmanship, .
  • Le code métier doit refléter le langage du domaine métier de Foosus, de ses consommateurs, fournisseurs, et toute autres utilisateurs des services. Un glossaire des termes du domaine devra être tenu, modifié et discuté autant de fois que nécessaire afin d’accroître une compréhension partagée des termes métiers.
  • Les travaux ou incréments sur le produits et les services Foosus sont soumis à une revue par des pairs avant leur déploiement.
  • 10 minutes Build : Faire en sorte de Build et tester chaque nouvel incrément dans le code source en moins de 10 minutes, afin d’assurer des retours plus rapides aux équipes de développement. Des builds rapides sont des fondations à une intégration et un déploiement continu efficaces.
  • L' architecture logicielle doit être la plus faiblement couplée, c'est à dire qu'elle doit séparer au mieux le code fonctionnel du code non fonctionnel, afin d'être agnostic face aux technologies et d'être plus rapide pour implémenter de nouvelles fonctionnalités

Spécification pour l’implémentation

Les spécifications sont des recommandations spécifiques aux projet d’implémentation de l’Etat Cible de l’Architecture Foosus.

  • L’accès aux services Foosus pour tous les utilisateurs se fera depuis l’URL https://foosus.com/ avec une URI différente pour les 3 types.
  • Les services (API, IAM, Systèmes internes) assurant le bon fonctionnement de la plateforme principale seront hébergées en tant que sous-domaine du domaine principal foosus.com, en respectant un nommage clair.
  • Les stratégies et plans de tests des systèmes Foosus doivent se baser sur une approche par les risques, afin d’identifier les risques produits et ajuster les efforts de test.

Standards et normes pour l’implémentation

Les standards sont reconnus comme des solutions appropriées au delà d’une organisation spécifique. De même, les normes sont des cadres internationaux, plus orientés sur le réglementaire.

  • Les systèmes d’exploitation utilisés pour toutes nos opérations sont des distributions GNU/Linux, ou leurs images de conteneurs associées.
  • Le processus de développement logiciel doivent adopter une approche de protection des données personnelles dites “Privacy by design
  • Les requêtes et réponses de nos serveurs web, applications et API doivent respecter les normes des codes HTTP définis dans la RFC2616.
  • Le développement de nos applications web doivent se prémunir des risques de sécurité les plus critiques, partagées internationalement par OWASP Top 10.
  • La qualité de l’entreprise tend à appliquer la norme de management de la qualité ISO 9001 pour améliorer ses processus.
  • La sécurité de nos systèmes d’informations doivent appliquer, du moins tendre vers, les normes internationales ISO 27001/27002/27005.

Conditions requises pour le management du service IT

  • Disponibilité : 97% (MTTR)
  • Récurrence d’incident en production : moins de 1 par mois (nombre d’incidents en production)
  • API (Applications serveur) :
    • Disponibilité : 95% de succès (proportion de requêtes réussies, telle que mesurées par les métriques des load-balancers. Tout statut HTTP autre qu’entre 500-599 est considéré comme succès)
    • Temps de latence : 90% des requêtes inférieures à 600ms et 99% des requêtes inférieures à 1s (proportion de requêtes suffisamment rapides, telle que mesurée par les métriques de l'équilibreur de charge)
  • Serveur HTTP (Applications web) :
    • Disponibilité : 99% de succès (proportion de requêtes réussies, telle que mesurées par les métriques des load-balancers. Toute statut HTTP autre qu’entre 500-599 est considéré comme succès)
    • Temps de latence : 90% des requêtes inférieures à 500ms et 99% des requêtes inférieures à 900ms (proportion de requêtes suffisamment rapides, telle que mesurée par les métriques de l'équilibreur de charge)

Ces métriques de performance devront être mesurées et suivies régulièrement par le comité de direction du projet pour s'assurer que les objectifs sont atteints.