Blogg

Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på Twitter

Callista medarbetare Erik Lupander

O'Reilly Software Architecture Conference 2019 - Måndagens tutorials

// Erik Lupander

Callista har startat februari med att skicka en delegation till New York och O’Reilly Software Architecture Conference. Här kommer en personlig rapport från måndagens tutorials.

Måndagen bestod av två 3-timmars “tutorials” där man fick välja mellan fyra olika alternativ per pass. Nedan följer en kort redogörelse för respektive tutorial.

Decentralized systems: the good, the bad and the ugly

För egen del inleddes konferensen med en dragning av Brian Sletten. Jag har stött på Brian på tidigare konferenser och han brukar vara underhållande att lyssna på så mina förväntningar var ganska höga. Jag var dock något osäker på ämnet i sig - vad åsyftades egentligen med “decentralized” systems?

Möjligen hade jag förväntat mig en någotsånär teknisk föreläsning om problematiken kring distribuerade system, men istället tog Brian avstamp i problematiken kring hur Internet skapades så “alla” skulle kunna publicera och utbyta information med varandra, men i hur det har landat i att 80% av all information som delas går genom jättarnas (Facebook, Google osv) system. Din data “ägs” ofta av plattformen dit du laddat upp den och om en stark tredje part inte vill att din data skall göras tillgänglig så är Facebook m.fl. benägna att vika sig för stater. Brian tog upp exempel med hur Spaniens regering påverkat Facebook kring att ta bort information kring Kataloniens försök att bryta sig ur landet. Turkiet och Thailand är andra exempel på där de stora plattformarna vikt sig för regeringar som velat tysta exempelvis Wikipedia. Så med “decentralized” landade Brian i byggstenarna kring hur man skall kunna dela information på Internet utan att vara beroende av de stora drakarnas godtycke, vilket landade i:

  • Distribuerad men kanonisk identitet (Semantic Web, Linked Data)
  • Distribuerad och säker lagring (ipfs)
  • Distribuerad och säker autentisering/auktorisering (Macaroons)
  • Distribuerad och säker data med förtroende mellan ej relaterade parter (Blockchains)
  • Distribuerad exekvering av exekvering av mjukvara (WebAssemly)
  • Protokoll för säkert informationsutbyte utan mellanhänder (WebRTC)

Brian gick igenom de olika koncepten ovan i varierande grad av detaljnivå - WebRTC och WebAssembly tämligen översiktligt, medan ipfs och framförallt all kryptografi som bygger kedjor av förtroende gicks igenom på en detaljnivå där jag misstänker att fler än jag hade svårt att hänga med.

sletten Brian Sletten

Helheten - att bygga det 100% decentraliserade systemet - enligt ovan är kanske inte så relevant för oss som arkitekter och utvecklare på kort sikt, men många av byggstenarna (blockchains, WebRTC) är redan etablerade och nya tillämpningar baserade på dessa kommer ständigt fram.

Brian hade också en rejält säljande och något kontroversiell punchline - något orelaterad till ämnet i övrigt:

"WebAssembly will kill the desktop"

Det han syftar på är att när man nu kan skriva sina applikationer i t.ex. C, C++, Go, C# etc och få dessa korskompilerade till Javascript för WebAssembly och exekverade på ett effektivt vis i browsern - inklusive beräkningar, 3D-grafik, native-GUI osv - så kommer det uppkomma helt nya möjligheter att flytta all klientprogramvara in i browsern.

Sammanfattningsvis så var föredraget relativt intressant även om Brian hade lite svårt att hålla ihop någon slags röd tråd även om han i slutändan sydde ihop det hela ganska snyggt.

Moving to microservices: Using domain-driven design to break down the monolith

Maria Gomez från Thoughtworks höll i denna tutorial. DDD är ett intressant område som vi själva tagit upp på tidigare års Cadec. Här utlovades någon slags guide eller metod för att applicera DDD för att bryta ner en monolit i microservices. På pappret en väldigt lovande tutorial som i praktiken blev tämligen intetsägande. Maria började med en teoridel som tyvärr var svår att ta till sig pga en kombination av dåligt ljud, dålig engelska och osammanhängande resonemang.

gomez

Positivt var dock momenten med grupparbeten där vi i mindre grupper fick resonera kring domändriven design och applicera koncept från DDD på ett par olika problemdomäner. Helt klart givande diskussioner och just det praktiska momentet som tvingar en att tänka lite själv uppfattade jag personligen som utvecklande. Första övningen var att identifiera “bounded contexts” och domäner utifrån ett antal user stories relaterade till ett system för att hantera närvaro, skolarbeten, rapportering etc för en skola. Jag såg framför mig hur vi skulle jobba hela vägen från högnivåmodellering enligt DDD till faktisk implementation med detta problem, men tyvärr var grupparbete två ett helt eget område - och när vi fortsatte med att jobba med implementation efter pausen så var det ett helt annat problemområde.

Just andra delen som var praktiskt fokuserad på ett antal programmeringsövningar hade väl vissa kvalitéer på pappret, men var otydligt styrd och Marias bidrag till att låta folk komma igång var plötsligt att refaktorera och kopiera in enhetstester från färdiga mallar. Inget fel i sig, men hade ganska liten bärighet på DDD och problemområdet. Uppdelningen av monoliten till microservices bestod i praktiken av att splitta en model-klass i några extra eniteter samt skapa controllers i olika java-paket. Inte riktigt microservices utan mer en övning i att dela upp kod i domäner och tämligen banal modellering.

Sammanfattningsvis fanns det glimtar av bra innehåll i eftermiddagens pass, tyvärr var det lite för glest mellan de givande momenten i denna tutorial.

Tack för att du läser Callistas blogg.
Hjälp oss att nå ut med information genom att dela nyheter och artiklar i ditt nätverk.

Kommentarer