Fullstackutvecklaren erövrar mikrotjänstvärlden

Node.js tar över mer och mer på backend. Det finns olika drivkrafter som samverkar här.

Fördelarna är uppenbara från ett kompetensperspektiv där vi direkt river en silo-vägg mellan frontend och backend-utvecklare. Det innebär att alla utvecklare på ett mer naturligt sätt kan röra sig mellan frontend och backend. Vi får ett team som är mer tvärfunktionellt.

Node.js passar även som hand i handske i en Container-arkitektur, där man skalar tjänster genom att starta fler container-instanser och inte genom att starta fler trådar på servern. Arkitekturen i Node.js och javascript är till sin natur asynkron och ihop med Promises blir koden till och med läsbar och man slipper att stacken tar slut bara för att man programmerar alldeles vanliga program-loopar.

C.A.G Edge fokuserar på molnbaserade mikrotjänster och vi finner det viktigare och viktigare med kort turnaround, snabbt att bygga och snabbt att starta och Node.js är en bra match där. Continuous Delivery och Devops trycker också på.
kn-workshop-1024
Vi noterar att Netflix har haft likande erfarenheter.

På Edge har vi arbetat med Node.js på Kubernetes i Google Cloud i mer än ett år nu, och jag har som gammal backend-räv med tekniker som Java 8, Glassfish, IBM WebSphere, Java Enterprise Edition, relationsdatabaser och distribuerade transaktioner i bagaget, hållit på ett tag nu att skifta fokus mot tekniker runt Node.js.

Det jag saknar mest i Javascript är statisk typcheckning. Den dynamiska typningen orsakar onödigt mycket problem när man arbetar efter Continuous Delivery med kontinuerlig refactoring. Jag önskar verkligen att verktygen kunde tydligare varna för när programmeraren gör fel. Det är dyrt att vänta hela vägen till att testet smäller, och det förutsätter att det finns ett automatisk test implementerat som täcker just den koden man ändrar i, vilket långt ifrån alltid är fallet.

Med vår tunga backendkompetens ser vi ibland problem med stabiliteten i en applikation skriven med Javascript i Continuous Delivery sammanhang, även om man skriver koden enligt senaste standarden (Ecmascript 6) och därför är vi nyfikna på och håller på att röra oss mot Typescript. Innan vi är där fullt ut möter vi upp med ännu fler automatiska tester. En fördel med Typescript är att man kan migrera dit från Javascript stegvis, källkodsfil för källkodsfil.

När man kommer från Java-sidan så kan den konsekvent asynkrona programmeringsmodellen i Node.js upplevas som svår snabbt ta full mental kontroll över, om man inte är van vid det sedan tidigare från till exempel Akka. Med Javascript går ju inte ens att skriva ett enkelt integrationstest utan asynkrona callbacks på nästan varje rad.

Java 8 finns fortfarande där och är fortfarande ett bra val på backend i en mikrotjänstvärld i och med Spring Boot och Dropwizard.

Python är också på uppgång i mycket av det som sker på AI-sidan och Machine Learning, inte minst i Googles Tensorflow.

Node.js och javascript är hett nu och det finns förmodligen inget annat ekosystem som rör sig snabbare. Det händer enormt mycket nu och sedan en tid tillbaka, på gott och ont. NPM Registry innehåller nästan 100´000 paket, men man kan förmoda att bara en del av dessa håller produktionskvalitet och den allmänna känslan när man har erfarenhet från Java och backend är också att det inte är riktigt lika moget och stabilt än.

Vi på Edge är på Node.js-tåget och har gift ihop de bra sakerna i den lättrörliga Javascript-kulturen med nödvändiga delar från den mer konservativa backend- och Java-kulturen, och har toppat det med det senaste inom Continuous Delivery, Containers och Cloud. Det är en inspirerande resa!

IT Consultant at CAG Edge. Cloud and Continuous Delivery specialist, software developer and architect, Node.js, Java.

Publicerad i Cloud Computing, Continuous Delivery, DevOps, DOcker, Java, Javascript, Node.js, npm, typescript

Kategorier

LinkedIn Auto Publish Powered By : XYZScripts.com