Favoritt i reprise

QCon San Francisco har blitt noe av en favorittkonferanse i Miles. I november i år reiste to fra Stavanger, tre fra Oslo og fem fra Bergen til tech-hovedstaden for å lære mer og bli inspirert.

Her deler de med seg generøst i en "Best of QCon SF 2018".

Innhold

Lars Gunnar om kontinuerlig forandring

QCon-konferansen er oppdelt i to deler. Den første delen består hovedsakelig av parallelle foredrag, hvor hver track er fasilitert organisert, og foredragsholdere er rekruttert, av en bransjespesialist. En  tilnærming som gir høyt og konsistent nivå på gjennom hele konferansen. Den andre delen er workshop-er som går i dybden på mange av de samme temaene.

Flere av oss i Miles omfavnet en to-dagers workshop "Architecture without an end state" med Michael Nygard, arkitekt @Cognitect og forfatter av bestselgeren "Release It!". 

Poenget fra Michael er at arkitektur aldri når den lykkelige og perfekte målsetningen for arkitektur. Noe bryter alltid med den opprinnelige planen: Virksomheten endres, forandring i teknologi eller finansiering som tørker opp. Og hva ville skjedd hvis du nådde målsetningen, uansett? Er IT ferdig i selskapet? Selvfølgelig ikke...

Sannheten er at det ikke er noe endelig mål. Vi må alle lære å bygge systemer som utvikler seg og vokser. Vi må slutte å sikte mot et gitt mål og heller forstå at forandring er kontinuerlig. Vi kan ikke forutsi detaljene, men vi kan lære de generelle mønstrene.

[ Les mer om Lars Gunnar ]   [ Gå til Innhold☝︎ ]

Daniel om nevrale grensesnitt

I foredraget "Rethinking HCI with Neural Interfaces @CTRLlabsCo" fortalte Adam Berenzweig fra @CTRLlabsCo om hvordan de mener vi står foran et paradigmeskifte i hvordan vi interagerer med datamaskiner o.l., der man fjerner behovet for fysiske kontrollere/mus/tastatur.

Han fortalte hvordan store bevegelser med armene (à la Tom Cruise i Minority Report) ikke fungerer i lengden, og hvorfor vi ikke kan basere nye interaksjonsmodeller på dette.

De hadde eksperimentert med avlesning av signaler fra utsiden av hodet, men mente at dette ikke ville være praktisk anvendbart grunnet for mye støy i signalet. Dette ble sammenlignet dette med å prøve å "plukke ut en stemme på tribunen på en fotballkamp, fra parkeringsplassen".

De landet på utvikling av et armbånd. Dette sitter på håndleddet og leser nervesignalene som går fra hjernen til musklene i hånden. Ved å lese av i håndleddet klarer de å tolke signalene og styrken i disse ved hjelp av maskinlæring og AI. De klarer da, basert på det som armbåndet leser, å gjenskape hånden i VR med bevegelser i alle fingre etc. Med denne teknologien ville det ikke være nødvendig å faktisk bevege fingeren, bare å "hinte" til det ville være nok.

Visjonen er at brukerne benyttet dette armbåndet som interface til alle systemer de styrer, være seg datamaskin, telefon, bil, lysbryter etc.

Veldig spennende. Hadde vært veldig gøy å få fatt i ett developer kit når det blir tilgjengelig.

[ Les mer om Daniel ]   [ Gå til Innhold☝︎ ]

Viggo om Netflix

Hvert år stiller alltid noen store navn fra Silicon Valley med mange presentasjoner innenfor ulike tema på QCon. Det jeg liker med QCon er at man får flere presentasjoner fra samme selskap er at man får innblikk i alt fra arkitektur, spesifikke teknologier og prosess, og man får da et unikt bilde av hvordan alt dette henger sammen innenfor et og samme selskap.

Sist jeg var på QCon så var det Uber som “tapeteserte” agendaen. I år er mitt inntrykk at Netflix gjorde det samme.

