Van legacy naar de cloud: wendbaarder en sneller door moderne softwareontwikkeling

-

Software wordt voor meer en meer organisaties onmisbaar. Dit artikel is voor organisaties die een digitaal product aanbieden of juist software hebben draaien die processen ondersteunt. We merken bij onze klanten dat bestaande software vaak goed is getest en al jaren prima draait, maar op den duur toch tegen een maximale levensduur aanloopt. Het grootste deel van IT-budgetten gaat naar het draaiende houden van bestaande systemen. Nu is het moderniseren van een draaiend systeem een complex proces. Op gegeven moment is het efficiënter om toch over te gaan op een nieuwe generatie techniek en de legacy software langzaam te migreren. Wat betekent ‘op gegeven moment’ nu echter voor je organisatie? In dit artikel laat ik je zien wanneer je over moet stappen en hoe je de risico’s van een migratie verkleint.

Wat heb je aan moderne softwareoplossingen? Versnel je organisatie

Laten we beginnen met begrijpen wanneer een softwarelandschap verouderd is. Voor een gedeelte is deze veroudering technisch: software wordt per definitie complexer en na verloop van tijd wordt het te duur om software aan te passen. Soms wordt software zo complex dat zelfs al het begrijpen ervan voor hoofdbrekens zorgt. Wat we daarnaast merken is dat in de snel veranderende digitale wereld er steeds minder mensen op de markt zijn die oudere techniek nog in de vingers hebben. Technische afschrijving is niet exclusief voor de digitale wereld, natuurlijk, maar door de razendsnelle technische ontwikkelingen veroudert software sneller.

Veroudering kan daarnaast economisch zijn: er komen nieuwe diensten op de markt waar je niet meer tegenop kunt concurreren. De wereld staat ook niet stil, mensen verwachten dat de nieuwe generatie digitale techniek goed werkt op mobiele telefoons of dat ze tegenwoordig gewoon met hun stem met computers kunnen omgaan. Door de cloud versnelt innovatie ongelofelijk hard waardoor klanten verwachten dat software altijd bereikbaar is, soepel werkt en ook bij piekbelasting snel is. Door het toepassen van cloudtechnologie kan sneller worden ingespeeld op sterk veranderende omstandigheden en kunnen business ideeën worden verwezenlijkt die tot voor kort onmogelijk werden gehouden. Dit alles met minder storingen en onderbrekingen. Cloud vendors hebben inmiddels een bewezen track record en kunnen de gewenste mate van beschikbaarheid garanderen.

Zou het niet mooi zijn als je  software makkelijk aan te passen is? Als je snel een idee kunt uitwerken en een nieuwe feature van je product kunt maken? Als je nieuwe feature ogenblikkelijk naar je klanten uitgedeeld kan worden om het nieuwe idee te valideren? Door de komst van de cloud kijken we nu heel anders tegen softwareontwikkeling aan dan in de techniek van de vorige generatie. Je kunt makkelijk innoveren, zonder vooraf een grote investering te doen. Een innovatief project kan zo snel gevalideerd worden. Mocht het bij die validatie blijken dat een ander idee toch beter is, heeft je organisatie dit met een kleine investering geleerd.

Hoe gaat dit in zijn werk? Sneller innoveren met cloudtechniek wordt mogelijk gemaakt door een lagere kapitaalinvestering, waar je vervolgens in abonnementen alleen betaalt wat je gebruikt. Developers hoeven zo niet hun eigen componenten te bouwen, maar kunnen bewezen, veilige en efficiënte componenten hergebruiken. Denk hierbij aan techniek waar je tot niet zo heel lang geleden nog kennis van moest opbouwen, zoals load balancers, web servers, en DNS-wijzigingen. Daarnaast kun je met cloudtechniek updates aan software meerdere keren per dag deployen en snel weer terugdraaien als er onverhoopt problemen zijn. Je hoeft zo niet meer een complexe oplossing ver van tevoren uit te tekenen, maar kunt sneller beginnen met validatie. Ook dit verhoogt de snelheid van ontwikkeling. 

