Historia mpya

Kupunguza gharama zako za MongoDB kwa 79% na ufanisi wa Shape-First

kwa Hayk Ghukasyan8m2025/04/18
Read on Terminal Reader

Ndefu sana; Kusoma

Akaunti ya MongoDB ya uanzishaji wa fikra ilipanda kwa asilimia 20 wakati Atlas ilipanda moja kwa moja hadi M60. Kwa kufafanua operesheni za polepole, kurekebisha maswali ya N + 1 na $lookup, capping /TTL'ing maswali yasiyo na mipaka, kurekebisha dosari za jumbo, na kurekebisha viwango katika sprint ya masaa ya 48, walipunguza gharama zao za kila mwezi kutoka $ 15,284 hadi $ 3,210 (-79%) na kuboresha muda wa p95 kutoka 1.9 s hadi 140 msno sharding inayohitajika.
featured image - Kupunguza gharama zako za MongoDB kwa 79% na ufanisi wa Shape-First
Hayk Ghukasyan HackerNoon profile picture
0-item


ya

Ulinzi wa database yako dhidi ya moto ujao ili kuepuka kupoteza fedha kubwa katika hatua yako ya Serie A

Ulinzi wa database yako dhidi ya moto ujao ili kuepuka kupoteza fedha kubwa katika hatua yako ya Serie A


Disclaimer: The following is a fictional case study used to communicate best practices for MongoDB schema design, performance tuning, and cost optimization

Disclaimer: The following is a fictional case study used to communicate best practices for MongoDB schema design, performance tuning, and cost optimization


Siku ambayo Sheria ilibadilika kwa nyuklia

Wito huo ulifanyika kwa kupitia2:17ya


Atlas ilisababisha upanuzi mwingine usiohitajika wa uzalishaji wa cluster ambayo ilisababishaM60mashine kwa gharama ya kila mwezi ya$15k. The board wanted to know why burn increased by 20% while M60 serves as an expensive $15 k/monthMfumo wa.


I opened the profiler:

db.system.profile.aggregate([
  { $match: { millis: { $gt: 100 } } },
  { $group: {
      _id: { op: "$op", ns: "$ns", query: "$command.filter" },
      n: { $sum: 1 },
      avgMs: { $avg: "$millis" }
  }},
  { $sort: { n: -1 } }, { $limit: 10 }
]).pretty();


Kila widget ya dashboard ilihitaji mwakilishi kuvutia kwa jumla ya1.7 GBKila dakika kabla ya rendering. kiasi kikubwa cha matumizi ya kumbukumbu iliundwa juu ya mlima katika chati ambayo ilionekana kama Everest.


Msajili wa M30 sasa hufanya kazi na mojawapo ya makundi haya. ufumbuzi haukuwa na ongezeko la shards.Jinsi ya kufanya uhalifuilikuwepo kwenye msingi wa codebase kabla ya kuondolewa.


Uchunguzi wa eneo la uhalifu

2.1 N + 1 ya Tsunami ya Query

Hii inatambuliwa kama anti-mfano - wakati utaratibu wa seti moja ya amri inahitaji kuendesha N maswali tofauti ili kupata mstari wa amri.

// Incorrect:  Orders   +   1 000 extra queries
const orders = await db.orders.find({ userId }).toArray();
for (const o of orders) {
  o.lines = await db.orderLines.find({ orderId: o._id }).toArray();
}


Hidden taxes

yayayayayayaUhifadhi wa I/O 1 000 index walks + 1 000 doc deserializationsyaMtandao Kila safari ya mzunguko inachukua ~1 ms RTT + TLS handshake juu ya kichwaya
Mita yaKwa nini inachukuliwa
Maelezo ya1 000 cursors = 1 000 mabadiliko ya mazingira
Jinsi ya kuondoa spikesyaKuanzisha 1 000 cursors = 1 000 mabadiliko ya mazingirayaUhifadhi wa I/O 1 000 index walks + 1 000 doc deserializationsyaMtandao Kila safari ya mzunguko inachukua ~1 ms RTT + TLS handshake juu ya kichwayaJinsi ya kuondoa spikesMita ya