Under ser dere alle presentasjonene til Netflix, og track-navnet står i parentes, og som dere kan se så dekket de 11 av de 18 trackene som totalt var på QCon i år!

Mer enn bare Netflix

I tillegg til Netflix så ønsker jeg å trekke frem to andre presentasjoner som jeg syntes var bra:

AirBnB hadde en veldig bra keynote om veien de hadde gått med migrering av sin store monolitt til en mikroserviceorientert arkitektur.

Ben Sigelman, en tidligere arkitekt hos Google, fortalte om Googles erfaringer med mikroservices. Innsiktsfullt og veldig ærlig ift hva Google hadde lært på veien, anbefales!

[ Les mer om Viggo ]   [ Gå til Innhold☝︎ ]

Anders om maskinlæring hos Uber

Uber med Jeremy Hermann i spissen snakket i dette foredraget bl.a. om “ML/AI”-reisen Uber har gjennomgått, og hvordan de har gått fra ingen bruk av ML i 2015 til over 100 use-caser og 1 000 ML/AI-modeller i produksjon i dag. Etterhvert som kompleksiteten og størrelsen på Uber vokste ble det klart at ML kunne utgjøre en stor forskjell i organisasjonen. Fokuset på å demokratisere bruken av ML i hele Uber ble derfor strategisk viktig.

For å muliggjøre denne transformasjonen ble plattformen "Michelangelo" utviklet. I starten handlet det mye om hvordan de i stor skala kunne tilby trening og produksjonssetting av modeller, men over tid har de lagt til støtte for bl.a. en sentralisert feature store, notebook-integrasjon, ytelsemonitorering, deep learning workflows, partisjonerte modeller m.m.

Det var interessant å se hvor enkel Uber har gjort utvikling og produksjonssetting av ML internt, noe jeg tror mange organisasjoner som ønsker å ta i bruk ML/AI strever med i dag.

Takk for turen!

[ Les mer om Anders ]   [ Gå til Innhold☝︎ ]

Andrea om evolusjonær arkitektur

Mikrotjenester var et av de meste populære temaene, med mange presentasjoner som snakket om det direkte og indirekte. Mange vil bruke mikrotjenester selv om ikke alltid de forstår helt hva det er eller om de trenger det. IT-verden beveger seg raskt, med fremgang i cloud, maskinlæring og big data, og da blir det nødvendig å tenke på nytt hvordan systemarkitektur må endre seg.

Moderne systemer er for det meste fokusert på ytelse og tid fordi lagring ikke lenger er et problem i skyen. Redundans er ikke et problem, men ytelse er, så det er helt naturlig å replikere data gjennom forskjellige mikrotjenester som kan bruke samme data for mikrotjenestens mål. Decoupling blir viktig, å dele kontekster til å ha bedre separation of concerns. Dette kan føre til inkonsistens, men så lenge arkitekturen har eventual consistency mekanismer, ser dette ikke ut som et problem lenger for de fleste systemer. Også bankene, hvor konsistens er kjempeviktig, begynte å bruke disse teknologiene.

En viktig arkitektonisk vurdering er at det ikke er en slik ting som en sluttstat for et system. Teknologiske, økonomiske, sikkerhetsmessige og politiske grunner vil alltid påvirke dagens arkitektur, så det beste er å designe systemer tilsvarende å være fleksible for endringer.

Systemets økonomi ser ut til å være et ganske viktig aspekt i dette. Spesielt med økningen av cyberangrep. Så de tre arkitekturmålene som alltid bør holdes i tankene er: 

  • Å øke verdien for brukere og reduser kostnadene. 
  • Å øke kostnadene for en angriper og redusere angrepsverdien. 
  • Utvikler stadig systemarkitekturen

En moderne arkitektur må da definere klare mål, men også være klar til å utvikle seg når disse målene må endres. I likhet med byer, vil det aldri bli laget et system med en enkelt arkitektur. Et system vil vise sin historie og tidligere arkitekturer, det er normalt og så lenge arkitekter fortsetter å oppdatere målene og revurdere arkitekturen, vil systemet være "anti fragile".

