JanWiersma.com

En dan… die applicatie naar de Cloud toe…

Cloud Applicatie Migratie

Na het doen van de nodige research, lezen van blogs en whitepapers, bezoeken van seminars en praten met leveranciers… heb je nu besloten dat Cloud de stip aan de horizon moet worden voor je organisatie. Maar hoe ga je daar komen ? Hoe hervorm je de huidige IT spaghetti naar deze utopische Cloud wereld ?

De eerder gepubliceerde whitepaper rond cloud strategie geeft aan:

De migratie naar externe Cloud computing heeft een significante impact op een IT organisatie, de leveranciers rol van de IT organisatie en de manier waar op applicaties ontwikkeld worden en gebruikt.
Omdat men groeit vanuit een interne IT omgeving naar meer verbruik van externe Cloud computing omgevingen, moet men rekening houden in de architectuur met samengestelde applicaties.

De whitepaper geeft ook aan dat er verschillende verschijningsvormen van Cloud zijn zoals SaaS, PaaS en IaaS. De stap vanuit de huidige enterpise IT omgeving naar elk van deze verschijningsvormen kent zijn eigen karakteristieken. Een van de beste benaderingen voor cloud migratie is de huidige IT omgeving te bekijken van de applicatie of dienst zijde;

Niet alle applicaties zijn op dit moment geschikt voor een migratie naar een externe Cloud omgeving. Goede kandidaten zijn applicaties die niet missie kritiek zijn, matige tot geen integratie kennen met andere belangrijke applicaties en niet van strategische (competitieve) waarde zijn voor de organisatie. Om beveiligingsrisico’s te verminderen, zou de applicatie ook geen sensitieve informatie moeten bevatten. Naar mate de volwassenheid van externe Cloud omgevingen toeneemt, zullen meer applicaties de stap kunnen maken naar deze omgeving.

Waar de whitepaper vrij snel in gaat op applicaties die potentieel gemakkelijk te migreren zijn, wilde ik dat even in wat bredere context zetten en verkennen: “Cloud Applicatie Migratie, hoe doe ik dat ?”

Een applicatie op een cloud platform is iets anders dan een applicatie in de traditionele IT omgeving. In de recente afscheidsblog van Ray Ozzie ((ex-)Microsoft) schrijft hij over de toekomstige uitdagingen van de nieuwe naadloos schaalbare computing modellen. Het idee dat men ‘zo maar’ bestaande applicaties kan overzetten op dit soort modellen werkt niet. Software vandaag de dag is daar meestal gewoon niet voor gemaakt. Veranderingen rond de user interface (zoals touch screens), data management (zoals niet-relationele data modellen), horizontaal kunnen schalen en zelfs programmeer stijlen (zoals ‘fail-ready’ software) zorgen er voor dat bestaande code meestal niet direct geschikt is voor echte cloud computing omgevingen.

Om te beginnen is een Applicatie Portfolio Analyse de belangrijkste actie. Deze kan echter snel uit de hand lopen als het doel er van niet helder beschreven of begrepen is. Of een applicatie of dienst geschikt is voor een cloud computing omgeving zal getoetst moeten worden door rationalisatie van de portfolio. Deze rationalisatie kent meerdere dimensies, die de applicatie toetsen tegen de  karakteristieken van een ‘cloud applicatie omgeving’ en de geschikte migratie optie (private of public cloud) en het geschikte migratie pad (IaaS, PaaS of SaaS) selecteren. Daarnaast dient een kosten analyse de impact op TCO & ROI te bepalen en te helpen om een business case te bouwen.

Bij de rationalisatie van een applicatie voor cloud computing kan men de volgende 4 aandachts gebieden bekijken

image

(Vrij naar sys-con.com )