Mita ya

Kwa nini inachukuliwa

Kwa nini inachukuliwa

yaMaelezo yaya1 000 cursors = 1 000 mabadiliko ya mazingirayaMaelezo ya

Compute

1 000 cursors = 1 000 mabadiliko ya mazingira

1 000 cursors = 1 000 mabadiliko ya mazingira

Uhifadhi wa I/O 1 000 index walks + 1 000 doc deserializationsUhifadhi wa I/O

Storage I/O

1 000 index walezi + 1 000 doc deserializations

1 000 index walezi + 1 000 doc deserializations

Mtandao Kila safari ya mzunguko inachukua ~1 ms RTT + TLS handshake juu ya kichwaMtandao wa

Network

ya

Kila safari ya mzunguko inachukua ~1 ms RTT + TLS handshake juu ya kichwa

Kila safari ya mzunguko inachukua ~1 ms RTT + TLS handshake juu ya kichwa


Refactor (4 lines):

// Success: Single round‑trip, 1 read unit per order
db.orders.aggregate([
  { $match: { userId } },
  { $lookup: {
      from: "orderLines",
      localField: "_id",
      foreignField: "orderId",
      as: "lines"
  }},
  { $project: { lines: 1, total: 1, ts: 1 } }
]);


Latency p95 kupungua kutoka 2 300 ms kwa 160 ms.

2 300 kwa ajili yaUrefu wa ms 160

Atlas read‑ops: 101 → 1.Hiyo ni 99% chini—hakuna msimbo wa kuponi unahitajika.


2.2 Unbounded Query ya Firehose

ya

“Lakini tunahitaji kuonyesha historia kamili ya click!”

ya

“Lakini tunahitaji kuonyesha historia kamili ya click!”


Bila shaka - tu si katika cursor moja.

// Failure: Streams 30 months of data through the API gateway
db.events.find({ userId }).toArray();


Fix: hard-cap mfululizo na mradi tu masharti unayotengeneza.

db.events.find(
  { userId, ts: { $gte: ISODate(new Date() - 1000*60*60*24*30) } },
  { _id: 0, ts: 1, page: 1, ref: 1 }     // projection
).sort({ ts: -1 }).limit(1_000);


Then let Mongo clean up behind you:

// 90‑day sliding window
db.events.createIndex({ ts: 1 }, { expireAfterSeconds: 60*60*24*90 });


ya

Mteja mmoja wa fintech aliipunguza akaunti yao ya kuhifadhi kwa 72% kwa usiku tu kwa kuongeza TTLs.

ya

Mteja mmoja wa fintech aliipunguza akaunti yao ya kuhifadhi kwa 72% kwa usiku tu kwa kuongeza TTLs.


2.3 Jumbo‑Document Money Pit

Mongo hufungua nyaraka kwenye 16 MB, lakini chochote zaidi ya 256 KB tayari ni bendera nyekundu.

{
  "_id": "...",
  "type": "invoice",
  "customer": { /* 700 kB */ },
  "pdf": BinData(0,"..."),        // 4 MB binary
  "history": [ /* 1 200 delta rows */ ],
  "ts": ISODate()
}


Why it hurts

    ya
  1. Daktari wote ni ukurasa katika hata kama wewe kusoma shamba moja.
  2. ya
  3. WiredTiger haiwezi kuhifadhi docs nyingi kwa ukurasa → kiwango cha chini cha hit ya cache.
  4. Ununuzi wa index ni kubwa → filters ya bloom hupoteza → utafutaji zaidi wa diski.
  5. ya

Solution: schema‑by‑access‑pattern:

