Jak migrovat aplikace do cloudu

migrace cloud

Migrace systémů a aplikací z místního datového centra do cloudu umožňuje na jedné straně snížení nákladů na vlastnictví a na straně druhé zvýšení flexibility, dostupnosti a stability systému. Díky různým možnostem od společností jak např. Amazon Web Services (AWS), Microsoft Azure či Google Cloud Platform (GCP) není lepší doba než nyní udělat další krok ve svém podnikání a modernizovat svoji infrastrukturu.

Při migraci systému jakékoliv složitosti nebo obchodního významu je obvyklé provést zkušební migraci, nežli je provedena migrace na živé aplikace. Zkušební migrace se provádí zkopírováním živých dat a provedením migrace se zkopírovanými daty, přičemž uživatelé využívají původní systém. Pokud jde všechno dobře, kopie živé aplikace se zkopírovanými daty bude běžet v cloudu. Následně by měla být zkušební migrace otestována.

Testování komplexních systémů není jednoduché, a to ani při úspěšné zkušební migraci. Komplexní systém nestále komunikuje s mnoha dalšími systémy, takže je třeba dbát na to, aby se zkušební kopie nepokoušela připojit k živým systémům včetně živých databází. Pokud by se tak stalo, mohla by do živých systémů odesílat nesprávná data a způsobit tak jejich nesprávnou funkci. Na druhé straně zkušební kopie nebude správně fungovat a bude obtížné ji otestovat, pokud se nebude moci připojit k systémům, pro které byla navržena.

Tento problém lze vyřešit vytvořením zástupných procedur (stubs) pro připojení k rozhraním systémů. Zástupné procedury napodobují odezvu reálného systému, ke které má být testovaný systém připojen. Pro zástupné procedury existují různé nástroje jako SmartBear ServiceV Pro, CA Lisa a IBM Rational Test Virtualization Server, které poskytují fiktivní odezvy na rozhraní testovaného systému a umožňují spuštění aplikace a její testování. Nicméně je třeba brát v úvahu, že odezvy poskytované prostřednictvím zástupných procedur nebudou nikdy úplně stejné, jako v případě připojení k rozhraní reálného systému.

Objem testování by mě vycházet ze dvou faktorů, a to složitosti a důležitosti systému. Pokud je systém orientovaný na zákazníka a generuje příjmy a je velmi složitý (např. systém online bankovnictví TSB), je vhodné provést mnoho testů. Pokud je systém jednoduchý a má malý obchodní význam (např. rezervační systém pro zasedací místnosti), podrobné testování bude pravděpodobně zbytečné.

Testování migrace není stejné jako testování během vývoje softwaru. Migrace obvykle nezahrnují změny kódu, takže se předpokládá, že samotná aplikace bude fungovat. Výjimkou jsou případy, kdy se využívají externí systémy, resp. jejich rozhraní. Testování by tedy mělo být zaměřeno především na rozhraní. Pokud aplikace provádí složitý výpočet, není třeba jej testovat, ale pokud výpočet vyžaduje data z externího systému, měl by být tento aspekt otestován. Migrační testy by proto měly být úměrné složitosti a významu aplikace a měly by být zaměřeny na testování rozhraní.

Testování by nemělo zahrnovat pouze testy prováděné technickým personálem provádějícím migraci, ale také uživatelské akceptační testování (User Acceptance Testing, UAT). Uživatelé si totiž díky znalosti předmětného využívání aplikace často všimnou chyb, které technickému personálu mohou uniknout. Mimoto UAT také pomáhá při vytváření důvěry mezi uživatelem a migrovanou aplikací. Složitá migrace může být dlouhá a náročná a podpora uživatelů může znamenat rozdíl mezi úspěchem a neúspěchem.

Migrace celého datového centra obvykle trvá měsíce nebo i roky. Jednotlivé aplikace nejsou migrovány najednou, obvykle se provádí postupné migrování jedné nebo několika obdobných aplikací, což zahrnuje zkušební migraci, testování a živou migraci. Migrace jedné nebo několika živých aplikací bude většinou naplánována přes víkend.

Migrace

Migrace živé aplikace do cloudu obvykle probíhá v omezeném časovém intervalu, např. o víkendu. U některých systémů, jako jsou datové sklady, kde není nutné každodenní používání lze naplánovat delší výpadky. Uživatelé však musí být schopni systém používat až do konce pracovní doby v pátek a budou očekávat, že bude plně funkční, až v pondělí opět přijdou do práce.

Vzhledem k omezené době musí být migrace jakékoliv živé aplikace vždy pečlivě naplánována. Většina funkcí musí fungovat hned napoprvé protože, jinak bude doba migrace překročena. To je také hlavním důvodem pro provedení zkušební migrace předem. Během zkušební migrace by se měly vyloučit jakékoliv chyby, aby se mohly naplánovat jednotlivé operace tak, aby se migrace vešla do omezeného časového intervalu. Pokud se během zkušební migrace zjistí, že nějaká operace zabere více času, než bude během víkendu k dispozici, lze podniknout příslušné kroky. Například zrychlení operace díky napsání skriptu pro její automatizaci; případně může být spuštěna dříve než o víkendu, nebo může být spuštěna paralelně s jinými úkoly, nebo rozepsána tak, aby k živé migraci docházelo ve fázích během několika víkendů.

I při nejlepším plánování se však mohou vyskytnout problémy. Aby se tomu zabránilo, měl by být připraven plán návratu. To znamená, že v případě problémů se migrace přeruší a systém se vrátí do původního stavu. To sice způsobí zpoždění a dodatečné náklady programu migrace, ale zabrání to neplánovanému výpadku a škodám, které by to organizaci mohlo způsobit.

Program migrace během víkendu musí obsahovat pečlivě naplánované činnosti. Pokud migrace proběhne úspěšně a bez problémů, bude následně proveden „smoke test“, tj. krátký ověřovací test, zda je migrovaná aplikace připravena. Od tohoto okamžiku již migraci nelze vrátit zpět, tj. systém bude připraven v cloudu na pondělní použití a bude provedena veškerá nezbytná komunikace s uživatelem.

Po uvedení aplikace do provozu by měl migrační tým provozování aplikace několik dní monitorovat, aby mohl rychle reagovat v případě, že by se něco pokazilo. Během tohoto období a bezprostředně po tomto období lze provést optimalizaci výkonu, např. laděním databáze nebo úpravou velikosti cloudových serverů provozujících aplikaci nebo využitím sítí pro doručování obsahu, jako je AWS CloudFront.

Závěr

Migrace aplikací do cloudu je dost podobná migraci do jiného datového centra, existují zde však určité odlišnosti. V cloudu nelze použít starší hardware nebo síťové protokoly a obvykle je vyšší latence, pokud datové centrum poskytující cloudové služby není někde poblíž. Na druhou stranu AWS a další cloudové platformy poskytují řadu nástrojů a pomůcek, které pomáhají s migrací do cloudu, např. nástroje k lokalizace existujících systémů či VPN pro připojení vašeho datového centra přímo ke cloudu. Navíc partneři poskytovatelů cloudových platforem jsou vyškolení a mají zkušenosti s migrací aplikací do cloudu.

Migrace komplexních systémů do cloudu je složitá a náročná. Proto je nezbytné vždy dbát na pečlivé plánování a testování, aby se předešlo možným škodám. Odměnou za to však je snížení nákladů na IT, vyšší spolehlivost a možnost mnohem lépe a rychleji inovovat a uvádět produkty na trh.

Francis Miers, Automation Consultant

Zdroj: DCR

Související články

Leave a Comment