Scala.IO 2014

Scala.IO 2014
oktober 30, 2014 Martin Woxneryd

I förra veckan gav sig tre tappra squeeders ut på äventyr hela vägen ner till Paris för att delta på Scala-konferensen Scala.IO. Det är andra året de kör denna tvådagars konferens och deltagarantalet börjar närma sig 400, ett tecken på att det är ett språk och en community på uppgång. Större delen besökare är fransmän men det kommer besökare och talare från stora delar av Europa och USA. Vi var tyvärr alla handikappade till att hålla oss till föreläsningarna på engelska vilket tack och lov var nästan två tredjedelar. Nedan följer ett axplock av vad vi konsumerade.

Distributed in Space and Time var första dagens keynote och hölls av Dr. Roland Kuhn, Akka Tech Lead på Typesafe. Roland beskrev många av de egenskaper en modern arkitektur bör ha idag och som vanligt så görs många referenser till The Reactive Manifesto. Ju oftare de fyra huvudsakliga egenskaperna (scalable, event-driven, resilient samt responsive) repeteras ju mer framstår de som självklara. Dagens lösningar med tillgång till i princip oändliga resurser har lett till ett paradigmskifte och att designa en lösning som skalar på alla håll (Space and Time) och där fel är ett väntat och hanterbart tillstånd kräver ny tankegångar. Och Akka passar som handen i handsken i denna världsbilden.

I Testing Reactive Applications så pratade Jamie Allen från Typesafe om strategier för testning av reaktiva arkitekturer. Han underströk att det är viktigare än någonsin att låta testerna bestämma designen. Han förespråkar att skriva testerna i ordningen unit, api, service, app ända ut till infrastruktur och understryker hur viktigt det är att testa ända ut till infrastruktur (skalning etc.) och med den hårdvara som skall köras i produktion. Han tipsade även om Chaos Monkeys (och andra verktyg i Netflix Simian Army) och tyckte att det är ett koncept värt att stjäla.

En stor del av konferensen togs upp av presentationer relaterade till Typelevel Scala. Typelevel Scala är i första hand en samling av bibliotek till Scala (scalaz, shapeless etc.) som är väldigt funktionella och utnyttjar typsystemet i Scala maximalt. Sedan i somras så har de även gjort en fork av Scala som strävar efter att lägga till ny funktionalitet och fixa quirks i språket, med bibehållen binär kompatibilitet och med ambitionen att ändringar skall in i officiella Scala på sikt. Tanken är att återfå den lättrörlighet som fanns i språkets utveckling för ett antal år sedan. I en av de tidigare presentationerna så pratade några av ledarna för Typelevel Scala om vad för funktionalitet som de redan har lagt till och vad som planeras. En av funktionerna som har lagts till är en ny syntax för type-lambdas. Typelevel Scala blir en form av experimentel Scala-version där ny funktionalitet kan testas och utvärderas på många projekt långt innan de tas in i den officiella kodbasen.

Att Akka skall få en HTTP-modul blev känt för ett år sedan när det tillkännagavs att det grymma biblioteket Spray skulle anpassas och tas in i standardbiblioteket. Just nu så färdigställs version 1.0 av den första modulen, HTTP-Core som kommer att vara en “lågnivå” HTTP-server och klient. En stor skillnad gentemot Spray är att alla anrop nu använder Akka-Streams som är Akkas implementation av Reactive Streams. Detta medför exempelvis sömlöst stöd för back pressure vilket gör att man på ett asynkront och icke blockerande sätt kan reglera flödet av data genom systemet så att specifika delar inte överbelastas.

“The framework-less Scala Dependency Injection framework” var en presentation där man gick igenom hur lätt det är att skriva kod som tillämpar DI direkt i Scala utan att använda någon form av bibliotek. Allt som behövs är bara språkfunktioner, så som traits och lazy vals.

Swagger är ett projekt som nämndes under ett antal presentation och är ett verktyg som används för att dokumentera och visa RESTful-API:er. Det är egentligen inte Scala-specifikt, men det är skrivit i Scala. Bland annat så pratade Netflix om hur de använder det ihop med webbramverket Scalatra för att automatiskt generera dokumentation och för att låta andra team testa hur API:t fungerar i den interaktiva visualiseringen. Gällande Spray och Akka-HTTP så finns det inget inbyggt stöd för att generera dokumentation, men framtida versioner kommer att stödja det.

I Stream all the things – life at the end of the firehose fick vi lyssna på ett par killar från Criteo som jobbar med tracking av reklam. Föreläsningen gav kanske inte några konkreta tips men gav lite insikt i problem man ställs inför när man arbetar med stora dataflöden. De hanterar (och sparar) ca 2-3GB data per sekund över ett kluster på ca 8000 maskiner. De har en total datamängd som de kan processa om vid behov på ca 20PB. Deras teknikstack består t.ex. av ramverk som Kafka, Storm och Summingbird och en kommentar var att det lätt blir många ramverk och att inlärningskurvan blir svår pga detta.

På torsdagskvällen så hölls ett Community Party på en av tursitbåtarna som trafikerar Seine. Det blev en trevlig tur som tog oss förbi både Notre-Dame och Eiffeltornet samtidigt som det serverades mat och dryck. Mat i Frankrike betyder för övrigt brödsnittar, så förvänta er ingen lagad mat om ni beger er till nästa års konferens. Det är dock något vi kan rekommendera. Konferensen alltså. Det är en konferens med stark community-känsla och med många riktigt kunniga talare.

Martin Woxneryd, Marcus Lönnberg & Fredrik Jansson

0 Kommentarer

Lämna ett svar

E-postadressen publiceras inte. Obligatoriska fält är märkta *

*

Denna webbplats använder Akismet för att förhindra skräppost. Läs mer om hur dina kommentarsuppgifter behandlas.