Már Java alapokon hasít a Tesco útvonaltervező motorja
Újraírta áruszállításhoz használt útvonaltervező motorjának egy részét a Tesco Technology magyar fejlesztőcsapata. A korábbi Python alapokat Java váltotta, az eredmény pedig tizenhatodára csökkent futásidő, hatékonyabb szállítások, félmillió font megspórolt cloud költség és kevesebb üzemanyag.
Mára a vásárlókat az áruházaknak egyszerre két fronton is ki kell tudniuk szolgálni: a rohamosan növekvő online rendelésekhez, illetve a fizikai üzletekbe betérő ügyfelek számára is megfelelő árukészlettel kell rendelkezniük. A hatalmas árumennyiségek célba juttatása a logisztikai központokból az üzletekbe mind az utakon, mind pedig a leghatékonyabb kiszállítási útvonalak megtervezésénél komoly erőforrásokat igényel.

A Tesco kötelékében az áruk optimális célba juttatásán a Tesco Technology budapesti fejlesztői dolgoznak, az útvonalak megtervezéséről a Transport and Fulfillment csapat által fejlesztett Hive gondoskodik - amely már az idei Craft konferencián is bemutatkozott. A csapat már bizonyított, a koronavírus-járvány miatt ugrásszerűen megugró rendelésszámok jelentette kihívást is az ő megoldásaiknak köszönhetően tudta leküzdeni az áruházlánc.
A legjobb útvonalak megtervezése során a fejlesztőknek egy jól ismert "feladványt", az utazó ügynök problémáját kell megoldaniuk. A rendelt árukkal megpakolt járműveket a lehető leggyorsabban kell eljuttatni az üzletekbe, majd vissza a központokba, az aktuális forgalmi viszonyokat, akár időleges útakadályokat, lezárásokat is számításba véve - persze a lehető legkisebb üzemanyag-fogyasztással.
Nehezített pálya
A vállalat ehhez már az előző években kifejlesztette saját gráfmotorját és routing engine-jét – miután a piacon elérhető kész megoldások között egy sem volt, amely megfelelően igazodott volna az áruházlánc igényeihez. Ez egyébként annyira nem is meglepő: a szoftvernek az Egyesült Királyságban lévő négyezer Tesco-telephelyről napi szinten induló hétezer teherautó útvonalát kell kiszámolnia. Mindezt ráadásul nehezítő körülmények mellett. Figyelembe kell venni például az egyes brit városokban éjszaka a teherforgalom elől elzárt utakat, illetve „észben tartani” a 26 féle járműtípust - kellemetlen lehet, ha utólag derül ki, hogy a teherautó felépítménye magasabb, mint a navigáció által kijelölt alagút bejárata.

Bár a gráfmotorral a vállalat valóban hatékonyan tudta terelgetni az áruszállító flottáját, a megoldás eredetileg Pythonban íródott (még a Tesco Technology egyik fejlesztőjének doktori munkájaként), ami nem éppen visszafogott erőforrásétvággyal és tekintélyes felhős költségekkel járt. A fejlesztőcsapat ezért már az elmúlt években elkezdett dolgozni a gráfmotor jóval hatékonyabb, Java verzióján, amely mára munkába is állt – és nem meglepő módon látványos teljesítménybeli előrelépést produkál.
Míg a Python verziónak nagyjából 1 óra 20 percre volt szüksége a gráf felépítéséhez, addig a Java alapokra építő variáns ugyanezzel a feladattal 3-5 perc alatt végez. Természetesen az ugrásszerű javulás nem kizárólag a két programozási nyelv sajátosságaiból adódik, a fejlesztőcsapat egy sor optimalizációt is elvégzett a rendszer Javára való átültetése során.
Gyorsabb futás, olcsóbb infra
A Tesco Technology új Java alapú megoldásával nem csak a szigorúan vett árufuvarozási költségeken spórolhat az áruházlánc, de az erőforráskímélőbb működésnek hála a felhős infrastruktúra is számottevően barátságosabb árakon biztosítható: míg korábban a Hive éves cloud költsége a vállalatnál nagyságrendileg az 1 millió fonthoz közelített, mára közelebb áll a félmillió fonthoz.
De az utakon mérhető spórolás is tiszteletet parancsoló: a Tesco a tavalyi évben a rendszernek köszönhetően 5,3 millió kilogrammal csökkentette szén-dioxid kibocsátását. Az optimalizált útvonalakon a járművek összesen mintegy 4,6 millióval kevesebb mérföldet kellett hogy megtegyenek – ez értelemszerűen az üzemanyagfogyasztás csökkenésében is megmutatkozott. Ezen a téren a cég tavaly 2,3 millió fonttal költött kevesebbet. Az áruházlánc idei várakozásai pedig még látványosabbak: a Tesco 2022-ben 13 millió kilogrammal kevesebb CO2 kibocsátásra, 11,4 millióval kevesebb megtett mérföldre és 5,7 millió fontos üzemanyagköltség-megtakarításra számít.
A Tesco Technology budapesti csapata folyamatosan bővül: a gráfmotorhoz hasonló, izgalmas projektekhez a vállalat főként "V-shaped" fejlesztőket keres: például egy Java fejlesztő esetében a "V" hegye jelöli a mély Java tudást, míg a kiterjedő szárak a különböző, horizontális kompetenciákat tartalmazzák. Ilyen lehet a DevOps vagy épp a prezentációs és üzleti kapcsolattartási képességek, amelyekkel hatékonyan be tudnak kapcsolódni Tesco Technology Magyarországon zajló, globálisan alkalmazott fejlesztéseibe – akár távmunkán keresztül, amit a vállalat maximálisan támogat.
[A Tesco Technology megbízásából készített, fizetett anyag.]