graph TD
  Invoice[(invoices<br/>&lt;2 kB)] -->|ref| Hist[history<br/>&lt;1 kB * N]
  Invoice -->|ref| Bin[pdf‑store (S3/GridFS)]


Meta za akaunti ndogo zinaendelea kuwa na joto; BLOBS katika S3 gharama $ 0,023 / GB mwezi badala ya NAND-grade Atlas SSDs.

ya

Meta za akaunti ndogo zinaendelea kuwa na joto; BLOBS katika S3 gharama $ 0,023 / GB mwezi badala ya NAND-grade Atlas SSDs.


Vifaa 4 vya uhalifu ambavyo unaweza kuwa na hatia

    ya
  1. Kuanzisha mlinzi juu ya mlinzi juu ya mlinzi juu ya mlinzi juu ya mlinzi juu ya mlinzi juu ya mlinzi juu ya mlinzi juu ya mlinzi juu ya mlinzi juu ya mlinzi juu ya mlinzi juu ya mlinzi juu ya mlinzi juu ya mlinzi juu ya mlinzi juu ya mlinzi juu ya mlinzi juu ya mlinzi.
  2. $regex huanza-na kwenye uwanja usio na indexed-kutafuta mstari kutoka jahanamu.
  3. findOneAndUpdate queue—document‑level locking bottleneck; use Redis/Kafka.
  4. ya
  5. skip + kubwa offset pagination—Mongo lazima kuhesabu kila doc skipped; kubadilisha kwa kiwango (ts, _id) cursors.
  6. ya

Mchakato wa Anatomy 101

ya

“Lakini Atlas anasema kusoma ni ya bei nafuu!”

ya

“Lakini Atlas anasema kusoma ni ya bei nafuu!”


Hebu tufanye kazi ya Math.

yayayayayayayayayaUhamisho wa data 1.5 TB $0.25 / GB $375yaya
Mifumo ya Metricthamani yaya

Gharama ya unit

ya

Gharama ya kila mwezi

Maoni yako (3 k/s)

7.8 ya B

0 0 0 0 0 0 0 0ya 702
Maelezo ya picha (150 / s)ya

380 M

$ 0.225 / M kwa ajili ya86 kwa ajili ya

Uhifadhi wa bure (2 TB)


$0.24 / GB

ya

$480

Gharama ya thamani ya kiwango cha gharama ya kila mweziyaKusoma (3 k/s) 7.8 B $0.09 / M $702yaKuandika (150 /s) 380 M $0.225 / M $86yaUhamisho wa data 1.5 TB $0.25 / GB $375yaUhifadhi wa bure (2 TB) $0.24 / GB $480yaGharama ya thamani ya kiwango cha gharama ya kila mweziMifumo ya Metric

Mifumo ya Metric

thamani ya

thamani ya

ya

Gharama ya unit

Gharama ya unit

ya

Gharama ya kila mwezi

Gharama ya kila mwezi

yaMaoni yako (3 k/s)ya7.8 ya B0 0 0 0 0 0 0 0yaya 702Maoni yako (3 k/s)

Maoni yako (3 k/s)

7.8 ya B

7.8 ya B

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

ya

ya 702

$702

yaMaelezo ya picha (150 / s)Mita ya 380ya$ 0.225 / M kwa ajili ya86 kwa ajili yaMaelezo ya picha (150 / s)

Maelezo ya picha (150 / s)

ya

Mita ya 380

380 M

$ 0.225 / M kwa ajili ya

$ 0.225 / M kwa ajili ya

86 kwa ajili ya

$86

Uhamisho wa data 1.5 TB $0.25 / GB $375

Uhamisho wa data

Uhamisho wa data

ya 1.5 TB

1.5 TB

Dola ya 0.25 / GB

Dola ya 0.25 / GB

kwa ajili ya $375

$375

Uhifadhi wa bure (2 TB) $0.24 / GB $480Uhifadhi wa bure (2 TB)

Uhifadhi wa bure (2 TB)



