La garder simple
Évitez l’ingénierie excessive de la conception de l’architecture, du code d’application et des opérations. |
---|
Dans la plupart des cas, c’est le contenu que vous supprimez qui mène aux solutions les plus fiables, plutôt que celui que vous ajoutez. La simplicité réduit la surface d’exposition à des fins de contrôle, ce qui réduit le manque d’efficacité et les configurations incorrectes potentielles ou les interactions inattendues. D’autre part, la simplification excessive peut introduire des points de défaillance uniques. Maintenez une approche équilibrée.
Exemple de scénario
Contoso Travel acquiert et intègre une jeune petite entreprise qui développe une application de voyage web populaire. La popularité de l’application est due à son modèle métier de négociation de remises importantes avec les chaînes hôtelières et les compagnies aériennes, ainsi qu’à l’utilisation des réseaux sociaux pour mener des campagnes marketing intenses et hautement ciblées.
La version existante du produit de cette entreprise a été développée dans nodejs et s’exécute sur des machines virtuelles hébergées entre le centre de données local et AWS.
Réduire les composants de charge de travail
Ajoutez des composants à votre architecture uniquement s’ils vous aident à atteindre les valeurs métier cibles. Préservez la simplicité du chemin critique.
La conception des exigences métier peut entraîner une solution simple qui est facile à implémenter et à gérer. Évitez un nombre trop important de composants critiques, car chacun d’eux est un point de défaillance important.
Problématique de Contoso
- L’un des composants de l’application nouvellement acquise facilite la collecte des commentaires des utilisateurs directement sur le site web une fois qu’ils ont effectué une réservation. Cette fonctionnalité est rarement utilisée, car la plupart des utilisateurs l’ignorent. Il existe un mécanisme de boucle de commentaires fort des utilisateurs qui fonctionne via les comptes de réseaux sociaux de l’entreprise, et qui est utilisé de manière intensive à des fins de marketing des interactions des utilisateurs. Ce mécanisme est utilisé beaucoup plus souvent que la fonction de commentaires du site web.
Application de l’approche et résultats
- Dans le cadre de la sortie initiale de la version de Contoso Travel de l’application, l’équipe décide de supprimer le composant de commentaires du site web de la charge de travail.
- Un codebase plus petite réduit le coût de maintenance et des opérations. De plus, dans ce cas, il n’y a aucun impact sur les exigences métier.
Normaliser votre cycle de vie de développement logiciel
Établissez des normes dans l’implémentation du code, le déploiement et les processus, et documentez-les. Identifiez les possibilités d’application de ces normes à l’aide de validations automatisées.
Les normes garantissent la cohérence et réduisent les erreurs humaines. Les approches telles que les conventions d’affectation de noms standard et les guides de style de code peuvent vous aider à maintenir la qualité et à faciliter l’identification des ressources lors de la résolution des problèmes.
Problématique de Contoso
- L’équipe de développement de l’entreprise n’a pas défini beaucoup de normes de développement et de processus. Plusieurs bibliothèques utilisées présentent des fonctionnalités en double, les styles de codage ne sont pas appliqués et les pipelines de mise en production ne disposent pas de portes de mise en production formelles qui utilisent des tests automatisés.
- L’équipe de charge de travail Contoso réalise que le coût de maintenance du nouveau codebase est trop élevé en raison du manque de cohérence dans les styles et de l’utilisation incohérente de bibliothèques et des modèles de conception.
- Les incidents sont fréquents après les mises à jour majeures en production, et nécessitent parfois la restauration des mises à jour ou des correctifs logiciels de déploiement intermédiaire. La fréquence de ces types de problèmes de déploiement oblige l’équipe à utiliser un modèle de support de mobilisation de toutes les ressources lors de la mise en production des mises à jour. Facteur aggravant, les problèmes fréquents ont un impact négatif sur la réputation de Contoso en raison de l’une expérience utilisateur médiocre.
Application de l’approche et résultats
- L’équipe qui reprend le support de la nouvelle application fait un effort pour renforcer la cohérence en appliquant des styles de codage, en normalisant un ensemble commun de bibliothèques et de modèles de conception, ainsi qu’en formalisant l’utilisation de portes de mise en production basées sur des tests automatisés.
- Bien que ces modifications soient implémentées, l’équipe de charge de travail respecte ses exigences de documentation standard. Tous les nouveaux outils, modèles de conception et styles adoptés sont soigneusement documentés, ce qui permet désormais à l’équipe de comprendre et de maintenir la charge de travail de manière plus efficace. L’équipe peut à présent identifier plus facilement les écarts dans les normes lors de l’exécution de révisions du code.
Réduire les opérations et la charge de développement
Tirez parti des fonctionnalités fournies par la plateforme et des ressources prédéfinies qui peuvent vous aider à atteindre efficacement les objectifs métier.
Cette approche réduit le temps de développement. Elle vous permet également de vous appuyer sur des pratiques testées et éprouvées qui ont été utilisées avec des charges de travail similaires.
Problématique de Contoso
- Pour la sortie initiale sous la marque Contoso Travel, la solution nodejs sera migrée de machines virtuelles vers App Services afin de tirer parti des nombreuses fonctionnalités de fiabilité natives fournies par le service.
- La version déployée sur les machines virtuelles contient une quantité importante de code personnalisé nécessaire pour l’instrumentation.
Application de l’approche et résultats
- Lors de la migration initiale vers App Services, l’équipe est parvenue à supprimer tout le code d’instrumentation personnalisé en implémentant l’autoinstrumentation App Insights dans App Services.
- L’équipe peut également tirer parti de plusieurs autres fonctions App Service natives telles que la mise à l’échelle automatique, l’intégration de Key Vault et la redondance zonale.