Storskaliga datacenter och molntjänster har gjort systemkonfigurationen till ett utmanande problem. Flera brett publicerade avbrott har skyllts inte på programvara buggar, utan på konfiguration buggar. För att klara av detta använder tusentals organisationer systemkonfigurationsspråk för att hantera sin datorinfrastruktur. Av dessa är Puppet den mest använda med tusentals betalande kunder och många fler användare med öppen källkod. Hjärtat i Puppet är ett domänspecifikt språk som beskriver tillståndet i ett system. Puppet utför redan några grundläggande statiska kontroller, men de förhindrar bara ett smalt utbud av fel. Dessutom är testningen ineffektiv eftersom många fel bara utlöses under specifika maskintillstånd som är svåra att förutsäga och reproducera. Med flera exempel visar vi att ett nyckelproblem med Puppet är att konfigurationer kan vara icke-deterministiska. I detta dokument presenteras Repetition, ett verifikationsverktyg för Puppets konfigurationer. Repetitionen implementerar en ljudanalys, komplett och skalbar determinacy analys för Puppet. För att utveckla det, vi (1) presentera en formell semantik för Puppet, (2) använda flera analyser för att krympa våra modeller till en dragbar storlek, och (3) ram determinism-kontroll som decidable formler för en SMT lösare. Repetition utnyttjar sedan determinacy analys för att kontrollera andra viktiga egenskaper, såsom idempotency. Slutligen tillämpar vi Repearsal på flera verkliga Puppets konfigurationer.
Shambaugh m.fl. REF presenterar repetition, ett konfigurationsverifieringsverktyg för Puppet.
Rehearsal: a configuration verification tool for puppet
{'venue': 'PLDI 2016', 'journal': None, 'mag_field_of_study': ['Computer Science']}