Blogu

Kutoza Databases Kwa Kile Zinachotumia Kweli

Kila app ya Mythex inayohitaji kuhifadhi data inapata database yake ya Postgres, na matumizi ya database ya app iliyochapishwa yanatoka kwenye salio lilelile la credits linalotumika kujenga. Hadi mwishoni mwa Septemba tulikuwa tunakadiria matumizi hayo kutokana na muda ambao server ya app ilikuwa inaendesha. Makadirio hayo yaligeuka kuwa si sahihi kwa namna iliyokuwa na madhara, kwa hiyo tuliyabadilisha: sasa kila database inatozwa kutokana na compute ambayo mtoa huduma wake alipima kweli, saa moja iliyokamilika kwa wakati, na kila saa inaweza kutozwa mara moja tu.

Databases zinavyofanya kazi

Kila database inaendeshwa kwenye serverless Postgres inayo kupunguza hadi sifuri: baada ya dakika chache za kutofanya kazi inalala, na inaamka kwenye query inayofuata. Ikiwa macho, inaweza kuongeza au kupunguza compute yake kulingana na mzigo. Hilo ndilo linalofanya "database kwa kila app" iwezekane kimaadili — apps nyingi ni tulivu muda mwingi, na database iliyolala haigharimu karibu chochote.

Hii pia inamaanisha gharama ya database inategemea mambo mawili ambayo hatuwezi kuyaona kutoka nje: muda ilioishi macho na ukubwa wake ikiwa macho.

Makadirio yalikosea wapi

Mita yetu ya awali ilikuwa na dhana moja: kwa kila saa ambayo server ya app iliyochapishwa inaendesha, tozo database kwa ukubwa mdogo kabisa wa compute.

Hilo lilikuwa makosa kwa njia tatu:

  1. Ukubwa ulikuwa si sahihi. Databases zilikuwa zinaendesha ukubwa mkubwa zaidi wa chaguo-msingi kuliko makadirio yalivyodhani.
  2. Databases zinajipima zenyewe. Chini ya mzigo zinakua, na makadirio hayakuwahi kuliona hilo.
  3. Databases hazifuati server ya app. Database inakaa macho kila wakati chochote kinapoiuliza — app, kazi iliyoratibiwa, au script inayoipigia kura — hata kama server ya app haikuwa juu.

Matokeo halisi: makadirio yalitoza watumiaji takriban nusu ya gharama halisi ya databases. Hilo halikuwa endelevu kwetu, na pia lilimaanisha namba za matumizi kwenye app hazikumaanisha kile watu walichodhani.

Kupima badala ya kukisia

Mtoa huduma wetu wa database huripoti compute-unit-seconds kwa saa ya kila mradi — ni compute kiasi gani ilitumika kweli, pamoja na ukubwa. Kwa hiyo mita sasa inafanya kazi hivi:

  1. Kwa kila app iliyochapishwa yenye database, chukua matumizi yaliyopimwa kwa kila saa iliyokamilika tangu app ilipoingia mtandaoni.
  2. Badilisha matumizi hayo kuwa gharama kwa bei ya mtoa huduma, tumia kiwango cha mpango, na itoze kwenye credits za mmiliki wa app.
  3. Angalia nyuma hadi siku moja kila mara, ili saa zilizokoswa wakati API yetu inaanzishwa upya bado zitozwe baadaye.

Hifadhi inatozwa tofauti, kwa ukubwa, kwa sababu haitegemei shughuli.

Kutowahi kutoza saa mara mbili

Mita ya billing inayoendeshwa kwenye zaidi ya server moja — na inayoweza kuanguka na kujaribu tena — lazima iwe makini isitoze mara mbili. Kila saa ya kila database inadaiwa kwanza kwenye safu yake ya database kabla ya kutozwa, pamoja na kizuizi cha kipekee kwenye jozi (database, saa). Server mbili, au jaribio la kujaribu tena, zikijaribu kutoza saa ile ile, dai moja tu linafanikiwa.

Pia tulifanya uamuzi wa makusudi kuhusu kisa nadra cha kushindwa: ikiwa mchakato unaanguka kati ya kudai saa na kuitoza, saa hiyo inabaki imedaiwa na bila kutozwa. Kupoteza kipande kidogo cha mapato wakati wa kuanguka nadra ni bora kuliko kumtoza mtu mara mbili.

Na wakati billing iliyopimwa ilipowashwa, ilianza kutoka saa kamili inayofuata. Saa zilizotangulia zilikuwa tayari zimetozwa na makadirio ya zamani; kuzitoza tena kutoka data iliyopimwa kungemaanisha kutoza kipindi hicho mara mbili.

Inamaanisha nini ukijenga kwenye Mythex

  • Bili yako ya database sasa inaonyesha kile database yako ilifanya. App inayotumika mara chache inagharimu kidogo sana; app inayouliza database yake kila wakati itaiweka macho na kugharimu zaidi.
  • Kiegemeo kikubwa ni jinsi app yako inavyotumia database. Kupiga kura database kila sekunde chache kunaiweka macho saa zote. Kumwomba AI kuleta data kwa mahitaji, au kuihifadhi kwenye cache, kunaruhusu database kulala. Mwongozo wetu wa database ni nini unaeleza misingi.
  • Mipango ya Pro inalipa nusu ya kiwango cha Free kwa hosting, databases na hifadhi. Maelezo yako kwenye docs za credits.

Tulichojifunza

  • Makadirio ya gharama zinazotegemea matumizi hupotoka. Mtoa huduma wa juu akiweza kukuambia kilichotumika, tozo kutokana na hicho.
  • Fanya billing iwe idempotent katika kitengo kidogo kabisa unachotoza. Kwetu ni saa moja ya database.
  • Ukilazimika kushindwa, shindwa kwa faida ya mteja.

Mythex · Pricing · Jenga chochote kwa AI · Violezo vya tovuti na programu · Mythex ikilinganishwa · Kamusi ya istilahi za kujenga programu kwa AI · Zana za bure za kujenga programu kwa AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)