Tehnologia din spatele Pulsul Echipei (ep. 4)

Episodul precedent aici

Fiind un software B2B, putem spune că problemele de care ne vom lovi sunt puțin diferite decât ale unui site adresat lumii large. Prioritare în orice fel de proiect ar fi siguranța datelor, timp de încărcare rapid, accesibilitate pe orice tip de device și o rată de disponibilitate a serviciului cât mai aproape de 100%. În cazul nostru e puțin probabil să avem un spike major de accesări sau să fim nevoiți să găzduim și să administrăm cantitați mari de date.

Stocarea informațiilor

Structura majoritară fiind una bazata pe ierarhie și relații (companie -> chestionar, companie -> angajat, chestionar -> angajat etc.) prima varianta este MySQL. O companie cu 20 de angajați estimez eu că va consuma ~10.000 rânduri/an într-o astfel de bază de date.

Proporția operațiilor va fi de 80% citire și doar de 20% scriere iar căutarea prin aceste date va fi practic inexistentă, datele fiind afișate în rapoarte sub forma agregată fără prea multe interogări complicate. Cu indecșii corect configurați, e o bază de date care permite milioane de înregistrări pe un server mediu ca și performanță și are și beneficiul că poate fi ușor replicată în timp real.

Trimiterea email-urilor

Dacă mail-urile nu ajung la timp sau ajung în Spam, practic produsul nu poate fi folosit deci e un punct critic al sistemului. Cel mai probabil majoritatea vor opta pentru chestionarul standard (care trimite emailul vinerea la prânz) deci trebuie să existe puterea necesară de a trimite multe mail-uri într-un timp scurt. Pentru asta voi apela un terț precum Amazon SES. În acest fel voi avea puterea de a ști statusul fiecărui email, chiar și atunci când cineva îl marchează ca Spam și voi putea afișa managerilor informația.

Server (hosting)

Ca și putere de procesare, nefiind nevoie de a susține un număr ridicat de vizitatori în același timp, un server cu 16GB RAM și 4CPU estimez că este suficient pentru primele 200 de companii (fiecare cu câte 20 angajați). Sistemul de operare va fi Ubuntu (din experiență primește mai rapid update-uri pentru Apache și PHP decât Centos).

Limbajul de programare

Am dat deja un hint mai sus, este vorba de PHP. Din punct de vedere programare un astfel de soft nu este o provocare tehnică așa că nu are rost să testez noi tehnologii doar de dragul experimentării. Majoritatea operațiilor sunt de tipul CRUD (create, read, update, delete), diferența va fi făcută de UX-ul interfeței (cat de clar vor fi afișate concluziile, cât de ușor reușesc să comunic beneficiile etc).

Frontend

Pentru interfața web, ca framework html voi folosi Bootstrap, acest lucru mă va ajuta să am un singur codebase pentru varianta mobilă și pentru tablete. Scopul e să fac întreg sistemul să fie la fel de ușor de folosit indiferent de dispozitivul de pe care e accesat. Nu va fi o aplicație mobilă în sine ci mai degrabă un (aproape) PWA (progressive web app).

Să trecem la treabă…

Dacă ești curios de ce va urma îți recomand să te abonezi cu adresa de email în partea dreaptă ca să te pot anunța când public următorul articol.

One thought on “Tehnologia din spatele Pulsul Echipei (ep. 4)

Lasă un comentariu