Hierbij kan men de volgende indicatieve richtlijnen volgen om te bepalen of een applicatie of dienst klaar is voor cloud;

  1. Elasticiteit kan gemeten worden langs drie parameters: workload, storage, utilization. Het is belangrijk om een dergelijke karakteristiek van de applicatie te hebben zodat bepaald kan worden of en hoe deze op een cloud platform kan landen. Deze gegevens zijn vaak te halen uit monitoring tools of log files in de bestaande omgeving.
  2. Bij een negatieve impact op Governance (SLA, beveiliging, wet en regelgeving, etc..), levert dit meteen een ‘veto’ op om een applicatie of dienst niet naar de public cloud te verhuizen.
  3. De technische haalbaarheid; de impact op de architectuur van de applicatie en de impact op de kwaliteit van de dienst verlening moeten goed overwogen worden.
  4. Functionele toekomstvastheid van de applicatie.

Door het toepassen van een score model op de bovenstaande aandachtsgebieden, zou men goed inzicht moeten krijgen op de cloud geschiktheid van de applicatie of dienst.

Hoewel een public cloud infrastructuur veel voordelen kan beiden (bijvoorbeeld in schaal en kosten) die niet mogelijk zijn in een eigen (private) cloud omgeving, zullen bepaalde applicaties nooit naar de public cloud verhuizen. Dit zal vooral het geval zijn bij de kroonjuwelen van een organisatie; informatie die missie kritiek is of een hoge gevoeligheid heeft.

De business case voor cloud applicatie migratie is niet compleet zonder rekening te houden met het doel platform; private of public cloud. De migratie en overhead kosten variëren behoorlijk bij deze keuze en beïnvloeden daar mee ook de totale besparing die te behalen is. Een goede kosten analyse helpt bij de keuze om een applicatie wel of niet te verhuizen en de te verwachte TCO/ROI.

Kosten analyse zou ten minste CapEx, OpEx en Overhead moeten bevatten. Hier onder kunnen we o.a. de volgende elementen verstaan:

  • CapEx
    • Servers
    • Storage
    • Backup
    • Netwerk apparatuur
    • Vastgoed (datacenter)
  • OpEx
    • Energie
    • Personeel
    • Bandbreedte
    • Onderhoud
    • Licentie contracten
  • Overhead
    • Migratie kosten
    • Skills
    • Governance

Applicaties en diensten die worden aangeboden op een eigen (dedicated) infrastructuur zijn goede potentiele kandidaten voor migratie naar een cloud infrastructuur. Het bepalen van de kosten voordelen voor deze applicaties zou redelijk makkelijk moeten zijn. Voor applicaties die een gedeelde infrastructuur kennen, moet er mogelijk een specifieke workload analyse gemaakt worden om de potentiele besparingen te bepalen.

Migratie strategie

Het vast stellen van een applicatie migratie strategie betekend dat men bekend moet zijn met de diverse migratie mogelijkheden, opties en organisatie doelstellingen. De uitdaging zit in de balans tussen organisatie prioriteiten en kosten. Als basis hebben (enterprise) organisaties twee keuzes voor cloud infrastructuren; public en private. Hierbij zijn de volgende migratie paden een optie; IAAS, PAAS, SAAS. De keuze word gedreven door zaken als elasticiteit, business model en information2.0/technologie2.0 strategie (zie: The New Normal). De keuzes worden beperkt door factoren als technische haalbaarheid, beveilging, migratie kosten, etc.. Het is daarom niet ongewoon dat grote organisaties kiezen voor een hybride cloud strategie waarbij men gecontroleerd kan evolueren.

tweet1

Het is belangrijk om te beseffen dat het werken met een applicatie portfolio rationalisatie die leid tot 1 migratie strategie voor alle applicaties niet behulpzaam is. De migratie strategie zal per applicatie of dienst bepaald moeten worden en door ontwikkelen. Dit na een goede evaluatie van de bekeken applicaties op de eerder geschetste vlakken. De uitdaging op bijvoorbeeld hardware infrastructuur en architectuur gebied die samenhangen met een cloud migratie, moeten onderdeel worden van de totale migratie strategie. Bekijk de dienst of applicatie hierbij vanuit de totale IT stack om zo de samenhang te ontdekken en in kaart te brengen.

