Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Oplæg om IT-arkitektur, AEA, 29. september 2016

Kasper Tidemann
September 28, 2016

Oplæg om IT-arkitektur, AEA, 29. september 2016

Mit oplæg om IT-arkitektur, AEA, 29. september 2016.

Kasper Tidemann

September 28, 2016
Tweet

More Decks by Kasper Tidemann

Other Decks in Education

Transcript

  1. Oplæg om IT-arkitektur En snak om dengang og nu, skalering

    og distribuerede systemer, Kasper Tidemann, september 2016
  2. For tiden arbejder jeg tæt sammen med Danske Spil om

    deres skift til en ny udbyder af talspil.
  3. En tidlig definition af kausalitetsbegrebet. Leslie Lamport fremsætter i juli

    1978 idéen om begivenheder, der er indtruffet før hinanden. a → b
  4. Byzantine Generals’ Problem er en teori om generaler, angreb og

    forrædere. Det er for så vidt en god metafor, selvom den er noget krigerisk.
  5. majority(v1 , .., vn-1 ) En majoritetsalgoritme er et generelt

    begreb, der dækker over at afgøre hvilken værdi, der er korrekt.
  6. Ofte implementeres majority-algoritmer med udgangspunkt i antallet af ens forekomster.

    Forekomster Valg af den forekomst af en værdi, der optræder flest af. Sandsynlighed Valg af den værdi, der forekommer mest sandsynlig. Tillid Valg af den værdi, der optræder hos flest, der er tillid til. Type Valg af den værdi, som passer med den type, der er valgt.
  7. Arkitektur er et spørgsmål om at løse et problem, der

    ikke kan løses med kun en server. Sådan kunne man definere det.
  8. Jeg vil gerne tale om skalering. Det er noget, som

    er på alles læber i den her tid, i de her år.
  9. Det er for så vidt et generelt begreb, der fx

    også dækker virksomheder, trafik og meget mere. Tænk fx på ringbanen, som er skalering af den offentlige transport.
  10. Et citat fra 1965 af Fernando J. Corbató og Victor

    A. Vyssotsky. Such systems must run continuously and reliably 7 days a week, 24 hours a day and must be capable of meeting wide service demands. Because the system must ultimately be comprehensive and able to adapt to unknown future requirements, its framework must be general, and capable of evolving over time.
  11. Vi kender jo den her, en load balancer og en

    række servere i baggrunden. Server 1 Server 2 Server 3 Server 4 Load balancer
  12. Hvis NoSQL er det nye sort, hvorfor bruger alle det

    så ikke? Et relevant spørgsmål.
  13. ACID er et stærkt koncept fra den gamle skole inden

    for databaser. Atomicity Enten virker hele molevitten eller også bliver det droppet. Consistency Sørger for at data er korrekte, fx at en ny række har en primærnøgle. Isolation Sætter lighedstegn mellem samtidig og seriel kørsel af transaktioner. Durability Hvis nu serveren eksploderer, så skal transaktioner kunne overleve - typisk ved at være gemt på disken.
  14. Det tager tid for alle servere at blive enige om

    en værdi, og det kan man ikke vente på. I et meget tilgængeligt system er consistency begrænset - det kan ikke garanteres.
  15. Hvis der nu er 8 servere, der mener at en

    værdi er 1, og 2 servere, der mener at værdien er 2… I et meget tilgængeligt system konvergerer alle værdier mod den samme værdi.
  16. Det er en udfordring af lave queries i en distribueret

    NoSQL-database. Og databaserne har ofte forskellige engines til at lave queries.
  17. En beskrivelse af Apache Hive. The Apache Hive data warehouse

    software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL.
  18. En beskrivelse af Apache Spark. Apache Spark is a fast

    and general engine for large-scale data processing.
  19. Det er en udfordring at opbevare kopier af store mængder

    data. Replication er fint, men ikke hvis det er mange tusind terrabyte, der kopieres 1-til-1.
  20. n_val = 3 kræver 5 servere for at skabe et

    beslutningsdygtigt flertal, der kan overleve nedbrud. 2/3.
  21. Hvad er det nu lige block chain er? Et eksempel

    på en distribueret arkitektur.
  22. I skal sgu lige have en af mange røverhistorier. En

    lille historie fra San Francisco.
  23. Dem har I uden tvivl hørt om før. Jeg vil

    lige nævne microservices.
  24. Det er altså vigtigt at huske på. At adskille kode

    med et netværkslag gør ikke koden mindre kompleks.
  25. I kender jo også CAP-teoremet. At skabe en god arkitektur

    handler om consistency, consensus, availability og fault-tolerance.
  26. Der findes ingen silver bullet her. At skabe en god

    arkitektur, når man arbejder med mange servere og læssevis af data, det er en afvejning.
  27. Blot for at understrege det faktum. Der findes ingen teknologi,

    der er perfekt til alt - det er en illusion.
  28. Tilmeld jer hvis I vil vide mere om mine aktiviteter,

    investeringer og så videre. newsletter.tdmn.co