TV2 success story

A Greenformatics Solutions eddigi legnagyobb projektje a TV2 Csoport számára fejlesztett streaming platform volt, melynek első fázisa közel 9 hónapot vett igénybe. A 2021-es Valentin napi élesítésig hosszú út vezetett, mely során szervezetileg és egyénileg is kihívások sorozatával küzdöttünk meg, hogy mindazt a tudást és tapasztalatot magunkba szívjuk, amivel most magabiztosan rendelkezünk.

Ebben a bejegyzésben osztjuk meg a projekthez kapcsolódó legfontosabb részleteket, illetve főbb tanulságokat. Vágjunk is bele!

Az oldalról és az előzményekről

A TV2 Csoport Magyarország egyik legnagyobb médiacége, mely 14 kereskedelmi csatornát működtet. A növekvő online videókhoz kapcsolódó hirdetési hajlandóság, valamint a konkurencia és a fogyasztói igények hatására a TV2 Csoport egy új, ingyenes VOD (Video on Demand) platform elindítása mellett döntött, amely a régi helyébe léphet. A tervezési fázisban kiemelt hangsúlyt fektetett designer partnerünk a megnyerő megjelenésre, illetve a felhasználói élmény maximalizálására. A megújult oldalon, mely a tv2play.hu címen érhető el, a közönség kedvenc sorozataival kezdve, sporton át, egészen a legnépszerűbb vetélkedőkig sokszínű tartalom érhető el.

A folyamatban betöltött szerepünk

Legfontosabb feladatunk a szoftver felépítésének megtervezése, illetve frontend és backend fejlesztése volt. Ezen felül nagy hangsúlyt fektettünk a keresőmotor optimalizálására, az ajánlómotor megfelelő implementálására, illetve a kiugróan magas forgalmat is kezelni tudó szerverstruktúra kialakítására. A felhasználói felület tervezését első sorban technikai tanácsadással segítettük. A fejlesztés során a projekt menedzsereink biztosították a folyamatos kommunikációt az érintettek között, az oldal aktuális állapotának demonstrációit, a felmerült változások, illetve változtatások kezelését. Az élesítést követően babysitting folyamattal segítettük a zökkenőmentes indulást.

Technológia

  • Spring Boot
  • ReactJS
  • Virtuális Linux szerverek (Ubuntu)
  • Konténerizált alkalmazások (systemd-nspawn)
  • Magas cache időzítések
  • Optimalizált és tömörített statikus tartalmak
  • Prometheus és Grafana monitoring és alerting rendszerek
  • Graylog logelemző rendszer

Ami a legnagyobb kihívást okozta

A projekt legnagyobb kihívása egy olyan 0-24-ben működő rendszer felépítése volt, mely képes rugalmasan kezelni a tüskeszerű terheléseket, hiszen a néhány tízezres látogatásszám csúcsidőszakokban könnyen a milliós nagyságrendet is eléri. Mindennek a megfelelő működését úgy kellett biztosítanunk, hogy a további funkciókat a felhasználói élmény megzavarása nélkül lehessen beépíteni a szoftverbe.

A kihívásokra adott válasz

A kihívások megoldásának eredményeként egy magas rendelkezésre állású, rugalmasan skálázható környezetet hoztunk létre, melyben a deploy folyamatok a lehető maximálisan automatizáltak. A rendszer zavartalan működését a több nodeból álló (redundáns) szerver struktúra, a folyamatos rendszermonitorozás és logelemzés biztosítja.

Előbbi azt jelenti, hogy egy-egy alkalmazás vagy komponens több példányban is fut. Amennyiben az egyik leáll vagy nem elérhető, abban az esetben egy másik példány azonnal a helyére lép, így a látogatói élményt nem zavarja meg az esetleges incidens.

Egy stabil rendszernél követelmény, hogy az esetleges hibákat vagy veszélyforrásokat még azelőtt észleljük, hogy abból rendszerkiesés vagy leállás lenne. Ezért kiemelt hangsúlyt fektettünk arra, hogy egy olyan monitoring és logelemző rendszert építsünk ki, amely azonnal jelez, ha valamilyen anomália történik (pl. kiugró terhelés, erőforrás probléma valamelyik szerveren vagy hibaüzenetek a log fájlban).

A rugalmas skálázhatóságot a virtuális gépek és a korábban említett több nodeból álló környezet garantálja, így megvalósítható a vertikális és horizontális skálázhatóság is, amely a magas rendelkezésre állást és a nagy áteresztőképességet is garantálja. 

A deploy folyamatok automatizálását a leállás mentes élesítés és az emberi hibák elkerülése érdekében kezeltük kiemelten. Mivel egy magasan látogatott oldalról van szó, fontos volt, hogy egy-egy új funkció élesítése vagy hibajavítása ne járjon az oldal leállásával, a látogató ne vegye észre ezeket a műveleteket.

Amit tanultunk

A cégen belüli folyamatokat évek óta tudatosan kezeljük és fejlesztjük, de a projekt során egyértelművé vált számunkra, hogy a beszállítóktól, illetve egyéb külső szereplőktől való függőség menedzsmentjére is komoly hangsúlyt kell helyezni. Különösen igaz ez egy olyan sok szereplős, kiemelt projektre, mint a TV2Play fejlesztése.

Szintén fontos tanulság, hogy az üzemeltetési infrastruktúra kidolgozását és felépítését minél előbb meg kell tenni, hiszen ezzel a már korai stabilitás garantálásán túl jelentős emberi erőforrás spórolható meg a projekt kritikus időszakában.

A technológiai tudásunk és tapasztalatunk mellett mégis a legnagyobb ráismerésünk az volt, hogy a cégünk a tudását, módszertanját és kultúráját tekintve is megérett az átlagosnál jelentősen nagyobb projektek sikeres, az ügyfél megelégedését kiváltó, magas minőségű szállítására.