horao

Research Module Overview

This document provides an overview of the research module in the HORAO project, which contains various validation suites for different aspects of distributed systems.

In order to install the corresponding libraries for research, execute the following:

poetry install --with research

Research Structure

The research folder is organized into several subdirectories, each focusing on a specific research area related to distributed systems:

1. Distributed Systems Consistency

This area focuses on testing and validating consistency models in distributed systems:

2. DevOps Practices

This area examines deployment patterns and operational practices:

3. Security in Multi-Cloud Environments

This area focuses on security aspects across multi-cloud deployments:

4. Telemetry and Observability

This area examines system observability capabilities:

5. Cloud Resource Management

This area focuses on efficient cloud resource utilization:

Data Collection

Each research area conducts validation tests that generate datasets stored in the research/data directory. These datasets are organized by research area and test type, containing various metrics and measurements from test executions.

The data_validation.ipynb Jupyter notebook provides comprehensive statistical validation of these datasets, including:

Running Validations

The research module provides several ways to run validations:

  1. Individual area validations:
    # Example for running consistency tests
    python -m research.distributed_systems_consistency.run_validation
    
  2. All validations at once:
    python -m research.run_all_validations
    
  3. Specific test validations:
    python -m research.distributed_systems_consistency.run_validation --test network_partition
    

Integration with HORAO

The research module leverages core HORAO components:

Data Analysis

After running validations, use the data_validation.ipynb notebook to analyze generated datasets and identify patterns, anomalies, or areas for improvement in the distributed system design.

The notebook provides: