Press "Enter" to skip to content

GOTO 2013 • Knowledge is Imperfect – Acting on Stale, Inconsistent or Missing Data • Ulf Wiger


quindi ho pensato che forse avrei potuto parlare
su alcune delle esperienze che ho avuto
attraverso la mia carriera in I sai lavorare
con dati imperfetti e dopo aver accettato
a quello ho capito che è piuttosto difficile
argomento di cui parlare vedremo come
vado principalmente a fare la guerra
storie Non ho intenzione di voi qualsiasi danno
algoritmi o estremamente concreti
esempi ci saranno alcuni concreti
esempi su come abbiamo risolto alcuni
problemi se si applicano a voi I
non poteva fare a meno ma principalmente mi piacerebbe
concentrarsi solo sul processo di
capire qual è il problema
problemi sono con la vostra conoscenza la vostra
conoscenza dei dati su cui stai lavorando
e anche la conoscenza del problema
si sta lavorando e quindi credo che questo
sarebbe la mia versione di Steve Ritchie
problema di tempo di amaca che tendo anche a
essere il tipo di programmatore che andrà
sai che potresti trovarmi nella vasca da bagno
spero che non mi troverete nel
vasca da bagno
ma a quanto pare non funziona affatto per a
molto tempo perché mi piacerebbe capire
il problema al punto in cui posso
quasi vedere il codice di fronte a me
prima mi siedo e lo scrivo davvero
giù che a volte è un po ‘
imbarazzante quando si tenta di spiegare a
persone che stai effettivamente lavorando
quindi la mia esperienza brevemente alcuni anni dopo
la mia gioventù ero in Alaska di tutti i posti
lavorando con la prima US Air Force e
poi la divisione di emergenza in Alaska
Servizi e lavoro sul comando militare
e sistemi di controllo e quindi disastro
sistemi di risposta e quindi ho avuto modo di sapere
questa è una foto che ho scattato con un MIG 2029
Credo che sia stato visitare il
Elmendorf Air Force Base al di fuori di
Anchorage nell’89 faceva parte del genere
dei cambiamenti dopo la caduta del Muro
quindi essenzialmente il comando e il controllo è
tutto sul tentativo di capire cos’è
andando avanti e formando decisioni basate su
quello e così il sistema che ero
lavorare su era ragionevolmente globale
sistema vicino in tempo reale al grafico
visualizza informazioni vadano ad aggiornare merito
ogni 10 secondi con informazioni su
informazioni sui movimenti di truppa dal radar
nutre tutti i tipi di cose senza singoli
punto di errore e attaccamento a molto
di diversi sistemi che utilizzano molti
traduttori e cercando di normalizzarsi
dati è stato un primo progetto interessante
su cui lavorare dopo che sono entrato in Ericsson
la ragione per essersi unita a Ericsson è stata
in parte perché sembrano fare
roba abbastanza fresco anche io aveva imparato che
la missione critica era fredda, sembrava reale
in qualche modo e Ericsson era dentro
sistemi mission critical ma soprattutto
Volevo trovare un’azienda in cui io
potrebbe funzionare con Erlang e non c’erano
che molti in 96 credo ci fosse
esattamente uno così sono entrato in Ericsson e
lì ho trascorso 13 anni lì che è
il che significa che a malapena ti va
si è laureato da junior status in
società in realtà durante le telecomunicazioni
crisi dopo un po ‘lì loro
stavano licenziando persone che si erano alzate
a 10 anni di esperienza nella prima uscita
quindi II ha appena fatto il taglio così
è così che ti hanno fatto sentire così anziano
una delle cose che abbiamo costruito era
Credo che al giorno d’oggi sia voice-over-ip
allora era la voce fuori campo ATM ma
pacchetto di voci fuori campo se lo farai
migrazione dalla telefonia vecchio stile
sistemi oltre alla telefonia IP e così via
non potrei dire che abbiamo inventato il soft
passare perché era in realtà
allentato che lo chiamano così
erano quelli che lo chiamavano soft
interruttore siamo stati i primi a consegnare
qualcosa in cui ha effettivamente funzionato
sistemi hardcore come gli inglesi
Rete di transito delle telecomunicazioni e in Spagna e Spagna
Telecom francese e un paio di posti
è stato divertente circa due milioni di righe di
Codice di Erlang ora lavoro in un piccolo
azienda siamo tre costruttori di sviluppatori
servizi di gestione dei dispositivi connessi e
Immagino sia un po ‘troppo presto per condividere un
un sacco di esperienze da quel lavoro
perché ci siamo andati per circa
un anno e mezzo quindi alcuni dei tratti
di questi sistemi hanno lavorato su
per esempio C 2 conosci i militari
sono molto grandi su acronimi e tutto
deve essere tutto maiuscolo quindi chiamano C
comandare e controllare uno dei
cose interessanti sui militari
comando e controllo è che devi
supponi di avere un nemico che è
attivamente cercando di rendere la tua vita
miserabile quindi hai requisiti come
il tuo sistema dovrebbe funzionare anche se la maggior parte di
i tuoi siti sono bombardati dall’esistenza
e tu hai persone che sono attivamente
cercando di fornirti informazioni false ora
sembra davvero un moderno
requisito per le applicazioni web per noi
avere a che fare con la negazione del servizio
attacchi e spoofing e tutto
Un’altra cosa è che devi essere
preparato per sapere dove andare il
la guerra è ciò che significa che devi essere
pronto a dispiegarsi in modo abbastanza brutto
luoghi dove possono o non possono avere
comunicazioni elettriche e un altro
è che potresti dover essere anche tu
devi essere preparato che una volta provato a
distribuire il tuo sistema non è possibile
lavorare o potrebbe essere rotto dal
nemico quindi devi avere un ripiego
questo è completamente manuale e, naturalmente
è molto mission-critical il tipo di
il detto era o la linea di fondo
era si fallisce persone muoiono e che è
interessante perché ti protegge
sobrio a volte mi mancava quello a
Ericsson perché era una specie di
mission-critical ma non come ho fatto io
vieni a pensare a mission-critical
come la vita-o-morte mission-critical così
questo era come l’ 89 e l’inizio degli anni ’90, quindi tu
conoscere la tecnologia allora non era proprio quello che
la tecnologia è oggi questo era prima del
web quindi non avevamo bisogno di un singolo punto di
fallimento ridondanza completa in tutto il mondo che
significava che dovevamo replicare che
praticamente non sono stati replicati o
database distribuiti al momento pochi
ma non potevano distribuire i dati a
quella scala in realtà ne hanno provati alcuni e
per lo più penso che in realtà
scortato alcuni di loro al
aeroporto e ha detto loro di non tornare mai più
quindi erano un po ‘delusi con
una sorta di tecnologia all’avanguardia a
il tempo così hanno costruito il proprio
sistema di gestione del database replicato
utilizzando l’ aggiornamento della replica asincrona
basata innescare-
Replica asincrona usando un processo
controllo del sistema di messaggistica da digitale
chiamato Pam’s
ora per la sincronizzazione loro realmente
stavano usando la concorrenza ottimistica come
hai un’immagine prima e poi tu
stavo modificando roba e poi se se il
il database era cambiato prima di te
provare a impegnarsi sarebbe appena tornato
con un errore questo ha funzionato davvero bene
perché questo è l’esercito che non fai
pasticciare con i dati di altre persone è molto
ben definito quali pezzi di informazione
sei responsabile per te e quando tu
li toccherà e sotto cosa
circostanze quindi in realtà un sacco di
controllo della concorrenza e molto del
il controllo di coerenza è stato guidato dal
ripiegamento manuale che era necessario
essere in grado di farlo manualmente solo le persone
parlando tra loro al telefono
ingrassare così essenzialmente
automatizzato che nel sistema, quindi cosa
per quanto riguarda il cervello diviso, lo faresti
continua con tutti i dati memorizzati nella cache
e quindi se le connessioni sono state ripristinate
un altro sistema
ancora una volta questo è rigorosa partizionamento su
ruoli qualsiasi informazione ci fosse
su un’altra base aerea, per esempio
Erano loro i loro dati, quindi lo faresti
buttare via tutto ciò che sapevi
loro e basta succhiare nuovi dati e questo
tipo di lavoro
ora la replica era una sfida perché
questo era Alaska e loro ne hanno alcuni
Atmosfere davvero funky, lassù
l’ aurora boreale e tutto il resto
che rovinano le tue comunicazioni così
un link di replica che avevano era 19
beh, in realtà era un multiplex a
multiplex 19.2 modem quindi durante alcuni di
i loro grandi esercizi con 50.000 soldati
nel campo hanno effettivamente riempito
quella pipa non potevano replicare tutto
tutte le informazioni sullo stato quindi
dovevano tornare indietro e dare la priorità a tutti
gli elementi di dati quindi quando un sacco di cose
stavano accadendo erano solo
replicando prioritari-articoli uno e poi
avrebbero tamponato il resto e risolto
in seguito fu estremamente pragmatico
sistema, ma per quanto ho potuto dire è stato
l’unico sistema di questo tipo al momento
in realtà ha funzionato che mi ha insegnato alcuni
cose sulla politica perché, naturalmente
hanno dovuto spegnerlo ma quello ha insegnato
un’altra cosa riguardo l’esercito americano
le persone che sono operative
responsabilità come la linea di volo
comandante non vai e chiudi
il loro sistema verso il basso perché questi ragazzi
stavano pattugliando il confine USA Alaska
confini con l’ Unione Sovietica e o ha fatto
e quindi quello era un vero lavoro, quindi nessuno
potrebbe toccare il loro sistema e meno loro
potrebbe dimostrarlo a loro
soddisfazione per il fatto che loro possano
che avrebbero messo a posto sarebbero
lavorare come bene o meglio e non potevano
quindi il sistema rimase molto simile a quello di Erlang
sopravvissuto a Ericsson durante l’oscurità
anni così telecamere una delle cose
sulle telecomunicazioni è che è onnipresente
servizio come tutti sanno come il
il telefono funziona e si aspettano di essere in grado
usarlo e si aspettano che sia sempre
lavoro questo era fondamentalmente allora mobile
la telefonia non era così grande questo ha
stato un po ‘ cambiato da cellulare
telefonia perché non sempre
lavoro e non è sempre buono
qualità ma le vecchie linee fisse
in realtà si sa come spesso ha fatto
fallire fino a quando non hai iniziato a ottenere un Cisco
Voice over IP modem nel seminterrato
allora in realtà fallirebbe ma prima
che quasi sempre lavorato ogni
una volta ogni tanto , come una volta all’anno
forse avresti preso il telefono e
non hai il segnale di linea che vuoi dire
torna a prenderlo di nuovo avresti un
segnale di linea
è così affidabile
una delle cose che era eccitante era
le chiamate di emergenza dovrebbero sempre essere
servito il requisito era anche se tu
avere se il carico sul tuo sistema è a
cento 150 per cento si dovrebbe sempre
servizio tutte le chiamate di emergenza e il nostro
requisito modificato era che dovremmo
servizio tutte le chiamate di emergenza anche alle cinque
cento per cento di carico in modo da poter rifiutare
altre chiamate ma mai chiamate di emergenza
quindi un’altra cosa era che se il tuo sistema
fallisce deve fallire in un modo che è
accettabile per le persone che abbiamo avuto
reclami occasionalmente quando i nostri DSP
fallito e avrebbero effettivamente inviato tutto
una volta che essenzialmente tradotto in a
urlo primordiale sulla linea telefonica che era
non popolare non era il tipo di
fallimento che la gente si aspettava
da un altro sistema telefonico
è quando le persone si aspettano che sia
affidabile si prova a questo è stato anche
modificato dalla telefonia mobile che si chiama
un numero e poi attendi qualche secondo
e se non hai se non senti
un tono che si riaggancia perché non lo è
lavorando così hai pochi secondi dove
puoi collegare la chiamata altrimenti la tua
l’utente è andato un po ‘ peggio di
quando stai aspettando una pagina web per
caricare si attenderà per un minuto o così
ma un’altra cosa è se hai dei ritardi
nel discorso allora avete una sorta di
confini cognitivi dove puoi
tollerare alcuni ritardi senza ottenere
preoccupato ma se è troppo allora
l’utente si sentirà molto a disagio e se
lui diventa peggio di quello allora in realtà
le persone non saranno in grado di comunicare
perché loro aspetteranno e
allora entrambi cominceranno a parlare è
chiamato il problema del perdono perché
dici sempre che sei scusato
inventare scuse perché lo sei
interrompendoci a vicenda e tu mai
diventa davvero come lo sai
comunicazione radio simplex si deve
bisogna parlare e poi dire oltre
poi l’altra persona arriva a parlare così
quindi devi fallire con grazia e il
l’altra cosa era l’eredità quando ho iniziato
96 Ho visto sono una richiesta di rischio da
proposte della frac svedese Elia
e avevano ancora elettromeccanici
passa dal 1940 al sistema
che erano di fronte, così fu
un altro requisito che hai davvero avuto
essere in grado di lavorare con alcuni molto vecchi
sistemi così così ora nel dispositivo connesso
gestione ci sono in realtà abbastanza a
poche sfide c’è l’integrità di
i messaggi che invii dal server
al dispositivo c’è la coerenza di
dati di configurazione c’è il
interessante sfida di aggiornamento
software over-the-air e cercando di
capire se in realtà se lo sei
l’aggiornamento ha funzionato e spesso se il dispositivo
fallisce tende ad andare semplicemente in silenzio su di te
quindi ti siedi lì e aspetti e basta
di ‘oh sta per venire questo?
indietro dovrei aspettare un po ‘di più
abbastanza un minuto in cui dovrei appena arrivare
nella mia macchina e scendo là fuori e provo a
salva il dispositivo hai il problema
con debug remoto di qualità della connessione
sandboxing in esso ma soprattutto nel
area di esso l’Internet delle cose il
problema è che non sai davvero cosa
gli utenti vogliono e gli utenti no
sanno davvero quello che vogliono loro loro
tipo di sapere che vogliono qualcosa
così, ma in fondo dobbiamo fare
cose e provate a dire loro che questo è
quello di cui hai bisogno, così sono venuto a pensare
che il tipo di basi per la decisione
il supporto è una sorta di buona base per
affrontare l’incertezza ora nella decisione
supporto erano soliti parlare dei quattro
WS questa è una sorta di nucleo del tutto
cosa che cosa quando dove perché è di solito
non è interessante quando stai reagendo
qualcosa che puoi salvare
per tarda notte con un bicchiere di whisky
o qualcosa in modo tale che chi ha segnalato
appena imparato nel discorso precedente che
non era più interessante ma quando
stai cercando di valutarlo
in realtà può essere quello che è successo quando è successo
succede dove è successo e il
forma breve che il kernel in Alaska che
era responsabile per il sistema c2 era
dove sono le mie risorse quali sono le loro
qual è il loro stato è quello che lui
volevo sapere così in termini di chi
come ho detto si consiglia di proteggere
te stesso da false informazioni quindi tu
bisogno di autenticarsi e anche il
la qualità delle informazioni può dipendere da
la fonte per esempio in se dici
stiamo ancora parlando velivoli qui non
o militare così hai visto che hai
informazioni su un velivolo nemico bene
se fosse da un ragazzo che ha visto
qualcosa e poi chiamato in questo è il
può essere una specie di fonte non affidabile
vero se si tratta di un feed reale dal
stazione radar quindi ti fidi abbastanza
bene così e uno è in realtà a
foto dal Canada da qualche parte ma l’abbiamo fatto
hanno una delle cose che hanno avuto problemi
con nell’ultimo
era inondazione e quindi ero lì
durante una particolare alluvione che fu
molto interessante da un disastro
Punto di vista della risposta il
ufficiale delle comunicazioni ha informato il capo
che quando ha sentito che quello che il
ci si aspettava che il livello dell’acqua fosse detto
bene va bene il generatore di backup ahimè calmo
in realtà è più basso di così è
andando ad essere sotto l’acqua presto e siamo
Non intenzione di avere qualsiasi comunicazione ora
il problema era che il capo odiava questo ragazzo
quindi non lo avrebbe ascoltato così
il generatore allagato non avevano
qualsiasi comunicazione dovevano volare su un
Satphone NMR e, naturalmente, tutti in
il villaggio stava parlando con loro
parenti su quel signore Sat telefono così
bolletta telefonica per quel particolare salvataggio
l’operazione era settecentomila
dollari quindi a volte importa chi
in realtà riporta le informazioni e non
sempre in senso buono ora che particolare
l’immagine è l’edificio dell’FBI in Oklahoma
Città ci è stato chiesto dalla Croce Rossa di
prova a capire quanti Alaskan
i parenti sono stati feriti durante quel tempo
ed è stato molto difficile ottenerne un po ‘
informazioni perché fondamentalmente questo sarebbe
che nessuno era preparato per questo e
una delle cose che succede ad ogni
il disastro è che tutti vogliono
capire cosa è successo a loro
i parenti quindi una cosa che spesso
succede è che l’ intero sistema telefonico
si rompe perché si sovraccarica
e molta gente non pratica questo
e gli svedesi non hanno fatto per esempio quando
c’era questo tsunami e le tasche
lo svedese l’interruttore del telefono per il
il ministero degli Esteri è crollato e nessuno
potrei scoprire qualcosa così sono finito
seduto lì a raschiare il web perché
persone
stavano mettendo su siti web di fortuna dove
erano loro avevano copiato le trascrizioni
erano da diversi ospedali
in esecuzione triage ed era piuttosto caotico
quindi alcune persone potrebbero essere registrate a
un ospedale e poi sono stati controllati
in un altro ospedale o elencato come
morto e quindi hai dovuto sedere lì e
in realtà decodificare e provare ad accoppiare
le persone cercano di capire chi erano
la famiglia e quello era abbastanza interessante
ma non è divertente, quindi capire cosa ha
successo è spesso sorprendentemente difficile e
Penso che questo sia vero anche in molti dei nostri
I sistemi software a cui ero abituato in particolare
i sistemi di telecomunicazione che a Ericsson uno
delle cose su cui ho dovuto lavorare
cosa è il controllo del cluster in parte perché noi
pensato che sarebbe parte di Erlang OTP
ma a quanto pare non sapevano che così
non hanno costruito un controller di cluster
quindi qualcuno doveva saltare dentro e fare
questo e quello ero io quindi ho dovuto fare molto
di lavoro il diacono o cercando di capire
fuori o diagnosi di split-brain e and
cose del genere
e
anche diversi livelli questo è tornato a
comando e controllo è diverso
persone diverse hanno bisogno di diverso
viste dei dati quindi una delle sfide
è quello di servire il giusto livello di
astrazione quindi l’approccio che
hanno avuto in Alaska è stato fondamentalmente messo
sarebbero andati nel sistema
fuori a tutti i diversi servizi sul
base aerea ed era il volo dell’ospedale
linea meccanica tutti e ha chiesto loro
quello di cui avevano bisogno e poi lo erano
facendo prototipazione rapida del database
punti di vista e alla fine tutto è finito
il sistema e poi hanno capito come
aggregarlo per diversi livelli
quindi le persone nel campo avrebbero bisogno di un
certo vedere le persone nel comando
il centro avrebbe bisogno di un’altra vista tranne una
delle cose che erano davvero importanti
ecco che era tutto uguale
informazioni in basso quindi il generale
potrebbe effettivamente scavare in una sorta di
i registri di manutenzione anche se voleva
per sapere cosa stava effettivamente succedendo perché
non aveva una copertura radar per
esempio e ora entriamo un pochino
su una specie di organizzazione e così via
almeno quando stai facendo una presentazione
puoi definire le tue leggi e
e li chiamò uno di loro
cose che ho trovato soprattutto dopo un po ‘
gli anni stabiliti da Ericsson sono quella gestione
gli piace la visione del mondo che loro
stanno dicendo alla gente cosa sta succedendo e
e che cosa devono fare e le persone in
il pavimento può sedersi lì e dire bene
sì lo sapevamo già perché noi
leggi anche i documenti e ascoltiamo il
voci ma in realtà sappiamo cosa può essere
fatto e cosa si sta facendo
che non sembra sapere in particolare
in una grande azienda questo sembra accadere
e uno dei problemi è quello
le informazioni vengono disconnesse segnalate
al tuo manager più vicino che vuole aggiungere
valore in modo da riscrivere ciò che si segnala
loro
e sintetizzarlo al livello successivo e
allora quel livello vuole anche aggiungere valore
e appaiono originali in modo che possano riscrivere
è un po ‘così, una volta che si alza a
la direzione superiore
non assomiglia davvero a quello
le persone sul pavimento in realtà hanno detto loro
manager e non c’è modo di esercitarsi
giù perché è stato disconnesso a
ogni livello quindi questo è uno dei più grandi
cose in una grande organizzazione anche in
una piccola organizzazione ma in crescita
organizzazione diventa sempre di più
importante che tu non voglia questi
disconnette e informa anche questo
sopporta il processo di progettazione se ne hai
un grande progetto quanti ne hai
in realtà ha funzionato in un grande progetto come
più di 50 persone stanno bene circa la metà quindi
una delle cose che possono accadere lì
è che hai degli analisti
persone che sono forse architetti o
qualunque cosa guardi i requisiti
e pensano al problema e
decidono come si sta andando a costruire
roba nel frattempo i programmatori sono occupati
su un altro progetto non puoi usarli
per la fase di analisi perché lo sono
facendo cose importanti nei sistemi
abbiamo costruito la fase di analisi potrebbe prendere
diversi mesi che è fondamentalmente
rubando quel tempo che i progettisti
dovrebbe essere ottenuto al fine di ottenere
conoscere il sistema e e ordinare
di lasciare la descrizione del problema
e le astrazioni e le idee su
come costruirlo è come sistemarsi
concettualmente ci vuole molto tempo per
tipo di ottenere una comprensione mentale di un complesso
sistema e quindi lo chiamavo mentalmente
tempo di gestazione sai come fare
puoi persino capire una cosa molto complessa
sistema ci rimarrai per molto
a lungo
e alla fine ci sentiremo tutti naturali
ma se solo salti in tutto
sembrerà definito incomprensibile
quindi ho trovato che molte decisioni sbagliate sono
fatto da persone molto intelligenti perché loro
non avere l’ immagine completa e e
spesso questo è il caso perché
troppe persone stanno segnalando e
tutti vogliono aggiungere valore o no
infastidire gli altri con le cose che sentono
non sono importanti quindi un effetto e II
Stavo leggendo il libro che tesseva il web
quando ero a Ericsson e II lo sentivo
questo è stato davvero applicato a me e questo
libro era su come il web è entrato in
essere e una delle cose che ha scritto è stato
un’organizzazione perde la sua intuizione quando
la persona che ha la risposta non è
parlando con la persona che ha il
domanda e poi quello suonò vero per me
perché ero stato lì per diversi
anni e non avevo mai incontrato un cliente
perché gli altri lo stavano facendo così
quando ti sei seduto lì e tu eri
cercando di costruire il sistema davvero
avrei voluto parlare con un cliente
ma di solito i manager in particolare no
vuoi che gli sviluppatori parlino con i clienti
sempre perché gli sviluppatori tendono a dire
cose che sono scomode così tu
bisogno di tenerli lontano dal cliente
ma questo spesso significa che non lo fai
davvero ottenere il taglio e le risposte a
le domande come sono davvero questo
il cliente vuole averli davvero
pensato questo attraverso non loro davvero
significa qualcosa in altro interamente ma
devi ancora costruirti qualcosa
costruirlo in tempo e devi
testalo e devi dimostrare al tuo
manager che questo funziona davvero e
passa tutti i casi di test ma non è possibile
dì con sicurezza che quello che hai costruito
era ciò che l’utente
voleva ora è qui che agile
le metodologie sono estremamente importanti
pensa ma una delle cose che Bjorn a
Decker che è stato uno dei padri della
Erlang potresti dire il ragazzo che
in realtà ha iniziato l’ informatica
laboratorio di Ericsson era solito dirlo
lo sviluppo del software è un top-down
attività bottom-up quindi non puoi davvero
risolverlo con solo metodi bottom-up e
non puoi risolverlo con metodi top-down
o così ho visto un sacco di agile
metodologie applicate a grandi progetti
causato un sacco di caos perché quello che tu
quello che ti è mancato è stata l’architettura
Vedi che hai un sacco di team di funzionalità e
ottieni un sacco di efficienza
qualcosa hai questo componente e
e tu hai la tua opinione che è
fondamentalmente formato dal popolo il
conoscenza combinata conoscenza del
persone nel tuo team di funzionalità e tu vai
con quella conoscenza e si costruisce
qualcosa ma ciò che non necessariamente
sapere è se si inserisce nel maggiore
nella grande architettura e così ero
impressionato dal tawny premio Turing
discorso probabilmente non sono l’unico
hai letto quante persone hanno?
leggere il discorso del taurino cavallo Turing a
il resto di voi compiti è eccellente
e parla di come ha fallito
completamente su un certo progetto che
sofferto caratteristica creep e ma alla sua
sorpresa è stato messo a capo del
progetto di pulizia dopo che erano usciti
a tutti i clienti e glielo hanno detto
non possono salvare e così dopo che
tutti i manager hanno sfilato in lui e
gli ha detto la loro visione del perché le cose
fallito e finalmente il più grande capo I
nella foto un Thomas che è entrato
e urlò che gridava sempre in apparenza
sai cosa hai fatto di sbagliato che hai lasciato
le altre persone fanno ciò che tu stesso hai fatto
non capisco e Tony cavallo prima
la reazione è stata che è completamente fuori di
esso
come qualcuno potrebbe mai capire a
un’applicazione software complessa come la
l’ applicazione modem Hughes ma finalmente
ha capito che questo era in realtà
la chiave per l’intera cosa quindi uno dei
cose che hanno fatto per salvare questo
era quello che tutti volevano costruire
qualcosa doveva venire a Tony Hoare e
spiegare cosa volevano fare e quello
non avrebbe permesso loro di farlo fino a che lui
capito di cosa stavano parlando
e abbiamo parlato molto avanti e indietro a
Ericsson e ha deciso che questo probabilmente
risolverebbe molti dei nostri problemi come
bene sai che non eravamo sicuri di noi
potrebbe andare via con una persona da quando
era un progetto di cento uomini e come quattro
milioni di righe di codice in totale ma noi
pensato che forse una squadra di una manciata
di persone e il requisito di gating
era che i team di progettazione dovevano venire
noi e spieghiamo la loro proposta fino a noi
lo so e dice che sì, lo capiamo
non necessariamente si questo è il migliore
soluzione ma sì capiamo cosa
quello che stai cercando di fare e idealmente
per fare questo lavoro dovrebbero
vieni presto da noi e parla del loro
idee iniziali in modo che se non fossimo d’accordo
affatto sarebbe più facile piuttosto che
passare tre mesi nel tuo cubicolo
scrivere un documento di cento pagine e poi
dicendo qui questo è quello che farò
che di solito è quello che è successo e tu
e poi hai avuto una recensione documentata
ho aspettato il documento due giorni prima
è stato davvero un complesso centinaio di pagina
documento e dovevi avere
un’opinione
potresti avere un’opinione sul
intestazioni i fondatori l’ortografia del
indice e se tutto ciò che era
okay , praticamente l’hai approvato perché
nessun altro e la gente si siederebbe lì
e pagina attraverso il buio
e come sono stati seduti nella
ripassa l’incontro perché ne hai presi dieci
quelli ogni giorno quindi come hai potuto
possibilmente leggerli tutti
così a volte hai davvero un molto
informazioni esatte se ne hai
specifiche che dovresti davvero fare
la maggior parte di loro e sarebbe davvero
grandi se fossero anche corretti quali io
trovato quando stavo costruendo un diametro
impilare alla data Ericsson
questo è in realtà un estratto di a
specifiche del diametro e l’ho pensato
è stato davvero intelligente, ho appena copiato il
parti formali della specifica in
il mio generatore di codice quindi vorrei generare
codice dalla specifica in modo che il mio
codec e e tutto sarebbe
esattamente secondo le specifiche ma solo per
su ogni specifica ho fatto questo
con ho ottenuto un errore del compilatore perché il
la specifica non era sintatticamente corretta
non era coerente c’erano errori di battitura in
la variabile indica tutti i tipi di cose così
Io fossi ancora e questo sarebbe 3GPP esso
sarebbe Etsy questi lo sapevate stabile
bozza di specifiche e loro no
lavoro così e vorrei inviare queste relazioni
indietro e non lo farebbero davvero
capisci cosa hai fatto ciò che tu
ho provato a compilare le nostre specifiche e
poi ho dovuto eseguire test di interoperabilità e e
certo che non hanno funzionato e
alla fine saremmo arrivati ad un certo siamo
potresti sapere a due sistemi di poter parlare
l’un l’ altro ma ovviamente dovevi
chiedo quindi che cosa è questo significa quindi devo lui
ha una specifica che ho il
specifica conosco le mie specifiche
era buggy perché dovevo sistemarlo e lui
ha la sua interpretazione e noi così
essenzialmente si prova solo fino a quando non sembra
lavorare e poi fai la stessa cosa
per il prossimo sistema devi connetterti
ma se tutti lo hanno fatto
se tu volessi effettivamente averli
specifiche per essere formalmente corretto
e richiede anche ad altre persone di usare il
specifiche e li usa come input per
il tuo software e puoi generare test
dalle specifiche pure le cose sarebbero
essere molto meglio e troverete che
la specifica è rotta ma paga un errore
rapporto assicurarsi che la specifica diventa
riparato in modo da dove lo faresti
quindi dicevamo che forse è giusto
ovvio per tutti, ma essenzialmente per te
avere i tuoi confini e quello
confini esterni si verificano i dati
per quanto tu possa, se ne hai uno
specifica per il protocollo per il tuo
le strutture di dati mettono lo schema lì dentro
e fare quanto più validazione possibile e
una volta passato il validatore dovrebbe
sii corretto e quindi ti fidi dei dati
e ti fidi degli utenti interni dei dati
non ti fidi degli utenti esterni di
dati quindi fai tutto il controllo al
i confini ora sono una parte interessante di
questo è che di solito avrai una tonnellata
di informazioni all’interno del sistema e noi
tendiamo a ottenere una visione a tunnel
guarda lo stato nei nostri processi o in
i nostri oggetti o qualunque cosa, ma ciò che è
davvero l’informazione chiave che
spinge il nostro sistema penso che sia così
sono i dati alle interfacce dei dati
modelli che abbiamo lì e dovremmo
avere specifiche per quelli e quelli sono i
quelli che non dovremmo mai dimenticare tutti
a tale proposito dovrebbe essere la definizione
caratteristica del nostro sistema ora di nuovo al
per w è il momento in cui questo può effettivamente essere un
parte interessante della progettazione del software
dal momento che devo riavviare la mia macchina
non so davvero quanto ho tempo
hanno dieci minuti di dati diversi
diverse qualità di vita
alcuni dati dovrebbero essere davvero persistenti
alcuni dati non dovrebbero essere persistente esso
dovrebbe o dovrebbe persistere fino a quando
il sistema è uno degli esempi di
quelle erano le tabelle degli allarmi correnti così
questi sistemi mission critical di cui hai bisogno
essere in grado di visualizzare allarmi e in a
avrai sempre un sistema sufficientemente grande
avere allarmi o eventi alcune cose
non funzionano se il sistema si arresta
e torna di nuovo su quel tavolo
dovrebbe essere vuoto ed essere ripopolato così
quello che faremmo sarebbe replicare
su tutti lo stato attuale dell’allarme nella RAM
nodi per essere sicuri che quando siamo venuti
backup non avevamo alcun falso allarme
informazioni quindi è effettivamente
completamente vuoto e deve essere
una parte ripubblicata è che non vuoi
per avvisare le persone di qualcosa che è
non è più vero e abbiamo anche scoperto quando
stavamo parlando con sviluppatori e
ottimizzando il sistema che almeno
inizialmente non c’era disciplina in
mantenere dati dinamici o transitori e
dati persistenti che possono essere a
problema di prestazioni quando si mantiene
memorizzazione persistente dei dati transitori e
può essere un problema di integrità quando i dati
sopravvive alla sua utilità e così il
le cose di cui eravamo soliti parlare erano le
livelli persistentemente persistenti di dati
come se fosse residente su disco
dovrebbe essere scritto diversamente
perché memorizzarlo su disco che potresti replicare
cose nella RAM come ho detto e anche tu
potrebbe parlare di quanto dovresti
replicare e fattore di replicazione non lo sono
ne parlerò così tanto perché
le persone senza SQL ne parlano
lunghezza ora una cosa interessante è quando
quando in realtà programmi le cose
Erlang ti occupi di molte cose
processi leggeri e questi
i processi leggeri hanno il loro
dinamica
e tu hai la spazzatura automatica
collezione così in realtà tu ti occupi
con un sacco di dati transitori e tu
non fare veramente la gestione della memoria
esplicitamente così questo tipo di ti dà un
approccio diverso per datare una vita I
significa il più delle volte non si ha realmente
pensaci se sono dati transitori
hai bisogno di pensare a quali dati tu
Bisogna tenerlo soprattutto da quando ha avuto Erlang
lascia che si rovini la filosofia che fai molto
di pattern matching che sono sensoriali
asserzioni e se qualcosa ti ha deluso
basta bloccare il processo e qualsiasi cosa
quello era su quel mucchio è andato così se tu
voluto sopravvivere a un crash del processo
era meglio conservare da qualche altra parte a
e uno dei nostri esperti di ottimizzazione
in realtà è quella foto qui sopra
una sorta di schema della nostra sessione
i processi di controllo che faremo quando vorremmo
stabilire dire una sessione ATM abbiamo avuto un
processi che ha fatto un sacco di lavoro che
aveva molti dati ma quando volevamo
risparmia memoria abbiamo iniziato a guardare come
molto potremmo comprimere questi dati perché
avevamo solo 512 megabyte di RAM
e avevamo bisogno di supportare come 30.000
connessioni simultanee quindi abbiamo bisogno di
essere un po ‘frugale su quanto
dati che effettivamente utilizzato in modo egli si avvicinò con
quel modello che dice di avere il
processo di gestione delle sessioni nel mezzo
e ha bisogno di parlare di seguito al
gestione delle risorse perché deve
allocare risorse nello switch e
questi sono i bit di informazione che sono
necessario per quello che ha bisogno di parlare
al piano di sopra alla fatturazione e questi sono i
bit di informazione che la fatturazione
i servizi hanno bisogno e quindi ha bisogno di parlare
per l’abbonato chiamante e il chiamato
abbonato essenzialmente gli endpoint
e quei bit sono definite nel
specifica e questi sono tutti i bit
di cui abbiamo davvero bisogno per
esempio prendi questo se prendiamo questo
processo verso il basso e vogliamo ristabilire
questi sono tutti i bit che sono
richiesto tutto il resto è giusto
dati transitori e possono essere ricostituiti
da questi bit in modo che è gentile
la tua interfaccia con il mondo esterno
e ha davvero aiutato la modellazione così
quando devi segnalare errori e fallo
può essere una corretta gestione degli errori
davvero difficile sapere che cosa ha fallito
c’è stato un contrattempo interessante su a
Qantas Airbus nel 2010 siamo stati coinvolti
in questo un po ‘perché alcuni
giornalista ci ha chiamato qualcuno si stava chiedendo
se il problema potrebbe essere stato quello
non stavano usando Windows nel
sistema di controllo dell’aeromobile che non utilizza
Windows stavano usando il verde
kernel di separazione delle colline che è un
funzionamento davvero molto buono in tempo reale
sistema la cosa che era accaduta era
che il motore è esploso e frammentato
dal dal motore effettivamente tagliato
dai cavi in modo che il controllo
il sistema stava solo percependo tutti i fallimenti
sul caso in tutto il posto perché
semplicemente non poteva vedere nulla di simile
l’abitacolo è appena illuminato e segnalato
massicci fallimenti di tutto così
il pilota ha dovuto semplicemente ignorare tutto
e cerca solo di atterrare l’ aereo che lui
è stato in grado di farlo assenza di segnale
è davvero un problema molto difficile e
certo che fa parte del cervello diviso
problema che ho detto di aver lavorato a
un po ‘questi erano due problemi
che proviamo a risolverlo nel controllo
processori abbiamo avuto processori di controllo
che avevano a che fare con un sacco di dispositivi
processori che erano essenzialmente i
piano dati del sistema
quindi li stavamo monitorando, così abbiamo fatto
questo processo di ping che monitorerebbe il
fare un heartbeat sui processori del dispositivo
quindi quello che abbiamo fatto è stato un virtuale
dispositivo nel processore di controllo, quindi se noi
potrebbe ping noi stessi
attraverso l’interruttore , almeno potremmo
parla con l’interruttore che ci ha detto
qualcosa così se stessimo perdendo o
non riuscivo a vedere l’altro processore di controllo
ma potevamo vedere noi stessi che non era un
mancanza di comunicazione da parte nostra ma noi
alla fine ci siamo trasferiti
usando tcp / ip per l’ Erlang distribuito
verso i nodi che parlano tra loro
ma stavamo anche inviando metadati tramite a
Ping UDP e non importava davvero se
è arrivato che avremmo continuato a inviare
e se hai ricevuto un messaggio UDP da a
nodo che non faceva parte del tuo live set
allora avevi un sistema split brain e
quello che abbiamo fatto è che non l’abbiamo fatto automaticamente
connetti questi così abbiamo scoperto che lo era
davvero peloso in un sistema molto complesso
prova a sistemare le cose una volta i nodi
si era ricollegato
così abbiamo preferito tenerli separati
e quindi ha usato il canale UDP in
negoziare chi dovrebbe riavviare perché
è così che l’abbiamo risolto da un lato
devo riavviare e solo sincronizzare da
dall’altra parte e un’altra cosa che io
non ho sentito molto da altri
i posti erano qualcosa chiamato knockout
le unità essenzialmente sono andate
fallire e perderai i dati per te
necessario per modellare per questo e avete bisogno di
pensa a quale unità è adatta
perdita che puoi sopravvivere così, per esempio
se la configurazione di una chiamata fallisce va bene se tu
abbandonare quella singola chiamata se si rilascia un
intero processore per esempio quanti
abbonati puoi buttarci fuori per noi
sembrava essere 2000
un’altra cosa era risparmiare per aumentare
prestazioni faremmo un sincrono
replica dei dati ma poi a
cosa importante c’era quanti
messaggi abbiamo in volo quindi se noi
ottenere un crash lì quante repliche
messaggi che sono essenzialmente sessioni
che avremmo perso sono accettabili così
allora lo porteremmo al progetto
manager o pianificatori della rete e
dì ok questo è il fallimento che siamo
parlando di quante sessioni possiamo
perderlo dicci e noi ti accorderemo il
sistema così e avrai alcuni casi
dove semplicemente non puoi recuperare così
questi sono essenzialmente invarianti come
non puoi mai costruire un sistema che sia
andando a riprendersi da ogni tuo fallimento
devi solo prendere una decisione che se
questo succede che siamo morti e non possiamo
davvero fare nulla al riguardo e
speriamo che non sia qualcosa del genere
succede troppo spesso a chiunque davvero
riconoscere che il problema di copia Xerox
Ero a cui mi è stato ricordato a pranzo se
fallirai
faresti meglio a fallire in un modo che è
riconoscibile come un fallimento quindi il problema
ecco che c’erano fotocopiatrici Xerox
un po ‘troppo ambizioso nel loro
compressione in modo che avrebbero fatto
riconoscimento a livello di blocco e in alcuni
casi in cui sarebbero effettivamente ciò che è
è successo qui che avrebbero sostituito
un sei con un otto e ovviamente è un
perfetto otto così non lo fai non puoi
non sospettare che questo sia effettivamente un
problema di scansione in modo se se avesse avuto
sei stato sfocato sei o sei sfocato
sembrava quasi come una pubblicità
eyeball fino a quando non hai capito o te
non mi fiderebbe di esso almeno, ma qui
non c’è motivo per non fidarsi di questo ma
è in realtà sbagliato e abbiamo questo
tendenza spesso a voler servire un utile
risultato, ma ma un crash distintivo è
spesso molto meglio
di un utile o apparentemente utile ma
risultato sbagliato e quindi penso che sia circa
la cosa peggiore che potresti fare per servire
i dati errati all’utente solo in a
sforzo sbagliato per cercare di essere utile così
l’ultima diapositiva così penso spesso quando noi
prova a modellare i sistemi che dimentichiamo di modellare
modalità di fallimento e non sempre modelliamo
la vita dei dati non la pensiamo così tanto
su quanto tempo i dati dovrebbero vivere e noi
tendono spesso a dimenticare di modellare quanto
dati che possiamo permetterci di perdere e sotto
quali circostanze e l’ultimo
là invarianti penso che sia
qualcosa che è anche qualcosa di noi
dovrebbe pensare di più ci penso
invarianti come tipo di supporto
muri di una costruzione che facciamo spesso
quelle decisioni implicitamente no
parliamo davvero di loro, dovremmo
in realtà li annotano che questi sono
le ipotesi che sto facendo riguardo al
dati
se non sono corretti allora in fondo
tutte le scommesse sono spente
e molto spesso avremo problemi
così e soprattutto ne abbiamo bisogno
comunicarlo ai responsabili del prodotto
o le persone che ci nutrono requisiti
molto chiaramente dire che questi sono i
ipotesi che stiamo peggiorando questo sarà
non cambiare se si cambia questo dobbiamo
ricominciare e di solito sapremo cosa
quelli sono ma non li scriviamo
e siamo quasi imbarazzati da loro ma
non dovremmo essere quelli sono il sostegno
architettura muraria ok non ho suono io
non avere più diapositive per eventuali domande
Qui non trovo nessuno in questa app
quindi oh, eccoci qui
come fai a sapere se i dati sono sbagliati
sembra proprio come il problema di Xerox sì
quindi sì, come sai che i dati sono sbagliati
significa che puoi esserci ci sono
certamente tecniche quindi in questo caso io
significa che è un caso molto sottile, voglio dire che lo è
tecnica di compressione presumibilmente valida
questo ha prodotto risultati indesiderati o
risultati confusi ma, naturalmente, voi
può perché in realtà intendo cosa
stanno facendo è in quel caso è quello
stanno solo valutando o agitando la mano
un po ‘questo tipo di blocco di sguardi
come quella ee semplificano e
spero che funzioni, ma in caso di
cifre è che è molto può essere
ovviamente disastroso, ma per il resto io
significa che hai crcs e tutti i tipi di
roba abbiamo un sacco di tecniche
per verificare i dati non ottiene
corrotto ringraziamo tutti e grazie a
tutti voi per un grande q spero che vi siate
tornare l’anno prossimo

Please follow and like us: