Évaluation détaillée de la demande - AWS Conseils prescriptifs

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Évaluation détaillée de la demande

L'objectif d'une évaluation détaillée des applications est de comprendre parfaitement l'application ciblée et son infrastructure associée (calcul, stockage et réseau). Des données de haute fidélité sont nécessaires pour éviter les pièges. Par exemple, il est courant que les organisations supposent qu'elles comprennent parfaitement l'application. C'est naturel, et c'est vrai dans de nombreux cas. Cependant, afin de minimiser les risques pour l'entreprise, il est important de valider les connaissances institutionnelles et la documentation statique en obtenant autant que possible des données programmatiques. Cela permettra de s'occuper du gros du processus de découverte. Vous pouvez vous concentrer sur les éléments de données provenant de sources alternatives, telles que les informations spécifiques à l'entreprise, les feuilles de route stratégiques, etc.

L'essentiel est d'éviter les modifications de dernière minute pendant et après la migration. Par exemple, lors de la migration, il est important d'éviter les modifications basées sur des dépendances non identifiées qui pourraient nécessiter l'inclusion d'un serveur dans une vague de migration en cours. Peu de temps après la migration, il est important d'éviter les modifications en fonction des exigences associées à la plate-forme afin d'autoriser le trafic ou de déployer des services supplémentaires. Ces types de modifications imprévues augmentent le risque de problèmes opérationnels et de sécurité. Nous vous recommandons vivement d'utiliser des outils de découverte programmatique pour valider les modèles de trafic et les dépendances lors de l'évaluation détaillée des applications.

Au début de l'évaluation, vous devez identifier les parties prenantes de l'application. Ce sont généralement les suivants :

  • Responsables des unités commerciales

  • Propriétaires de l'application

  • Architectes

  • Opérations et support

  • Équipes chargées de l'activation du cloud

  • Équipes de plateformes spécifiques, telles que le calcul, le stockage et les réseaux

Il existe deux approches pour une découverte détaillée. La découverte du haut vers le bas commence par l'application, voire par l'utilisateur, et s'étend jusqu'à l'infrastructure. Il s'agit de l'approche recommandée lorsque l'identification de l'application est claire. À l'inverse, la découverte ascendante commence par l'infrastructure et s'étend jusqu'à l'application ou au service et à ses utilisateurs. Cette approche est utile lorsque les programmes de migration sont pilotés par des équipes d'infrastructure et lorsque le application-to-infrastructure mappage n'est pas clair. En général, vous utiliserez probablement une combinaison des deux.

Pour approfondir une application, les diagrammes d'architecture existants constituent un bon point de départ. S'ils ne sont pas disponibles, créez-en un en fonction des connaissances actuelles. Ne sous-estimez pas l'importance de cette tâche, même pour de simples stratégies de migration de réhébergement ou de relocalisation. Le traçage de diagrammes architecturaux vous aide à identifier les inefficiences qui peuvent être rapidement corrigées par des modifications mineures dans le cloud.

Selon que vous adoptez une approche descendante ou ascendante, le diagramme initial tracera les composants et services de l'application ou les composants de l'infrastructure tels que les serveurs et les équilibreurs de charge. Une fois les principaux composants et interfaces identifiés, validez-les à l'aide des données programmatiques issues des outils de découverte et des outils de surveillance des performances des applications. Les outils doivent prendre en charge l'analyse des dépendances et fournir des informations de communication entre les composants. Chaque composant composant cette application doit être identifié. Documentez ensuite les dépendances vis-à-vis d'autres applications et services, internes et externes.

En l'absence d'outils pour valider les dépendances et le mappage, une approche manuelle est requise. Par exemple, vous pouvez vous connecter aux composants de l'infrastructure et exécuter des scripts pour collecter des informations de communication telles que les ports ouverts et les connexions établies. De même, vous pouvez identifier les processus en cours d'exécution et les logiciels installés. Ne sous-estimez pas l'effort requis pour la découverte manuelle. Les outils de programmation peuvent capturer et signaler la plupart des dépendances en quelques jours, à l'exception de celles qui se produisent à des intervalles plus longs (généralement un faible pourcentage). La découverte manuelle peut prendre des semaines pour collecter et fusionner tous les points de données, et elle peut toujours être sujette à des erreurs et à des données manquantes.

Procédez à l'obtention des informations spécifiées dans la section des exigences en matière de données pour chaque application priorisée et pour l'infrastructure mappée. Ensuite, utilisez le questionnaire suivant pour vous guider dans le processus d'évaluation détaillé. Rencontrez les parties prenantes identifiées pour discuter des réponses à ces questions.

Général

  • Quel est le niveau de criticité de cette application ? Est-ce que cela génère des revenus ? S'agit-il d'une application stratégique ou d'une application commerciale de soutien ? S'agit-il d'un service d'infrastructure de base partagé par d'autres systèmes ?

  • Existe-t-il un projet de transformation en cours pour cette application ?

  • S'agit-il d'une application interne ou externe ?

