測定処理パイプラインが生成する出力は第三者によって再現可能であり、検閲検知における透明性と説明責任を確保する。全ての測定処理ロジックはオープンソースであり、生データはS3データバケットを通じて公開されているのが特徴。

コア技術

  • FastAPI: 新しいマイクロサービスのためのモダンなPython Webフレームワーク
  • ClickHouse: 測定メタデータと分析用の主要データベース
  • PostgreSQL: 構造化データ用のリレーショナルデータベース(OONIRun設定など)
  • S3: 生の測定データのオブジェクトストレージ
  • Docker: サービスのコンテナ化
  • hatch: Pythonプロジェクトの管理とビルドシステム
  • AWS ECS: デプロイ用のコンテナオーケストレーション
TierServicesPurposeDependencies
Tier 0 (Critical)ooniprobeoonirunfastpathProbe communication, test coordination, real-time processingClickHouse, PostgreSQL, S3
Tier 1 (High Priority)measurementsfindingsData access, incident managementClickHouse, S3
Tier 2 (Standard)testlistsURL list managementGitHub API

データパイプライン

https://clickhouse.com/blog/ooni-analyzes-internet-censorship-data-with-clickhouse

マイクロサービスへの移行

OONIbバックエンドはモノリシックなFlask APIから個別のFastAPIベースのマイクロサービスへの移行が進んでいる。レガシーのFlask APIはapi/ディレクトリに残っている。