Fault Tolerance by Design Diversity: Concepts and Experiments