Posts Tagged ‘aws’

Day 2 - The Principles of Distributed Computing and the Birth of AWS

Thursday, April 2nd, 2009

Werner Vogels, vicepresidente e CTO di Amazon.com, ha tenuto una interessantissima sessione su come l’infrastruttura di Amazon.com è cambiata negli anni, arrivando con step successivi ad una architettura a servizi, realmente scalabile e distribuita.
Partiamo con qualcosa di curioso, Warner Vogels, che già conoscevo online essendo un lettore del suo blog è veramente un personaggio particolare, molto fa l’accento pesantemente olandese del suo inglese, l’abbigliamento molto informal e la presentazione svolta al contrario è partito dalle slide che in realtà dovevano chiudere il suo intervento.
Ma veniamo ai contenuti, sono stati presentati i principi che devono essere alla base della progettazione di un sistema scalabile e che Amazon ha applicato in questi ultimi anni per passare da una classica architettura (Application Server + Database) che non era per nulla scalabile, alla situazione attuale, all’architettura modello del nuovo Amazon.com, tanto ben fatta che alcuni servizi sono stati proposti sul mercato per essere usati da terzi, si tratta degli Amazon Web Service (AWS), che sono usati anche da TamTamy.com

I principi illustrati sono:

  • autonomy
  • asynchrony
  • controlled concurrency
  • controlled parallelism
  • decentralize
  • failure tolerance
  • local responsibility
  • simpliciy (but no simpler)
  • symmetry

Attualmente i servizi che sono stati realizzati e che sono necessari per il corretto funzionamento di Amazon.com sono circa 600, eterogenei, scritti in linguaggi differenti, non ci sono vincoli da questo punto di vista, l’importante è rispettare i principi sopra elencati, ogni reparto è poi autonomo (e responsabili) nello sviluppo dei servizi.

Chiudo con questa affermazione: “Scaling down is more important than scaling up (to reduce the cost)