Kezdő cloudosként egy céges projektben erősen a dapr toolkit felé hajlok, mint orchestration réteg, ha valakinek van tapasztalata vele, vagy jobb jelöltje, ne fogja vissza magát.
Amire szükségünk van:
- Maximális számolási teljesítmény a lényeg (hibatűrés, georedundancia stb csak másodlagos, de esetleg később opció kell hogy legyen)
- Input request stream - output request stream a követelmény, semmit nem kell tárolni, legfeljebb statisztikákat, logokat
- Jelenleg több százas datacenter géppark szolgál ki minket, erről állunk át valamilyen cloudos technológiára
- 100% on-prem futtatási lehetőség, lehetőleg csak ingyenes open source eszközökkel, de burst terheléseket Azure-ba lehessen küldeni (muszáj Azure-t használni)
- Elég rugalmasan átkonfigurálható mikroszerviz hálózat kell nekünk (pl kiderülhet hogy egy gépen belülre kell költöztetni eddig különélő szerviz komponenseket stb)
- A mikroszervizek c++ ban lesznek írva, Grpc-n kommunikálnak (ez jól egybevág a dapr megoldásaival)
Ahogy elképzeljük:
- Grpc-n beérkező kéréseket fogunk szétosztani (1 MB - max 10 GB, tipikusan 50 MB)
- ehhez Grpc toolkit-tel generált c++ szervizeket haszálunk
- Ezekhez csak dapr sidecar-ok fognak direktben kapcsolódni, azok egymással is Grpcvel beszélnek (ahogy az dapr-ban standard)
- vegyesen Redis alapú pub/sub megoldást használunk, és direkt (aszinkron) szerviz-szerviz hívásokat
- a feladatok nagy részét pub-sub queue-re rácsatlakoztatott c++ feldolgozók végzik, amik egy eredmény queue-be teszik a kész resultokat
Ami nem világos:
- dapr elég jó-e erre
- a vázolt megoldás elég jó-e erre
Előre is köszi a hozzászólásokat.