API Failures in Openstack Cloud Environments

Musavi Mirkalaei, Seyed Pooya · 2017

Des histoires sur les pannes de service dans les environnements infonuagiques ont fait les manchettes recemment. Dans de nombreux cas, la fiabilite des interfaces de programmation d’applications (API) des infrastructures infonuagiques etaient en defaut. Par consequent, la comprehension des facteurs qui influent sur la fiabilite de ces APIs est importante pour ameliorer la disponibilite des services infonuagiques. Dans cette these, nous etudions les defaillances des APIs de la plateforme OpenStack ; qui est la plate-forme infonuagique a code source ouvert la plus populaire a ce jour. Nous examinons les bogues de 25 modules contenus dans les 5 APIs les plus importantes d’OpenStack, afin de comprendre les defaillances des APIs infonuagiques et leurs caracteristiques. Nos resultats montrent que dans OpenStack, un tiers de tous les changements au code des APIs a pour objectif la correction de fautes ; 7% de ces changements modifiants l’interface des APIs concernes (induisant un risque de defaillances des clients de ces APIs). Grâce a l’analyse qualitative d’un echantillon de 230 defaillances d’APIs et de 71 defaillances d’APIs ayant eu une incidence sur des applications tierces, nous avons constate que la majorite des defaillances d’APIs sont attribuables a de petites erreurs de programmation. Nous avons egalement observe que les erreurs de programmation et les erreurs de configuration sont les principales causes des defaillances ayant une incidence sur des applications tierces. Nous avons mene un sondage aupres de 38 developpeurs d’OpenStack et d’applications tierces, dans lequel les participants etaient invites a se prononcer sur la propagation de defaillances d’APIs a des applications tierces. Parmi les principales raisons fournies par les developpeurs pour expliquer l’apparition et la propagation des defaillances d’APIs dans les ecosystemes infonuagiques figurent : les petites erreurs de programmation, les erreurs de configuration, une faible couverture de test, des examens de code peu frequents, et une frequence de production de nouvelles versions trop eleve. Nous avons explore la possibilite d’utiliser des controleurs de style de code, pour detecter les petites erreurs de programmation et les erreurs de configuration tot dans le processus de developpement, mais avons constate que dans la plupart des cas, ces outils sont incapables de localiser ces types d’erreurs. Heureusement, le sujet des rapports de bogues, les messages contenues dans ces rapports, les traces d’executions, et les delais de reponses entre les commentaires contenues dans les rapports de bogues se sont averes tres utiles pour la localisation des fautes conduisant aux defaillances d’APIs.----------ABSTRACT: Stories about service outages in cloud environments have been making the headlines recently. In many cases, the reliability of cloud infrastructure Application Programming Interfaces (APIs) were at fault. Hence, understanding the factors affecting the reliability of these APIs is important to improve the availability of cloud services. In this thesis, we investigate API failures in OpenStack ; the most popular open source cloud platform to date. We mine the bugs of 25 modules within the 5 most important OpenStack APIs to understand API failures and their characteristics. Our results show that in OpenStack, one third of all API-related changes are due to fixing failures, with 7% of all fixes even changing the API interface, potentially breaking clients. Through a qualitative analysis of 230 sampled API failures, and 71 API failures that impacted third parties applications, we observed that the majority of API-related failures are due to small programming faults. We also observed that small programming faults and configuration faults are the most frequent causes of failures that propagate to third parties applications. We conducted a survey with 38 OpenStack and third party developers, in which participants were asked about the causes of API failures that propagate to third party applications. These developers reported that small programming faults, configuration faults, low testing coverage, infrequent code reviews, and a rapid release frequency are the main reasons behind the appearance and propagation of API failures. We explored the possibility of using code style checkers to detect small programming and configuration faults early on, but found that in the majority of cases, they cannot be localized using the tools. Fortunately, the subject, message and stack trace as well as the reply lag between comments included in the failures’ bug reports provide a good indication of the cause of the failure.

Read the paper · More papers on PaperTik