ya

Dola ya 0.24 / GB

Dola ya 0.24 / GB

kwa $ 480

$480


Total: $1,643.

Fikiria juu ya fikra:

  • Idadi ya wasomaji imepungua kwa asilimia 70 → $ 210
  • Usafiri wa chini ya 80% → $ 75
  • ya
  • Uhifadhi hupungua kwa 60% → $ 192


ya

Akaunti mpya: $ 564. Hiyo ni mhandisi wa kati au runway hadi Q4 - unachagua.

ya

New bill: $564. That’s one mid‑level engineer auKuanzisha mlinzi juu ya msalaba wa Q4 - Chagua.


48-Hour Msaidizi Sprint (Battle-kujaribu Timeline)

yaHour Action Tool Wins 0‐2 Turn on profile (slowms = 50). Mongo shell Surface top 10 slow ops. 2‐6 Rewrite N + 1 katika $lookup. VS Code + Jest inajaribu kusoma kwa asilimia 90 chini. 6‐10 Ongeza mtazamo na kikomo kwenye matokeo yasiyo na kikomo. API layer RAM imara; API 4× ya haraka. 10‐16 Break jumbo docs → metas + GridFS/S3. Scripted ETL Working set inapatikana kwenye RAM. 16‐22 Drop/replace viashiria vya chini-cardinality. Compass Disk kupunguzwa; cache hits ↑. 22‐30 Kujenga TTLs, mwezi-partition data baridi, kuwezesha Online Archive. Atlas UI uhifadhi wa 60 % imehifadhiwa. 30‐36 Ongeza paneli za
Timu ya Timu ya Timu ya Timu ya Timu ya Timu0‐2 Weka juu ya profile (slow = 50). Mongo shell Surface juu ya 10 slow ops.yaya2 ya 6yaKuandika tena N + 1 katika $lookup.yaUtafiti wa VS Code + Jestya

Asilimia 90 ya wasomaji wanasoma kidogo.

ya6‐10 Ongeza mtazamo na kupunguza kwa utafutaji usio na kikomo. kiwango cha API RAM ni imara; API ni ya haraka 4x.10‐16 Kuondoa dosari za jumbo → metas + GridFS/S3. Scripted ETL Working set inapatikana katika RAM.16‐22 Kuondoa / kubadilisha viashiria vya chini vya cardinality. Disk ya Compass inapungua; hit ya cache ↑.ya22‐30 Kuunda TTLs, data ya baridi ya kila mwezi, kuwezesha Uhifadhi wa mtandaoni. Atlas UI 60% imehifadhiwa.ya30‐36 Ongeza paneli za Grafana: hit ya cache %, scan:ix ratio, kiwango cha kuondolewa.ya36‐48ya Mtihani wa mzigo na k6 k6 + metric ya Atlas kuthibitisha p95 < 150 ms @ 2x mzigo.yaTimu ya Timu ya Timu ya Timu ya Timu ya Timuya

Siku ya

Siku ya

Hatua ya

Hatua ya

Zana ya

Zana ya

ya kushinda

ya kushinda

0‐2 Weka juu ya profile (slow = 50). Mongo shell Surface juu ya 10 slow ops.0 ya 2

0 ya 2

Weka juu ya profile (slowms = 50).

Weka juu ya profile (slowms = 50).

ya

Shell ya Mongo

Shell ya Mongo

Kuanzisha mlinzi juu ya 10 Slow Ops.

Kuanzisha mlinzi juu ya 10 Slow Ops.

ya2 ya 6yaKuandika tena N + 1 katika $lookup.yaUtafiti wa VS Code + Jestya

90 % fewer reads.

2 ya 6

2 ya 6

Kuandika tena N + 1 katika $lookup.

Kuandika tena N + 1 katika $lookup.

Utafiti wa VS Code + Jest

VS Code + Jest tests

ya

90 % fewer reads.

