На главную

Наши технологии

SWeather автоматически и круглосуточно превращает данные космических аппаратов и обсерваторий в прогнозы космической погоды. Его делает небольшая команда на современной платформе .NET.

Архитектура

Система разделена на независимые части, поэтому каждую можно менять, не ломая остальные.

  • Модульный монолит: один сервис из независимых модулей.
  • У каждого модуля свои слои контрактов, домена, данных и API.
  • Модули общаются через генерируемый при компиляции медиатор и через интеграционные события в шине сообщений.
  • Архитектурные тесты не пропускают зависимость одного модуля от другого.

Современная платформа

Мы работаем на актуальных версиях инструментов и держим код в строгости.

  • .NET 11 с runtime async и nullable-ссылками во всём коде.
  • ASP.NET Core с Minimal API, OpenAPI и версионированием, а также Blazor Server.
  • Microsoft Aspire для локального окружения.
  • Доступ к данным через Entity Framework Core и Dapper.
  • Строгая сборка: любое предупреждение — ошибка, стиль кода проверяется при сборке.
  • Мультиязычность: русский, английский, китайский, финский и норвежский.

Искусственный интеллект

AI помогает объяснять космическую погоду, а AI-агенты могут пользоваться нашими данными.

  • Microsoft.Extensions.AI и OpenAI-совместимые клиенты.
  • Microsoft Agent Framework.
  • DeepL.
  • Tesseract OCR.
  • MCP-сервер с инструментами для AI-агентов.

Хранилища и обмен сообщениями

Каждый вид данных хранится там, где ему место.

  • PostgreSQL с PostGIS.
  • ClickHouse.
  • Garnet и двухуровневый гибридный кэш.
  • RustFS — S3-совместимое объектное хранилище.
  • RabbitMQ и Rebus.

Производительность

Тяжёлые расчёты выполняются быстро и не расходуют память впустую.

  • SIMD-векторизация и FMA-инструкции в Geopack.
  • Расчёты Geopack и парсеры данных без выделения памяти.
  • NativeAOT: Geopack — нативная библиотека, которой Python пользуется без .NET.

Визуализация

Графики и карты строятся на сервере автоматически.

  • Наша библиотека на основе ScottPlot, графики в формате WebP.

Тесты

Каждое изменение проверяется автоматически, прежде чем дойдёт до пользователей.

  • Модульные тесты в каждом репозитории.
  • Интеграционные тесты с PostgreSQL, RabbitMQ и S3-хранилищем в контейнерах.
  • Архитектурные тесты и тесты контейнера зависимостей.
  • Тесты отрисовки графиков.
  • Бенчмарки на BenchmarkDotNet против деградации производительности.

Контейнеры и эксплуатация

Система поставляется в контейнерах и сама сообщает о своём состоянии.

  • Docker-образы с многоэтапной сборкой; сборка автоматизирована на Fallout.
  • OpenTelemetry, Prometheus, Loki, Tempo и Grafana; health check'и и бизнес-метрики.
  • Диагностический sidecar снимает дампы памяти и трассировки без остановки сервиса.
  • CI проверяет стиль, собирает, тестирует и публикует каждое изменение.

Открытый код

Мы за открытый код: наши научные и инфраструктурные библиотеки опубликованы на GitHub, NuGet.org и PyPI.

Переподключение к серверу…

Не удалось переподключиться. Повтор через с.

Не удалось переподключиться.
Повторите попытку или обновите страницу.

Сервер приостановил сессию.

Не удалось возобновить сессию.
Обновите страницу.