## La régulation de l’activité d’une application par homéostasie

Passes temps

### Homéostasie
Composants: * capteurs (fournissent une valeur entre 0 et 1) * déterminateur stratégie * actionneur
Stratégies: * diminution critique (capteurs à 1) * diminution * maintien * augmentation * augmentation critique (capteurs à 0)
### Capteurs pour le crawler
#### CPU ``` 1 | / | / | / Utilisation nominale du cpu | ______________/ entre 20% et 80% sinon trop | / ou trop peu utilisé | / | / |_/_ _ _ _ _ _ _ _ _ _ _ 0 <- mesure -> 1 ```
#### Logs ``` 1 | /-------------------- | / |/ | Capteur en "alerte" dès | qu'il y a des erreurs | | |_ _ _ _ _ _ _ _ _ _ _ _ 0 <- mesure -> 1 ```
### Résultat
Actions prises : ```json {"time":"14:25:42.100","strategy":"dramaticIncrease"} {"time":"14:26:22.894","strategy":"dramaticIncrease"} {"time":"14:26:59.476","strategy":"dramaticIncrease"} {"time":"14:27:18.195","strategy":"decrease"} {"time":"14:27:41.290","strategy":"decrease"} {"time":"14:30:18.256","strategy":"dramaticDecrease"} ```
Montée en charge progressive ![](pictures/cpu_usage.png)
### Evolutions possibles * Ajout de facteurs (ie: utilisation rabbitmq) * Machine learning
### Questions ?