Forside

Vår teknologi

SWeather gjør data fra romfartøy og observatorier om til romværvarsler, automatisk og døgnet rundt. Et lite team bygger det på en moderne .NET-plattform.

Arkitektur

Systemet er delt i uavhengige deler, slik at hver del kan endres uten å ødelegge de andre.

  • En modulær monolitt: én tjeneste bygget av uavhengige moduler.
  • Hver modul har egne lag for kontrakter, domene, data og API.
  • Modulene kommuniserer gjennom en kildegenerert mediator i prosessen og gjennom integrasjonshendelser på en meldingsbuss.
  • Arkitekturtester stopper bygget når én modul avhenger av en annen.

Moderne plattform

Vi bygger på oppdaterte versjoner av verktøyene våre og holder koden streng.

  • .NET 11 med runtime async og nullable-referansetyper overalt.
  • ASP.NET Core med Minimal API, OpenAPI og versjonerte endepunkter, samt Blazor Server.
  • Microsoft Aspire for det lokale miljøet.
  • Datatilgang med Entity Framework Core og Dapper.
  • Streng bygging: hver advarsel er en feil, og kodestilen sjekkes under byggingen.
  • Flerspråklighet: russisk, engelsk, kinesisk, finsk og norsk.

Kunstig intelligens

KI hjelper med å forklare romværet, og KI-agenter kan bruke dataene våre.

  • Microsoft.Extensions.AI og OpenAI-kompatible klienter.
  • Microsoft Agent Framework.
  • DeepL.
  • Tesseract OCR.
  • En MCP-server med verktøy for KI-agenter.

Lagring og meldinger

Hver type data ligger i lagringen som passer den.

  • PostgreSQL med PostGIS.
  • ClickHouse.
  • Garnet og en hybridbuffer i to nivåer.
  • RustFS, en S3-kompatibel objektlagring.
  • RabbitMQ og Rebus.

Ytelse

Tunge beregninger går raskt og sløser ikke med minne.

  • SIMD-vektorisering og FMA-instruksjoner i Geopack.
  • Geopack-beregninger og dataparsere uten minneallokeringer.
  • NativeAOT: Geopack er et native bibliotek som Python bruker uten .NET.

Visualisering

Grafer og kart tegnes automatisk på serveren.

  • Vårt eget bibliotek bygget på ScottPlot, grafer i WebP.

Tester

Hver endring kontrolleres automatisk før den når brukerne.

  • Enhetstester i hvert repositorium.
  • Integrasjonstester med PostgreSQL, RabbitMQ og S3-lagring i containere.
  • Arkitekturtester og tester av avhengighetscontaineren.
  • Tester av grafgjengivelse.
  • Ytelsestester med BenchmarkDotNet mot ytelsesforringelse.

Containere og drift

Systemet leveres i containere og rapporterer sin egen helse.

  • Docker-bilder bygget i flere trinn; byggingen er automatisert med Fallout.
  • OpenTelemetry, Prometheus, Loki, Tempo og Grafana; helsesjekker og forretningsmålinger.
  • En diagnostikk-sidecar samler minnedumper og sporinger uten å stoppe tjenesten.
  • Kontinuerlig integrasjon sjekker stil, bygger, tester og publiserer hver endring.

Åpen kildekode

Vi støtter åpen kildekode: våre vitenskapelige biblioteker og infrastrukturbiblioteker er publisert åpent på GitHub, NuGet.org og PyPI.

Kobler til serveren igjen…

Tilkoblingen mislyktes. Prøver igjen om sekunder.

Kunne ikke koble til igjen.
Prøv igjen eller last inn siden på nytt.

Serveren har satt økten på pause.

Kunne ikke gjenoppta økten.
Last inn siden på nytt.