Zpět na domů

gnata: JSONata na Go s AI za $400

Inženýr Reco použil AI Cursor k portování JSONata na Go a vytvořil knihovnu gnata. Projekt zajistil 1000x zrychlení a ušetřil $500 000 za rok díky odmítnutí Node.js clusterů. Případ demonstruje shadow deployment a odhalení chyb v referenční implementaci.

Jak přepsat JSONata na Go s AI: úspora $500k
Advertisement 728x90

# Přepsání JSONata do Go s pomocí AI: knihovna gnata a úspora 500 tisíc $

Vedoucí datový inženýr společnosti Reco Nir Barak za sedm hodin vygeneroval na základě AI asistenta Cursor knihovnu gnata – implementaci JSONata v Go. Náklady na tokeny činily 400 $, efekt pro společnost – roční úspora 500 000 $ díky opuštění infrastruktury Node.js a optimalizaci motoru pravidel.

Problém škálování JSONata v produkci

JSONata je deklarativní jazyk pro dotazy a transformace JSON, široce používaný při detekci hrozeb. Referenční implementace v JavaScript není kompatibilní s Go pipeline Reco. Společnost provozovala klastry Node.js na Kubernetes: až 200 replik pro zpracování výrazů JSONata přes RPC z Go služeb. To vedlo k nedostatku IP adres a nákladům 300 000 $ ročně pouze na infrastrukturu.

Přístup k migraci byl inspirován případem Cloudflare: použití oficiálního testovacího balíčku původní implementace. AI generuje kód v cílovém jazyce, dokud neprojdou všechny testy. V Reco použili stejných 1778 testů JSONata-js.

Google AdInline article slot

Proces portování a testování

Práce trvala sedm hodin reálného času:

  • Cursor analyzoval specifikaci JSONata a testy.
  • Vygeneroval 13 000 řádků kódu v Go.
  • Iterativně opravoval chyby, dokud nedošlo k plnému pokrytí.

Nasazení proběhlo v shadow módu: gnata zpracovávala provoz paralelně s jsonata-js, nesrovnalosti se logovaly. Za tři dny – nula chyb na miliardách událostí. Knihovna odhalila nesrovnalosti v referenční implementaci: jsonata-js občas porušuje vlastní specifikaci.

Zdroj: Habr (https://habr.com/ru/news/1015970/)

Google AdInline article slot

Ekonomický efekt a optimalizace

Opuštění RPC flotily Node.js ušetřilo 300 000 $ ročně. Dalších 200 000 $ – díky refaktoringu motoru pravidel: dříve spawnoval desítky tisíc goroutine pro obejití limitů JSONata, nyní pracuje přímo s gnata.

Celkově týden na integraci včetně shadow období. Barak to označuje jako „chirurgický refaktoring“ – generování AI pro úzká místa bez kompletní přestavby.

Výhody gnata z hlediska výkonu:

Google AdInline article slot
  • Zrychlení až 1000násobné u jednoduchých výrazů.
  • Plná kompatibilita s testy JSONata.
  • Otevřený zdrojový kód pro komunitu.

Co je důležité

  • gnata – 13 tisíc řádků kódu v Go, 1778/1778 testů úspěšně.
  • Náklady 400 $ na tokeny Cursor oproti roční úspoře 500 tisíc $.
  • Shadow nasazení odhalilo chyby v jsonata-js.
  • Odstranění 200+ replik Node.js vyřešilo problém s IP adresami.
  • Nový etap: AI pro bodový refaktoring legacy kódu.

Knihovna gnata je dostupná otevřeně a demonstruje proveditelnost portování JS enginů do Go s AI. Pro middle/senior developery je to případová studie automatizace migrací s zachováním specifikace.

— Editorial Team

Advertisement 728x90

Číst dál