København
Landemærket 10, 6. sal1119 København
Danmark+45 33 36 44 44hello@kruso.dk
Del 1
Software har bevæget sig væk fra monolitiske strukturer, med faste årlige releases, i et stykke tid nu. I ogmed forældelses-cyklussen fremskyndes, er det essentielt at virksomheder bygger deres tekniske løsninger med fokus på større fleksibilitet og med mulighed for opgraderinger for at tilpasse sig et marked ogsamfund i konstant forandring. Kontinuerlig research og udvikling er billigere end sparsomme releases i det lange løb. Proaktivitet trumfer reaktivitet.
Her ved Kruso har vi udviklet, udforsket og innoveret i den digitale sfære i over 20 år. Det er omkring 2000 år på internettet, og som du sikkert kan forestille dig, så har vi set en del. Idéer er blevet udforsket, fremgangsmåder er blevet testet og teorier er blevet af- eller bekræftet. I denne blog serie har jeg tænkt migat spare jer for flere års erfaring og indvie jer i de seneste ny-afprøvede teknikker for udvikling af digitaleprojekter med fremtiden for øje.
I det her afsnit kunne jeg snakke om hvor dyrt det er at udvikle og vedligeholde et stort monolitisk system. Udfordringerne du står overfor når du har meget lidteller ingen indsigt i de indre processer, eller når du ikke har adgang til den komplekse forretningslogik der udgør din virksomheds digitale platform. I stedet vil jeg starte dette afsnit ud med en gammel (omend cliché) påstand, der vil lede til sjovere og mere inspirerende pointer end den klassiske “du skal følge disse trin for at holde dig oven vande”: Virksomheder bliver nødt til at tilpasse sig hurtigere end de skulle tidligere, specielt indenfor den digitale industri. Denne tilpasning skyldes for det meste to faktorer: teknologi og mennesker. Det er en cyklus der starter med et bruger-behov, der udløser en ny teknisk innovation, der skaber et nyt bruger-behov, der udløser en ny teknisk innovation, der skaber... Du har fanget pointen. Det har været den samme cyklus siden teknologiens begyndelse, og hvis Newton havde været i live i dag, ville jeg tweete ham og bede ham om at tilføje det som en del af fysikkens love, for det er så tæt på en naturkraft som man kan komme.
I og med virksomheder konkurrerer om de største markedsandele, spurter de alle I et løb om at forbedre deres produkter så hurtigt som muligt, og med hver enkelt nye opdatering, vænner brugeren sig til det nye tempo. Hver gentagelse forkorter forældelses-cyklussen. At release en stor updatering til din software er simpelthen ikke nok længere. Du husker måske et gammelt sagn om en drage ved navn MySpace, nedlagt af en lille college dreng kaldet Mark Zuckerberg. Som alle gamle sagn fortæller den her heller ikke hele sandheden.
Det er sandt at MySpace’s markedsandele blev overtaget af Facebook, men nogle vil mene at det eneste Facebook gjorde for at fortjene dette var at være hurtigere, mere strømlinet og mere fleksibel, og at MySpace’s endeligt primært var deres egen skyld. MySpace var ikke bygget med fremtiden for øje, og var besværlig at opdatere og vedligeholde. Derudover blev de opkøbt af News Corporation, medie giganten for “gamle medier”, der medførte at de skulle igennem alle de langsomme processer for “gamle medier” hvilket betød at deres monolitiske release format ikke kunne følge med forældelses-cyklussen. Imens de var fuldt optaget med at slukke deres egne ildebrande, havde Facebook allerede styr på det, og kunne ovenikøbet bygge videre og ovenpå deres stærke fundament for fremtiden.
Dette er blot et specifikt eksempel ud af mange, men det generelle koncept kan anvendes på alle virksomheder og deres konkurrenter – store som små. Forandringerne vil ske, om du vil det eller ej. Følg med din målgruppe, for der er allerede andre der gør det.
Så hvordan kan en virksomhed vokse og trives i det endeløse hav af daglig innovation, optimering og det altid foranderlige digitale landskab? Det virker måske utrolig skræmmende at tænke på I første omgang, men som de siger på de gængse tv-kanaler (der lidt efter lidt bliver udkonkurreret af streamingtjenester og erstattet af targeted ads på de sociale medier): Frygt ej, der er lys for enden af tunnelen!
For at cirkulere tilbage til cyklussen beskrevet ovenover (pun intended) ved vi at de centrale faktorer for at vedblive relevant handler om hvor god du er til at innovere for din målgruppe. Så hvordan udvikler vi en digital platform der gør innovation mulig? Hvordan får vi opsat de optimale forhold for at synkronisere vores releases med vores brugere? Hvordan designer vi en digital struktur der ikke vil vokse til en stor, stillestående elefant der går i vejen for sig selv? Jeg er glad for at du spørger. Lad mig introducere dig for (hvis du altså ikke allerede har stiftet bekendskab) med det bedste innovation indenfor buzzword teknologi I løbet af de sidste par år: Microservices. Vi er helt vilde med dem!
For de uindviede, så er konceptet simpelt: Vi plejede at bygge en stor monolitisk kolos af en maskine med faste forbindelser til en stor mængde indviklede dele der måske eller måske ikke er forbundet til hinanden. I dag ser vi nu på en stor service som mange små services. Alle de her services har deres egne jobs og formål, men de er utroligt dygtige til at snakke til hinanden. De forskellige services er ikke viklet ind i hinanden og kan opdateres og vedligeholdes individuelt og kan blive udskiftet eller optimeret når behovet eller lysten til dette opstår. Det er lidt ligesom LEGO, men digitalt og med langt flere muligheder.
Til de af jer der godt kan lide lister, har jeg her lavet en liste over fordele ved microservices:
Billig: Selvom de indledningsvise omkostninger kan overstige omkostningerne ved et monolitisk system, så er det omkostninger som bliver sparret over tid. Små separate services er nemmere at vedligeholde og optimere.
Sikkert: De forskellige services kan justeres, udvikles og vedligeholdes individuelt og nye services kan blive testet uden at risikere systemets stabilitet.
Hurtigt:Da det er et system der er bygget til at være modulær, behøver vi ikke tage vores kode-arkæologihatte på hver gang vi vil tilføje eller optimere end service.
Essentiel: Alle punkterne ovenfor kombineret betyder, at platformen kan bevæge sig i hvilken som helst retning det ønskes. I det store perspektiv kan vi følge bruger-behov og sociale trends. Fra et lille perspektiv kan vi opdage en service der er så god, at den bliver sit eget produkt der kan leases ud til andre virksomheder med lignende behov.
“Hvad er hagen så ved det?” spørger du nok. Altså, helt ærligt så er der mange. Microservices, ligesom monolitter, kan blive indviklet, forretningslogikken kan blive udhvisket og udvikling kan blive hård og besværlig - Det handler alt sammen om implementation. På samme måde som et monolistisk system kan være modulær og vedligeholdt af forskellige teams.
Den store forskel med en microservice struktur er at den modulære tankegang er bygget ind på et konceptuelt og fundamentalt niveau, der lader os arbejde med individuel implementering og individuel skalering fra start af. Begynder dine brugere pludselig at uploade langt flere billeder til jeres platform, end hvad du forventede og havde bygget? Så er der ingen grund til at gå igennem systemet for at lede efter optimeringspunkter - I skal bare optimere og skalere jeres upload-service. Skal der implementeres en ny betalingsløsning? Nemt! I skal blot gå til jeres betalingsfunktion og implementere den nye løsning. Er der en ny og interessant AI-drevet løning i horisonten? Prøv det af ved at indsætte en lille prototype og se hvad dine brugere synes. Hvis de kan lide det kan du skalere op, og forbinde det til flere af dine services, og hvis de ikke kan lide det, kan I bare gå tilbage til den tidligere løsning, også selvom systemet omkring har ændret sig.
Ved at arbejde på denne måde bliver jeres store system langt mere fleksibelt, og vil stadig være mindre udsat for de almindelige problemer man finder I store systemer. Hvis I alligevel støder på et problem, er det lang nemmere at løse det.
Det bliver også lettere at sove roligt om natten.
Den letteste måde at undgå problemer er ved at have en solid start, men det er ikke altid klart hvordan den solide start ser ud. Hvad skal I have fokus på? Hvad skal I undgå? Hvad skal I reflektere over? Ja altså, når man ser på længden af den her blog er det nok spørgsmål der er bedre at fokusere på i del 2 og 3 af den her blog serie. Der vil jeg gå I dybden ved at dele en række kamp-testede tips og tricks der kan hjælpe jer på jeres rejse, uanset om I er et team der starter et nyt produkt, eller en virksomhed der skal opdatere jeres system.
Indtil da: pas på dig selv, husk at drikke vand og strække dine ben en gang i timen. Og held og lykke med hvad end du laver, der gjorde dig interesseret I det her blog post.
Vi ses I del 2!