FinLab – platforma tirgum Facebook’ā

Uzdevums
Forex platformas izveide no nulles
Pielāgošana lielām slodzēm un nepārtrauktam darbam
Īstenots kā Facebook aplikācija
Uzdevumi
Projekta īpašības
Viens no vissarežģītākajiem mūsu projektiem no tehniskā skatu punkta
Izstrādes apjoms
4000
darba stundas
Izstrādes laiks
6
mēneši
Izstrādātāju komanda
7
cilvēki
Dizains lielu tirdzniecības platformu stilā, nekā lieka
Integrācija ar Facebook. Pirkumi aplikācijas iekšienē: servisi, analītika, tirgus ziņas, suvenīri
Kotāciju faktisko datu augsta ātruma avota pieslēgšana
Visu izstrādes aspektu rūpīga dokumentēšana, ieskaitot API komunikāciju starp klientu un servera daļām un servera administrēšanas instrukcijas
Tehniskā īstenošana
Īstenošanas pieeja

Projekts īstenots kā vienas lapas aplikācija uz Backbone.js bibliotēkas pamata.

Savs API

Izstrādāts API ar labu dokumentāciju un smilšu kasti (API testēšanas metodēm) komunikācijai starp klientu daļu un back-end.

Kešdarbe

Daudzvalodu aplikācija – katrai valodai JS-kods izstrādāts moduļu formā vienā failā, kur katram klientam notiek kešdarbe. Šis paņēmiens palielina ielādes ātrumu atkārtotas pieslēgšanās gadījumā.

Grafiki

Open-source risinājumu kotāciju grafiku izveidei izstrādāta bibliotēka, kas pielāgota klienta vajadzībām.

Daudzplūsmu kotāciju saņemšana

Pieslēgšana kotāciju datu augsta ātruma avotam. Lai maksimāli efektīvi izmantotu servera resursus, izstrādāts daudzplūsmu apstrādes skripts ar kešdarbi Python programmēšanas valodā.

Lai atspoguļotu datus katrā laika intervālā, tiek izveidota atsevišķa plūsma caur tīmekļa ligzdu, un, ieejot jaunam klientam, tā pieslēdzas vienam no tiem kanāliem, neizveidojot jaunu kanālu.

Datubāzes

Divas datubāzes: PostgreSQL un MongoDB. Lielākā daļa no finanšu loģikas īstenota kā procedūras PostgreSQL datubāzē. Procedūras testētas ar unit-testu palīdzību. MongoDB izmantota kā log-failu glabātuve analīzei un statistiskiem datiem par lietotāju uzvedību.

Datu izsniegšana klientiem

Datu apmaiņa starp klientu un serveri īstenota caur tīmekļa ligzdu, kas ir visefektīvākā metode darbam ar pastāvīgo datu plūsmu.

Back-end framework

Back-end īstenots, izmantojot MVC-framework tehnoloģiju Symfony2.

Slodzes testēšana

Slodzes testēšana veikta ar Jmeter palīdzību. Ar NewRelic pārbaudīts ražīgums un atrastas vārīgās vietas.

Paštestēšana

Viss projekts pārbaudīts ar Behat paštestēšanu. Klientu daļas testēšanai izmantots Selenium.

Mērogošana

Izstrādāta automātiskā mērogošana. Projekts sadalīts moduļos, lai moduļus ar lielu slodzi varētu sadalīt starp vairākiem serveriem. Mērogošanas process ir maksimāli automatizēts – tiek izmantots PAAS Jelastic risinājums vertikālai un horizontālai mērogošanai.

FinLab
Tehnoloģijas

PHP
Python

require.js

Symfony2

Backbone.js

ligzdas:redchet.php,
autobahn.js

rindas:ZNQ

testēšana:phpunit, behat/mink,
selenium

slodzes testēšana:jmeter

ražīguma
monitorings:
new relic

Postgresql,
Mongodb

PAAS Jelastic

  • PHP
    Python

    require.js

    Symfony2

    Backbone.js

  • ligzdas:redchet.php,
    autobahn.js

    rindas:ZNQ

    testēšana:phpunit, behat/mink,
    selenium

    slodzes testēšana:jmeter

  • ražīguma
    monitorings:
    new relic

    Postgresql,
    Mongodb

    PAAS Jelastic

< >