Iustin Pop
June 2012
Ganeti is…
How to ensure that the code is correct? How to do it without proprietary tools?
Many possibilities:
… but they do not work in isolation
Except for the design, each step needs to use automated methods in order to assure a consistent quality across the code base: people are creative, but not consistent; computers are “dumb”, but persistent.
Each phase can introduce/find bugs in multiple parts of the software:
pylint
as a type-checker, rather than just lint toolburnin
tool, which runs non-destructively on the cluster
QA
suite
x.y.0
release is made only after canary is successfulimplemented ht
mini-type system for Python, used also for data validation:
ht.TListOf(ht.TElemOf([1, 2, 3]))
ht.TString
ht.TAnd(ht.TNotNone, ht.TString)
ht.TDictOf(ht.TElemOf(["a", "b", "c"]), ht.TInt)
And many others…
Thank you for listening!