Lenketips:

[ Les mer om Andrea ]   [ Gå til Innhold☝︎ ]

Richard om bildegjenkjenning

I foredraget "Making AI FaaSt" viste Dragos Dascalita Haut fra Adobe hvordan de kjører Tensorflow-modeller gjennom en “Serverless”-funksjon. Dette er funksjoner som man kun betaler for per kjøring, noe som gir lavere driftskostnader og at det er veldig skalerbart, fordi det ikke er noen grense for hvor mange kall man gjør. I demoen lastet de opp bilder som så ble justert med hensyn på ansikter. De mente at hovedargumentet for å bruker FaaS er for å redusere driftskostnader og kunne sette nye modeller ut i produksjon raskere,

I "Machine Learning for Handwriting and Sketch Recognition" viste to fra Google Research hvordan de jobber med å utvikle neste generasjon håndskrift og mønstergjenkjenning. Dette er ikke noe nytt emne, da selv Apple Newton fra 1993 hadde dette, men de viste at utviklingen har gått framover. De fortalte om Quic draw, som er et slags spill som kan gjette hva du tegner, dette ble mye mer populært enn forventet.

I "Artwork Personalization @Netflix" viste Justin Basilico hvor mye arbeid Netflix legger i å velge rett "thumbnail"-bilde på sine serier og filmer for sine brukere. I starten brukte de forskjellige maskinlæringsteknikker for å velge det beste bilde, dvs. det som økte sannsynligheten for at brukeren ville se innholdet. På et senere tidspunkt ble utvelgelsen basert på brukerdata, slik at hver bruker fikk et bilde tilpassa seg selv, for å øke sannsynligheten for klikk enda mer.

[ Les mer om Richard ]   [ Gå til Innhold☝︎ ]

Joseph om pålitelig og rask bankarkitektur

Building a Reliable Cloud Based Bank in Java (Enterprise Languages)

Starling Bank er en bank basert i Storbritannia som vant prisen for Best British Bank i mars 2018, kun et år etter at den ble lansert! Det som er unikt med denne banken er at tjenestene kun er tilgjengelig via en mobil-app.

Jason Maude kunne fortelle at man kan oppnå både pålitelighet, forutsigbarhet og rask levering av applikasjoner, man trenger ikke å velge bort den ene til fordel for den andre og han gikk gjerne i detaljer om hvordan Starling Bank klarte det mha. “continuous build and delivery”.

Problemet med banksystemer i dag

Det største problemet med tradisjonelle banker er at de er meget konservative og misliker idéen om å oppdatere applikasjoner raskere og oftere. Til en viss grad kan man forstå at banktjenester er avhengig av den stabiliteten/tilgjengeligheten som gjør at kundene stoler på at deres penger er i trygge hender. Endringer kan introdusere feil som kan påvirke bankens pålitelighet og troverdighet i negativ retning. Dette er i største grad årsaken til at de fleste banker ikke er villige til å endre eller oppdatere sine systemer oftere. Det kan ta i beste fall minst 3 måneder mellom hver utrulling av ny funksjonalitet.

Godta at ting kan og vil feile før eller senere

Ved å akseptere at IT-applikasjoner kan og vil feile uansett, av en eller annen “merkelig” grunn, kan man begynne å sette i gang tiltak som håndterer feilsituasjoner.

Bygg en arkitektur som kan bidra til økt pålitelighet

Starling Bank kom opp med en løsningsarkitektur som er designet til å håndtere feil som oppstår. De kalte den for DITTO (Do Idempotent Things To Other). “Idempotent” betyr i denne konteksten at hvis man kjører én og samme kommando mer enn én gang, må utfallet være det samme som om man hadde kjørt kommandoen kun én gang.