Asilimia 90 ya wasomaji wanasoma kidogo.

6‐10 Ongeza mtazamo na kupunguza kwa utafutaji usio na kikomo. kiwango cha API RAM ni imara; API ni ya haraka 4x.ya

6‑10

6 ya 10

ya

Kuongeza makadirio & kupunguza kwa utafiti usio na kikomo.

Add projections & limitKuanzisha mlinzi juu ya msalaba wa mwisho.

Maji ya moto

API layer

RAM imara; API ya 4x ya haraka.

RAM imara; API ya 4x ya haraka.

10‐16 Kuondoa dosari za jumbo → metas + GridFS/S3. Scripted ETL Working set inapatikana katika RAM.10 ya 16

10‑16

Kuondoa jumbo docs → metas + GridFS / S3.

Kuondoa jumbo docs → metas + GridFS / S3.

Maoni ya ETL

Maoni ya ETL

ya

Mchakato wa kufanya kazi katika ram.

Working set fits in RAM.

16‐22 Kuondoa / kubadilisha viashiria vya chini vya cardinality. Disk ya Compass inapungua; hit ya cache ↑.16 ya 22

16 ya 22

Kuondoa / kubadilisha viashiria vya chini vya cardinality.

Drop/replace low‑cardinality indexes.

Kompyuta ya

Kompyuta ya

ya

Disk shrinks; cache hits ↑.

Disk shrinks; cache hits ↑.

ya22 ya 30ya

Tengeneza TTLs, data ya baridi ya kila mwezi, uwezesha Online Archive.

yaAtlas yayaAsilimia 60 ya uhifadhi imehifadhiwa.

22 ya 30

22‑30

ya

Tengeneza TTLs, data ya baridi ya kila mwezi, uwezesha Online Archive.

Tengeneza TTLs, data ya baridi ya kila mwezi, uwezesha Online Archive.

Atlas UI

Atlas ya

Asilimia 60 ya uhifadhi imehifadhiwa.

Asilimia 60 ya uhifadhi imehifadhiwa.

30 ya 36

ya

Add Grafana panels: cache hit %, scan:ix ratio, eviction rate.

yaya PrometheusMaoni ya awali.ya

30 ya 36

30 ya 36

ya

Kuongeza paneli za Grafana: Cache hit %, scan:ix ratio, kiwango cha kuondolewa.

Add Grafana panels: cache hit %, scan:ix ratio, eviction rate.

ya Prometheus

ya Prometheus

Maoni ya awali.

Visual early warnings.

36 ya 48yaya

Load‑test with k6

yaya

K6 + Mifumo ya Atlas

yaUhakikishe p95 < 150 ms @ 2× mzigo.36 ya 48

36‑48

ya

Utafutaji wa K6

Load‑test with k6

ya

K6 + Mifumo ya Atlas

k6 + Atlas metrics

Uhakikishe p95 < 150 ms @ 2× mzigo.

Confirm p95 < 150 ms @ 2× load.


Orodha ya kuangalia mwenyewe—Pin it juu ya meza yako

  • Largest doc ÷ median > 10? → Refactor.

  • ya
  • Kurejesha kurudi > 1000 docs? → Pageinate.
  • TTL kwenye kila meza ya tukio / duka? (Yes/No)
  • Kiashiria chochote ambapo kardinali < 10 %? → Drop/re‐order.
  • Profiler slowops > 1 % total ops? → Optimize or cache.


  • ya

If primary cache hits remain under 90% it is wise to separate collections or add additional RAM memory post fixes.

Place the checklist on your laptop with adhesive glue after laminating it for printing.


Kwa nini Shape Beats Indices

MongoDB’s query planner hufanya utafutaji wa gharama kwa mipango ya wagombea. Vector ya gharama inajumuisha:

workUnits = ixScans + fetches + sorts + #docs returned


Indexes only reduce ixScans. Bad shape inflates fetches and sortsMara nyingi kuna hali ambapo ni muhimu kwenda kwa haraka kufanya kazi au biashara.Mafunzo:

