Nyt sponsorsystem på vej

Bubbles, FC Sunnyvale Udvikler 25. marts 2022, 12:06

Så er det tid til en opdatering fra udviklingsafdelingen.

Opgradering af framework

Som jeg har nævnt tidligere skulle vi have opgraderet vores framework. Det gjorde vi i mindre bidder, og den nyeste version blev rullet ud på serverne i februar.

Det betyder at vi nu er helt up-to-date med de nyeste versioner af både Rails og Ruby, hvilket giver os en masse nye muligheder.

Performance-problemer tidligere på måneden

Men, efter opgraderingen til Rails 7 opstod der nogle performance-problemer, som kom sporadisk uden nogen tydelig årsag.

Vi så f.eks at vores webservere kunne køre fint i lang tid uden at bruge særligt meget RAM, men så ville en enkelt worker på en enkelt server pludselig begynde at spise al hukommelsen, hvilket til sidst resulterede i at operativsystemet slog den ned.

Derudover oplevede vi at databasen pludselig blev langsom, uden nogen forklaring. Der var ikke nogen særlig belastning udefra, ingen langsomme queries, den løb ikke tør for RAM og brugte under 10% CPU. Normalt vil vores overvågningssystemer fortælle os hvis vores egen kode indeholder noget, som er skyld i at den kører langsomt, men det var der ingen tegn på.

Vi var faktisk meget tæt på at flytte databasen over på en ny server. Men inden vi satte gang i det, besluttede jeg at opgradere vores webservere til dobbelt RAM, for at vi kunne få et pusterum til at fokusere på databasen.

Men, efter vi gjorde det, forsvandt databaseproblemet. Vores teori er at når webservernes workers blev slået ned, så deres forbindelser til databasen ikke lukket pænt ned, og derfor blev der færre og færre af dem tilgængeligt - dette stemmer godt overens med vores observationer af at databasen overhovedet ikke så ud til at være overbelastet selvom den kørte meget langsomt.

Vi brugte rigtigt megen tid på at undersøge webservernes memory leak, men kom aldrig til bunds i det, og jeg syntes ikke det var forsvarligt at bruge flere dyre udviklertimer på det, når vi har en masse fede projekter, vi gerne vil i gang med.

I stedet satte vi et system op, som detekterer når en worker begynder at smovse i RAM - når det sker bliver den lukket og genstartet på en pæn og ordentlig måde, og alting kører uden problemer. Det er dumt men det virker. Vores teori er at noget af vores kode må have en uheldig interaktion med den nye version af frameworket, som ingen andre endnu har oplevet eller dokumenteret, fordi den er så ny.

Planen er at vi afventer fremtidige patches, når Rails version 7 bliver mere udbredt.

Nyt sponsorsystem

Vi er lige for tiden godt i gang med at genopfriske sponsorsystemet.

Klubberne får tilbud fra forskellige sponsorer. Hvis man accepterer et tilbud, er det det, man får i næste sæson. Man skal acceptere inden sæsonopdateringen.

Tilbud har en række krav, som skal være opfyldt før man kan indgå dem. Det kunne være:
- division
- stadionpladser
- ungdomshold i X. division

Nogle sponsorer skal stille højere krav end andre. Det betyder at der f.eks godt kan komme tilbud, som man ikke kan acceptere lige pt. men så ved man hvad man skal arbejde hen imod.

Tilbuddene vil indeholde et grundbeløb, som er baseret på VIFA-rang og på de specifikke krav i tilbuddet.

Tilbud kan have en række forskellige bonusser, som man selv kan vælge til eller fra. En bonus vil altid indeholde et minus-beløb til grundbeløbet - men præmien får man kun hvis man opfylder kravet i løbet af sæsonen. Derfor skal man overveje grundigt om man vil acceptere risikoen.

Grundbeløb udbetales mandag morgen. Eventuelle bonusser udbetales i løbet af ugen hvis forudsætningerne kan opfyldes midt i sæsonen (f.eks "Vind X kampe i træk"), eller ved sæsonopdateringen, hvis de afhænger af den endelige stilling.

De første tilbud vil begynde at komme ind mandag morgen. Så undgår vi at alting skal ske søndag aften. Derudover skal der være en mekanisme hvor man kan afslå et tilbud og bede sponsoren vende tilbage med et nyt.

Vi overvejer også om vi skal implementere mulighed for bonusser med mere langsigtede mål. Det kunne f.eks være at man har 4 uger til at rykke op 2 gange, hvilket ville give en meget stor gevinst.

Jeg forventer at vi snart har version 1 med den grundlæggende funktionalitet klar, så jeg kan vise jer screenshots og flere detaljer om gameplayet.

Feedback til blog-indlægget, kan gives her Feedback: Nyt sponsorsystem på vej