Ügyfelünk, egy startup az Európai Űrügynökség Üzleti Inkubációs Központjában, egy ismerős szoftveres problémával keresett meg minket egy szokatlan területen. Felhasználóik CubeSateket terveznek (a hagyományosnál jóval olcsóbban és gyorsabban elkészíthető, cipősdoboz méretű kisműholdakat), ám mindezt egymással össze nem kapcsolt desktop eszközök, táblázatok és egyedi szkriptek foltozott halmazával végezték. Nem volt egyetlen olyan hely sem, ahol egy projektet meg lehetett volna tervezni, elvégezni a mögötte álló nehézszámításokat, megosztani az eredményeket a csapattársakkal, vagy megjeleníteni a végeredményt. A ránk váró feladat egy klasszikus SaaS-kihívás volt: egy széttöredezett, kizárólag szakértők számára használható desktop munkafolyamatot kellett egységes, több felhasználós, böngészőalapú termékké alakítani. A megoldásnak zökkenőmentesen kellett megjelenítenie a bonyolult 3D-jeleneteket bármilyen modern laptopon, igény szerint kellett futtatnia a számításigényes szimulációkat, biztonságosan kellett tárolnia és verzióznia a felhasználók projektjeit a felhőben, és zökkenőmentesen kellett skálázódnia az ügyfélkör bővülésével, mindezt a munka által megkövetelt numerikus pontosság feláldozása nélkül.
Felhőalapú SaaS platform építése műholdas küldetéstervezéshez
A kihívás

A megoldás
A SatZone-t nulláról terveztük és építettük fel, teljes felhőalapú SaaS termékként. A frontend egy kizárólag a böngészőben futó, egyoldalas React alkalmazás, amelyben a Babylon.js hajtja meg az interaktív 3D-megjelenítést: így a felhasználók valós időben és bármilyen modern eszközön láthatják, milyen pályán („orbiton”) kering egy műhold a Föld körül, és hogyan illeszkedik ez a földi állomásokhoz. A backend két rétegre oszlik: egy Python szolgáltatásra, amely a felhasználói fiókokat, a projektadatokat, az API-kat és az orkesztrációt kezeli, valamint nagy teljesítményű C++ modulokra, amelyek a nehéz numerikus feladatokat végzik, például kiszámítják, mennyi akkumulátor-kapacitása lesz egy műholdnak egy adott pillanatban, vagy milyen erős lesz a földi rádiókapcsolata (a mérnökök ezeket „energiamérlegnek” és „rádiókapcsolat-mérlegnek” nevezik). Minden AWS-en fut, felügyelt szolgáltatásokat használva a számításhoz, a tároláshoz, a hitelesítéshez, az adatbázisokhoz és az automatikus skálázáshoz, így a platform akkor is gyorsan reagál, ha egy mérnök van bejelentkezve, és akkor is, ha száz. Az eredmény egy több felhasználós webalkalmazás, amelyben a csapatok valós időben dolgoznak közös projekteken, olyan teljesítménnyel, biztonsággal és megbízhatósággal, amilyet egy modern SaaS terméktől elvárhatunk.

Az eredmény
A SatZone egyetlen webes platformmal váltotta ki a desktop eszközök korábbi zűrzavarát: bármelyik csapattag megnyithatja a böngészőjében, és azonnal dolgozhat vele, telepítés, fájlszinkronizálás és verzióütközések nélkül. A korábban heteken át tartó, oda-vissza egyeztetésekkel járó tervezési ciklusok most egy közös környezetben zajlanak, ahol a változtatások mindenki számára valós időben láthatók. Mivel a nehéz számítási feladatok a felhőbe kerültek, a felhasználóknak többé nincs szükségük erős helyi gépekre, a termék pedig a világ bármely pontján egyenletes teljesítménnyel szolgálhatja ki az ügyfeleket. Ügyfelünk számára a projekt bebizonyította, hogy egy kis startup is képes kiforrott, éles üzemi minőségű SaaS terméket szállítani, amely felveszi a versenyt (sőt sok tekintetben túl is szárnyalja) az iparág által évek óta használt hagyományos desktop eszközöket. Számunkra ez zászlóshajó példa arra, hogyan ötvözzük a modern webfejlesztést, a felhőinfrastruktúrát és a komoly háttér-számítási kapacitást egyetlen, koherens termékben, függetlenül attól, milyen területet szolgál ki.
A projekt technológiai stackje
React

Babylon.js

Python

Amazon Web Services (AWS)
C++
