venerdì 23 maggio 2014

Un giorno nella vita di Facebook Operations

Note dalla presentazione "Un giorno nella vita di Facebook Operations" di Tom Cook, Systems Engineer, Facebook a Surge2010 conferenza.
Finora questa è la sessione più frequentato. Standing camera disponibile solo solo prima di iniziare.
Che cosa significa amministratori di sistema facebook devono sostenere?
  • Mensili 700,000,000 minuti di tempo speso su fb
  • 6billion pezzi di contenuti aggiornati
  • 3 miliardi di foto
  • 1 milione di implementazioni di connessione
  • Mezzo miliardo di utenti attivi
Crescita Infrastrutture
  • fb raggiunto un limite di leasing spazio datacenter
  • fb sta costruendo il proprio http://www.facebook.com/prinevilledatacenter
  • attualmente in servizio fuori della California e Virginia
Inizialmente uno stack LAMP. LB -> Web Server -> Servizi / Memcached / Basi di dati
Originariamente facebook era un semplice sito di Apache PHP. Quando fb iniziato a colpire un limite a questo, hanno iniziato la compilazione di PHP in C + + ( HipHop per PHP).
FB sostiene di essere il più grande dispiegamento memcache in tutto il mondo. Essi server di 300 Terbytes di dati memcached dalla memoria.
MySQL miglioramento s contribuito posteriore è flashcache.
Servizi supportati
  • News Feed
  • Ricerca
  • Nascondiglio
Linguaggi di implementazione del servizio
  • C + +
  • PHP - front-end
  • pitone
  • Rubino
  • Giava
  • Erlang (chat room)
Come parlano tra questi? Json? SOAP? No, FB Thrift attuato - ligtwaith software framework per lo sviluppo del linguaggio trasversale, una colla comune dietro tutti i sistemi di facebook.
Per i sistemi, che cosa ha fb di preoccuparsi su una base quotidiana?
  • distribuzione
  • monitoraggio
  • manaement dati
  • Aggiornamenti operativo di base
Facebook OS è .... CentOS!
Sistemi di Gestione
  • Configuration Management
  • CFengine per la gestione del sistema
  • On Demand
Distribuzioni
  • Web Push - nuovo codice viene distribuito a FB, almeno una volta al giorno. La sua una spinta coordinata, tutti sono a conoscenza, la notifica avviene a Dev Team. Chiunque siti sul IRC durante la spinta. Si comprensione passa da ingegneri e il resto della compagnia
    • spingere software costruito su on-demand strumenti di controllo
    • codice distribuiti tramite sciame BitTorrent interna
    • php viene compilato, le poche centinaia di MB binario viene rapidamente spinto po bia torrent.
    • ci vuole un minuto per spingere tutta la rete
  • Distribuzioni di backend - solo ingegneria e le operazioni. Ingegneri scrivono, prova e visualizzazione
    • Prendere rapidamente decisioni prestazioni
    • Esporre modifiche sottoinsieme del traffico reale
    • No 'impegnarsi e uscire'
    • Profondamente coinvolto in movimento servizi alla produzione
    • Ops 'embeded' nel team di progettazione
  • Heavy Change logging - pin code che punta a ogni pressione e il cambiamento
Monitoraggio e metriche dei server e le prestazioni su facebook
  • Gangli - aggregati metriche
    • veloce
    • lineare
    • griglie e piscine annidate
    • oltre 5 milioni di metriche monitorate
  • sistema di monitoraggio inhouse facebook
Monitoraggio - facebook utilizza ancora Nagios !
Per gestire la complessità e il numero di allarmi e sistemi di monitoraggio della squadra fb utilizza aggregazione. Inizialmente gli allarmi sono stati gestiti tramite e-mail.
Scribe - domanda di registrazione ad alte prestazioni. Syslog utilizzato inizialmente. Utilizzato anche Hadoop e Hive.
Come funziona e viene fatto?
  • chiara definizione delle dipendenze e delle responsabilità
  • Fallimento Constant
  • I server erano la prima linea di difesa, poi ha iniziato concentrandosi su rack
  • Ora è focalizzata su cluster. Basato delineazione Logical sulla funzione (web, db, mangimi, ecc)
  • Tappa successiva è data center - cosa fare se un disastro naturale?
  • Comunicazione costante - le informazioni sono condivise costantemente.
    • IRC
    • un sacco di bot automatizzati, get e set di dati
    • aggiornamenti interni
    • "Basette" a strumenti interni
    • Cambiare registro / feed
  • Piccole squadre
Fatto interessante - ogni server fb riceve un aggiornamento in media ogni otto minuti.
Giorno più trafficato per FB è il giorno dopo Halloween :)

Nessun commento:

Posta un commento

Nota. Solo i membri di questo blog possono postare un commento.