Tenslotte vergemakkelijken clouddiensten het leven van de developers in de organisatie. Nagenoeg elke taak heeft zijn eigen tools bij cloud vendors. Je kunt het zo gek niet bedenken en er is een dienst voor. Voorbeeld: bij AWS kun je, als je apps bouwt voor het Apple ecosysteem, in de cloud software compileren. Traditioneel moesten developers op Apple-computers bouwtaken doen, wat in de praktijk voor allerlei complicaties en daardoor kosten zorgt, van machines die net iets van elkaar verschillen tot stekkers die door collega’s per ongeluk worden uitgetrokken. AWS heeft daadwerkelijke Apple Mini’s in een rek geschroefd, waardoor developers deze problemen niet meer hebben. De ervaring leert dat developers liever een uurtje extra investeren om iets zelf draaiend te krijgen en daarbij vergeten dat hun eigen tijd kostbaar is.

Hoe merk je dat je organisatie risico loopt?

Er zijn verschillende signalen die wijzen op de noodzaak om software snel te vernieuwen. Zo is bestaande software vaak gericht op een kantoorsituatie, maar verwachten mensen dat ze op elk moment en op hun (eigen) mobiele apparatuur bij de juiste informatie kunnen. Ook vertrouwelijke informatie kan veilig in de cloud opgeslagen en verdeeld worden. Daarnaast is privacywetgeving een inmiddels stuk verder. In legacy systemen is het weggooien van data niet altijd grondig genoeg naar nieuwe maatstaven. Verder zien we steeds vaker dat organisaties buiten de almachtige IT-afdeling om hun eigen systeemkeuzes maken. Software wordt een stuk democratischer, zo, waar de gebruikers ervan steeds vaker direct hun eigen software willen kopen. 

Bestaande systemen draaiende houden is kostbaar, niet alleen door groeiende complexiteit in een veranderende wereld, maar ook door het verdwijnen van kennis. Developers met kennis van legacy systemen worden schaarser. Ga na wat de kosten van het oude landschap zijn en of de opbrengst ervan nog genoeg is. Toch is de economische noodzaak te veranderen vaak rekkelijk. Wat we bij onze klanten merken is dat er bovenop de oorzaak een goed zichtbare aanleiding is om over te gaan, bijvoorbeeld het eindigen van ondersteuning door de leverancier. Denk ook aan verlopende onderhoudscontracten, een natuurlijke aanleiding de stap te wagen. 

Van legacy naar moderne software: begin klein, begin nu

Bij onze klanten merken we dat de beste manier van het verhuizen van software een incrementele manier van werken is. Om de impact op de lopende business van de organisatie te verkleinen, beginnen we klein en hevelen we onderdelen van het technieklandschap stukje bij beetje over. Hoe meer ervaring er tenslotte in de organisatie is over cloudtechnieken, hoe meer projecten er gestart kunnen worden om meer voordelen uit cloudtechniek te halen.

Hou het legacy-systeem intussen draaiende. Dit komt er vaak op neer dat gegevens een tijdje dubbel opgeslagen worden, bedrijfskritische data gaat dan niet verloren. Bestaande systemen zijn vaker monolitisch, voordat er kan worden gemigreerd zijn er vaak toch wijzigingen nodig om data in verschillende compartimenten te kunnen verdelen. Definieer in je organisatie welke gegevens leidend zijn voor elk compartiment: de nieuwe cloudsystemen of juist nog de legacy systemen. Hoe groter het gedeelte is dat ‘over’ is naar de cloud, hoe makkelijker nieuwe experimenten kunnen worden gestart. Zo kan je organisatie de dingen beginnen te doen die eerder alleen nog mogelijk waren voor de grote, technische partijen. 

Bij het maken van software moet je kiezen waar je goed in wil zijn. Je kúnt ervoor kiezen alles zelf bouwen, ook bijvoorbeeld je financiële administratie. Je organisatie gaat echter niet het verschil maken met een zelfgebouwd pakket hiervoor; je kunt het beter gewoon inkopen. Nog niet zo heel lang geleden moesten organisaties zelf hun serverpark beheren, alles afweten van het uitrollen en beheren van operating systems en allerlei netwerkkennis, voordat er pas kon worden begonnen met het bouwen van applicaties. Pas met deze applicaties zagen eindgebruikers de waarde van de organisatie. De cloud vendor doet werk waar je vroeger kennis over moest opbouwen in je organisatie.

