Տվյալների բազաների վճարումը՝ ըստ իրական օգտագործման
Յուրաքանչյուր Mythex հավելված, որին պետք է տվյալներ պահել, ստանում է իր սեփական Postgres տվյալների բազան, և հրապարակված հավելվածի տվյալների բազայի օգտագործումը գալիս է նույն կրեդիտների մնացորդից, ինչ կառուցումը։ Մինչև սեպտեմբերի վերջը մենք այդ օգտագործումը **գնահատում էինք` ըստ այն բանի, թե որքան ժամանակ էր աշխատում հավելվածի սերվերը։ Գնահատումը սխալ դուրս եկավ այնպես, որ կարևոր էր, ուստի փոխարինեցինք այն. յուրաքանչյուր բազա այժմ վճարվում է այն compute-ից, որը նրա մատակարարը իրականում չափել է, մեկ ավարտված ժամով, և յուրաքանչյուր ժամ կարող է վճարվել միայն մեկ անգամ։
Ինչպես են աշխատում բազաները
Յուրաքանչյուր բազա աշխատում է serverless Postgres-ով, որը իջնում է զրոյի. մի քանի րոպե անգործության հետո այն քնում է, և հաջորդ հարցման ժամանակ արթնանում է։ Երբ արթուն է, այն կարող է մեծացնել և փոքրացնել իր compute-ը՝ ըստ բեռի։ Հենց դա է դարձնում «մեկ բազա յուրաքանչյուր հավելվածի համար» մատչելի. շատ հավելվածներ մեծ մասամբ լուռ են, և քնած բազան գրեթե ոչինչ չի արժենում։
Դա նշանակում է, որ բազայի արժեքը կախված է երկու բանից, որոնք դրսից չենք տեսնում. որքան ժամանակ էր արթուն և որքան մեծ էր արթուն վիճակում։
Ինչում էր սխալվում գնահատումը
Մեր սկզբնական հաշվիչն ընդունում էր մի ենթադրություն. հրապարակված հավելվածի սերվերի յուրաքանչյուր աշխատած ժամի համար գանձել բազայի համար ամենափոքր compute չափի գնով։
Դա սխալ էր երեք ձևով.
- Չափը սխալ էր։ Բազաները իրականում աշխատում էին ավելի մեծ լռելյայն չափով, քան գնահատումը ենթադրում էր։
- Բազաները ավտոմատ մասշտաբվում են։ Բեռի տակ նրանք մեծանում են, և գնահատումը երբեք դա չէր տեսնում։
- Բազաները չեն հետևում հավելվածի սերվերին։ Բազան մնում է արթուն, երբ ինչ-որ բան հարցում է անում դրան՝ հավելվածը, պլանավորված աշխատանքը, սկրիպտը, որը հարցում է անում, անկախ նրանից, թե հավելվածի սերվերը աշխատում էր, թե ոչ։
Վերջնական արդյունքը. գնահատումը օգտատերերից գանձում էր մոտ կեսը այն գնի, ինչ բազաները իրականում արժեին։ Դա մեզ համար կայուն չէր, և նաև նշանակում էր, որ հավելվածում օգտագործման թվերը չէին նշանակում այն, ինչ մարդիկ կարծում էին։
Չափել՝ ոչ թե կռահել
Մեր բազայի մատակարարը յուրաքանչյուր նախագծի համար հայտնում է compute-unit-seconds յուրաքանչյուր ժամում. որքան compute է իրականում օգտագործվել, չափն ներառյալ։ Ուստի հաշվիչն այժմ այսպես է աշխատում.
- Յուրաքանչյուր հրապարակված հավելվածի համար տվյալների բազայով բերում է չափված օգտագործումը յուրաքանչյուր ավարտված ժամի համար, այն օրից, երբ հավելվածը առցանց եղավ։
- Այդ օգտագործումը վերածում է արժեքի մատակարարի գնով, կիրառում է պլանի դրույքաչափը և գանձում է հավելվածի սեփականատիրոջ կրեդիտներից։
- Յուրաքանչյուր անգամ նայում է մինչև մեկ օր հետ, այնպես որ ժամերը, որոնք բաց են թողնվել, մինչ մեր API-ն վերագործարկվում էր, հետագայում էլ կվճարվեն։
Պահոցը վճարվում է առանձին՝ ըստ չափի, քանի որ այն կախված չէ ակտիվությունից։
Երբեք մեկ ժամը երկու անգամ չվճարել
Վճարման հաշվիչը, որն աշխատում է մեկից ավելի սերվերի վրա և կարող է խափանվել և կրկին փորձել, պետք է զգույշ լինի, որպեսզի կրկնակի չգանձի։ Յուրաքանչյուր բազայի յուրաքանչյուր ժամը հայցվում է իր սեփական տվյալների բազայի տողում, նախքան վճարվելը, և զույգի (բազա, ժամ) վրա կա եզակիության սահմանափակում։ Եթե երկու սերվեր, կամ մի կրկնակի փորձ, փորձում են վճարել նույն ժամը, միայն մեկ հայցումն է հաջողվում։
Մենք նաև գիտակցված ընտրություն արեցինք հազվագյուտ ձախողման դեպքի համար. եթե գործընթացը խափանվում է հայցելու և վճարելու միջև, այդ ժամը մնում է հայցված և չվճարված։ Հազվագյուտ խափանման դեպքում եկամտի մի մասը կորցնելը ավելի լավ է, քան որևէ մեկից երկու անգամ գանձելը։
Եվ երբ չափված վճարումը միացավ, այն սկսվեց հաջորդ ամբողջական ժամից։ Դրան նախորդող ժամերը արդեն վճարվել էին հին գնահատումով. դրանք նորից վճարել չափված տվյալներից՝ նույն հատվածը կրկնակի կգանձեր։
Ինչ է սա նշանակում, եթե կառուցում ես Mythex-ի վրա
- Քո տվյալների բազայի հաշիվը այժմ արտացոլում է, թե ինչ արեց քո բազան։ Հազվադեպ օգտագործվող հավելվածն արժե շատ քիչ. հավելվածը, որը անընդհատ հարցում է անում իր տվյալների բազային, այն արթուն կպահի և ավելի շատ կարժենա։
- Ամենամեծ լծակը քո հավելվածի՝ տվյալների բազան օգտագործելու ձևն է։ Բազան յուրաքանչյուր մի քանի վայրկյանը մեկ հարցնելը այն արթուն է պահում ամբողջ օրը։ Տվյալները պահանջով բերելը AI-ից կամ դրանք քեշավորելը թույլ է տալիս բազային քնել։ Մեր ուղեցույցը, թե ինչ է տվյալների բազան, ծածկում է հիմունքները։
- Pro պլանները հոսթինգի, տվյալների բազաների և պահոցի համար վճարում են Free դրույքաչափի կեսը։ Մանրամասները կրեդիտների փաստաթղթերում են։
Ինչ սովորեցինք
- Օգտագործմանը հիմնված արժեքների գնահատումները շեղվում են։ Երբ վերին մատակարարը կարող է ասել, թե ինչ է օգտագործվել, վճարիր դրանից։
- Դարձրու վճարումն իդեմպոտենտ այն ամենափոքր միավորով, որը վճարում ես։ Մեզ համար դա մեկ բազա-ժամ է։
- Երբ պարտավոր ես ձախողվել, ձախողվիր հաճախորդի օգտին։