Architecture

  • Quel est le type d'architecture actuel (par exemple, SOA, microservices, monolith) ? Combien de niveaux comporte l'architecture ? Est-il étroitement accouplé ou faiblement couplé ?

  • Quels sont les composants (par exemple, calcul, bases de données, stockage à distance, équilibreurs de charge, services de mise en cache) ?

  • Qu'est-ce que les APIs ? Décrivez-les, notamment le nom de l'API, les opérations URLs, les ports et les protocoles.

  • Quelle est la latence maximale tolérée entre les composants et entre cette application et d'autres services ou applications ?

Opérations

  • Dans quels lieux fonctionne cette application ?

  • Qui gère l'application et l'infrastructure ? Sont-ils gérés par des équipes internes ou AWS partenaires ?

  • Que se passe-t-il si cette application tombe en panne ? Qui est concerné ? Quel en est l'impact ?

  • Où se trouvent les utilisateurs ou les clients ? Comment accèdent-ils à l'application ? Quel est le nombre d'utilisateurs simultanés ?

  • À quand remonte la dernière mise à jour technologique ? Une actualisation est-elle prévue dans le futur ? Dans l'affirmative, quand ?

  • Quels sont les risques et les problèmes connus liés à cette application ? Quel est l'historique des pannes et des incidents de gravité moyenne à élevée ?

  • Quel est le cycle d'utilisation (pendant les heures ouvrables) ? Quel est le fuseau horaire de fonctionnement ?

  • Quelles sont les périodes de gel des modifications ?

  • Quelle est la solution utilisée pour surveiller cette application ?

Performances

  • Que montrent les informations sur le rendement recueillies ? L'utilisation est-elle pointue ou constante et prévisible ? Quels sont le délai, l'intervalle et la date des données de performance disponibles ?

  • Certaines tâches par lots planifiées font-elles partie de cette application ou interagissent-elles avec elle ?

Cycle de vie des logiciels

  • Quel est le taux de variation actuel (hebdomadaire, mensuel, trimestriel ou annuel) ?

  • Quel est le cycle de vie du développement (par exemple, test, développement, assurance qualité, UAT, pré-production, production) ?

  • Quelles sont les méthodes de déploiement de l'application et de l'infrastructure ?

  • Qu'est-ce que l'outil de déploiement ?

  • Cette application ou infrastructure utilise-t-elle l'intégration continue (CI) /la livraison continue (CD) ? Quel est le niveau d'automatisation ? Quelles sont les tâches manuelles ?

  • Quelles sont les exigences en matière de licence pour l'application et l'infrastructure ?

  • Qu'est-ce que le contrat de niveau de service (SLA) ?

  • Quels sont les mécanismes de test actuels ? Quelles sont les étapes du test ?

Migration

  • Quelles sont les considérations relatives à la migration ?

À ce stade, tenez compte de tout élément à prendre en compte lors de la migration de cette application. Pour une évaluation plus complète et précise, obtenez des réponses à cette question auprès des différentes parties prenantes. Comparez ensuite leurs connaissances et leurs opinions.

Résilience

  • Quelle est la méthode de sauvegarde actuelle ? Quels sont les produits utilisés pour la sauvegarde ? Quel est le calendrier de sauvegarde ? Quelle est la politique de conservation des sauvegardes ?

  • Quels sont l'objectif de point de reprise (RPO) et l'objectif de temps de restauration (RTO) actuels ?

  • Cette application dispose-t-elle d'un plan de reprise après sinistre (DR) ? Dans l'affirmative, quelle est la solution DR ?

  • Quand a eu lieu le dernier test DR ?

Conformité et sécurité

  • Quels sont les cadres réglementaires et de conformité qui s'appliquent à cette application ? Quelles sont les dates du dernier et du prochain audit ?

  • Cette application héberge-t-elle des données sensibles ? Quelle est la classification des données ?

  • Les données sont-elles cryptées en transit ou au repos, ou les deux ? Qu'est-ce que le mécanisme de chiffrement ?

  • Cette application utilise-t-elle des certificats SSL ? Qu'est-ce que l'autorité émettrice ?

  • Quelle est la méthode d'authentification pour les utilisateurs, les composants et les autres applications et services ?

Bases de données

  • Quelles sont les bases de données utilisées par cette application ?

  • Quel est le nombre habituel de connexions simultanées à la base de données ? Quels sont le nombre minimum et le nombre maximum de connexions ?

  • Quelle est la méthode de connexion (par exemple, JDBC, ODBC) ?

  • Les chaînes de connexion sont-elles documentées ? Dans l'affirmative, où ?

  • Quels sont les schémas de base de données ?

  • La base de données utilise-t-elle des types de données personnalisés ?

Dépendances

  • Quelle est la dépendance entre les composants ? Notez toutes les dépendances qui ne peuvent pas être résolues et qui nécessiteront la migration des composants ensemble.

  • Les composants sont-ils répartis sur différents sites ? Quelle est la connectivité entre ces sites (par exemple, WAN, VPN) ?

  • Quelles sont les dépendances de cette application par rapport aux autres applications ou services ?

  • Quelles sont les dépendances opérationnelles ? Par exemple, les cycles de maintenance et de publication tels que l'application de correctifs aux fenêtres.