Using Datalog for Effective Contiuous Integration Policy Evaluation
Containerisation and microservices have introduced unprece- dented complexity in system configurations, exacerbating the blast zone of misconfigurations and system failures. This complexity is further amplified within the DevOps paradigm, where developers are entrusted with the entire software development lifecycle, often without comprehensive insights into the impact of their configurations. This article explores using the declarative logic programming language Datalog in automating and optimizing configuration validation to mitigate these challenges.
We present an overview of a real-world case involving a software company with approximately 300 engineers, highlighting the challenges that lead to delegating mission-critical configuration validation to a declarative language.
With Datalog, we spearheaded an initiative to entirely deprecate a non- declarative solution in order to attempt to circumvent the problem of writing business logic alongside its evaluation. Our empirical analysis re- vealed a substantial reduction in maintenance efforts and user complaints, providing further evidence of Datalog’s potential in streamlining internal policy enforcement.
We propose a set of best practices, extrapolated from our findings, to guide organizations in both implementing and optimizing automatic configuration validation. These insights offer a strategic roadmap for harnessing declarative languages like Datalog to effectively navigate the intricate configuration landscapes of contemporary software systems.
Authors: Bruno Rucy Carneiro Alves de Lima, Kaarel Loide, Pelle Jakovits and Jevgeni Demidov
Bruno Rucy Carneiro Alves de Lima