Ce blog est un résumé, avec beaucoup de liens, du mouvement logiciel antifragile. Librement, Antifragile est la propriété de prospérer à travers la volatilité et la surprise. Vous pouvez vous référer au manifeste du logiciel antifragile en herbe mais notez aussi que cela va plus loin que robuste / résilient (voir l'image ci-dessous)
Image de Bilgrin Ibryam
Dans le cadre d'une Transformation numérique voici six choses à considérer.
1. Injection de défaillance adaptative
Hormesis est l'acceptation d'un peu de difficulté à se protéger contre de plus gros ennuis. Dans le logiciel, nous utilisons l'injection de failles pour améliorer la couverture des tests en ajoutant quelques problèmes. L'injection de fautes seule n'est pas antifragile, mais si le système apprend aussi des problèmes, alors il devient antifragile. Voir aussi Injection de fautes simulées ( SFI ) et Injection de fautes logicielles implémentées ( SWIFI ).
IEEE Xplore énuméra plusieurs outils d'injection de failles et voici un aperçu de techniques . L'injection de défauts peut être matérielle ou logicielle et peut se produire n'importe où dans le cycle de développement. Au moment de la compilation, Fault Injection Description Language ( FIDL ) permet d'étendre les outils d'injection basés sur un compilateur avec de nouveaux modes de défaillance. Et, Injection de fautes orientée objet générique ( GOOFI ) est un regard érudit sur les outils de superposition pour pré-runtime.
2. Détection et réparation automatiques de bogues
La correction automatique de bogues répare un logiciel sans programmeur humain. Un groupe est dédié à cela. La réparation automatique de bogues est antifragile parce que les progrès dans ce domaine améliorent directement le logiciel.
Les gens du MIT ont étudié comment importer des contrôles d'autres applications ( CodePhage ) et effectuer des correctifs logiciels automatiques ( Genesis ). La vérification de modèle sémantique averti ( SAMC ) peut être utilisée pour la détection de bugs. Claire Le Goues, dans FTFY explique les progrès de la recherche dans la réparation automatique des bogues et GenProg est une méthode générale pour faire cela sur les systèmes hérités
. Échec en tant que service
Le terme peut ne pas coller, mais Failure-as-a-Service ( FaaS ) permet aux services de cloud computing d'effectuer des exercices de défaillance. Gremlin est dit être un FaaS et Daniel Bryant parle du service d'échec de Netflix avec des tests d'injection d'échec ( FIT ).
FaaS est antifragile parce qu'il semble à l'échec comme une bonne chose .
4. Autoscaling et Microservices
Le logiciel avec autoscaling / microservices, et la surveillance de retour, est antifragile parce qu'il y a un gain de contrainte accrue. Les exemples sont AWS mise à l'échelle des instances EC2 au niveau de l'infrastructure et OpenShift mise à l'échelle des conteneurs d'applications. Russ Miles a écrit un livre sur la création d'un logiciel anti-intrusion avec microservices. Et, voici quelques articles Perficient sur l'autoscaling avec IBM WebSphere et MQ et IIBA HQ Oracle WebCenter et Élastique Beanstalk .
5. Russ Miles dit que nous «essayons de livrer tout en étant préparés à l'inconnu.» Vikas Singh a quelques conceptions pour un logiciel antifragile et suggère «une forte cohésion et un couplage lâche» et «en mettant tout nouveau code en production, le rendre débranché au cas où les choses tourneraient mal. "
Programmation Génétique ( GP ) est des dessins qui sont attendus pour évoluer et il y a un groupe dédié à cela. Considérons l'open source comme une approche antifragile et aussi des plateformes bien vieillies parce que la mortalité technologique diminue avec le temps ( Lindy Effect ). Utiliser les principes de l'ingénierie du chaos pour traiter l'incertitude et des travaux sur Lineage Driven Failure Injection ( LDFI ) pour étudier la tolérance aux pannes des systèmes.
Une culture antifragile
Pour produire un logiciel plus antifragile, le processus de développement et la culture devraient être eux-mêmes plus antifragiles. Le logiciel a tendance à refléter la culture dans laquelle il a été créé, de sorte que l'organisation est importante. Rich Armstrong décrit un processus avec une culture de FaaS, holacracy et le leadership serviteur. Bilgrin Ibryam états antifragilité exige la bonne organisation et la structure de l'équipe.
déploiement continu et DevOps est antifragile. Werner Vogel, CTO chez Amazon, parle de la mise à l'échelle, du déploiement continu et d'un lieu de travail du futur qui embrasse les erreurs. Il dit: «Les modèles commerciaux numériques d'aujourd'hui exigent des versions plus petites et plus fréquentes pour réduire les risques.»
Le logiciel du futur aura une équipe d'auteurs de bogues rock-star!
Le logiciel du futur aura une équipe d'auteurs de bogues rock-star!
Source link