Starling Bank implementert sine tjenester slik:

  • “Self-contained systems” eller selvstendige systemer (merk at dette ikke er mikrotjenester man refererer til, siden disse tjenestene er mye større enn mikrotjenester og krever sine egne isolerte datagrunnlag) http://scs-architecture.org/ 
  • Minst to instanser av samme tjeneste kjører til enhver tid for å tilby redundans.
  • Ingen avhengighet mellom tjenestene (det ene systemet er ikke avhengig av det andre for å startes/stoppes/fungere. Hver tjeneste kan startes/pauses/stoppes/oppdateres når som helst uten å påvirke andre tjenester.)

Noen prinsipper bak DITTO arkitekturen

  • Gjøre alle operasjoner minst én og maks én gang.
  • Prøve igjen dersom en operasjon feiler underveis (minst én gang)
  • Idempotency (maks én gang). Ingen liker å bli trukket fra konto én gang for mye.
  • Sørge for at alle komponentene jobber sammen for å oppnå en ønsket tilstand (work towards correctness and eventual consistency).
  • Minimere synkrone operasjoner mest mulig.
  • Hver forespørsel som kommer fra mobilappen valideres og lagres med én gang.
  • Lage logikken i hver tjeneste. Ikke lage noen logikk i eksekveringsrekkefølge eller i kommunikasjonskanalen mellom tjenestene. 
  • Unngå distribuerte transaksjoner fordi en feil kan oppstå midt i arbeidsflyten og spres gjennom hele systemet. Det er dermed viktig å bygge et system som kan gjenopprette flyten og fortsette der den stoppet/feilet og så jobbe seg videre for å komme fram til den ønskede tilstanden.
  • Ikke stol på andre systemers input/output-data uten validering.
  • Gi hver operasjon, kommando, melding eller innlegg en unik ID (UUID Universally Unique IDentifier) slik at det blir enklere å implementere idempotency.
  • Test og overvåk gjerne hvert system kontinuerlig.

Hvorfor Java?

  • Java gir masse feilmeldinger (exceptions) når noe går galt, disse feilmeldingene hjelper til å lage et bedre system.
  • Java er moden, pålitelig og har en stor brukerbase/brukerstøtte.
  • Kan kommunisere med mange andre eksisterende proprietære systemer.

Takeway 

“Assume that the application can and will inevitably fail and put a system in place to deal with system failure. By doing so, you can achieve both reliability and speed of delivery”

-Jason Maude

[ Les mer om Joseph ]   [ Gå til Innhold☝︎ ]

Krister om mer enn bare konferansen

En konferansetur som dette byr på mye mer enn “bare” faglig påfyll. Det er en super sosial tur med gode kollegaer og mye god mat og drikke. I tillegg får man oppleve litt tech utenom det vanlige. Det kuleste sådan var kanskje handleturene på Amazon Go. En liten butikk som lar deg plukke varene du vil ha, og bare valse ut med de. Kvittering får du på mobilen kort tid etter. 

En kjøretur langs Highway 1 i en Dodge Charger var ellers en guttedrøm som gikk i oppfyllelse. Det er noe magisk med å høre og kjenne på godlyden fra en 5,7-liters V8-motor. Like fullt fikk man følelsen av at verden også går fremover for amerikansk bilindustri når man fikk seg en prøvetur i den kvikke og høyteknologiske Tesla Model 3. 

I tillegg til mye Tesla-er var det også andre elektriske fremkomstmidler som satt sitt preg på bybildet. Elsykler og elsparkesykler stod langs de fleste fortau klar til å leies for den som ville frakte seg rundt. For våres del ble det riktignok Uber og Lyft som stod for mesteparten av transporten. Mye kan sies om disse, men brukeropplevelsen her spiser alternativene til frokost. 

Andre inntrykk som må fordøyes etter en slik tur er å ha sett hvor ekstremt mange som bor på gaten i San Francisco, vært relativt tett på alle skogbrannene i California og sett hvor koko Fox News er. Da er det litt godt å komme hjem også…

[ Les mer om Krister ]   [ Gå til Innhold☝︎ ]

Publisert 18.12.2018 av par.wiger@miles.no