Minden, amit az online számlázásról tudnod kell, friss hírek, információk

Ismerd meg a billingót

Mi fán terem az ElasticSearch és miért lett ettől sokkal-sokkal jobb a Billingo?

2016-03-10 - Hírek
Mi fán terem az ElasticSearch és miért lett ettől sokkal-sokkal jobb a Billingo?

Február utolsó hetében szépen lassan elkészül az egyik kedvenc fejlesztésünk, és úgy éreztük, hogy eljött az ideje megosztani veletek, hogy mi is az. TL;DR: A Billingo gyorsabb lesz. Sokkal-sokkal gyorsabb!

De kezdjük az elején, mi is történt pontosan?

Amikor 2013 végén a Billingot elkezdtük tervezni még a legmerészebb álmainkban sem gondoltuk volna, hogy egyszer ott fogunk tartani ahol ma. Sok ezren használjátok a Billingot nap mint nap, közel 200 ezer számla lett kiállítva több mint 100 ezer ügyfél részére, több mint 300 ezer termékről. Mindez nem egészen két év alatt. Ráadásul a forgalmunk szinte exponenciálisan növekedik napról napra. Azonban tavaly már bizonyos felhasználóknál érezhetően elkezdett lassulni a rendszer. Ezt részben a statisztikák folyamatos számolása okozta, amit ugyan különböző cacheléssel tudtunk puhítani, de a megoldás nem volt tökéletes. Sőt! Két lépcsőben fogalmaztuk meg fejlesztést a sebesség növeléséhez. Elsősorban a régi szervereinket le kellett cserélni új és modern szerverekre. Erre sor került még tavaly év végén. A második lépcsőben pedig a teljes számlalistát, a statisztika számolást és keresést is újra kellett gondolni. A keresés mindezektől függetlenül is egy olyan része a Billingónak, amelynek egy sokkal központibb szerepet és jobb működést szánunk. Mi fán terem az ElasticSearch és miért lett ettől sokkal-sokkal jobb a Billingo? De hogy jön mindehhez az ElasticSearch?

A Billingo és az ElasticSearch

Az ElasticSearch az Apache Lucene nyílt forráskodú projektből kinőtt szintén nyílt forráskódú keresőmotor. Nagyon hasonlít a már meglévő Apache Solr projekthez ami szintén a Lucene-re épül. Sőt, elmondható, hogy hajszál vékony különbség van a kettő között. Több ok is volt, ami miatt az ES mellett döntöttünk:

Dokumentum séma liberális és könnyed kezelése

Könnyebben és jobban lehet skálázni az egész rendszert JSON natív ElasticSearch ökoszisztéma: LogStash és Kibana Az egész művelet tulajdonképpen egészen egyszerű. Megfogunk egy JSON dokumentumot, amit felvezetünk ES-be, ami pedig ebből csinál egy invertált indexet. Nagyon egyszerű példával:

{
    "id": 12345,
    "client.name": "Teszt Elek"
}

A felvitt JSON dokument

Az invertált index azt mondja meg, hogy a "Teszt Elek" név mely azonosítókhoz tartozik. Így nagyon gyorsan lehet keresni a dokumentumokban, hiszen csak megkeressük az invertált indexben, mely azonosítók tartoznak a keresett szóhoz és visszaadjuk a legközelebb eső dokumentumokat. Így elkerülhető, hogy minden dokumentumot egyesével végig kelljen vizsgálni. Természetesen ez egy borzasztóan leegyszerűsített példa volt, a háttérben bonyolult algoritmusok futtatnak analíziseket a felvitt adatokon.

És ez miért is jó?

