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

Distribuerede systemer på CBS, 3. oktober 2016 ...

Distribuerede systemer på CBS, 3. oktober 2016 - arkitektur

Slides til undervisningen i distribuerede systemer på CBS d. 3. oktober 2016 omhandlende arkitektur.

Kasper Tidemann

October 01, 2016
Tweet

More Decks by Kasper Tidemann

Other Decks in Education

Transcript

  1. Jeg håber at det inspirerer jer. I skal bare ud

    over stepperne og blive gode til det her fag, så er alle døre åbne. Ad sti af sted!
  2. I har været igennem det sværeste. Tillykke med det! Nu

    er der kun easy breezy-ting tilbage.
  3. Det kan dække over hvordan servere i en service skal

    tale sammen med hinanden. Det kunne være første bud. Og husk nu hvad en service er.
  4. Hvad er forskellen på programmer til Mac og Windows? Og

    hvorfor skal programmer kompileres for at kunne starte?
  5. Se, det her er interessant. Platform architectures are modularizations of

    complex systems in which certain components (the platform itself) remain stable, while others (the complements) are encouraged to vary in cross-section or over time.
  6. Arkitektur er altså en sammensætning af nogle moduler, som udgør

    en opdeling af funktioner, data osv. Det er ligesom et hus, som jo både har et badeværelse, rørføring, en trappe, et tag…
  7. Arkitektur er et spørgsmål om at løse et problem, der

    ikke kan løses med kun et modul. Fx én server.
  8. Prøv at tænke på en bil, fx. Den er modulariseret.

    Jeg skal fx have skiftet mit partikelfilter, som jo kun er en lille del af hele bilen.
  9. Når vi taler om arkitektur i distribuerede systemer, så handler

    det om den måde, som det hele hænger sammen på. Først og fremmest.
  10. Når vi taler om arkitektur i distribuerede systemer, så handler

    det om den måde, som det hele kan ændre sig på. Ikke mindst.
  11. Drømmen er at skabe noget af dele, der kan udskiftes

    løbende. En fleksibel arkitektur.
  12. Når vi taler om netværk og arkitektur, så taler vi

    om noget, der hedder topologi. En måde at afbilde et netværk på.
  13. Når vi tegner et cluster sådan her, så er det

    jo et udtryk for en arkitektur.
  14. Når vi tegner et load balancer scheme, så er det

    også et udtryk for en arkitektur. Server 1 Server 2 Server 3 Server 4 Load balancer
  15. Hvad er en platform så? Ja, det er jo så

    endnu et godt spørgsmål.
  16. Se, det her er interessant. An especially common design pattern

    has come to be associated with the concept of a platform, which we define as a set of stable components that supports variety and evolvability in a system by constraining the linkages among the other components.
  17. En platform er altså en abstrakt brug af et ord,

    der dækker over en sammenhæng. Når I nu vil udvikle det nye sort, så laver I en platform til det.
  18. Det svarer lidt til den måde, som I deler jeres

    kode op på. Most platform definitions focus on the reuse or sharing of common elements across complex products or systems of production.
  19. Jo mere genbrug, jo bedre - for jo bedre er

    fordelingen af ansvar. Simpelthen.
  20. DRY. Don’t Repeat Yourself. Der var nogle af jer, der

    spurgte mig om hvordan en users-tabel skulle laves…
  21. Vi kan ikke tale om arkitekturer uden også at tale

    om interfaces. Og hvad er et interface så?
  22. Man bruger et API som betegnelse for mange ting. Det

    er ikke bare noget, der ligger på en server.
  23. Inden for arkitektur, der er et API altså noget, der

    udstiller de muligheder, som man har for interaktion. Fx et kald til en server, der returnerer noget data.
  24. Et API er også et udtryk for det, som man

    kalder design rules. Regler for hvordan man kan tilgå noget.
  25. Internettet er jo et glimrende eksempel på noget, der udvikler

    sig. An important property of platform systems is that they are evolvable, in the sense that they can adapt to unanticipated changes in the external environment.
  26. En god arkitektur er en arkitektur, der kan udvides løbende.

    Det er i hvert fald vores mål at skabe sådan en.
  27. Prøv at tænke på hvor meget vi smider ud til

    daglig. I gamle dage opgraderede man sin computer. I dag køber man bare en ny.
  28. Prøv at tænke på Apple, der opfinder deres egne stik

    igen og igen. Finally, all platform systems exhibit tensions between platform owners and complementors. These tensions are variously expressed. For internal platforms, tension arises through the threat of entry by third-party component makers who can hook into the platform at its visible interfaces and create compatible substitutes for the firm’s own components.
  29. Man kan også afbilde en arkitektur via layer maps. Det

    kunne jo passende bringe os til…
  30. Det smukke ved arkitekturen på Internettet er at der altid

    er flere veje at gå. Hvilket jo var for at overleve en atomkrig…
  31. Vi kan bruge e-mail som eksempel på en arkitektur på

    Internettet. For hvad sker der når du sender en e-mail til en anden?
  32. Ja, tak. Enterprisearkitektur er samspillet mellem virksomhedens forretningsstrategi, dens forretningsprocesser

    og organisering, og dens teknologiske fundament med det formål at optimere samspillet og deres dele i forhold til at nå de mål, som forretningsstrategien stiller.
  33. Det er en moderne klassiker. Jeg er meget enig i

    din vurdering af Yammer. For mig at se er det et fint nok værktøj til at dele ting hist og her, men det er et meget uigennemsigtig værktøj i forhold til skabe fælles løbebaner og koordinere hvem-gør-hvad-hvornår. Som Allan påpeger, bør vi for fremtiden have et klart spor for fremdrift både internt og eksternt og stabilisere forventning på lang sigt for diverse projekter gennem mere fastkoblede strukturer, der i højere grad er forankret i strategiske beslutninger.
  34. Når man taler om microservices, så taler man om en

    opdeling af kode. Jo mindre og flere komponenter, jo bedre ifølge den diskurs.
  35. Fra et organisatorisk synspunkt er det jo smart hvis man

    deler det op, så flere kan arbejde på mere på samme tid. Jo mindre og flere komponenter, jo bedre ifølge den diskurs.
  36. Hvad er i øvrigt et af de største problemer i

    udvikler-teams? Lad os lige tage den.
  37. – Vi har brug for flere ressourcer, ellers kan vi

    ikke nå det! Sådan er den gængse tankegang.
  38. Ni kvinder kan ikke føde et barn på en måned.

    Et legendarisk citat fra bogen The Mythical-Man Month.
  39. Microservices er et skridt væk fra den klassiske, monolitiske forståelse

    af et (distribueret) system. Jo mindre og flere komponenter, jo bedre ifølge den diskurs.
  40. Der er fordele og ulemper ved arkitekturer. Fælles for dem

    alle er at man deler noget op for at skabe en bedre sammenhæng. Sådan.