db.logs.find(
  { ts: { $gte: start, $lt: end }, level: "error" }
).sort({ level: 1, ts: -1 });


Index { level: 1, ts: -1 }husaidia Planner kuepuka kukusanya kila hati wakati anaongeza predicate kwa uwanja usiotajwa wa mfululizo katika makadirio yako. Matokeo ya net: 20k kukusanya kwa 200 hits. Index inapaswa kuja kabla ya shughuli za fomu katika shughuli za kila siku.


Mifano ya kuishi unapaswa kuangalia (Grafana PromQL)

# WiredTiger cache hit ratio
(rate(wiredtiger_blockmanager_blocks_read[1m]) /
 (rate(wiredtiger_blockmanager_blocks_read[1m]) +
  rate(wiredtiger_blockmanager_blocks_read_from_cache[1m]))
) < 0.10


Kumbuka ikiwa > 10 % hupoteza kwa mita 5.

# Docs scanned vs returned
rate(mongodb_ssm_metrics_documents[1m]{state="scanned"}) /
rate(mongodb_ssm_metrics_documents[1m]{state="returned"}) > 100


Ikiwa unatafuta docs 100x zaidi kuliko unavyowasilisha, unachoma pesa.

ya

Ikiwa unatafuta docs 100x zaidi kuliko unavyowasilisha, unachoma pesa.


Hands‑On: Thin‑Slice Migration Script

Unahitaji kuondoa 1 TBeventsMkusanyiko waclicksyaviewsyalogins without downtime? Use the double‑write / backfillMfano wa.

// 1. Add trigger
const changeStream = db.events.watch([], { fullDocument: 'updateLookup' });
changeStream.on('change', ev => {
  const dest = db[`${ev.fullDocument.type}s`];
  dest.insertOne({ ...ev.fullDocument });
});

// 2. Backfill historical in chunks
let lastId = ObjectId("000000...");
while (true) {
  const batch = db.events.find({_id: {$gt: lastId}}).sort({_id: 1}).limit(10_000);
  if (!batch.hasNext()) break;
  const docs = batch.toArray();
  docs.forEach(d => db[`${d.type}s`].insertOne(d));
  lastId = docs[docs.length - 1]._id;
}


Zero downtime, minimal extra storage (thanks to TTL), everyone sleeps.


Wakati wa ShardingIs the Answer

Kwa mujibu wa kanuni ya thumb, unapaswa kuharibu tu ikiwa unathibitishaone of these conditions comes true after optimizing your database:

    ya
  1. Mfumo unafanya kazi na seti ya kazi ambayo inawakilisha zaidi ya asilimia 80 ya RAM bila kujali kiwango cha utendaji wa cache.
  2. ya
  3. The system generates more than 15 thousand operations per second in its peak write performance when using one primary server.

  4. Priorities yako kuu inapaswa kuwa kudumisha chini ya millisecond 70 multi-region latency kwa sababu gharama kubwa ya malipo ya AWS sio wasiwasi wako muhimu.
  5. ya

The decision should be simple when the conditions do not match these rules.


Utafiti wa kesi Wrap-Up

yayayayayayayayayayayayayayayayaya
ya

Mifumo ya Metric

kabla ya

Baada ya

ya Δ
Picha ya ramKiwango cha GB 120

ya GB 36

ya

−70 %

Maoni ya Sekta / Sec6 700 ya

900

−86 %

ya

Uhifadhi wa hewa (Hot)

Mchakato wa 2.1 TBya

Kiwango cha GB 600

ya

71% ya

ya

p95 latency

ya

1.9 s

Urefu wa 140 msya

kwa asilimia 92

ya

Gharama ya Atlas / mo.

Mshahara wa 15 284Mshahara wa 3 210

kwa asilimia 79