Azon kívül, hogy a keresés sokkal gyorsabb lesz, van egy másik nagyon fontos és jó funkciója az ElasticSearch-nek. A csoportosításokkal (aggregations) tulajdonképpen a dokumentumok mezőin (értékein) különböző számolásokat tudunk végezni valamint a szűrőkkel (filter) tudjunk pontosítani az értékek számolását. Az egész nagyjából úgy működik, hogy először szűrőkkel meghatározunk egy vödröt (bucket). Például legyen az egyik ilyen vödör a nem piszkozat számlák halmaza, amelyeket január 1. és január 31. között állítottak ki. Ezután ezen a vödrön különböző számításokat (metrics) tudunk végezni, például összeadni a számlák végösszegeit, hogy megkapjuk a január hónap teljes bevételét. Természetesen a szőrökön kívül a keresést (query) is használhatjuk, hogy tovább finomítsuk a lekérdezésünket. Azonban összehasonlítva a régi relációs adatbázisban történő lekérdezésekkel, ez elképesztő sebességgel történik.

Jó, jó, de mennyivel lett gyorsabb a Billingo?

Hát nem akarjuk elszólni, és mindenkinél másképp fog jelentkezni a sebesség növekedés, de a mi egyik teszt fiókunkban (ami direkt burn-in tesztre van kihegyezve) a 22-30 másodperces betöltést sikerült leszorítanunk egy tized (!!) másodperc alá.

Csak az ElasticSearch-nek köszönhetően?

Nem. Rengeteget dolgoztunk további cache megoldásokon, de azért ennek a javulásnak az oroszlán részét az ElasticSearch bevezetésének köszönhetjük. :)

Szuper! Hogyan tovább?

Már most sokkal jobb a keresőnk, mint eddig bármikor, és a célunk az, hogy még tovább fejlesszük ezt a részét is a programnak, hogy még kényelmesebb legyen a Billingo használata azok számára is, akik sok-sok ezer számlával használják. Már most lehet keresni partnerre, email címre, termék nevekre, megjegyzésekre és ezeket tovább szeretnénk bővíteni, valamint önmagában a kereső használatát is szeretnénk még egyszerűbbé tenni. Nem hiszed? Kattints ide és próbáld ki milyen gyors lett a Billingo »

Örömteli számlázást kíván,
Számlázó program - Billingo online számlázó - Billy üdvözlettel,
Billy

Billingózz Te is!

Regisztrálj egy ingyenes fiókot és tesztelt a számlázót 30 napig ingyen!

Regisztrálok Billingózz Te is!

Hozzászólások ()

Bonácz Zsolt adótanácsadó a Billingo új online számlázás szakértője

Bonácz Zsolt adótanácsadó a Billingo új online számlázás szakértője

Hírek, 2019-10-14

Bonácz Zsolt adótanácsadó és adószakértő is csatlakozott a Billingo szakértői csapatához. Az elismert szakembe…

WOW, Billingo a Forbes Flow színpadán

WOW, Billingo a Forbes Flow színpadán

Hírek, 2019-10-08

Pistyur Vera és Fehér Gyula, az Oktogon Ventures befektetőcég alapítói előtt pitchelt Sárospataki Albert, a Bi…

Profi szakértőkkel erősít a Billingo

Profi szakértőkkel erősít a Billingo

Hírek, 2019-10-08

Óriási változások várhatók a Billingo háza táján, aminek leginkább az online számlázó ügyfelei és a KKV szekto…

Elismerés: "A" minősítést kapott a Billingo az Opten cégminősítőtől

Elismerés: "A" minősítést kapott a Billingo az Opten cégminősítőtől

Hírek, 2019-10-08

“A” minősítést kapott a Billingót üzemeltető Octonull Kft. az OPTEN speciális cégminősítési módszertana alapjá…

Több mint 560 000 Ft értékű Billingo előfizetés Az Év Webshopja nyerteseinek

Több mint 560 000 Ft értékű Billingo előfizetés Az Év Webshopja nyerteseinek

Hírek, 2019-09-30

2019-ben is megrendezték Az Év Webshopja online versenyt, amelynek támogatói között idén a Billingo online szá…

ÚJDONSÁG: elérhető a Billingo-Quick összekapcsolás

ÚJDONSÁG: elérhető a Billingo-Quick összekapcsolás

Hírek, 2019-09-24

Újabb hasznos és fontos lehetőséget kaptak a Billingo felhasználói, a számlázó program fiókjai ugyanis egy úja…