tweet2

Migratie paden

De migratie van een applicatie waarbij men de onderliggende server infrastructuur verhuist naar een public of private IAAS omgeving levert een snelle manier om enkele voordelen van de cloud mogelijkheden te plukken. Dit soort migraties zijn ongecompliceerd door dat het slechts het verhuizen van de host betreft en geen aanpassing in de applicatie code. Het mag echter ook duidelijk zijn dat dit soort migraties slechts een klein deel van de voordelen van cloud computing oplevert. Voorbeeld van bovenstaande services zijn Amazon EC2 of Rackspace.

De migratie naar een echte SAAS architectuur en de hosting daar van op een omgeving die tientallen tot honderden klanten kan bedienen (multi-tenant) levert de grootste kosten voordelen op voor enterprise organisaties. Het helpt ook bij applicatie rationalisatie door applicaties met gelijke functionaliteit samen te brengen en deze enkele SAAS applicatie te bieden op een gedeelde infrastructuur. Migratie van een applicatie naar een volledige SAAS omgeving kan echter een ontmoedigende bezigheid zijn, omdat de meeste applicaties niet geschikt zijn voor deze nieuwe (multi-tenant) cloud architectuur. De beweging naar een SAAS omgeving zal derhalve eerder een vervanging van de bestaande applicatie door een SAAS in houden. Voorbeeld eigen enterprise CRM door Salesforce.com. De sleutel hierbij is het feit dat er gebruik gemaakt word van een basis applicatie code die voor alle honderden klanten word gebruikt en het toestaat om daar boven op specifieke uitbreidingen toe te passen (plugin, mashup of widget).

Als tussen model heeft men PAAS; Leveranciers als Google App Engine en Microsoft Azure leveren een complete cloud IT stack voor software ontwikkeling en levering. Dit levert de mogelijkheid om ‘echte’ cloud applicaties te bouwen en uitleveren op een schaalbare en elastische omgeving. Dit levert echter ook een hoop beperkingen op, op elke technologie laag van de applicatie stack. Vanwege deze beperkingen is het vaak lastig om bestaande applicaties en code over te zetten op deze nieuwe cloud omgevingen. Dit zit soms in de applicatie code en het feit dat programmeurs soms ‘vergeten’ zijn om netjes te programmeren (voorbeeld stateless/statefull). Waar dit in huidige silo IT omgevingen geen problemen oplevert zie je dat dit op gedeelde PAAS en SAAS omgevingen wel een uitdaging geeft. Om deze redenen leent PAAS zich vooral goed voor ‘Greenfield’ acties.

Planning en implementatie

Als we kijken naar een applicatie cloud strategie, word er vaak gekeken naar de technische migratie consequenties. Men moet echter niet vergeten dat de introductie van cloud technologieën ook effect heeft op de organisatie. Bij de migratie moet men rekening houden met het wijzigen van de functie en rol van beheer bijvoorbeeld.

Ook moet men rekening houden met het effect op (bestaande) SLA’s, Service management, onderhouds contracten, door belasting methodes, en skill sets. Hier over in een later blog meer.

tweet3

Zodra men klaar is om de stap naar een cloud omgeving te maken dient er eerst goed naar de huidige applicatie en diensten porfolio gekeken te worden. Er dienen duidelijke landingsplaatsen gedefinieerd te worden zoals private en public cloud en routes zoals IAAS, PAAS en SAAS. Per applicatie moet bepaald worden of deze afsterft in de huidige infrastructuur en word vervangen door een applicatie in een cloud omgeving. Door het toetsen van de applicatie met behulp van enkele cloud basis elementen en het kijken naar de kosten van de applicatie kan er een route naar de toekomst worden uitgezet met een goede business case.

Dit alles kost de nodige inspanning, maar is noodzakelijk voor het slagen van de cloud transitie.

Zie ook:

‘Moving to’ versus ‘building for’ cloud computing

Hands-on migratie analyse voorbeeld: Migration steps to a private cloud

Share