Come può uno sviluppatore che lavora da solo rispondere a un picco nelle richieste del server?

5

Immagina questo scenario:

Hai creato un'app per giochi multiplayer per una piattaforma mobile come Android. L'hai installato con successo su un server, hai capito come farlo. Funziona abbastanza bene.

Con tua sorpresa, il gioco SCENDE. Le richieste del server esplodono. Devi ridimensionare, ma non hai praticamente esperienza con l'esecuzione di un singolo server, per non parlare dell'esecuzione di più server in tandem.

Che cosa fai? Esiste un servizio (stile Heroku) per aiutare con una cosa del genere? Nulla? O hai bisogno di assumere qualcuno con un certo set di abilità e l'esperienza necessaria?

    
posta temporary_user_name 18.06.2013 - 06:39
fonte

5 risposte

6

1. A livello di app

L'esecuzione di un'app su più server non è terribilmente difficile. Ci sono tecniche che sono difficili da capire e implementare, ma ci sono anche alcune tecniche di base che chiunque può usare.

Scopri le tecniche di base. Se non è abbastanza, allora sì, dovrai trovare un libero professionista o assumere uno sviluppatore.

2. A livello di infrastruttura

Eseguire server da soli (leggi "a casa") è molto difficile. La maggior parte delle piccole aziende che ritengono di avere il proprio data center lo stanno facendo male. I loro "data center" non sono sicuri, mal gestiti, non protetti da problemi di alimentazione, ecc.

Molti sviluppatori, incluso me stesso, hanno un PC a casa che funziona giorno e notte. Li chiamiamo server. Non lo sono, ma non importa, perché è divertente dire: "Ho un server a casa".

Altre persone utilizzano società di hosting, che spesso non includono alcuna scalabilità. Se intendi utilizzare un numero fisso di macchine per sempre, sei fortunato. Se la tua app inizia ad essere molto popolare, sorgono problemi.

Cloud come termine tecnico, ad esempio Windows Azure, non * cloud "come una parola d'ordine di marketing, come iCloud, ti aiuta a risolverlo. Puoi facilmente scalare l'infrastruttura da una a centinaia dei server in pochi minuti, quindi ridimensionare nuovamente se necessario.

    
risposta data 18.06.2013 - 07:06
fonte
3

Le prime tre cose che vuoi fare sono profilo, profilo, profilo.

Per essere in grado di ridimensionare in modo efficace, è necessario sapere esattamente a cosa serve che deve essere ridimensionato. Qual'è il collo di bottiglia? Sono connessioni simultanee? accesso al database? Utilizzo intenso del processore a causa del tuo codice? Una volta scoperto il problema, puoi prendere una decisione informata su cosa fare dopo. Ho visto casi in cui la necessità di nuovi server è stata evitata aggiungendo semplicemente alcuni nuovi indici di database. Assicurati di utilizzare le risorse attuali nel modo più efficiente possibile prima di aggiungere altri server nel mix.

    
risposta data 18.06.2013 - 07:30
fonte
2

Uno dei modi più veloci con cui una piccola startup può bruciare i profitti è spendere tutto per cercare di soddisfare la domanda. Ci sono buone ragioni per cui aziende come AE fanno pagare $ 10 per mobile e questo perché l'infrastruttura è costosa.

Potresti esserti imbattuto in un'app mobile che è una grande idea, e nessun altro l'ha fatto. Quando lo rilasci ti rendi conto del motivo per cui nessuno lo ha fatto è perché il costo delle risorse IT supera quello che le persone sono disposte a spendere per l'app.

Il cloud storage è un ottimo esempio. La maggior parte delle persone utilizza account gratuiti e ciò significa che la piccola percentuale che acquista spazio di archiviazione paga anche la copertura in modo che tutti gli altri possano disporre di un account gratuito.

Devi capire quanto addebitare per coprire i costi di aggiornamento della tua infrastruttura per supportare il successo improvviso, ma anche evitare l'errore di spendere tutti i tuoi soldi per raggiungere il pareggio.

Uno dei maggiori problemi con lo sviluppo mobile rispetto ad altre piattaforme è l'aspettativa molto bassa di quanto costano le app. Un'app che vende per $ 1,99 e si muove su 100.000 unità potrebbe sembrare che lo sviluppatore stia facendo un sacco di soldi, ma potrebbe costare oltre $ 50k per lo sviluppo e i costi del server superano i $ 10k + al mese.

Gli sviluppatori saggi creano app che sono liberamente accoppiate ai server di dati e offrono un elevato valore utente con il minimo sforzo di sviluppo. Purtroppo, questo è spesso difficile o poco pratico per la maggior parte dei progetti.

Non sono sicuro di aver risposto alla domanda, ma sto tentando di avvisarti prima di budget delle spese aziendali. Non dare per scontato che è possibile eseguirlo su un server economico e nessun altro lo sta facendo. Che questo si tradurrà in profitti se aumenti di livello, perché le probabilità sono che potrebbe essere un'idea difficile da ottenere su larga scala.

    
risposta data 19.06.2013 - 02:49
fonte
1

Hai alcune opzioni.

  1. Coinvolgi o collabora con qualcuno che sa come farlo.
  2. Sposta il tuo server su Amazon AWS / EC2 o servizi di tipo simile.

È piuttosto probabile che chiunque ti impegni per l'opzione 1, probabilmente farà solo 2 per te.

Queste soluzioni hosted di tipo "cloud" sono piuttosto grandiose, in genere pagate per quello che utilizzate e solitamente includono l'opzione di poter far girare su richiesta server extra per gestire il carico (ala EC2). Combinato con sufficiente larghezza di banda e tempo di attività, questi provider sono un'opzione di gran lunga migliore rispetto all'hosting del server localmente. Che è più che probabile contro il Toss della tua connessione internet a casa;)?

Il profiling del tuo server ti porterà così lontano, ma se saturerai la tua connessione sei ancora morto nell'acqua.

    
risposta data 19.06.2013 - 02:15
fonte
0

Innanzitutto, è un bel problema, prova a non sprecare troppo tempo a mitigarlo anticipatamente però.

Inizia subito a lavorare con due macchine con carico bilanciato, se riesci a distribuire il carico su due, puoi farlo in molti. Con due server puoi fare un vantaggio con il ridimensionamento verticale.

Se necessario, puoi iniziare con due piccoli VPS per risparmiare sui costi di hosting. Il vantaggio aggiunto è una certa ridondanza e ci si può appoggiare su uno mentre si aggiorna / si riavvia l'altro ecc. Un sacco di vantaggi!

    
risposta data 19.06.2013 - 01:54
fonte

Leggi altre domande sui tag