yaMifumo ya Metrickabla yayaBaada yayaya ΔyayayaPicha ya ramKiwango cha GB 120yaya GB 36yaya

kwa asilimia 70

yaKusoma / sek 6 700 900 −86 %yaUhifadhi wa bure 2.1 TB 600 GB −71 %yayaUrefu wa P951.9 ya SyaUrefu wa 140 msyakwa asilimia 92yayaya

Gharama ya Atlas / mo.

yaMshahara wa 15 284Mshahara wa 3 210yakwa asilimia 79yayayaMifumo ya Metrickabla yayaBaada yayaya Δyaya

Mifumo ya Metric

Mifumo ya Metric

ya

kabla ya

kabla ya

Baada ya

After

ya Δ

ya Δ

yaPicha ya ramKiwango cha GB 120yaya GB 36yaya

−70 %

yaPicha ya ram

RAM footprint

Kiwango cha GB 120

Kiwango cha GB 120

ya GB 36

ya GB 36

ya

−70 %

kwa asilimia 70

Kusoma / sek 6 700 900 −86 %Maoni ya Sekta / Sec

Reads/sec

6 700 ya

6 700 ya

900 ya

900

−86 %

kwa asilimia 86

Uhifadhi wa bure 2.1 TB 600 GB −71 %ya

Uhifadhi wa hewa (Hot)

Uhifadhi wa hewa (Hot)

Mchakato wa 2.1 TB

Mchakato wa 2.1 TB

ya

Kiwango cha GB 600

600 GB

ya

71% ya

71% ya

yaUrefu wa P951.9 ya SyaUrefu wa 140 msyakwa asilimia 92yaUrefu wa P95

p95 latency

1.9 ya S

1.9 s

ya

Urefu wa 140 ms

140 ms

ya

kwa asilimia 92

kwa asilimia 92

ya

Gharama ya Atlas / mo.

yaMshahara wa 15 284Mshahara wa 3 210yakwa asilimia 79yaya

Gharama ya Atlas / mo.

Gharama ya Atlas / mo.

Mshahara wa 15 284

Mshahara wa 15 284

Mshahara wa 3 210

Mshahara wa 3 210

kwa asilimia 79

kwa asilimia 79


Hakuna vichaka, hakuna baridi kubwa ya msimbo, tu upasuaji usio na huruma.

ya

Hakuna vichaka, hakuna baridi kubwa ya msimbo, tu upasuaji usio na huruma.


Maelezo ya mchezo Debt vs. Death Spiral

Mahitaji ya utoaji haraka ni lazima, lakini kudumisha kazi ya ubora mbaya ni sehemu ya kukusanya mapato ya kujitolea. Mtoa huduma wa wingu hutumia riba ya mchanganyiko ambayo inakuja kwa kiwango cha kila mwaka cha asilimia 1000 juu ya mapato yako yasiyo ya kulipwa. Tumechunguza kadi za mkopo za kiwango cha juu za MongoDB kama zinawakilisha uhalifu wa aina tano tuliyojadili. Kuondoa mapato haya ndani ya kipindi chako cha sprint sasa utafanya ripoti za kiufundi na kifedha za shukrani.


Unahitaji kufungua profile ili kufanya kazi na$lookupPistons wakati kuongeza mvuke wa TTL, na kisha kupitisha mradi wako katika hali ya lean. bodi yako na timu yako ya maendeleo na pager yako saa 02:17 itapata mapumziko ya ubora.


Endelea na refactoring ya msimbo wako mpaka tukio la baadaye la autoscaling linatokea.

L O A D I N G
. . . comments & more!

About Author

Hayk Ghukasyan HackerNoon profile picture
Hayk Ghukasyan@hayk.ghukasyan
Senior Software Engineer and Backend Team Lead with 20+ years of experience. Passionate about system design, backend architecture, microservices, and helping others grow in tech.

HANG TAGS

MAKALA HII ILIWASILISHWA NDANI...

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks