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ä.