Determinazione del costo delle chiamate API [chiuso]

6

[Questo è un cross post originariamente pubblicato da me in SO. Penso che la domanda sia più appropriata qui.]

Stavo passando per l'API di AdWords e ho trovato il foglio dei tassi: link .

Addebitano $ 0,25 per 1000 unità API e sotto la sezione "Costi operativi" elencano il costo (in unità API) delle diverse chiamate API. Sono curioso: basandomi su quali fattori (e altri sviluppatori API) calcolano il costo di una chiamata API? C'è una semplice formula o un modo standard per determinare questo?

Nota : quando dico "costo" di una chiamata API, non intendo i soldi ma le unità API. Ad esempio, come si determina che una chiamata API costa 100 "unità" e un'altra 1000?

Espansione del mio post originale : Ogni chiamata API consumerà una quantità specifica di cicli della CPU, memoria e larghezza di banda sul server (e forse qualche altra metrica a cui non ho pensato). Mi piacerebbe sapere in particolare quali strumenti / metodi sono disponibili per determinare questi parametri se l'API viene sviluppata utilizzando (una qualsiasi delle seguenti combinazioni):

Perl, Python, PHP, .net, Ruby (o qualche altra lingua).

Postgres, MySQL, MS SQL Server, Firebird, SQLite (o qualche altro database).

Apache, IIS (o qualche altro server web).

Windows, Linux (o qualche altro sistema operativo).

    
posta Sam 12.01.2011 - 19:22
fonte

2 risposte

3

Tipicamente, dovresti eseguire il load-testing e giungere alla conclusione "possiamo tranquillamente servire 50.000 richieste al giorno per server", e quindi usare "i costi medi di gestione di un server è $ 1 [a ipotesi] al giorno, quindi costa 2c per 1.000 richieste ". Potresti eseguire test di carico simili su ogni chiamata API per determinare il costo relativo di ciascuno.

Non importa quale piattaforma o lingua stai usando, il metodo di load-testing è fondamentalmente lo stesso.

Si noti che anche le economie di scala giocano significativamente in questo. Per un'azienda come Google aggiungere un altro server al suo centro dati aggiunge praticamente zero ai loro costi incrementali. Non ti fanno pagare per chiamata API per recuperare i costi, ma per prevenire abusi. Se tutti stessero martellando i loro server tutto il giorno con richieste di aggiornamento dei report e così via, avrà un effetto. Quindi fanno pagare una commissione (nominale) che fondamentalmente ti costringe a pensare due volte alle tue esigenze (devo davvero devo aggiornare questo rapporto ogni 30 secondi?)

    
risposta data 13.01.2011 - 01:25
fonte
4

Le unità API sono solo una conversione di valuta, perché è più facile parlare di 1000 unità API che parlare di frazioni di un centesimo.

Sanno che una chiamata API costa 100 unità perché sanno che costa $ .00125 (presupponendo un markup del 100% su quanto addebitare al cliente).

Sanno che costa $ .00125 per quella chiamata API, perché hanno eseguito alcuni calcoli complessi che tengono conto del loro costo all'ora (costi delle apparecchiature, costi dell'elettricità, costi di supporto, tutto) e dividono il modo in cui tempo necessario per eseguire la chiamata API in media (o qualche metrica simile).

Sanno che l'altra chiamata API costa 1000 unità perché richiede un tempo dieci volte più lungo della prima chiamata (o utilizza dieci volte il numero di cicli del processore, o qualunque sia il loro parametro).

    
risposta data 12.01.2011 - 19:35
fonte

Leggi altre domande sui tag