Etusivu

Teknologiamme

SWeather muuttaa avaruusalusten ja observatorioiden datan avaruussääennusteiksi automaattisesti ja ympäri vuorokauden. Sitä rakentaa pieni tiimi nykyaikaisella .NET-alustalla.

Arkkitehtuuri

Järjestelmä on jaettu itsenäisiin osiin, joten kutakin voi muuttaa rikkomatta muita.

  • Modulaarinen monoliitti: yksi palvelu, joka koostuu itsenäisistä moduuleista.
  • Jokaisella moduulilla on omat sopimus-, toimialue-, data- ja API-kerroksensa.
  • Moduulit viestivät käännösaikana generoidun prosessinsisäisen välittäjän ja viestiväylän integraatiotapahtumien kautta.
  • Arkkitehtuuritestit kaatavat käännöksen, jos moduuli riippuu toisesta moduulista.

Nykyaikainen alusta

Käytämme työkalujen ajantasaisia versioita ja pidämme koodin tiukkana.

  • .NET 11, runtime async ja nullable-viittaustyypit kaikkialla.
  • ASP.NET Core ja Minimal API, OpenAPI ja versioidut päätepisteet sekä Blazor Server.
  • Microsoft Aspire paikalliseen ympäristöön.
  • Datan käsittely Entity Framework Corella ja Dapperilla.
  • Tiukka käännös: jokainen varoitus on virhe, ja koodityyli tarkistetaan käännöksessä.
  • Monikielisyys: venäjä, englanti, kiina, suomi ja norja.

Tekoäly

Tekoäly auttaa selittämään avaruussäätä, ja tekoälyagentit voivat käyttää dataamme.

  • Microsoft.Extensions.AI ja OpenAI-yhteensopivat asiakkaat.
  • Microsoft Agent Framework.
  • DeepL.
  • Tesseract OCR.
  • MCP-palvelin, jossa on työkaluja tekoälyagenteille.

Tallennus ja viestintä

Jokainen datatyyppi on siihen sopivassa tallennuksessa.

  • PostgreSQL ja PostGIS.
  • ClickHouse.
  • Garnet ja kaksitasoinen hybridivälimuisti.
  • RustFS, S3-yhteensopiva objektitallennus.
  • RabbitMQ ja Rebus.

Suorituskyky

Raskaat laskelmat ovat nopeita eivätkä tuhlaa muistia.

  • SIMD-vektorointi ja FMA-käskyt Geopackissa.
  • Geopackin laskenta ja datan jäsentimet ilman muistinvarauksia.
  • NativeAOT: Geopack on natiivikirjasto, jota Python käyttää ilman .NETiä.

Visualisointi

Kaaviot ja kartat piirretään palvelimella automaattisesti.

  • Oma ScottPlotiin perustuva kirjasto, kaaviot WebP-muodossa.

Testit

Jokainen muutos tarkistetaan automaattisesti ennen kuin se päätyy käyttäjille.

  • Yksikkötestit jokaisessa repositoriossa.
  • Integraatiotestit, joissa PostgreSQL, RabbitMQ ja S3-tallennus ajetaan konteissa.
  • Arkkitehtuuritestit ja riippuvuuskontin testit.
  • Kaavioiden piirtotestit.
  • BenchmarkDotNet-suorituskykytestit suorituskyvyn heikkenemistä vastaan.

Kontit ja ylläpito

Järjestelmä toimitetaan konteissa ja raportoi itse tilastaan.

  • Vaiheittain rakennetut Docker-kuvat; käännös on automatisoitu Falloutilla.
  • OpenTelemetry, Prometheus, Loki, Tempo ja Grafana; terveystarkistukset ja liiketoimintamittarit.
  • Diagnostiikka-sidecar kerää muistivedokset ja jäljitykset pysäyttämättä palvelua.
  • Jatkuva integraatio tarkistaa tyylin, kääntää, testaa ja julkaisee jokaisen muutoksen.

Avoin lähdekoodi

Kannatamme avointa lähdekoodia: tieteelliset ja infrastruktuurikirjastomme on julkaistu avoimesti GitHubissa, NuGet.orgissa ja PyPI:ssä.

Yhdistetään palvelimeen uudelleen…

Yhdistäminen epäonnistui. Uusi yritys sekunnin kuluttua.

Yhdistäminen epäonnistui.
Yritä uudelleen tai lataa sivu uudelleen.

Palvelin keskeytti istunnon.

Istunnon jatkaminen epäonnistui.
Lataa sivu uudelleen.