Kies de techniek waar je goed in bent en gebruik platforms as a service

Nu kan je organisatie zich richten op het schrijven van de applicatie en vertrouwt voor meer technische zaken de cloud vendor. Er is minder kennis in de organisatie hiervoor nodig, waardoor je ontwikkelgroep zich kan richten op wat de organisatie uniek maakt. Maakt je organisatie uiteindelijk gebruik van Infrastructure as a service en Platform as a service, is dit niet het eindstation. Uiteindelijk kun je zelfs op het niveau van functies werken met Functions as a service.

Het initiëren van een softwarevernieuwingstraject is tevens een goed moment om de gehele IT-infrastructuur onder de loep te nemen. Naar de cloud verhuizen is niet alleen een goed idee voor bestaande software. Ook stijgt de innovatiekracht van je organisatie. Door snel nieuwe features te ontwikkelen kan de organisatie sneller inspelen op veranderingen in de markt. Daarnaast zijn er minder kapitaalinvesteringen nodig om nieuwe business te doen. Cloudtechniek maakt het op deze manier mogelijk de manier waarop je organisatie zaken doet te moderniseren. Meer hierover lees je in Overleven in een Cloud-wereld.

Hoe pakken we dat precies aan?

Er kan best nog een afstand zijn tussen volledig in de cloud draaien en op een klassieke manier een technieklandschap onderhouden. Met een geleidelijke overstap verkleinen we de risico’s. De eerste stap is het bepalen van de migratiestrategie. Een keus kan natuurlijk zijn om de bestaande techniek te laten draaien; zo loopt je organisatie een laag risico, maar heeft ook minder voordeel. Risicovoller, maar ook voordeliger is het verhuizen van bestaande techniek naar de cloud. Bepaal welke onderdelen van je technieklandschap verhuisd kunnen worden en welke onderdelen beter uitgefaseerd kunnen worden. De strategie die tenslotte tot de meeste impact kan leiden is het opnieuw opzetten van techniek. Lees meer over dit spectrum aan strategieën in het whitepaper van Piet van Dongen, onze collega die het merkwaardige talent heeft ook cloudmigraties hilarisch te brengen.

Heb je eenmaal de eerste stappen in de cloud gezet, is het zaak de honderden services beter te leren kennen. Er is zo’n groot aanbod dat het vinden van de juiste dienst een competentie op zich begint te worden. Juist hier kan Luminis een gidsrol vervullen: als partner van de grote cloudproviders kunnen we de juiste services vinden en pro-actief aandragen als we  een verbetering zien voor de organisatie. Bert Ertman vertelt meer over hoe deze cloud services werken. l In deze tijd waar beheer en bouw hand in hand blijven gaan blijven we ook bij beheer aanhaken en zorgen ervoor dat de cloud-rekening laag blijft.

Zonder Luminis als gids is het lastig te weten wat je kunt doen met een cloud provider als AWS. AWS is marktleider door hun betrouwbaarheid en enorme aanbod, maar niet omdat hun clouddiensten makkelijk te doorzoeken zijn. De clouddiensten hebben vaak geheimzinnige namen en worden in zo’n tempo uitgestort over de markt dat het al een dagtaak is om bij te houden wat nieuw is. Stel dat je bijvoorbeeld een grote bak locatiedata hebt. Hoe kies je nu de beste AWS-dienst voor jouw organisatie? Kun je het beste Kinesis gebruiken, AWS Timestream of gewoon wat Lambda’s? Daarnaast is de cloud-rekening de enige plaats waar je organisatie volledig inzicht krijgt in de kosten, en vaker achteraf. Wij analyseren welke services te hoge kosten met zich meebrengen en migreren bijvoorbeeld data naar een ander soort opslag of gebruiken een ander soort database. Zo krijgt je organisatie de cloudkosten weer in de hand. Tenslotte onderzoeken we welk gebruik we kunnen voorspellen: door slim in te kopen zijn er slimme deals mogelijk en gaan de kosten van het IT-landschap nog verder naar beneden. Toch is het einddoel niet om kosten-gedreven te denken, maar door techniek wendbaar te zijn. Zo wordt IT weer leuk én kunnen we mensen blij maken met robuuste systemen die het mogelijk maken te doen wat eerder niet kon.