Quali sono le insidie più comuni dello sviluppo del cloud in cui ti sei imbattuto?

6

Sto cercando di iniziare a lavorare su un'applicazione basata su cloud e sarei interessato a conoscere le esperienze di eventuali insidie che hanno incontrato in particolare dal punto di vista del design / architettura quando si lavora con le piattaforme cloud. Ci sono aspettative che potrebbero cambiare in modo significativo dalle normali pratiche di sviluppo web? Cose che avresti voluto sapere prima di iniziare o che avrebbero potuto influenzare la tua scelta di piattaforma se fossi stato a conoscenza di loro? Mi rendo conto che ci sono differenze significative tra le diverse opzioni là fuori, ma ritengo che ci siano somiglianze abbastanza significative da giustificare la richiesta come una domanda generale.

Qualunque esperienza con piattaforme particolari sarebbe anche utile, sarebbe interessante vedere se altri hanno trovato cose simili su altre piattaforme ...

    
posta glenatron 17.12.2010 - 23:56
fonte

4 risposte

9

Gli otto errori del calcolo distribuito:

"Essenzialmente tutti, quando creano per la prima volta un'applicazione distribuita, formulano le seguenti otto ipotesi: tutte a dimostrazione di essere false a lungo termine e tutte causano grossi problemi e dolorose esperienze di apprendimento.

  1. La rete è affidabile
  2. La latenza è zero
  3. La larghezza di banda è infinita
  4. La rete è sicura
  5. La topologia non cambia
  6. C'è un amministratore
  7. Il costo di trasporto è zero
  8. La rete è omogenea

Per maggiori dettagli, leggi l'articolo di Arnon Rotem-Gal-Oz "

link

    
risposta data 18.12.2010 - 10:23
fonte
2

Supponiamo che ogni nodo / macchina / istanza fallisca spesso. La tua architettura deve essere non solo tollerante di questi errori, ma anche aspettarsi che accada frequentemente. Quindi il tuo sistema non dovrebbe sopravvivere solo a tali incidenti, non dovrebbe nemmeno essere infastidito da loro e dovrebbe (idealmente) guarire se stesso quando accadono.

È la mia esperienza che determinate istanze cloud sono in genere molto meno affidabili (in tutti i parametri) rispetto ai normali vecchi server. La loro forza sta nei loro numeri e non in nessun nodo particolare. Quindi rendi il sistema distribuito e ridondante al suo interno.

    
risposta data 18.12.2010 - 10:12
fonte
2

Impara dalla Scimmia del caos .

We’ve sometimes referred to the Netflix software architecture in AWS as our Rambo Architecture. Each system has to be able to succeed, no matter what, even all on its own. We’re designing each distributed system to expect and tolerate failure from other systems on which it depends.

One of the first systems our engineers built in AWS is called the Chaos Monkey. The Chaos Monkey’s job is to randomly kill instances and services within our architecture. If we aren’t constantly testing our ability to succeed despite failure, then it isn’t likely to work when it matters most – in the event of an unexpected outage.

    
risposta data 18.12.2010 - 10:38
fonte
0

Le stesse insidie che le persone hanno sulle piattaforme non virtualizzate.

  • App che non vengono scalate orizzontalmente.
  • Scelte / implementazioni algoritmiche scadenti
  • Assenza di riduzione aggraziata di funzionalità e prestazioni in risposta a carico elevato / risorse ridotte.
  • Ignoranza dei problemi comuni / probabili sulle piattaforme su cui esegui e un piano per mitigare tali rischi.
risposta data 18.12.2010 - 16:24
fonte

Leggi altre domande sui tag