Mendelova univerzita v Brně Provozně ekonomická fakulta
Migrace služeb společnosti do cloud systému Diplomová práce
Vedoucí práce: doc. Ing. Oldřich Trenz, Ph.D.
Bc. Jan Vacula
Brno 2014
Zadaní práce
Na tomto místě bych rád poděkoval vedoucímu mé diplomové práce, doc. Ing. Oldřichu Trenzovi, Ph.D., za jeho rady, připomínky a podněty, které mi poskytl během tvorby této práce.
Čestné prohlášení Prohlašuji, že jsem tuto práci: Migrace služeb společnosti do cloud systému vypracoval samostatně a veškeré použité prameny a informace jsou uvedeny v seznamu použité literatury. Souhlasím, aby moje práce byla zveřejněna v souladu s § 47b zákona č. 111/1998 Sb., o vysokých školách ve znění pozdějších předpisů, a v souladu s platnou Směrnicí o zveřejňování vysokoškolských závěrečných prací. Jsem si vědom, že se na moji práci vztahuje zákon č. 121/2000 Sb., autorský zákon, a že Mendelova univerzita v Brně má právo na uzavření licenční smlouvy a užití této práce jako školního díla podle § 60 odst. 1 Autorského zákona. Dále se zavazuji, že před sepsáním licenční smlouvy o využití díla jinou osobou (subjektem) si vyžádám písemné stanovisko univerzity o tom, že předmětná licenční smlouva není v rozporu s oprávněnými zájmy univerzity, a zavazuji se uhradit případný příspěvek na úhradu nákladů spojených se vznikem díla, a to až do jejich skutečné výše. V Brně dne 1. června 2014
_______________________________
Abstract Vacula, J. Migration of company’s services into cloud system. Master thesis. Brno: Mendel University, 2014. This thesis deals with issues of migrating services used in companies into cloud and with creation of generic methodology of migration. For purposes of this work is described cloud computing technology, its properties, possibilities of usage, usage of cloud service providers and technologies for running own clouds on owned systems. The thesis further includes analysis of servises used in small companies. The analysis is based on services used in company Abstract s.r.o. Next is created general methodology describing how to handle migration of services and this methodology is verified by its use on systems of company Abstract s.r.o. Finally, application for communicating with cloud service for storing data objects is created and factors, which operating costs were changed after migration, are descibed. Keywords Cloud computing, services, migration, virtualization, applications in cloud.
Abstrakt Vacula, J. Migrace služeb společnosti do cloud systému. Diplomová práce. Brno: Mendelova univerzita v Brně, 2014. Práce se zabývá problematikou migrace služeb společností do prostředí cloud systémů a návrhem obecné metodiky migrace. Pro potřeby této práce je popsána technologie cloud computingu, její vlastnosti, možnosti využití služeb poskytovatelů cloud služeb a možnosti provozu této technologie na vlastních systémech. Práce dále obsahuje rozbor služeb, které jsou využívávány v malých společnostech. Rozbor je proveden na základu řešení společnosti Abstract s.r.o. Je vytvořen návrh obecné metodiky popisující způsob přesunu služeb a tato metodika je ověřena aplikací na systém společnosti Abstract s.r.o. Na závěr je vytvořena aplikace komunikující s cloud službou pro ukládání datových objektů a jsou popsány změny provozních nákladů po migraci. Klíčová slova Cloud computing, služby, migrace, virtualizace, aplikace v cloudu.
Obsah
6
Obsah 1
2
Úvod a cíl práce
8
1.1
Úvod.......................................................................................................................................... 8
1.2
Cíl práce................................................................................................................................... 8
1.3
Metodika práce ..................................................................................................................... 9
Cloud computing
10
2.1
Vysvětlení pojmu .............................................................................................................. 10
2.2
Výhody .................................................................................................................................. 11
2.3
Omezení a nevýhody ....................................................................................................... 12
2.4
Ekonomické faktory ........................................................................................................ 13
2.5
Modely cloudu ................................................................................................................... 14
2.6
Modely služeb .................................................................................................................... 15
2.7
Infrastruktura cloudu ..................................................................................................... 16
2.8
Architektura cloud aplikací .......................................................................................... 17
2.9
Servisně orientovaná architektura ............................................................................ 17
2.10 Bezpečnost aplikací ......................................................................................................... 18 2.11 Přístup ke cloudu.............................................................................................................. 20 3
4
Poskytovatelé cloud služeb
22
3.1
Amazon Web Services .................................................................................................... 22
3.2
Google Cloud Platform .................................................................................................... 23
3.3
Microsoft Azure ................................................................................................................. 24
3.4
Oracle Cloud Solutions ................................................................................................... 25
3.5
Salesforce.com ................................................................................................................... 27
Možnosti provozu vlastního cloudu
29
4.1
Základní vlastnosti abstrakce a virtualizace .......................................................... 29
4.2
Virtualizační řešení pro servery ................................................................................. 31
4.3
Cloud řešení ........................................................................................................................ 34
Obsah
5
6
7
7
Analýza služeb společnosti
37
5.1
Webový systém CRM....................................................................................................... 37
5.2
Účetní systém ..................................................................................................................... 37
5.3
Úložiště dokumentů ........................................................................................................ 38
5.4
Vlastní kancelářské nástroje ........................................................................................ 38
5.5
Statistické nástroje .......................................................................................................... 38
5.6
VoIP........................................................................................................................................ 39
Problematika migrace služeb
40
6.1
Faktory migrace ................................................................................................................ 40
6.2
Přesun na nákladový model cloudu .......................................................................... 41
6.3
Připravenost pro cloud .................................................................................................. 43
6.4
Možnosti migrace ............................................................................................................. 44
Metodika migrace do cloudu 7.1
48
Návrh metodiky migrace ............................................................................................... 48
7.1.1
Prvotní posouzení migrace................................................................................. 49
7.1.2
Analýza cloud řešení a návrh vlastního systému ....................................... 50
7.1.3
Příprava a ověření návrhu .................................................................................. 51
7.1.4
Příprava a migrace dat ......................................................................................... 51
7.1.5
Příprava a migrace aplikací v cloudu ............................................................. 52
7.1.6
Tvorba plánu pro ošetření výpadků ............................................................... 52
7.1.7
Testovací provoz systému .................................................................................. 53
7.1.8
Optimalizace aplikací a systému ...................................................................... 53
7.1.9
Kompletace zavedení systému .......................................................................... 54
7.1.10
Podpora a dokumentace ...................................................................................... 54
7.2
Ověření metodiky ............................................................................................................. 54
7.3
Vývoj aplikace v cloudu.................................................................................................. 61
7.4
Ekonomické faktory ovlivněné migrací ................................................................... 63
8
Závěr
65
9
Literatura
67
Úvod a cíl práce
8
1 Úvod a cíl práce 1.1
Úvod
Téma cloud computingu, a služeb na něm postavených, se objevuje stále více nejen v oblasti IT. Pojem cloud je užíván velmi často, jeho význam bývá ale chápán různými skupinami uživatelů jinak. Někdo může v cloudu vidět jen prostor pro svoje dokumenty nebo provoz svých webových stránek, jiný ho může vnímat jako možnost pro kompletní řešení svých potřeb. I přes tyto nejasnosti roste zájem o cloud rychlým tempem. Mnoho firem, nabízejících dříve své produkty jako klasické desktopové nebo serverové aplikace, rozšiřuje svoji nabídku o produkty, které jsou provozovány právě v cloudu. Také je mnoho firem, které započaly svoji činnost přímo v cloudu a jejich produkty jsou prvotně budovány na této technologii. Celkově se tedy nabídka služeb v cloudu stále rozšiřuje a zlepšuje. Služby a cloudová řešení jsou zaměřeny jak pro použití jednotlivci, tak i pro podnikový sektor. Tato práce se věnuje cloudovým řešením pro firmy. Pokud se jedná o začínající firmu, která teprve volí aplikace a služby, které bude potřebovat pro svoji činnost, a rozhoduje se o budování infrastruktury, je její rozhodování o využití cloud computingu poměrně jednodušší. I postup vybudování svého softwarového zázemí je snazší, jelikož firma může začít s čistým štítem. Kromě nově začínajících firem se ale o cloud zajímají i již existující a zavedené firmy. Přechod takové společnosti na technologii cloudu bývá náročnější, už jenom rozhodování, zda cloud využít nebo ne, je složitější. Existující firmy využívají různých druhů softwaru provozovaného na různých platformách. Můžou mít také vybudovanou celou řadu vlastních proprietárních nástrojů a aplikací, které pro svoji činnost potřebují. Pro běh svých aplikací budují firmy infrastrukturu, která může být poměrně rozsáhlá. Firmy mohou vlastnit množství hardwaru, síťových prvků a dalších zařízení. I takováto firma, která má vybudované řešení, se kterým je spokojena, může těžit množství výhod s přechodu na cloud. Postup takového přenosu je ale náročnější, hlavně u menších firem, které si nemohou nebo nechtějí pořídit nákladné cloud řešení poskytované jinou firmou. Problematika přenosu služeb menších firem do cloudu je náplní této práce.
1.2
Cíl práce
Cílem této práce je návrh metodiky migrace služeb společnosti do cloudového řešení. Navržená metodika bude ověřena návrhem a vytvořením cloud systému a aplikací dané metodiky na tento systém. Ověření cloud systému je provedeno také vytvořením ukázkové aplikace pracující se službami v cloudu. Na závěr jsou zhodnoceny ekonomické faktory takové migrace. Analýza služeb a provedení migrace pomocí dané metodiky je provedeno a ověřeno na případu reálné společnosti (Abstract s.r.o.).
Úvod a cíl práce
1.3
9
Metodika práce
K dosažení stanoveného cíle práce bude nejdříve prostudován současný stav a možnosti cloud computingu. Proto bude provedeno: 1.
Seznámení se se základní problematikou cloud computingu.
2.
Seznámení se s nabídkou služeb poskytovatelů cloud computingových řešení a srovnání jejich podstatných vlastností.
3.
Průzkum a porovnání virtualizačních řešení vhodných pro provoz cloud systémů a cloudových platform.
4.
Analýza služeb využívaných v malých společnostech (se zaměřením na společnost Abstract s.r.o.).
5.
Seznámení se s faktory a problémy spojenými s migrací služeb do cloudu.
Po provedení těchto analyzačních kroků bude přistoupeno k hlavnímu cíli práce provedením následujících kroků: 1. Návrh metodiky migrace služeb do cloudu na základě nastudované problematiky migrace a služeb používaných ve společnosti. 2.
Návrh vlastního cloud systému pro migrované služby, volba vhodné kombinace vlastního cloudu a využití služeb z nabídky poskytovatelů cloud produktů.
3.
Aplikace vytvořené metodiky, na analyzované služby a navrhnutý cloud, provedením migrace služeb společnosti do připraveného cloud systému. Vytvoření cloud aplikace ve vytvořeném cloudu sloužící k ovládání některé z funkcí nově provozovaného cloudu.
4. 5.
Zhodnocení ekonomických faktorů provedené migrace a dalšího provozu.
6.
Zhodnocení řešení a diskuze o dalších možnostech budoucího rozvoje.
Cloud computing
10
2 Cloud computing 2.1
Vysvětlení pojmu
Pojem cloud computingu je často chápán jako metafora pro celý Internet (Ransome, J. F., Rittinghouse, J., 2009). Toto je způsobeno i tím, že Internet bývá často značen jako oblak, který skrývá vše, co umožňuje jeho fungování. Obsahuje tedy vše, co umožňuje fungování sítě, přenosy dat a vše, co spadá do kompetence někoho jiného. Z tohoto pohledu by cloud nebylo nic nového, objevoval se již začátkem roku 1961. Dnešní vnímání cloud computingu se od tohoto přístupu ale liší. Internet jako takový je důležitou součástí patřící ke cloudu, cloud je ale něco více. Jeho součástí je jak software, hardware, tak i infrastruktura. Aplikace v cloudu jsou přístupné z libovolného webového prohlížeče, operačního systému i fyzického místa, kde se uživatel nachází. Publikace Reese (2010) dále uvádí 3 kritéria, podle kterých je možné říct, zda se jedná o cloudovou službu nebo nikoli, jsou to: Služba je dostupná prostřednictvím prohlížeče nebo s použitím služby API. Potřebné nulové výdaje kapitálu při započetí užívání služby. Platby jen za to, co se skutečně používá, po dobu, kdy je to používáno. V publikaci Sosinky (2011) jsou navíc uvedeny dva pojmy, které jsou pro charakteristiku cloudu velmi významné: Abstrakce – detaily o implementaci systému jsou od uživatelů a vývojářů odděleny. Aplikace jsou provozovány na nespecifikovaných systémech, data jsou uložena na neznámých místech a administrace systémů je řešena někým jiným. Virtualizace – umožňuje shromažďovat a sdílet svoje zdroje. Ty mohou být součástí centralizované infrastruktury. Náklady na používání těchto zdrojů bývají počítány a na základě skutečného používání a mohou být snadno škálovatelné. Americká organizace NIST (National Institute of Standards and Technology) vydala vlastní definici cloud computingu (Mell, P., Grance, T., 2011). Kromě definice, která je prakticky shodná s výše uvedeným popisem, uvádí dále základní charakteristiky, modely služeb a modely nasazení cloudu. Základními charakteristikami jsou: Přístup na vyžádání – uživatel může získat přístup k prostředkům automaticky bez potřeby interakce jiných lidí nebo poskytovatelů služeb. Síťový přístup – všechny služby jsou přístupné pomocí sítě a je k nim přistupováno pomocí standardních mechanismů s využitím tenkých nebo tlustých klientů. Sdružování zdrojů - tato vlastnost vychází z již zmíněné virtualizace. Zdroje poskytovatelů jsou shromažďovány do poolů a z těchto jsou nabízeny mnoha zákazníkům, dynamicky dle potřeby. Mezi sdružované zdroje může patřit např. diskový prostor, procesní výkon, paměť nebo síťové pásmo.
Cloud computing
11
Vysoká pružnost – prostředky mohou být pružně obsazeny a uvolněny, někdy i automaticky, k uspokojení poptávky. Uživatel může tyto prostředky vnímat až jako nekonečně velké. Měřitelnost služeb – množství používaných zdrojů je kontrolováno a optimalizováno s využitím schopnosti měření na určité úrovní abstrakce dle typu služby nebo zdroje. Toto měření je poskytováno jako uživateli, tak i poskytovali, kteří získají jasné informace o provozu.
2.2
Výhody
Cloud computing přináší celou řadu výhod, které od provozu aplikací v cloudu můžeme očekávat. Publikace Krutz, Vines (2010) shrnuje hlavní výhody cloudu následovně: Možnost přechodu z prostředí kapitálových nákladů na provozní náklady. Schopnost rychle nasadit nové aplikace a výzkum nákladově efektivním způsobem. S použitím virtualizace oddělit firemní služby a základní infrastrukturu. Zotavování po havárii a nepřetržitý provoz jsou obsažení v základním paradigmatu cloudu. Poskytovatel cloudu má možnost nasazovat bezpečnostní pojistky efektivněji v centralizovaném prostředí. Výběr mezi širokou nabídkou poskytovatelů cloudu nabízejících spolehlivé škálovatelné služby s měřitelným vyúčtováním a rozšířenými vývojovými prostředky. Škálovatelná infrastruktura umožňující uvolnění a využití zdrojů podle aktuálních potřeb uživatele. Publikace Sosinsky (2011) uvádí navíc následující vlastností přinášející výhody uživateli cloudu: Snížení nákladů – díky vyšší efektivitě cloud sítě a většímu zužitkování. Snadné užití – v závislosti na typu služby nemusí být potřebný hardware nebo softwarové licence pro užití služby. Kvalita služby (QoS) – QoS může být stanovena dle potřeby smlouvou s poskytovatelem cloudu. Outsorcing IT managementu – díky nasazení v cloudu je možné svěřit správu infrastruktury jinému subjektu a náklady na IT se ve firmě sníží. Nízké náklady vstupu – náklady na kapitál při zahájení využívání cloud služeb jsou značně sníženy.
Cloud computing
12
Publikace Velte, Velte, Elsepeter (2011) řadí mezi výhody navíc následující: Jednoduchost – využití cloudu umožňuje snížení času věnovaného zavádění nových zařízení a udržování stávajících. Díky tomu se mohou IT pracovníci věnovat jinými a důležitějšími záležitostmi. Zkušenosti dodavatelů – cloudem se zabývají společnosti s rozsáhlými znalosti a renomovanými jmény. Díky tomu jsou jejich služby spolehlivější. Více interních prostředků – přesunutím nekritických úkonů na jiného dodavatele, získá IT oddělení prostor pro důležité úkoly podstatné pro danou společnost. Zabezpečení – využití služeb dodavatele cloudu, přinese řadu bezpečnostních rizik. Renomované firmy ale pracují na stále lepších metodách zabezpečení. Navíc můžeme využít vlastního šifrování dat v cloudu poskytovatele.
2.3
Omezení a nevýhody
I když přináší cloud mnoho výhod není bez chyb a problémů. V některých případech není jeho použití vhodné pro určité aplikace. Publikace Velte, Velte, Elsepeter (2011) a řadí mezi ně následující: Kontrola dat – ukládání citlivých informací v cizím cloudu přináší problémy, mezi které můžeme zařadit např. částečnou ztrátu kontroly dat nebo omezení kontroly jejich zabezpečení. Nepřipravenost aplikací – na všechny aplikace jsou schopny dosáhnout v cloudu svého optimálního výkonu, je i možné, že nebudou fungovat vůbec. Aplikace musí být schopné se vypořádat i s možností omezeného množství dat přenášeného po síti, integrací s jinými aplikacemi nebo zabezpečení aplikací. V publikaci Sosinsky (2011) jsou uvedeny další možné nevýhody cloudu, jako jsou: Omezená přizpůsobení aplikací – pokud se používají aplikace nebo prostředí poskytovatele cloud služeb, nemusí být možné je upravit přesně na míru uživatele. Navíc aplikace v cloudu mohou být funkčně jednodušší než aplikace tvořené dle zadání. Komunikace přes nestavový Internet - V prostředí distribuovaných systému je nezbytná nesměrová komunikace. Kvůli nesměrové komunikaci jsou požadavky a odpovědi od sebe odpojeny a mohou putovat jinou síťovou cestou, čímž může dojít k příchodu dat mimo pořadí. Bezpečnost a soukromí – tyto dvě oblasti jsou s problematikou cloudu spojovány velmi často. Jedná se o problémy spojené s přenosy dat po cizích sítích, jejích ukládání na cizích zdrojích, čímž se zvyšuje riziko zásahů a zneužití těchto dat.
Cloud computing
2.4
13
Ekonomické faktory
V této části budou uvedeny způsoby, jakými může cloud přinést profit pro firmu a další potencionálně výhodné faktory, které může přinést (Velte, Velte, Elsepeter, 2011): Provozní výhody Jedná se o výhody související s pracovními postupy. Pomocí cloudu je možné vylepšit podnikové procesy díky tomu, že některé aplikace a úložiště přesuneme. Některé ze získaných výhod jsou: o Nižší náklady – technologie jsou placeny průběžně a firma v dlouhodobém výhledu může ušetřit prostředky. o Vyšší kapacita úložiště – pomocí cloudu lze uložit více dat než v privátní síti a kapacitu je možné snadno a rychle rozšířit. o Automatizace – poskytovatel se stará o aktuálnost aplikace, nemusí se o to starat vlastní IT pracovníci. o Pružnost – řešení cloud nabízí větší flexibilitu při testování, nasazování nebo případné výměně nových aplikací. o Lepší mobilita – cloud dosahuje lepší dostupnosti ze všech míst, kde je dostupný Internet. Pro cestující zaměstnance nebo zaměstnance pracující z domova je toto velkou výhodou. o Lepší využitelnost zaměstnanců IT – díky snížení potřeby údržby serverů se snižuje vytížení IT pracovníků a ti se mohou věnovat úkolům s přínosem významem pro firmu. Ekonomické výhody V oblasti ekonomických výhod ukazuje cloud computing největší dopad především v oblasti nákladů. Nejedná se jen o úsporu zařízení, ale i dosažení vyšší efektivity organizace jako celku. Mezi ekonomické výhody můžeme zařadit: o Lidé – při přechodu na cloud, může nastat situace, kdy někteří zaměstnanci již nebudou nadále potřební. Díky tomu je možné zvýšit efektivitu práce a snížit mzdové náklady. o Hardware – náklady na pořízení nového hardwaru, jsou pro velké poskytovatele cloud služeb obvykle nižší než pro menší společnosti. Pokud tedy využíváme služeb některého z poskytovatelů, můžeme navýšit kapacitu úložiště nebo procesorový výkon, navýšením předplatného u poskytovatele a nemusíme kupovat nový hardware. o Průběžné placení – v případě využívání služby cloud poskytovatele probíhá obvykle platba v měsíčních intervalech, kdy se platí jen skutečně využité služby. Díky tomu, že daný hardware, na kterém je služba
Cloud computing
14
provozována, nepatří zákazníkovi, nemusí se firma starat o jeho opotřebování. o Rychlost uvedení produktů na trh – při uvedení nového produktu, je nutné zajistit stroje, na kterých bude nový produkt provozován. Obvykle je nutné pořídit nový výkonný hardware nebo dostatečný hosting. Ani jedno řešení není tak pružné ani finančně výhodné, jako rozšíření předplatného u poskytovatele a spuštění více instancí serveru. Personální výhody pro zákazníka Lidé v organizaci, která provedla přesun do cloudu, mohou využívat řadu výhod, které jim cloud přináší. Usnadňuje jim pracovní život díky snadnému použití cloud služeb. Mezi výhody, které cloud přinese zákazníkovi, patří: o Odpadá instalace a údržba softwaru – není nutné instalovat nový software, odpadá nutnost zaškolování pracovníků pro tuto činnost. o Rychlejší nasazení – nový server je vytvořen během několika minut, bez nutnosti dlouhodobějšího plánování, přípravy, testování a nasazování. o Dodržení smluv o úrovni služeb (SLA) – smlouva typu SLA přináší obvykle určitou úroveň služby a servisu. Dodavatel se potom stará o odstraňování chyb, které mu zákazník nahlásí. o Usnadnění práce zaměstnancům IT – práce IT pracovníků je ovlivněna významným způsobem. Nemusí se starat o údržbu serveru nebo serverových aplikací, ale mohou se věnovat svým vlastním podstatným úkolům. o Více peněz – díky ušetřeným finančním prostředkům, má organizace finance, které mohou posílit firemní zisk nebo růst produktivity potřebných oddělení.
2.5
Modely cloudu
Modely cloudu představují způsob, jakým je cloud nasazen k použití. Uvedená definice organizace NIST rozlišuje cloud privátní, komunitní, veřejný a hybridní (Mell, P., Grance, T., 2011). Některé publikace nepopisují tolik modelů, ale v základu se shodují na jejich vlastnostech. Modely cloudu jsou: Privátní cloud – Celá infrastruktura cloudu je poskytována k exkluzivnímu využití jedné organizace, která se skládá z více uživatelů, obchodních jednotek. Privátní cloud může taková organizace vlastnit, spravovat ho i s ním operovat, může jí ho celý nabízet třetí strana nebo je možné kombinovat oba přístupy. Komunitní cloud - Je využíván skupinou organizací se společnými zájmy (bezpečnostní požadavky, obchodní politika apod.). Vlastnictví cloudu může být rozloženo mezi organizace ve skupině.
Cloud computing
15
Veřejný cloud – Infrastruktura cloudu je nabízena široké veřejnosti. Vlastníkem a správcem cloudu může být určitá společnost, akademická nebo vládní organizace, případně kombinace těchto subjektů. Existuje na základě poskytovatelů cloudu. Hybridní cloud – V tomto případě se jedná o kombinaci dvou nebo více samostatných cloudových infrastruktur. Tyto zůstávají unikátními entitami, ale jsou propojeny dohromady pomocí standardizovaných nebo proprietárními technologiemi. Data a aplikace jsou mezi těmito částmi přenášena dle potřeby.
2.6
Modely služeb
Modely služeb, které jsou spojovány s cloudem je více. Organizace NIST zařadila do cloudu modely se zkratkami SaaS, PaaS a IaaS. Společnost Microsoft má svůj vlastní koncept se zkratkou S+S a společnost Canonical představila nový přístup MaaS. Těmito modely jsou: Software jako služba (SaaS – Software as a Service) – V tomto případě využívá spotřebitel služby aplikací, které běží na cloud infrastruktuře poskytovatele. Software a hardware, na kterém je infrastruktura postavena, umožňuje splnění základních charakteristik cloudu uvedených v kapitole 2.1. Spotřebitel se tedy nezajímá o žádnou z částí infrastruktury, jako je síť, servery, operační systémy, úložiště nebo jednotlivé vlastnosti aplikace. Výjimkou může být omezené uživatelské nastavení aplikací. Platforma jako služba (PaaS – Platform as a Service) – Při využití tohoto modelu má uživatel k dispozici celou infrastrukturu cloudu, na kterou může nasadit aplikace vytvořené vlastními silami nebo získané s využitím programovacích jazyků, knihoven, služeb a nástrojů, které poskytovatel podporuje. Spotřebitel se nestará o provoz infrastruktury, ale má kontrolu nad nasazenými aplikacemi a má možnost konfigurovat aplikace a dále je upravovat. Infrastruktura jako služba (IaaS – Infrastructure as a Service) – Tento model nabízí uživateli přístup přímo k infrastruktuře, tedy síť, úložiště, zpracovávání úloh a další základní výpočetní zdroje. V této infrastruktuře může spotřebitel nasadit arbitrární software, jako je operační systémy a jiné aplikace. Spotřebitel nekontroluje samotnou infrastrukturu, ale má kontrolu nad operačním systémem, úložištěm a nasazenými aplikacemi. Omezeně může pracovat i se síťovými komponentami. Software plus služby (S+S – Software plus Services) – Jedná se především o model nabízený společností Microsoft. Představuje rozšíření klasického SaaS o lokálně spouštěný software. Tím je kombinován interní lokální software a cloud poskytující dodatečné služby. Spojuje se tím pružnost cloudu s výhodami lokální práce s daty (Velte, Velte, Elsenpeter, 2011). Kov jako služba (MaaS – Metal as a Service) – MaaS byl představen společností Canonical, která stojí za Linuxovým operačním systémem Ubuntu. Tento sys-
Cloud computing
16
tém umožňuje pracovat s fyzickými servery podobně, jako s virtuálními stroji v cloudu. Holý hardware je tím přeměněn v elastický pool zdrojů podobný klasickému cloudu. Systém může stroje spouštět, kontrolovat a mít je připravené k použití v případě potřeby.
2.7
Infrastruktura cloudu
Infrastruktura cloudu se skládá z několika prvků, které mají svoje role a funkce. Tyto prvky budou popsány v následující kapitole (Velte, Velte, Elsepeter, 2011). Klienti – Zařízení, které používá uživatel k přístupu ke službám cloudu pomocí běžné lokální nebo mobilní sítě. Jsou to různé pracovní stanice, notebooky nebo mobilní zařízení s přístupem k Internetu. Klienty je možné rozdělit na tři druhy, jsou to: o Mobilní – Tento druh klientů se stává stále populárnějším mezi uživateli a jejich použití se rozšiřuje. Mezi tento typ klientů patří notebooky, chytré telefony nebo tablety. o Tencí – Tenký klient má podobu klientské pracovaní stanice, která často neobsahuje žádný pevný disk nebo mechaniku pro přehrávání médií. V podstatě slouží jen k zobrazování dat ze serveru, ke kterému jsou připojena. o Silní – Jsou to klasické stolní počítače. Mají větší výkon a je na nich tedy možné provozovat i klasické aplikace, které potřebují více lokálních zdrojů ke své práci. Aplikace spouštěné na takovém klientu mohou být využity i k přístupu ke cloud aplikacím. Datová centra – Představují lokaci, kde jsou soustředěny servery, na kterých jsou hostovány cloud aplikace. V takovém centru je obvykle použito virtualizace serverů k lepší optimalizaci provozu, takže je možné provozovat více virtuálních instancí na menším množství fyzických serverů. V tomto případě se tedy servery vyskytují na jednom místě, v jedné budově nebo i jedné místnosti. Distribuované servery – Jedná se o obdobu datového centra, kdy rozdíl je v tom, že servery se nevyskytují na jednom místě, ale bývají rozmístěny na více místech, mohou být rozmístěny i po celé planetě. Uživatel tento rozdíl nemusí vůbec zaznamenat. Distribuované servery usnadňují optimalizaci výkonu, zvyšují pružnost poskytování služeb a zvyšují spolehlivost provozu v případě, že na jedné z lokací dojde k výpadku služeb. Všechny rozmístěné servery jsou spojeny do jedné sítě a mohou pracovat v rámci jednoho cloudu. Síť – Pro komunikaci mezi klienty a cloud servery je samozřejmě nutné propojení pomocí počítačové sítě. Rozlišujeme více druhů sítí a podle využívaných služeb je nutné zhodnotit, které z nich budou použity pro komunikaci se službami v cloudu. Společnost Gartner uvádí ve studii čtyři úrovně (Velte, Velte, Elsenpe-
Cloud computing
17
ter, 2011). Je to základní veřejný Internet, zrychlený internet, optimalizované překrývání Internetu a sítě VPN.
2.8
Architektura cloud aplikací
Transakční zpracování Velké množství podnikových aplikací v cloudu zakládá svoji architekturu na transakčním zpracování. Taková aplikace zpracovává jeden nebo více kusů přicházejících informací dohromady jako jednu transakci a propojují je s dalšími daty, které jsou již v systému. Obvykle tvoří jádro systému relační databáze, která spravuje vztahy mezi všemi daty, který systém tvoří (Reese, 2009). Transakční systém v cloudu je složitější, jelikož jeho uzly musí mít dlouhou životnost. Problémem s takovými uzly v infrastruktuře cloudu je především tzv. střední doba mezi poruchami virtuálních serverů, která musí být nižší než u hardwaru, na kterém jsou provozovány. Existují ale metody, které pomáhají poruchovost jednotlivých uzlů, čímž mohou potencionálně navýšit dobu mezi poruchami celého transakčního systému. Gridové zpracování Vedle aplikací transakčního typu je možné se setkat i s aplikacemi postavenými na gridovém zpracování. Ty jsou obecně snadněji přenositelné do cloudu, jelikož jsou zaměřené na procesy, které jsou rozdělený do malých částí. Ty potom mohou být prováděny izolovaně (Reese, 2009). Postavit gridovou aplikaci v cloudu je poměrně jednoduché a levné. Po příjmu dat ke zpracování se nastartuje server, který se o data postará. Následně může být běh serveru opět ukončen nebo pokračovat s dalšími daty. Publikace Rittinghouse, Ransome (2010) uvádí, že dochází často k zaměňování gridových aplikací a aplikací v cloudu. Mnoho dnešních cloud nasazení je provozováno na gridových systémech. Cloud computing je ale možné vnímat jako další krok vývoje z modelu gridových utilit.
2.9
Servisně orientovaná architektura
Servisně orientovaná architektura (SOA) souvisí s tématem cloudu především tehdy, kdy se nejedná o monolitickou aplikaci v cloudu postavenou na proprietárních technologiích (i když může mít základ v open source softwaru a hardware). Aplikace v cloudu se ale rozšiřují o další doplňkové a rozlišné služby. Tím pádem SOA, nabízející přístup k připraveným, modulárním, vysoce optimalizovaným a obecně sdíleným komponentám, může snížit cenu vývoje i infrastruktury. Cloud computing není dalším vývojovým krokem SOA, ale obě technologie se navzájem doplňují (Sosinsky, 2011). Vzhledem k blízkosti technologie SOA a cloud computingu, zde budou popsány její základní vlastnosti a principy tak, jak je definuje publikace Erl (2009).
Cloud computing
18
Základní představení SOA Pojem servisně orientovaná, představuje přístup, který odděluje zájmy jednotlivých částí, které se podílí na zpracování nějakého problému. Logika takového problému lze lépe vytvořit, uskutečnit a řídit, pokud se rozdělí na sadu menších souvisejících částí. Celkově SOA podporuje autonomii jednotlivých logických jednotek bez jejich izolovanosti. Logické jednotky dodržují sady principů, díky kterým se mohou nezávisle vyvíjet, ale uchovávají si společné rysy a standardizaci. Logické jednotky podílející se na zpracování problému se potom označují jako služby. Služby ke své činnosti potřebují jisté vlastnosti a schopnosti, jsou to např.: o Zapouzdření logiky – k udržení nezávislosti je logika služby zapouzdřena v odlišném kontextu. o Souvislosti služeb – jednotlivé služby mohou využívat jiných služeb nebo aplikací ke svému fungování. o Komunikace – při komunikaci služeb dochází k výměně zpráv, které musí být nezávislé, protože v okamžiku odeslání dochází ke ztrátě kontroly nad nimi. Vlastnosti SOA Základní vlastnosti a principy SOA zůstávají stejné, jen se rozšiřuje její původní ideje působením průmyslu a technologického pokroku. Mezi běžné vlastnosti SOA je možné zařadit např.: o Součást jádra servisně orientované výpočetní platformy. o Zlepšuje kvalitu služeb. o Založena na otevřených standardech. o Stará se o vnitřní spolupráci a základní znovupoužitelnost. o Podporuje organizační flexibilitu.
2.10 Bezpečnost aplikací Jak již bylo zmíněno, bezpečnost cloudu je častým tématem. Podrobně se této oblasti věnuje publikace Krutz, Vines (2010). I když jde vývoj cloudu a tím i jeho bezpečnosti rychle kupředu, základy popisované v této publikaci zůstávají stále platné a proto budou převzaty právě z této publikace. Nejdříve budou popsány základy bezpečnosti aplikací v cloudu. Cíle bezpečnosti informací v cloudu Základem vytvoření bezpečného softwaru je použití principů návrhu bezpečných aplikací, které formulují fundamentální základ pro zajištění softwaru (software assurance).
Cloud computing
19
Americké ministerstvo zahraničí definuje zajištěnost softwaru jako úroveň důvěry, že software bude fungovat, jak bylo zamýšleno a neobsahuje zranitelná místa, vznikl vinou návrhu nebo vložená jako součást softwaru. Centrum dat a analýz pro software (Data and Analysis Center for Software) uvádí vlastnosti, který musí software splňovat, aby mohl být prohlášen za bezpečný: o Spolehlivost – software, který funguje předvídatelně a správně v rámci různých podmínek včetně útoků nebo běhu na poškozeném hostiteli. o Důvěryhodnost – software obsahuje minimální množství zranitelností nebo slabostí, které by vedli k oslabení spolehlivosti softwaru. o Odolnost – software dokáže odolávat nebo tolerovat útoky a má schopnost co nejrychlejší obnovy s co nejmenšími škodami. Kromě výše uvedených vlastností a požadavků jsou stanoveny další doplňkové principy podporující zaručenost informací. Jsou to: důvěrnost, integrita, dostupnost, autentizace, autorizace, audit a zodpovědnost. Některé z výše uvedených principů a požadavků mají v oblasti cloud computingu vyšší důležitost a budou popsány podrobněji. Služby zabezpečení cloudu Faktory, které přímo ovlivňují bezpečnost aplikací v cloudu, jsou následující: o Autentizace – testování nebo sladění důkazů o identitě uživatele. Sestaví se uživatelova identita a zajistí se, že uživatel je tím, kým tvrdí. o Autorizace – odkazuje na práva a oprávnění daná individuálnímu uživateli nebo procesu. Ty umožňují přístup ke zdrojům a informacím. o Audit – k zajištění provozní jistoty používají organizace dvě základní metody. Jedná se o audit systému a monitorování. Tyto metody může aplikovat sám uživatel cloudu, poskytovatel cloud služeb, případně oba v závislosti na architektuře a nasazení služby. Audit systému je jednorázovou nebo opakovanou událostí testující bezpečnost, zatímco monitorování spočívá v průběžném zkoumání systému nebo uživatelů (např. detekce vniknutí). o Zodpovědnost – představuje schopnost rozlišit akce a chování určitého uživatele v rámci cloud systému a identifikovat ho. Audit napomáhá zjišťování zodpovědnosti na základě zpětné analýzy logů a událostí. K zajištění bezpečnosti se kromě výše uvedených služeb zavádí i bezpečnostní principy pro návrh cloudu. Ty budou popsány v následující části. Principy návrhu bezpečného cloud systému Aplikace v cloudu se snaží o částečný kompromis mezi cenou služby, její výkoností, spolehlivostí, udržitelností a bezpečností. Cílem je získat dostatečně
Cloud computing
20
bezpečný systém ke každodennímu užití, který má dostatečný výkon a spolehlivé vlastnosti. K dosažení tohoto kompromisu je možné použít principy, které jsou v oblasti IT známé již delší dobu a v cloud computingu mají stále uplatnění, patří mezi ně např.: o Nejméně oprávnění – nejmenší možné množství oprávnění a zdrojů k provedení svého úkolu. o Oddělení povinností – více nezávislých podmínek. o Obrana v hloubce – více ochranných vrstev. o Pojistka – aktivací pojistky se systém dostane do stavu, ve kterém není ohrožena bezpečnost systému ani jeho dat. o Ekonomičnost mechanismu – použití srozumitelných návrhů a implementace ochranných mechanismů, aby nevznikaly nezamýšlené přístupové cesty. o Kompletnost zprostředkování – každý požadavek musí projít kompletní autorizací, aby mohl správně proběhnout. o Nejméně společných mechanismů – minimální množství ochranných mechanismů společných více uživatelům. o Nejslabší článek – celý cloud systém je jen tak bezpečný, jako jeho nejslabší řádek, proto je nutná jeho identifikace a vylepšení k dosažení akceptovatelné úrovně rizika.
2.11 Přístup ke cloudu Interakce s cloudem je možná různými způsoby. Ty závisí např. i na poskytovateli cloud služeb a technologiích, které používá. Části, jejichž pomocí je možné připojit ke cloudu, jsou následující: Platformy – Platforma rozhoduje o způsobu přístupu k prostředí cloud computingu a jeho prezentace uživatelům. Produkce a prezentace cloudu je umožněna i pomocí následujícího (Velte, Velte, Elsepeter, 2011): o Architektura webových aplikací – slouží k podpoře vývoje dynamických webů, webových aplikací a webových služeb. Umožní omezit režii související s vývojem webového vývoje. Poskytují např. hotové knihovny usnadňující základní úkoly vývojáře. o Webový hosting – Jedná se o prostor, který umožňuje ukládat data a aplikace na webu. o Firemní metody – Některé společnosti vlastní metody pro práci s jejich cloudem. Mezi tyto patří např. Společnost Microsoft a Salesforce.com.
Cloud computing
21
Webové aplikace – Při používání aplikací v cloudu je na výběr mnoho možností. Při výběru aplikací cloudu je obvyklé porovnat nabídku poskytovatelů a v případě že není vyhovující, vytvořit si aplikaci vlastní. Webová rozhraní API – Rozhraní API (Application Programming Interface) se často využívá při vývoji vlastních aplikací. Jedná se o sadu programovacích instrukcí a standardů pro přístup k webovému programu. API slouží ke komunikaci mezi programy, není to uživatelské rozhraní. Komunikace je možná bez nějakého zásahu nebo zapojení uživatele do procesu. Webové prohlížeče – Nejčastěji jsou pro přístup ke cloudu používány právě webové prohlížeče. Mezi nejpoužívanější patří Microsoft Internet Explorer, Firefox, Safari nebo Google Chrome.
Poskytovatelé cloud služeb
22
3 Poskytovatelé cloud služeb Tato část je věnována nabídce společností, které podnikají v oblasti poskytování cloud služeb. Vzhledem k rychlému vývoji cloud služeb se mohou, v době kdy tuto práci čtete, přesná specifikace jednotlivých nabídek lišit. I přes to, zde budou popsány základní vlastnosti služeb největších poskytovatelů. Práce se zaměřuje na řešení pro firmy, proto zde nebudou popsány cloud produkty zaměřené na jednotlivce. Ty mohou být do určité míry ve firmách také využity, ale přednostně se budeme věnovat firemním produktům. Celkové srovnání služeb poskytovatelů je obsahuje Tabulka 1: Srovnání nabídky produktů poskytovatelů jako celků.
3.1
Amazon Web Services
Amazon patří mezi významné popularizátory cloudu a je jedním z nejznámějších dodavatelů cloud služeb. V rámci Amazon Web Services nabízí celou řadu služeb nabízejících výpočetní výkon, úložiště, databáze, analytické prostředky a další. Následně budou uvedeny některé z hlavních produktů z nabídky Amazon Web Services (Products & Services, Amazon Web Services). Amazon Elastic Compute Cloud (Amazon EC2) Amazon EC2 je webová služba poskytující výpočetní kapacitu s přizpůsobitelnou velikostí, čímž usnadňuje vývojářům využití škálovatelných webových výpočtů. Obsahuje jednoduché webové rozhraní umožňující získat a konfigurovat kapacitu s minimálním úsilím. Poskytuje kontrolu nad výpočetními zdroji a umožňuje pracovat v ověřeném výpočetním prostředí Amazonu. Spouštění nových instancí serverů je možné v krátkém čase, což dovoluje rychlé škálování a to zvyšováním i snižováním množství instancí. Při využití této služby je účtováno jen reálné využití zdrojů. Amazon Simple Storage Services (Amazon S3) Amazon S3 je úložiště určené pro Internet se zaměřením na škálovatelnost. Pomocí rozhraní této služby je možné ukládat a získávat jakékoliv množství dat, v jakémkoli době, odkudkoliv na Internetu. Jedná se o podobnou infrastrukturu, jakou používá Amazon pro svou globální síť, která se vyznačuje vysokou škálovatelností, spolehlivostí, bezpečností, rychlostí a nízkou cenou. Amazon Relational Database Service (Amazon RDS) K provozování relační databáze v cloudu je určena služba Amazon RDS. Poskytuje nákladově efektivní databázi se změnitelnou kapacitou. Řízení a správa databází je prováděna automaticky. Je možné si vybrat z více druhů databázových enginů. V nabídce je MySQL, Oracle, Microsoft SQL Server a PostgreSQL Služba se stará o vytváření
Poskytovatelé cloud služeb
23
záloh a umožňuje snadnou obnovu do stavu, v jakém databáze byla ve zvoleném čase. I tato služba umožňuje snadné škálování zdrojů, prostřednictvím API volání. Amazon DynamoDB Kromě relační SQL databáze, kterou představuje služba Amazon RDS, má společnost Amazon v nabídce také službu poskytující plně řízenou NoSQL databázi. Tou službou je právě Amazon DynamoDB. Jako jiné NoSQL databáze, nemají tabulky v ní žádné pevné schéma. Uložené položky nemusí mít stejné atributy ani jejich množství. Více datových typů umožňuje bohatší datový model. Amazon Virtual Private Cloud (Amazon VPC) Pokud je potřebná větší kontrola nad celou infrastrukturou cloudu, je služba Amazon VPC možným řešením. Umožňuje vytvořit logicky oddělenou část AWS Cloudu, kde je možné provozovat AWS zdroje v uživatelem kontrolované virtuální síti. Uživateli je poskytnuta kompletní kontrola nad virtuální sítí včetně vlastního IP rozsahu, subnetů a konfigurovatelného routování a výchozích síťových bran. Díky tomuto je možné vytvořit řešení obsahující jak veřejný subnet pro webové sužby s přístupem k Internetu, tak i privátní subnet bez přístupu k Internetu pro provoz základních služeb, jako je např. databáze. Je možné na takovou síť poskládat více vrstev zabezpečení pro vyšší kontrolu přístupu k instancím EC2 v jednotlivých subnetech. Pokud má firma datacentra na více lokacích, je možné mezi nimi vytvořit hardwarové VPN (Virtual Private Network) spojení. Amazon Elastic MapReduce (Amazon EMR) Pro rychlé a nákladově efektivní zpracování velkého množství dat je určena služba Amazon EMR. Tato služba využívá opensource framework Hadoop k distribuování a zpracování dat napříč clusterem tvořeným Amazon EC2 instancemi. Tato služba je vhodná např. pro analýzu logů a webových indexu, pro práci s datovými sklady, finanční analýzy, vědecké simulace nebo bioinformatiku.
3.2
Google Cloud Platform
Samostatné služby společnosti Google, jako Gmail nebo GoogleDocs jsou úzce spojeny s cloudem. Kromě nich nabízí firma řadu nástrojů, které zákazníkům umožňují využívat cloud služby pro svoje specifické potřeby (Products. Google Cloud Platform). Google Compute Engine Infrastruktura Compute Engine je určena pro spouštění velkých výpočetních zátěží na virtuálních strojích hostovaných na infrastruktuře Googlu. Je možné
Poskytovatelé cloud služeb
24
si vybrat virtuální stroje, který nejvíce odpovídá požadavkům a následně je možné využít celosvětové optické sítě, kterou Google vlastní. Compute Engine používá linuxové virtuální stroje a podporuje distribuce Debian, CentOs, RedHat Enterprise Linux a SUSE. Je možné si vybrat velikost instance, od mikro instancí až po velké instance. Podobně jako konkurence se i u Google platí jen za skutečný využitý výpočetní čas po desetiminutových úsecích. Vzhledem ke globální síti data center firmy Google, je možné distribuovat příchozí požadavky napříč světovými regiony k dosažení co nejvyššího výkonu při nízké ceně. Ke zdrojům je možné přistupovat i pomocí REST API, příkazové řádky nebo webové konzole. Google App Engine Google App Engine umožňuje provozovat aplikace na plně řízené PaaS s využitím zabudovaných služeb, které umožňují zvýšení produktivity. Po stažení balíku nástrojů SDK je možné začít s vývojem aplikací. Při tvorbě aplikací je možné využít populárních programovacích jazyků, jako je Python, Java, PHP nebo Go. Také je k dispozici řada existujících frameworku, jako Django, Flask, Spring a webapp2. Aplikace vytvořené v App Engine je možné zkombinovat s instancemi Compute Engine, na kterých mohou být provozovány další technologie, jako Node.js, C++, Hadoop, MongoDB, Redis a další. Administrace databáze, konfigurace serveru, balancování zátěže a další je obstaráno společností Google. Aplikace mohou pro svůj provoz využít různých druhů úložišť, ať už tradičnější MySQL, tak i NoSQL úložiště nebo i objektové úložiště.
3.3
Microsoft Azure
Společnost Microsoft, jako jedna z největších softwarových společností, nabízí řadu produktů pro společnosti různých velikostí. Řada produktů v cloudu je obdobná službám, na které jsou uživatelé i vývojáři navyklí. Přechod na cloud variantu takových produktů může tedy být jednodušší. Jádro nabídky společnosti Microsoft tvoří produkt Azure. Je to cloud platforma provozovaná v datových centrech společnosti Microsoft. Nabízí různé funkce pro vývoj aplikací jako cloudový operační systém a různé vývojové nástroje. Architektura Azure Service Platform se skládá z různých komponent. Některé z nich zde budou uvedeny (Features, Microsoft Azure). Virtual Machines K získání škálovatelné výpočetní infrastruktury na vyžádání se využijí právě komponenta Virtual Machines. Obsahuje také možnost využití virtuální sítě a vyrovnávání zátěže. Na virtuálních strojích je možné nasadit plnohodnotné operační systémy a softwarová řešení, včetně Linuxových distribucích a komunitních aplikací. Je tedy
Poskytovatelé cloud služeb
25
možné využít databází Oracle, MySQL, Redis, MongoDB a dalších, frameworků Drupal, Joomla!, WordPress a dalších. Řízení nákladů je možné díky škálování a účtování za minutu výpočetního času, kdy je infrastruktura skutečně používána. Web Sites Web Sites složí pro tvorbu a provoz webových stránek ve škálovatelném a spolehlivém prostředí. Je možné využít různých přístupu ke zdrojovému kódu, jako je GitHub, BitBucket nebo TFS. Využití nástrojů nebo operačních systémů ke tvorbě stránek není nějak zvlášť omezeno, je možné použít .NET, Javu, PHP, Node.js nebo Python. Systém má zabudované automatické škálování a vyrovnávání zátěže, k dispozici jsou databáze různých druhů i celá škála frameworků. Storage Služba storage představuje cloudové úložiště i řešení pro zálohy a obnovy, pro data libovolné velikosti. Pracuje s infrastrukturou firmy k doplnění existujících aplikací a obchodních strategií. Umožňuje ukládání nestrukturovaných textových nebo binárních dat (i např. video, audio a obrázky). SQL Database Komponenta SQL Database je relační databáze poskytovaná jako služba. Může obsahovat až tisíce databází, kterým je možné plánovaně zvyšovat nebo snižovat výkonnost. Data jsou chráněna pomocí samoobslužných obnov a replikací v jiných geografických lokacích.
3.4
Oracle Cloud Solutions
Společnost Oracle se do nabízení cloud služeb pustila poměrně nedávno, v průběhu roku 2012 představila nové cloud služby, a jelikož přechod na nabídku cloud služeb probíhal v rámci společnosti poměrně dlouho, stává se významným hráčem na tomto trhu. V nabídce jsou produkty typu SaaS, PaaS i IaaS. Dále potom i celé řešení privátního nebo řízeného cloudu (Cloud Computing, Oracle). Oracle Cloud Applications (SaaS) Produkty skupiny Cloud Applications umožňují využít aplikací v cloudu Oracle s integrovanými sociálními, mobilními i analytickými prostředky. Produkty v této skupině jsou: o Oracle HR Cloud (Human Resources) – podniková aplikace s bohatými funkcemi pro HR, talent management a sociální řešení. o Oracle CX Cloud (CX – customer experience) – usnadňuje posilování vztahů se zákazníky optimalizováním relevantních závazků, zlepšováním konsistence služeb a zajišťuje udržení jejich kvality.
Poskytovatelé cloud služeb
26
o Oracle ERP Cloud (Enterprise Resource Planning) – umožňuje vybudování kolaborativního, efektivního a intuitivního nástroje s bohatými finančními a provozními možnostmi. Oracle Cloud Platform (PaaS) Jako správný PaaS produkt umožňuje rychlé vytvoření a nasazení bohatých aplikací. Také je možné vytvořit řešení doplňující aplikace ze skupiny Oracle Cloud Applications. Platforma poskytuje mimo jiné následující: o Database – dostupná jako služba nebo jako plnohodnotná platforma. o Java – je k dispozici více služeb založených na Javě, od jednoduchého Oracle Java Cloud Service až k plně kontrolovatelnému Oracle WebLogic serveru. o Developer – vývojářská platforma podporující kompletní vývojový cyklus vývoje s přístupem ke zdrojovým repozitářům, sledováním problémů, tvorbě buildů apod. o Documents – řešení pro sdílení souborů integrovaného s Oracle Applications k zajištění synchronizace obsahu napříč různými zařízeními. o Mobile – služby zaměřené na podporu vývoje mobilních aplikací. Oracle Cloud Infrastructure (IaaS) Pro spouštění libovolné zátěže v cloudu pro získání okamžitou hodnotu a produktivitu pro podnik slouží Oracle Cloud IaaS. Obsahuje řadu základních funkcí, jako: o Compute – elastická výpočetní kapacita. o Storage – dostupné online úložiště. o Messaging – dynamický komunikační systém pro navýšení agilnosti pracovního procesu. Private Cloud Je postaven na celém portfoliu služeb společnosti Oracle. Podporuje tedy úroveň aplikace, platformy i infrastruktury cloudu Oracle s důrazem na bezpečnost, shodu s předpisy a úrovni služeb. Kromě Oracle Cloud Applications, Platform a Infrastructure nabízí dále: o Cloud Lifecycle Management – řízení centralizovaných zdrojů, integrované plánování kapacity a kompletní přístup z aplikace na disk. o Cloud Security – od fyzického zabezpečení datových center až pro logické zabezpečení, každá úroveň služeb obsahuje mnoho bezpečnostních prostředků. o Cloud Integration – otevřená platforma a infrastruktura orientovaná na služby zjednodušuje integrovat potřeby a snížit celkové náklady na vlastnictví.
Poskytovatelé cloud služeb
27
Managed Cloud Využitím Managed Cloud získá společnost privátní řízený cloud postavený na různých technologiích firmy Oracle (aplikace, middleware, databáze, hardware,…). Zákazník se u této služby stará jen o vyšší vrstvy cloudu, základy cloudu jsou spravovány společností Oracle. Součástí produktu Managed Cloud jsou služby: o Applications Services – volba nejvýhodnějšího modelu nasazení, které je provedeno následně bez zákazníka. o Technology Services – rychlejší inovace využitím infrastruktury koneckonec. o Extended Services – pro uspokojení dalších potřeb společnosti jako je migrování, testování, nasazování a obnovy. o All Managed Cloud Services – řada modelů nasazení a úrovní služeb.
3.5
Salesforce.com
Společnost Salesforce.com představila na trhu cloud služeb svůj hlavní produkt, automatizační aplikaci Salesforce.com. Dále rozšířila svoji nabídku o další oblasti produktů, ze kterých tu budou některé popsány (Salesforce Products Overview, Salesforce.com). Sales Cloud V základu představuje služba Sales Cloud CRM systém (Customer relationship management) provozovaný na infrastruktuře společnosti Salesforce.com. Služba je vystavěna na produktu Salesforce1 Platforms. Poskytuje přístup ke kontaktům, účtům a kritickým obchodním informacím. Využitím služby získává zákazník např. správu kontaktů a příležitostí, analytické a marketingové nástroje nebo integraci emailů. Service Cloud Pomocí tohoto produktu může uživatel poskytovat zákaznický servis svým partnerům z libovolného místa, kdykoliv a z libovolného zařízení. Mezi vlastnosti patřící k této službě jsou: o Konzole – pro rychlou správu případů. o Komunity – zákazníci mohou navzájem komunikovat. o Mobilita – přístup i z moderních mobilních zařízeních. o Více kanálů – více komunikačních kanálů se zákazníky. o Znalosti – znalostní základna dostupná obchodníkům i zákazníkům. ExactTarget Marketing cloud Služba slouží k vytvoření marketingových kampaní zaměřených přímo na jednotlivé zákazníky. Umožňuje kombinovat tradiční kanály, jako je email, sociál-
Poskytovatelé cloud služeb
28
ní sítě, mobilní zařízení a web, s libovolnými produkty, které zákazník poskytuje. Využitím této služby je možné se zaměřit na oblasti emailových a mobilních kampaní nebo sociálního markeingu. Salesforce1 Platform Platforma společnosti Salesforce.com, na které jsou vystavěny i její vlastní služby. Poskytuje uživatelům rychlejší vývoj a nasazení cloudových aplikací. Umožňuje: o Vytvoření aplikací na míru. o Rychlejší propojení pomocí rozsáhlých API. o Nasazení a propojení s libovolnou aplikací na Saleforce. o Využití aplikací na službě AppExchange (zákaznické sdílené aplikace) Součástí platformy jsou výkonné služby pro budování aplikací, jedná se např. o Point & Click vývoj, Drag & Drop analýzy, mobilní služby nebo cloud databáze. Tabulka 1: Srovnání nabídky produktů poskytovatelů jako celků
Poskytovatel služby
Model služeb
Amazon WS
IaaS, PaaS
Google Cloud Microsoft Azure
IaaS, PaaS IaaS, PaaS SaaS, PaaS, IaaS PaaS
Oracle Cloud Salesforce.com
Účtovací sazby
Podporované OS
Hodinové, měsíční, dle instancí Měsíční, pevné Hodinové
Windows, Linux, BSD Windows, Linux Windows, Linux
Měsíční
Windows, Linux
Měsíční, pevné
nezávislé
Možnosti provozu vlastního cloudu
29
4 Možnosti provozu vlastního cloudu Kromě využití nabídky služeb některého z poskytovatelů cloud řešení je samozřejmě možné vybudovat svůj vlastní cloud systém. Pokud má firma již existující hardwarovou infrastrukturu, je obvykle možné ji bez věších investic využít k provozu vlastního cloudu. Především při přechodu na cloud může být také vhodná kombinace vlastního cloudu, na kterém jsou provozovány např. aplikace kritické pro provoz a část aplikaci je přesunuta nebo postupně přesouvána na cloud provozovaný jinou firmou.
4.1
Základní vlastnosti abstrakce a virtualizace
Většina cloud aplikací je postaven na sdílených poolech zdrojů. Základem jejich vytvoření je poskytnutí abstraktního mechanismu, který umožní namapování logické adresy na fyzický zdroj. Počítače používají tuto techniku k ukládání dat na diskové jednotky a cloud potom použije sadu technik k vytváření virtuálních serveru, úložišť a sítí. Pomocí abstrakce je tedy dosáhnuto jedné ze základních výhod cloudu a to sdílený, všudypřítomný přístup (Sosinsky, 2011). Virtualizace přiřazuje logické jméno fyzickému zdroji a poskytuje ukazatel při požadavku na daný zdroj. Umožňuje efektivní řízení zdrojů, jelikož mapování virtuálních zdrojů na fyzické může probíhat dynamicky a snadno. Virtualizace může dynamicky mapovat na základě rychle se měnících podmínkách a přiřazování může probíhat téměř okamžitě. Úrovně virtualizace Virtualizační technologie je možné využít nejen při nasazování cloud technologií, ale v této oblasti nalézají mnoho uplatnění, ať už při provozu serverů nebo klientských zařízení. Virtualizovat je možné na více úrovních (Velte, Velte, Elsenpeter, 2011): o Virtualizace serverů – tato metoda umožňuje rozdělit fyzický počítač na více serverů. Jednotlivé části se chovají jako systém s vlastním hardwarem. o Virtualizace aplikací – softwarové technologie oddělující aplikace od základního operačního systému, kde je aplikace spuštěna. Aplikace se neinstalují tradičním způsobem. o Virtualizace prezentace – metoda odděluje zpracování od grafického zobrazení a vstupu a výstupu dat. Aplikace se potom spouští na serveru a ovládány jsou z klienta. Publikace Sosinsky (2011) dále uvádí typy virtualizace, které jsou charakteristické pro cloud. Jsou to: o Přístup – klient může požadovat přístup z libovolného místa.
Možnosti provozu vlastního cloudu
30
o Aplikace – cloud má několik instancí aplikace a požadavky směřuje na jednotlivé aplikace dle stávajících podmínek. o CPU – servery jsou rozděleny na sadu virtuálních strojů, kterým je rozdělena pracovní zátěž. Případně může být systém virtualizován pomocí technik vyrovnání zátěže. o Úložiště – data jsou uložena na více úložištích, na kterých jsou data často replikována k zajištění redundance. Faktory ovlivněné virtualizací Virtualizace přináší množství výhod, zvyšuje hodnotu investic do IT, snižuje náročnost serverového hardwaru, spotřebu energie a náklady, usnadňuje správu systémů a zároveň zvyšuje pružnost celého prostředí (Velte, Velte, Elsenpeter, 2011). Dalšími faktory ovlivněnými virtualizací jsou: o Náklady – při využití virtualizace, je možné ušetřit finanční prostředky. Stále je potřeba fyzický server, ale je možné využít i bezplatných virtualizačních řešení a operačních systémů, díky kterým je možné na jednom fyzickém stroji provozovat více samostatných instancí serverů. o Správa – díky virtualizaci je možné mít většinu serverů na jednom místě a tím snížit náročnost jejich správy. Virtualizované prostředí tak ušetří čas při každodenní správě serverů, jejich přidávání a celkovou administrativní zátěž. o Rychlost nasazení – nasazování nových serverů je urychleno např. tím, že je možné využít již existující server, tvořený souborem na disku, a nakopírováním získat stejný. Ten je po úpravě možné spustit na stejném nebo přesunout na jiný fyzický stroj. Výhodné např. v případech selhání fyzického serveru nebo při nasazování nových aplikací. o Náklady na infrastrukturu – nasazením virtualizace je možné snížit množství fyzických serverů v dané organizaci. Tím se sníží náklady na samotný hardware, napájení i chlazení serverů. Celkově se sníží i množství počítačových komponent i prostor, který servery zabírají. Pomocí virtualizace je navíc dosáhnuto některých z klíčových vlastností cloudu, jako jsou (Sosinsky, 2011): o Založení na službách – klienti jsou oddělení od poskytovatele služeb prostřednictvím rozhraní. o Škálovatelnost a elastičnost – služby mohou měnit kapacitu a výkon na základě požadavku. o Sdílení zdrojů – k získání větší efektivnosti jsou zdroje sdíleny. o Měřitelnost použití – služby jsou účtovány na základě jejich užití. o Přístup prostřednictvím Internetu – služby poskytované cloudem jsou založeny na protokolech a formátech běžně používaných na Internetu.
Možnosti provozu vlastního cloudu
31
Vyrovnávání zátěže využitím virtualizace Vyrovnávání zátěže je technologií, která umožňuje distribuci požadavků služeb na dostupné zdroje. Může být implementováno hardwarově nebo softwarově. Je to optimalizační technologie použitelná k navýšení zužitkování a propustnosti, snížení latence, doby odezvy a vyhnutí přetížení (Sosinsky, 2011). Mezi zdroje, jejichž zátěž může být vyrovnána, se řadí: o Síťová rozhraní a služby jako DNS, FTP a HTTP. o Připojení prostřednictvím inteligentních switchů. o Zpracování pomocí přiřazení počítačového systému. o Datové zdroje. o Přístup k instancím aplikací. Bez vyrovnávání zátěže by bylo velmi obtížné spravovat cloud computing systémy. Díky vyrovnávání zátěže je možné získat nezbytnou redundanci k získání stabilního systému využitím spravované přesměrovávání. Také získáme odolnost vůči chybám v kombinaci s převzetím služby při výpadku.
4.2
Virtualizační řešení pro servery
Jak již bylo řečeno, virtualizace serverů umožňuje provozovat více nezávislých virtuálních systému na jednom fyzickém stroji. To umožňuje maximalizaci využití prostředků a investic do nich. Tvorba a správa virtuálních strojů bývá někdy označována jako virtualizace platformy (Rittinghouse, Ransome, 2010). Nízko-úrovňový program je vyžadován ke zprostředkování přístupu k systémovým zdrojům virtuálním strojům. Tento program je označován jako hypervizor (někdy také Virtual Machine Monitor – VMM). Rozlišujeme dva druhy hypervizorů (Sosinsky, 2011). Hypervizor Typu 1, také označovaného jako nativní virtuální stroj, je spouštěn přímo na hostitelském hardwaru. Operační systém na virtuálním stroji je označován jako hostovaný. V případě Typu 1 neexistuje žádný hostitelský operační systém, virtuální stroje jsou instalovány na holém systému. Jedná se o plnou virtualizaci, jelikož se jedná o kompletní simulaci hardwaru, na kterém systém běží. Hypervizor Typu 2, neboli hostovaný virtuální stroj, je nainstalován a spouštěn na běžícím operačním systému. Virtuální stroje jsou instalovány v hostitelském operačním systému. Je vytvořeno softwarové rozhraní, které emuluje zařízení, se kterými by systém obvykle komunikoval. Jedná se o tzv. paravirtualizaci. Hostitelský operační systém je ten, který provozuje vstupně výstupní operace. Existuje značné množství hypervizorů obou typů. Některé z nich zde budou popsány. Srovnání vlastností uvedených virtualizačních řešení obsahuje Tabulka 2: Srovnání virtualizačních řešení pro servery.
Možnosti provozu vlastního cloudu
32
Microsoft Hyper-V Microsoft Hyper-V je komerčním řešením společnosti Microsoft. Umožňuje vytváření a spravování virtualizovaných prostředí a je integrován na systému Microsoft Windows Server 2012. Jedná se o hypervizor Typu 2. Instalací Hyper-V role jsou nainstalovány požadované komponenty a je možné doinstalovat i nástroje pro správu. Mezi požadované komponenty patří např. Windows hypervizor, Hyper-V služba pro správu virtuálních strojů, Virtualizační služba Windows Management Instrumetation (WMI) a další komponenty umožňující virtualizaci (Microsoft Technet – Hyper-V Overview, 2014). Nástroje pro správu se skládají z nástrojů s grafickým rozhraním, jako je Hyper-V Manager, Microsoft Management Console (MMC) modulu snap-in a připojení k virtuálnímu stroji, které umožňuje přístup k video výstupu, pomocí kterého je možné komunikovat s virtuálním strojem. Druhou skupinu nástrojů pro správu tvoří specifické rutiny Hyper-V pro Windows PowerShell. Hyper-V modul, který je součástí Windows Serveru 2012 poskytuje přístup pomocí příkazové řádky k veškerým funkcím, které jsou dostupné v grafických nástrojích. Obsahuje navíc rozšířené funkce, které grafické nástroje neumí. Mezi operační systémy, které jsou podporovány v rámci Hyper-V, jsou Windows Server 2003 a novější, Windows XP Professional SP2 a výše, SUSE Linux Enterprise Server 10 a 11, Red Hat Enterprise Linux 5.2 a 5.4, CentOS Linux 6.0 a 6.2 a FreeBSD 8.2 (TechnetBlog – Microsoft Hyper-V). Tyto systémy mají garantovanou technickou podporu. Další systémy fungovat mohou, ale nelze očekávat oficiální podpora. Při dostatečně silném hardwaru je možné pomocí Hyper-V provozovat až 1000 hostů na jednom hostiteli, až 8000 hostů v rámci jednoho clusteru, využít až 320 procesorových jader a 4 TB paměti na hostiteli. KVM KVM, neboli Kernel-based Virtual Machine, je open source hypervizor, který umožňuje provozovat Windows i Linux systémy. Stává se hlavním virtualizačním nástrojem na většině linuxových systémech, postupně nahrazuje nástroj Xen (který bude představen následně), především z důvodu rozšířenější komunity a lepší podpoře v linuxových systémech (Hagen, 2014). V případě KVM existuje rozpor, zda se jedná o hypervizor typu 1 nebo typu 2. KVM využívá linuxové jádro jako svůj hypervizor. Toto je často kritizováno, jelikož tím neodpovídá klasické definici hypervizoru typu 1. Je ale možné upravit konfiguraci linuxového jádra ke snížení zkompilované velikosti tím, že obsahuje jen nezbytné součásti. Díky tomu se přibližuje hypervizoru typu 1. K ovládání KVM systému se nejčastěji využívá knihovna libvirt. Ta je vyvíjena společností Red Hat a představuje administrační rozhraní k většímu množství vznikajících virtualizačních technologií (kromě KVM je to např. Xen, LXC containers, OpenVZ, VirtualBox i Microsoft Hyper-V). Na knihovně libvirt
Možnosti provozu vlastního cloudu
33
je postaven např. grafický nástroj Virtual Machine Manager, který poskytuje všechny funkce potřebné k provozování KVM. Uváděná podpora operačních systému je větší než u již popsaného Microsoft Hyper-V hypervizoru. KVM umožňuje provozovat většinu produkčních verzí operačních systému, ať už linuxových distribucí, tak i Windows systému. Podrobný seznam je možné získat online v dokumentaci KVM (Guest Support Status). Produkty společnosti VMware Společnost VMware má významné postavení v oblasti virtualizačního softwaru. Nabízí celou řadu produktů pro virtualizaci pro datová centra a cloudovou infrastrukturu, budování infrastruktury jako služby, virtualizaci desktopů a aplikací (VMware - Products). Nabízené produkty jsou placené, ale některé jednodušší jsou využitelné zdarma. Mezi hlavní produkty společnosti VMware zaměřené na servery patří: o VMware vSphere Hypervisor - zdarma dostupný hypervizor typu 1. Jeho součástí je zabudovaný nástroj pro správu serverů, kontrolu efektivnosti využití úložiště dat, pokročilé řízení využití paměti. o VMware vSphere se sadou Operations Management - Je hlavním komerčním produktem společnosti VMware poskytující navíc monitorování výkonu a správy kapacitních možností. Obsahuje v základu stejné funkce jako verze zdarma. Je ale rozšířen o řadu dalších funkcí a nástrojů. Mezi tyto např. patří: vSphere ESXi – robustní a výkonná virtualizační vrstva abstraktující hardwarové zdroje pro využití virtuálními stroji.
vMotion – usnadňuje migraci virtuálních hostů mezi hostiteli, např. při plánování údržby apod.
High Availability – zajišťuje vysokou dostupnost u virtualizovaných systémů podobnou klasickým clusterovým řešením.
Replication – zabudovaná možnost replikace bez nutnosti použití produktů třetí strany. vCenter Server – centrální správa vSphere platformy.
o VMware vCloud Suite – je komerčním řešením umožňujícím vystavět a spustit privátní cloud založený na produktu vSphere. Ten nabízí cloud služby umožňující ekonomickou škálovatelnost, zaopatření aplikací a automatizované řízení provozu. Xen Xen je open source hypervizor typu 1, soupeřící s již popsaným systémem KVM, na poli linuxových virtualizačních řešení. Umožňuje virtualizaci serverů, realizovat Infrastrukturu jako Service, desktopovou virtualizaci, bezpečnostní
Možnosti provozu vlastního cloudu
34
aplikace, vestavěné a hardwarové přístroje. Mezi klíčové vlastnosti patří (Xen Project Software Overview): o Malá stopa a rozhraní. o Využitelné na Linux systémech, ale i na NetBSD a OpenSolaris. o Izolace ovladačů. o Paravirtualizace. Kromě základního open source řešení Xenu existují i rozšířené produkty společnosti Citrix, která po zakoupení licence nabízí další rozšíření pro systém XenServer. Mezi ty patří např. jednoduché a automatizované patchování pomoci řídící konzole, technickou podporu nebo přístup k rozšířené dokumentaci a znalostní bázi. Tabulka 2: Srovnání virtualizačních řešení pro servery
Řešení
Hypervizor
Bezplatná licence
Placené licence
Microsoft Hyper-V
Typ 2
ne, MS Server
ano
KVM
Typ 1 i 2
ano
ne
Typ 1 i 2
ano, ořezané produkty
ano
VMware Xen
4.3
Typ 1
ano
Nástrojů pro správu
Podporované OS novější verze MS Windows a produkty Linux Windows, open-source Linux, BSD, aplikace Android, Solaris Windows, produkty Linux, BSD, VMware Android
ano, open-source od různých aplikace dodavatelů
Linux, BSD, Solaris
Cloud řešení
Pro provoz samotného cloudu je možné využít některou z platform, které jsou k tomu určeny. Tyto produkty jsou určeny k ovládání zdrojů a dalších částí cloudu. V kombinaci s virtualizačními produkty mohou vytvořit silný cloud systém. V následující části bude několik takových produktů představeno. Srovnání představených cloud platform obsahuje Tabulka 3: Srovnání cloud platform pro servery. OpenShift Produkt společnosti RedHat dostupný ve třech podobách. První je OpenShift Online (veřejný), druhým je OpenShift Enterprise (privátní) a třetím je OpenShift Origin (komunitní). Zde bude popsána varianta OpenShift Origin, což je open-source platforma podporovaná komunitou s možností provozu na vlast-
Možnosti provozu vlastního cloudu
35
ních serverech, privátním i veřejném cloudu (OpenShift Origin Product, OpenShift). Architektura OpenShift se skládá z funkčních jednotek platformy. Základní jednotky jsou: o Broker – centrální bod pro všechny aktivity správy aplikací. Zodpovídá za správu přihlašování uživatelů, DNS, stavy aplikací a obecné řízení aplikací. S Brokerem je komunikováno pomocí služeb Web console, CLI tools nebo JBoss Tools. Broker potom posílá instrukce jednotce Node, která skutečně hostuje uživatelské aplikace. o Node – Node servery jsou systémy, které hostují uživatelské aplikace. Za tímto účelem podporují komponenty Gears a Cartridges. Gears jsou bloky CPU, RAM a úložiště dostupné aplikacím. Cartridges reprezentují komponenty, ze kterých se skládá aplikace, jako programovací jazyk, databázový engine a další nástroje pro správu. OpenStack OpenStack je open-sourcový cloud systém primárně použit pro stavbu IaaS řešeních. Kontroluje pooly zdrojů potřebné pro provoz cloudu napříč datacentrem. Obdobně jako předchozí popsaná řešení se také skládá z komponent. Komponenty lze provozovat i v prostředí Amazon EC2. Komponentami systému jsou (The Open Source Cloud Operating Systém, OpenStack): o Compute – poskytuje na vyžádání výpočetní zdroje. Ty jsou dostupné pomocí API pro vývojáře aplikací a pomocí webového rozhraní pro administrátory a uživatele. Je navržen tak, aby umožňoval horizontální škálování. o Storage – OpenStack podporuje dva druhy úložišť. Prvním je Object Storage, které může být přímo integrováno do aplikací nebo použito k zálohování a archivacím, a druhým je Block Storage, který výpočetním instancím připojení k blokovým zařízením a tím navýšení úložiště a zvýšení výkonu. o Networking – škálovatelná a API ovládatelný systém pro řízení sítí a IP adres. o Dashboard – grafické rozhraní pro přístup, poskytování a automatizování zdrojů v cloudu. o Shared Services – součástí OpenStack je i několik sdílených služeb, rozšiřující tři základní funkce (Compute, Storage, Networking). Tyto služby usnadňují implementaci a operování s cloudem. Patří mezi ně např. identifikační služba, správa obrazů serveru nebo webové rozhraní. Ubuntu MaaS a Juju V tomto případě se nejedná přímo o cloud platformu, ale je to nástroj umožňující správu více fyzických serverů a jejich využití v cloudu. Usnadňuje nastave-
Možnosti provozu vlastního cloudu
36
ní, spouštění a propojení hardwaru, na který lze následně umisťovat služby, které je potřeba dynamicky škálovat. Pomocí jednoduchého webového rozhraní lze do struktury přidávat, upravovat a odstraňovat nové servery, jako další uzly. Jednotlivé uzly lze následně použít i mimo strukturu (Metal as a Service, Ubuntu MaaS). Samotné Ubuntu MaaS pouze připraví infrastrukturu. Na ni lze potom pomocí aplikace Juju rozmisťovat součástí cloudu. Juju umožňuje konfigurovat, spravovat, udržovat, nasazovat a škálovat tzv. Charms. Ty představují různé služby, jako je MySQL databáze, Apache web engine, Hbase nebo Hadoop (Juju, Ubuntu Cloud). Produkty MaaS a Juju lze úspěšně komunikovat i s platformou OpenStack. Také je kompatibilní s Amazon EC2. Tabulka 3: Srovnání cloud platform pro servery
Cloud platforma
Jako služba
Lokální Podporovaní Podporovaní Provoz u provoz hostitelé hosté poskytovatele Linux, Linux, holé VMware, Xen, OpenShift ano ano Amazon EC2 stroje KVM, VirtualBox Linux, Linux, Amazon EC2, Windows, OpenStack ano ano Windows, Rackspace, VMware, Xen, holé stroje GoGrid KVM MaaS + Linux, holé částečně ano Linux Amazon EC2 Juju stroje
Analýza služeb společnosti
37
5 Analýza služeb společnosti Různé společnosti mohou používat různé typy softwaru potřebného pro svoji činnost. Pro analýzu takových služeb bude použit příklad společnosti Abstract s.r.o. Jedná se o malou společnost o asi 15 zaměstnancích. Společnost se zabývá provozem internetového informačního portálu o životním stylu, Bydleni.cz. Skládá se z několika redaktorů, starajících se o obsah, malého call centra pro komunikaci se zákazníky (stávajícími i potencionálními novými) a vývojářského týmu, který spravuje a vyvíjí nástroje a programy pro kancelář a stará se o infrastrukturu společnosti. Firma má za sebou více než 15 letou historii. Toto se podepsalo na některých službách, které se ve firmě používají. Společnost má v provozu několik vlastních serverů, na kterých provozuje software potřebný pro práci zaměstnanců. Servery jsou umístěny ve dvou lokacích. Část je umístěna v malé serverovně přímo v prostorách firmy, druhá se nachází v profesionálním datacentru společnosti GTS. Webový portál je provozován na virtualizovaných serverech. V následující části je popsán software společnosti Abstract s.r.o. potřebný k provozu firmy a práci zaměstnanců. Nebude rozebíráno řešení pro provoz webového portálu, jelikož ten má poněkud jiné požadavky a potřeby, než jsou v rámci práce popisovány.
5.1
Webový systém CRM
Customer Relationship Managemt (CRM), neboli řízení vztahů se zákazníky, je obvykle modulový systém napomáhající udržovat úspěšné vztahy se zákazníky. Mezi moduly, které obsahuje, obvykle patří modul evidence partnerů a kontaktů, obchodní případy a příležitosti, komunikace se zákazníky nebo plánování úkolů. Společnost Abstract s.r.o. používá starší verzi webové CRM aplikace s názvem SugarCRM v komunitní edici. I když systém obsahuje všechny potřebné funkce pro společnost, jeho rychlost a stabilita již není příliš vysoká. Systém je provozován na Linuxovém serveru s použitím webového serveru Apache. Data jsou uložena v databázi MySQL.
5.2
Účetní systém
Pro vedení účetnictví a daňové evidence využívá společnost Abstract s.r.o. software Pohoda. Jedná se o český program, který je v České republice poměrně oblíbený a je cílený především na živnostníky a malé firmy. Jedná se o desktopovou aplikaci určenou pro systém Windows. V rámci společnosti Abstract s.r.o. je systém provozován na desktopové stanici umístěné v serverovně, na kterou je přistupováno pomocí vzdálené plochy jednotlivými uživateli.
Analýza služeb společnosti
5.3
38
Úložiště dokumentů
Pracovníci firmy potřebují přístup ke sdíleným dokumentům. Jedná se např. o podklady zákazníků, faktury, smlouvy apod. Také jsou zde umístěny dokumenty související s PR, HR a dalšími oblastmi řízení firmy. Dokumenty jsou rozloženy na více nezávislých úložištích. Jsou to linuxové složky sdílené pro systém Windows pomocí služby Samba, malé síťové úložiště značky Synology a často editovatelné soubory jsou na službě společnosti Google Drive.
5.4
Vlastní kancelářské nástroje
Dvě hlavní oblasti, kterým se zaměstnanci věnují, jsou péče o zákazníky a správa obsahu webového portálu. Pro tyto činnosti bylo za dobu fungování firmy vyvinuto mnoho nástrojů s různými funkcemi. První skupina nástrojů je určena pro podporu péče o komunikaci. Mnoho z nich je úzce provázáno s MySQL databází systému SugarCRM, s jehož daty pracuje. Jejich Majorita je postavena na programovacím jazyku PHP a využívá frameworku Kohana. Mezi tyto nástroje patří např. rozhraní pro komunikaci se zákazníky, správu emailových kontaktů pro marketingové kampaně nebo hlídací nástroj splatnosti faktur. Druhá skupina nástrojů je zaměřena na editaci obsahu webového portálu. Webový portál je provozován pomocí vlastního systému, který čerpá data z rozsáhlé databáze článků, zpráv, firemních prezentací, knih a dalších. Právě editace těchto záznamů, jejich publikace, archivace a další operace, jsou funkce nástrojů. I tyto jsou postaveny na programovacím jazyku PHP, ale nejsou založeny na žádném známém frameworku.
5.5
Statistické nástroje
V rámci činnosti vzniká poměrně velké množství různých informací, které je potřeba zpracovat. Mezi tyto informace patří např. návštěvnost webových stránek a jednotlivých záznamů na webu, informace o nabídkách realitních kanceláří, které jsou na webu, výsledky vyhledávání nebo výsledky emailových marketingových kampaní. Zpracování těchto dat probíhá v měsíčních intervalech a jejich zpracování a následnou prezentaci je určen výkon celého jednoho stroj. Data jsou při zpracování přenesena ze statických souborů do MySQL databáze, odkud jsou zobrazovány zaměstnancům pro další analýzy. V závislosti na množství dat (kolísání návštěvnosti, množství realitních nabídek a podobně) se mění i dálka zpracování dat, může ale dosáhnout i jednoho dne.
Analýza služeb společnosti
5.6
39
VoIP
Vzhledem k tomu, že součástí firmy je i malé call centrum, provozuje svoji vlastní VoIP (Voice over Internet Protocol). Díky tomu má větší kontrolu nad svými linkami, hovory, vytáčecími plány nebo i informacemi o hovorech. Navíc je VoIP ekonomicky výhodnější než jiné řešení hovorů. V nedávné minulosti využívala firma tzv. PRI rozhraní pro připojení do telefonní sítě. Tento způsob připojení vyžaduje speciální typ síťové karty zapojený do počítače, na kterém je provozován systém ústředny. Tento typ tedy není úplně vhodný pro cloud řešení vzhledem k závislosti na speciálním hardwaru. I takový systém je možné v cloudu provozovat, ale je nutné věnovat větší pozornost plánování obnovy při výpadcích, jelikož je nutné spouštět instance na serveru, který má speciální hardware k dispozici. V současnosti používá ale firma jiný způsob propojení s ústřednou poskytovatele telefonních služeb. Ústředna v prostorách firmy se připojuje pomocí standardního síťového připojení k veřejné adrese ústředny poskytovatele. Toto spojení je zabezpečeno přístupem z určitého IP rozsahu adres. Ústředna se tedy musí vyskytovat v prostorách firmy (využívat daného spojení) není ale závislá na žádném speciálním hardwaru. VoIP systém je postaven na linuxové platformě CentOS a aplikaci Asterisk, která implementuje samotnou ústřednu. Obě části, spolu s dalšími nástroji jsou součástí open source produktu AsteriskNOW, za kterým stojí společnost Digium.
Problematika migrace služeb
40
6 Problematika migrace služeb Provedení samotné migrace do cloudu není jednoduchou záležitostí a je vhodné ji rozdělit na více kroků, které se postupně provedou. V této kapitole budou popsány důležité faktory ovlivňující migraci, kroky, nutné k její provedení a existující nástroje a metody, které migraci mohou usnadnit.
6.1
Faktory migrace
Existují obecnější pravidla a doporučení, která platí pro všechny organizace, zvažující migraci svých služeb. Mezi tyto řadí publikace Velte, Velte, Elsepeter (2011) následující: Výběr potřebných aplikací – dle očekávání od cloudu je možné vybrat ty aplikace, které chceme skutečně provozovat v jeho prostředí. Obecně se dá říct, že do cloudu není nejvhodnější přesouvat kritické úkoly pro organizaci, především, pokud má oblast podnikání organizace speciální požadavky na aplikace. Při rozhodnutí o přesunu aplikací do cloudu, je důležité pohlídat faktory, jako je např. spotřeba síťových prostředků dané aplikace, dostatečný výpočetní výkon nebo velikost latence. Data odesílaná do cloudu – může se jednat o prakticky libovolný druh dat. Možné využití je např. zálohování důležitých dat do cloudu. Je tím zajištěno uložení v odlišné lokaci a není potřebné velké lokální úložiště. Zálohy je také možné jednoduše zautomatizovat a tím zajistit jejich aktuálnost. Kromě těchto faktorů, které je nutné zvážit, upozorňuje publikace Reese (2010) navíc na následující: Licence softwaru – je důležité zkontrolovat podmínky užití stanovení softwarem, který firma používá a který se chystá provozovat z cloudu. Je nutné zjistit, zda licence umožňuje využívat v modelu účtování dle užití a zda povoluje provoz ve virtualizovaném prostředí. Úrovně služby – při využití služeb jiné společnosti je obvyklé uzavřít smlouvu o úrovni služby (service legal agreement – SLA). Ta určuje metriky (úrovně služby), které může zákazník očekávat od služby. Mezi nejdůležitější patří dostupnost, spolehlivost a výkon. Pokud jsou služby, které chce firma využít, můžou být tyto faktory rozhodujícími. Bezpečnost – při rozhodování o přesunu do cloudu je nutné zvážit řadu bezpečnostních faktorů, které mohou mít kritický význam. Mezi tyto faktory je možné zařadit legální důsledky, právní předpisy a problémy lišící se v cloudu, možná vyšší nebezpečnost cloudových úložišť nebo potencionální zranitelnost virtuálních řešení. Obnova při selhání – podstatným faktorem je schopnost obnovy normálního provozu v případě selhání systému. Typy selhání se v cloudu mohou lišit od těch,
Problematika migrace služeb
41
které mohou nastat v klasickém datacentru. Obnovy v cloudu probíhají jednodušeji než na fyzických serverech. Některá cloud řešení poskytují i automatické obnovy bez nutnosti lidského zákroku. Je nutné zhodnotit možnosti voleného řešení a připravit plán pro případ selhání. Při plánování migrace do cloudu je také vhodné zvolit postup provádění změn k dosažení uživatelského komfortu a přiměřené ceny. K tomu je možné doporučit několik kroků (publikace Velte, Velte, Elsepeter, 2011): Výběr správného dodavatele – jak už bylo zmíněno, velkou výhodou cloudu je ekonomická stránka provozu aplikací v něm. Aby bylo možné zvolit správného dodavatele, je tedy nutné zhodnotit faktory, jako např. způsob poskytované podpory, snadnost spolupráce s dodavatelem, patřičnost účtovaných cen, dostupnost služeb v minulosti nebo reference dodavatele. Hledisek hodnocení dodavatele je skutečně mnoho, mezi některé z nich lze zařadit: o Podmínky služby. o Výkon. o Rozložení služeb. o Data. o Tok dat. Rozhodnutí o způsobu přechodu – přechod je možné provést náhle nebo postupně. Obvykle je vhodnější přesouvat služby postupně, místo jednorázového přesunu všech služeb. Je možné provést částečný přesun a další kroky provést až při selhání serveru nebo jeho nedostačující výkonnosti. Kreativní přístup – většina nabízených služeb má doporučený účel použití, což ale neznamená, že není možné ji použít i jiným způsobem, dle aktuální potřeby. Např. v cloud databázi pro serverová data je možné ukládat zálohy nebo místo kompletní migrace do cloudu, je možné využít cloudu pro dočasné navýšení výpočetní kapacity v případu zvýšené potřeby.
6.2
Přesun na nákladový model cloudu
Důležitou součástí migrace do cloud je jistě i ekonomická stránka celého procesu. Jak bylo zmíněno v kapitole 3, je většina služeb v cloudu účtována v závislosti na jejich reálném využívání. Může to být na základě využití procesoru nebo paměti za hodinu. Publikace Reese (2010) se věnuje faktorům tohoto modelu. Mezi tyto faktory řadí: Porovnání nákladů Nejlepším způsobem porovnání nákladů cloudu a jiných modelů je určení celkových nákladů na vlastnictví po dobu odpisování hardwaru. Odpisová doba hardwaru je v České republice 3 roky (1. odpisová skupina). K získání přes-
Problematika migrace služeb
42
nějšího obrazu o nákladech se berou v úvahu následující faktory (po dobu 3 let): o Odhadované náklady na provoz virtuálních serverů. o Odhadovaná licenční poplatky virtuálních serverů. o Odhadované náklady na tvorbu obrazů strojů, správu infrastruktury a řešení problémů. o Jakékoliv náklady na využití služeb třetích stran. Důležitost porovnání nákladů roste, pokud porovnáváme náklady na cloud řešení proti počátečním investicím do pořízení infrastruktury. Pro zhodnocení alternativního řešení je nutné prozkoumat následující vlastnosti alternativ: o Počáteční náklady – zřizovací poplatky, investice do fyzického prostoru, nákup hardwaru, licence. o Práce potřebná ke zřízení infrastruktury. o Náklady spojené s provozem infrastruktury – hosting, elektřina, pojištění. o Náklady na práci spojenou s podporou hardwaru a počítačové sítě. o Průběžné licenční poplatky, udržovací poplatky. Analýza návratnosti investice Jednou z cest, jak zhodnotit migraci do cloud řešení je využitím analýzy návratnosti investice (tzv. ROI). Její pomocí je možné porovnat vybudování potřebné infrastruktury interně na vlastních serverech a v cloudu. Pro vytvoření takové analýzy je potřebné mít návrh interního řešení pro provoz služeb a odhad řešení v cloudu. Započítáním počátečních nákladů a průběžných nákladu obou možností, je můžeme porovnat. K sestavení analýzy je dále potřeba znát odpisový plán a cenu kapitálu společnosti. Odpisy představují očekávanou životnost hardwaru. Cena kapitálu reprezentuje ušlý zisk, který by společnost získala, pokud by investovala do jiné oblasti. Úspora financí Největších úspor v cloudu lze dosáhnout především, pokud se liší mezi vrcholným a průměrným využitím systému. Pokud je systém průměrně zatěžován jen málo, ale v určitých obdobích dosahuje velmi vysokého zatížení, které je potřeba zvládnout, ukáží se skutečné ekonomické výhody cloudu. Pokud by organizace zakupovala hardware k pokrytí krátkodobého vysokého zatížení, nejednalo by se o výhodné řešení. Oproti tomu, krátkodobé využití cloud infrastruktury pro pokrytí tohoto období, je mnohem výhodnější. Dalším prostorem pro úsporu jsou různá prostředí využitá při vývoji aplikací, jako je testovací, vývojové apod. Takové prostředí je zapotřebí jen v určitých fázích vývoje produktu a následně může být zahozeno. Při testování
Problematika migrace služeb
43
je také vhodné mít kompletní kopii produkční verze. Tu lze v cloudu získat jednoduchou replikací.
6.3
Připravenost pro cloud
Před přesunem do cloudu je nutné zvážit připravenost aplikací pro cloud prostředí. Aplikace mohou být připraveny pro provoz na více serverech s vyrovnáváním zátěže a díky tomu jsou prakticky připraveny pro přenos. Mohli být ale také vytvořeny s úmyslem provozu na jednom serveru a nejsou připraveny na provoz v prostředí jako je cloud. Publikace Reese (2010) popisuje oblasti, které je nutné prozkoumat. Těmito oblastmi jsou: Návrh webových aplikací Různé vývojářské aplikace mají mnoho odlišnosti. V základu se ale sdílejí podobnou obecnou architekturu, na které záleží možnosti provozu v cloudu. Aplikace se obvykle skládá z části starající se o data, části, která tyto data zpracovává a části, která data prezentuje. Hlavním problémem takových aplikací je, jakým způsobem spravují svůj stav. To znamená, jakým způsobem probíhá změna z jednoho stavu do druhého na základě nějakého požadavku a následné transakce změn do databáze. Proces změn stavu může probíhat následovně: o Uzamknutí potřebných dat v databázi. o Kontrola dat a jejich hodnot. o Pokud splňují hodnoty požadavky, provedena změna. o Uvolnění dat. Problém takového systému je právě v práci s uzamykáním dat. V případě více požadavků na jedny data se při provozu na jednom serveru nevyskytnou problémy. Při provozu na více roztroušených serverech může ale dojít k neplatným změnám, pří více současných požadavcích na rozdílné servery. Pokud aplikace používá tohoto způsobu paměťových zámků, je nutná jeho změna na nějaký systém sdíleného uzamykacího mechanismu dostupného napříč všemi servery a databázemi. Návrh obrazů virtuálních strojů Virtuální servery jsou spouštěny z obrazů virtuálních strojů. Při přechodu na cloudovou infrastrukturu, by jedním z prvních kroků měl být návrh opakovatelného procesů nasazování k řešení výpadků. Obsah obrazu by měl být složen z nezbytného softwaru pro provoz virtuální instance a neměl by obsahovat žádné zbytečné součásti. Je vhodné z obrazu odstranit zbytečné služby, účty, provozovat běžící služby pod jiným, než hlavním (root) účtem, spouštět s minimálním potřebným oprávněním.
Problematika migrace služeb
44
Soukromí Při hodnocení aplikace a její vhodnosti pro provoz v cloudu je nutné se podívat na data, se kterými pracuje. Pokud pracuje s daty, jejichž část obsahuje soukromá data, jako např. čísla kreditních karet nebo zdravotní údaje, je nutné se pozastavit nad tím, jakým způsobem je s touto částí zacházeno. Klíčem je striktní oddělení citlivých dat od běžných a následné šifrování citlivých částí. Pro návrh bezpečného řešení je možné postupovat následně: o Oddělení aplikačního serveru a serveru s citlivými. o Citlivá data šifrována pomocí šifrovacího klíče specifického pro každého uživatele. o Část zprostředkovávající citlivá data nemá přístup k šifrovacímu klíči jindy, než při zpracovávání požadavku. o Aplikační server nemá schopnost číst citlivá data přímo z datového serveru. o Nikdo nemá administrátorská práva k oběma serverům. Dodržením tohoto postupu je možné dosáhnout značného navýšení bezpečnosti citlivých soukromých dat. Správa databází Důležitou části spravování cloud infrastruktury je správa persistentních dat, těch, která jsou nezbytná pro provoz a musí přežít zničení prostředí cloudu. Problém udržování takových dat v databázi není jedinečný pro cloud. Stejně jako u jiných řešení, je i v případě cloudu důležité zálohování a obnova záloh v databázi, tento proces bývá v cloudu jednodušší, jelikož často stačí jen spustit novou databázovou instanci a na ní nahrát data.
6.4
Možnosti migrace
Problematikou migrace služeb se často zabývají společnosti nabízející produkty v oblasti cloud computingu. Návody, postupy a doporučení, které od takových firem pocházejí, se obvykle zaměřují na specifika přenosu na jejich řešení. V této části budou uvedeny některé postupy těchto společností a následně poslouží jako základ při tvorbě vlastní metodiky. Životní cyklus migrace společnosti Oracle Společnost Oracle vydala publikaci, která se zabývá problematikou migrace do cloudu se zaměřením na databázovou část a produkty této společnosti. V této publikaci jsou mimo jiné popsány i některé kroky, které by měly být součástí celého procesu migrace (Laszewski, T., Prakash N, 2012). Dohromady tvoří tyto kroky obecný životní cyklus migračního projektu podle společnosti Oracle,
Problematika migrace služeb
45
který vychází z tradičního vodopádového modelu. Kroky migrace podle společnosti Oracle jsou: o Posouzení - obsahem tohoto kroku je sesbírání potřebných informací pro osobu, která bude projekt migrace řídit. V této fázi se tvoří portfolio, které ukazuje dopady na databázové platformy. o Analýza a návrh - tato fáze se obvykle skládá z posouzení implentačních detailů cílové databáze (Oracle). Kvůli rozdílům v implementaci datových typů, bezpečnostních rolí a privilegií, správy transakcí a SQL kódu, je důležité vytvořit plán potřebných změn a odhad jejich náročnosti. o Migrace – migrace objektů a dat z jedné databáze do druhé je relativně jednoduché, především pokud se jedná o přenos z jedné relační databáze do druhé. Úkol migrace databáze lze rozdělit do těchto kategorií: Migrace databázových schémat.
Migrace dat.
Migrace databázových procedur.
Migrace aplikací.
Migrace administračních skriptů. o Testování – po provedení migrace je důležité testování, do kterého spadávají úkoly jako je verifikace dat, testování business logiky uložené v procedurách, funkcích a trigrech a testování skriptů pro údržbu. o Optimalizace – výsledek migrace se může projevovat slabým výkonem. Aplikace bývají optimalizovány po celou dobu jejich provozu pro systém, na kterém běží. Při přechodu na jiný systém se stanou tyto optimalizace neúčinnými a je potřeba je provést znovu s ohledem na nový systém. o Nasazení – ve fázi nasazování jsou zhodnoceny výsledky kroků Posouzení a Analýzy a návrhu. Na základě jejich výsledků je pořízen nový software a hardware. Mezi úkoly, které bývají prováděny v této části, patří konfigurace hardwaru, instalace a konfigurace softwaru, načtení počátečních dat, testování záloh a obnov. o Po-produkční podpora – obvyklým postupem je podpora nově nasazeného databázového prostředí stejným týmem, který prováděl přenos. Migrace existujících aplikací do AWS cloudu Společnost Amazon vydala příručku, která se věnuje možnosti přesunu aplikací do jejího cloudu, přechodu na produkty z řady AWS. Obsahuje kroky a techniky, které takový proces umožňují. Příručka postupuje podle fázové strategie migrace. Do určité míry je přístup k migraci společnosti Amazon podobný postupu společnosti Oracle. Obsah jednotlivých kroků se ale poměrně liší. Kroky fázové migrace Amazonu jsou (Varia, 2010):
Problematika migrace služeb
46
o Posouzení cloudu – v této fázi se hodnotí důvody pro přenos. Patří sem odhad finančních nákladů, uspokojení bezpečnostních požadavků, technické a funkční požadavky, identifikace vhodného kandidáta na cloud řešení apod. o Schopnost realizace (Proof of Concept) – po výběru vhodného kandidáta a odhadu náročnosti migrace přichází testování pomocí malé realizace. Cílem je seznámení se s produkty AWS a ujištění, že předpoklady o vhodnosti migrace do cloudu jsou přesné. o Migrace dat – úkolem této části je zodpovězení na otázky týkající se možností provozu úložišť v cloudu, typů RDBMS, segmentace dat a náročnosti migrace dat společnosti do cloudu. K zodpovězení těchto otázek slouží tyto kroky:
Pochopení možností úložišť dat v AWS. Pochopení RDBMS v AWS.
Přesun velkých objemů dat pomocí služby Import / Export.
o Migrace aplikací – cílem je přenos částí nebo celého systému do cloudu bez narušení běžného provozu. K dosažení tohoto je možné využít dvou strategií: Forklift strategie – strategie vhodná pro nestavové aplikace, úzce provázané aplikace nebo samonosné aplikace. Místo postupného přenosu částí se přesune celý systém s minimálními změnami v kódu.
Hybridní strategie – tato strategie spočívá ve výběru částí aplikací a jejich přenosu do cloudu. Tento způsob zmenšuje riziko nečekaného selhání.
o Vliv cloudu – po provedení migrace a otestování nového řešení, je čas zjistit, jak získat další výhody z použití cloudu. Je vhodné se zabývat elasticitou a škálovatelností řešení, získání výhod z dalších rozšířených funkcí a služeb AWS, automatizací procesu údržby a správy aplikací a obnově v případě selhání. o Optimalizace – tento krok se zaměřuje na optimalizaci cloudových aplikací k navýšení úspory nákladů. Vzhledem k účtování dle spotřeby zdrojů, je optimalizace jejich užití podstatná. Migrace aplikací prodejců Ian Gotts se ve svém článku (Migrating your application to the cloud, 2014) věnoval migraci aplikací z pohledu prodejců softwaru, kteří vedle svých tradičních produktů, chtějí nabídnout i nové cloudové řešení pro svoje zákazníky. Článek se kromě problému spojenými s přeměnou produktů na cloudové zabývá i druhy přístupu k migraci. Těmito přístupy jsou:
Problematika migrace služeb
47
o Migrace existujících aplikací – přestavba nebo re-architektura některých nebo všech aplikací se zaměřením na výhody virtualizačních technologií k urychlení práce. o Začátek z ničeho – někdy může být výhodnější začít budovat aplikaci od začátku se zaměřením na cloud. o Samostatná společnost – pokud vzniká příliš mnoho konfliktů, může být výhodnější vytvoření nové společnosti. o Koupě existujícího cloud prodejce – pro velké prodejce může být nejvýhodnější koupě konkurenta.
Metodika migrace do cloudu
48
7 Metodika migrace do cloudu V souvislostech této práce je metodika brána jako sada nebo systém určitých metod, principů, pravidel a postupů, jejichž použití směřuje k úspěšnému dokončení nějakého určitého projektu nebo splnění úkolu. Jasně uvedené pokyny a postupy zvyšují konzistenci a úroveň výsledku práce. Metodika také umožňuje replikovat postup, který popisuje, k dosažení stejného cíle. Proces popsaný metodikou by měl upozornit na potencionální problémy, které mohou vzniknout (What is Methodology, wiseGEEK). Cílem zde tvořené metodiky je provedení přechodu z tradiční infrastruktury společnosti na cloudové řešení. Při tvorbě metodiky je vycházeno jednak z existujících postupů a doporučení a jednak i z postupu vlastní řešené práce, jelikož některé její části jsou v podstatě kroky migrace do cloudu. Obsah metodiky je zaměřen na přesun společnosti Abstract s.r.o. (a jí podobných) na základě popsaných služeb používaných v této společnosti a její současné infrastruktury.
7.1
Návrh metodiky migrace
Samotná metodika je tvořena sadou kroků, které by měla firma provádějící migraci provést. V každém kroku je popsána jeho náplň a uvedeny oblasti, kterým by měla být věnována pozornost. Celý proces migrace zobrazuje Obrázek 1: Metodika migrace.
Metodika migrace do cloudu
49
Obrázek 1: Metodika migrace
7.1.1
Prvotní posouzení migrace
Jako první je potřeba posoudit jednotlivé oblasti současného řešení společnosti, které by byly zasáhnuty migrací, potencionální náklady na migraci a možné přístupy k migraci. Na základu těchto posouzení lze rozhodnout o provedení migrace. Oblasti, které by se měly posuzovat, jsou následující: Důvody k migraci – cílem je posoudit důvody, které stojí za rozhodnutí společnosti o migraci, proč vlastně chce firma měnit svoje prostředí. Mezi tyto důvody může patřit např. stárnutí hardwaru, nedostatečná kapacita, blížící se vypršení důležitých licencí nebo potřeba úspory, kterou je možné získat použitím cloudu.
Metodika migrace do cloudu
50
Současné prostředí společnosti – zmapování současně provozovaných aplikací ve společnosti a infrastruktury, na které jsou provozovány, získání přehledu o rozsahu migrace. Odhad náročnosti migrace – na základu získaného přehledu o současném prostředí je vhodné zhodnotit náročnost migrace. Zhodnocení obtížnosti je možné zjištěním velikostí databází, množství databázových funkcí a trigerů, používané technologie, množství aplikací a jejích typů. Na základě tohoto zhodnocení je možné vytvořit první odhad množství pracovníků a dobu, která bude k migraci potřebná. Posouzení bezpečnostních nároků – potřebné je posoudit nároky na bezpečnost, které vyplývají z dat a aplikací se kterými společnost pracuje. Bezpečnostní nároky je nutné identifikovat, aby bylo možné ověřit, zda je zvolená cloud řešení splňují nebo ne. Pokud by se musely bezpečnostní opatření upravovat, prodlouží to dobu migrace. Posouzení technických a funkčních požadavků – je důležité posoudit, které části systému jsou vhodné pro provoz v cloudu a které nikoliv, na základě jejich technických vlastností a požadavků na funkce. Odhad potřebných IT zdrojů pro migraci – zjištění zdrojů, které budou použity pro migraci. Potřeba hardwaru a softwaru, zda bude potřebné pořízení nového nebo bude současný dostatečný k běžnému provozu a provádění migrace. Také by měly být posouzený časové možnosti a schopnosti IT týmu, který se bude migrací zabývat. 7.1.2
Analýza cloud řešení a návrh vlastního systému
Pokud firma dostatečně posoudila potřebné oblasti, může přistoupit k analýze a rozhodování o vhodném cloud řešení. Na základě znalosti potřeb svého prostředí a schopností svého IT týmu, by měla provést analýzu nabídky poskytovatelů cloudu. Existující firmy, vlastnící rozsáhlejší infrastrukturu, musí zhodnotit možnosti provozu vlastního cloudu v jejím prostředí. K tomu musí provést analýzu řešení cloudu na vlastních serverech. Pokud není hlavním důvodem k migraci selhávání vlastního hardwaru, je minimálně krátkodobé zapojení vlastní infrastruktury do nového cloudu dobrým řešením. V rámci analýzy požadavků na cílové řešení by se firma měla zabývat podrobněji potřebám databází a aplikací, které používá a možnostem jejich provozu v cloudu. Musí také zhodnotit rozdíly mezi současném a cílovém prostředí, které budou muset být při migraci řešeny. Mělo by být provedeno namapování současných služeb, na jejich ekvivalenty v cloudu. Je možné provést nahrazení celé aplikace, nebo částí systému, nebo je také možné ponechat aplikaci v téměř stejné podobě, jen provést změnu technologií, na kterých je provozována. Firma se již seznámila se svým prostředím a možnostmi cloudu, které může využít. Zná schopnosti své současné infrastruktury a zná požadavky, které má na výsledné řešení. Může tedy přestoupit k návrhu vlastního řešení. Provede rozhodnuté o typu cloudu, který bude používat, jeho jednotlivých částech a produktech,
Metodika migrace do cloudu
51
na kterých bude vystavěn. Také rozhodne o míře zapojení současné infrastruktury. Návrh systému bude použit v následujícím kroku. 7.1.3
Příprava a ověření návrhu
Na základě připraveného návrhu provede realizaci systému. Tento systém nemusí nejdříve splňovat všechny kapacitní požadavky budoucího systému. V první fázi slouží k ověření předpokladů, které byly získány v předchozích krocích. Také je dobré využít systém k bližšímu seznámení se se zvolenými produkty, jejich reálným chováním a schopnosti IT týmu práce s nimi. V této fázi se ještě nevěnujeme vlastním aplikacím, které by měly být v systému provozovány, ale zaměřujeme se na nižší úrovně systému, jako je např. chování hardwaru, na kterém cloud běží, vlastnosti využitých služeb, možnosti jejich ovládání nebo třeba možnosti zapojení do současných zavedených praktik ve firmě (např. vývojové nástroje). Pokud se v průběhu tohoto kroku objeví nějaké problémy nebo nesrovnalosti s původními předpoklady, je důležitý návrat k předchozímu kroku a změna návrhu systému. Analýza, návrh a příprava systému může zabrat velké množství času, které ovlivňuje dobu trvání celé migrace a tím i její cenu. Možným způsobem, jak toto omezit je zpracování menších projektů, na kterých se ověří jednotlivé předpoklady a tyto projekty potom poslouží k vytvoření celého systému. 7.1.4
Příprava a migrace dat
Byla vytvořena první verze cloud systému společnosti, který bude použit pro provoz migrovaných služeb. Součástí tohoto systému jsou databázové služby a služby úložišť dat. V případě migrace souborů je situace jednoduchá, dá se provést pomocí základních systémových příkazů nebo rozhraní použitých služeb. Případ migrace databázi může být proveden více způsoby. Mnoho databázových služeb obsahuje migrační rozhraní, které tento úkol usnadňuje. Pokud se databáze přesouvají na službu nižší úrovně, je vhodné rozdělit ji na více kroků: Migrace databázových schémat – spočívá v přenosu tabulek, indexů a pohledů, ze kterých se databáze skládají. Pokud se jedná o stejný typ databáze, je přenos jednoduchý. Pokud se liší, je potřeba provést jejich transformace. Migrace dat – migraci samotných dat je vhodné provést minimálně ve dvou krocích. V prvním kroku je přenesen reprezentační vzorek dat, na kterých je otestován migrační proces a chování dat v novém systému. Jakmile otestujeme reprezentační vzorek, je možné použít stejného procesu k přenosu všech dat. Migrace databázových funkcí – pokročilejší databázové systémy mohou obsahovat řadu procedur, trigerů a pohledů, které implementují obchodní logiku společnosti a obstarávají další funkce. V případě, že by nový systém nepodporoval některé z funkcí, je nutné připravit jejich nahrazení.
Metodika migrace do cloudu
52
Postupný přenos databází může být vhodný také k jejich pročištění. Je možné identifikovat části databází, které již nejsou používány, provedení archivace starších dat, které již nemají využití ve skutečném provozu a podobně. Takové pročištění databáze přináší obvykle zvýšení její přehlednosti, rychlosti a celkového výkonu. Jakmile jsou data přenesena do cloudu, je obvykle možné začít jejich používání při zanechání aplikací ve starém systému, stačí upravit způsob, jakým se aplikace připojují k databázím. I z tohoto důvodu je lepší provést nejdříve přenos databází a až potom přenos aplikací. 7.1.5
Příprava a migrace aplikací v cloudu
Při migraci aplikací je nutné rozdělit přenášené aplikace do skupin, dle způsobu, jakým budou přeneseny. Těmito způsoby jsou: Přenos aplikace jako celku – týká se aplikací, které je možné vzít a celé přesunout do cloudu. Možnost takového přenosu záleží např. na typu aplikace, na jejích technologiích nebo na požadavcích, které na provoz v aplikaci máme. Rozdělení aplikace na části a jejich přenos – vybereme aplikace, které je možné rozdělit na relativně samostatné části, a tyto části přesunout do různých služeb cloudu. Znovuvytvoření aplikace v cloudu – některé aplikace není možné v cloudu provozovat, a jejich další provoz v současném prostředí není také možný. Takové aplikace je nutné znovuvytvořit přímo v cloudu. I když to může být náročnější, je možné využít všech výhod, které cloud přináší. Na základě analýzy aplikací, které se budou přenášet, je vhodné vystavět plán přenosu. Podle tohoto plánu se potom postupně přenese aplikace, provede se její otestování a případné úpravy a následně se přejde k další. 7.1.6
Tvorba plánu pro ošetření výpadků
Poskytovatelů cloud produktů nabízejí obvykle mnoho způsobů, jak zajistit obnovu systému v případě výpadku. I přes to je dobré mít připravenou strategii, která se aplikuje v případě výpadku, který nebude zvládnut automatickými službami cloudu. V rámci takové strategie by měly být řešeny minimálně tyto oblasti: Tvorba záloh dat a instancí – rozhodnutí o tom, jak často, kam a jak ukládat zálohy dat a částí systému. Monitorování běhu služeb – jakým způsobem bude správce upozorněn na výpadek systému. Obnova běhu systému po výpadku – jakým způsobem budou obnovy provedeny, možnost provozu záložního systému např. v případě selhání hardwaru.
Metodika migrace do cloudu
7.1.7
53
Testovací provoz systému
Na začátku tohoto kroku máme k dispozici funkční cloud systém, na kterém jsou k dispozici firemní data a spuštěny aplikace potřebné pro provoz firmy. Každá jeho součást byla testována samostatně, ale než se přejde k nasazení systému do plnohodnotného provozu je potřeba provést otestování systému jako celku. Testování v průběhu migrace je často prováděno techniky a dalšími pracovníky IT oddělení (členem týmu může být i tester). Kromě samotného provozu systému je také dobré otestovat platnost navrhnutých metod obnovy po výpadku a jeho částí. Vzhledem k důležitosti bezpečnosti cloud systému by mělo být součásti testování i hledání bezpečnostních mezer a nedostatků. Aby byl systém dobře použitelný a ověřily se jeho vlastnosti a funkčnost, je vhodné jej zpřístupnit i budoucím uživatelům. Pokud byla migrace provedena úspěšně, neměli by uživatelé v podstatě poznat žádné rozdíly, kromě těch, které plynou z výhod cloudu. Kromě testování uživateli můžeme provádět i zátěžové testy systému, abychom identifikovali jeho slabé části a posoudili celý systém. V průběhu testování sledujeme chování uživatelů, chování systému. Hledáme nejvíce zatěžovaná místa a místa, která vyznačují problémy. Na základě získaných znalostí o cloudu také identifikujeme oblasti, které by úpravou mohly získat lepší funkčnost díky provozu v cloudu. Získané poznatky z testování celého systému mohou vést ke změně jeho návrhu (v lepším případě jen jeho části) nebo mohou posloužit jako základ následujícího kroku. 7.1.8
Optimalizace aplikací a systému
Informace získané v testovací fázi použijeme pro úpravu struktury vytvořeného cloudu nebo úpravu přenesených aplikací. Cílem je zvýšení spolehlivosti a výkonu celého systému. Oblasti, kterými se v rámci optimalizace můžeme věnovat, jsou např.: Nedostatečné vyhrazené systémové zdroje – nedostatečné množství výpočetních, databázových nebo síťových zdrojů přiřazených určité části systému. Vede ke zpomalování běhu služeb. Řešením může být jednoduché navýšení zdrojů, ale také analýza běhu programu a jeho optimalizovaní. Pokud k zatížení dochází jen nárazově ve špičkách, je vhodné využití možností škálovatelnosti cloudu. Nevhodný běh databázových dotazů – může se ukázat, že databázové dotazy některých aplikací způsobují zbytečné vytížení, které se v předchozím řešení neprojevilo. Může to souviset např. se zpracováním transakcí nebo s rozmístěním datových zdrojů. Nejlepší způsob optimalizace je úprava aplikace, při které bereme více v potaz vlastnosti cloud řešení. Využití škálovatelnosti a elasticity – podstatnou výhodou cloudu je právě škálovatelnost a elasticita. Poskytovatelé cloud služeb nabízí cesty, jakými je lze provádět automaticky po stanovení určitých pravidel.
Metodika migrace do cloudu
54
Posílení bezpečnosti – i pokud při testování nebyly nalezeny žádné bezpečnostní problémy, lze využít bezpečnostních služeb v oblasti cloudu pro navýšení jeho bezpečnosti. Používání systému – cloud systémy umožňují jednoduché spouštění a ukončování instancí a strojů, na kterém jsou provozovány. Služby poskytovatelů cloudu bývají placeny dle využití procesoru nebo paměti, vlastní cloud musíme minimálně napájet elektrickou energií. Pokud získáme přehled o době, kdy je systém skutečně používán, je možné vytvořit časový rozvrh, ve kterém bude systém spuštěn naplno. Mimo tento rozvrh můžeme vypínat jednotlivé instance a servery, na kterých systém běží a tím omezit velikost nákladů. 7.1.9
Kompletace zavedení systému
Systém byl úspěšně otestován a následně optimalizován. Veškeré jeho části běží dle předpokladů a vykazují předpokládané vlastnosti. V systému je uložen jen reprezentativní vzorek dat, se kterými bylo pracováno, případně obsahuje data, která nemusí být aktuální, v závislosti na době jejich migrace. Proto se před předáním systému do používání musí provést jejich synchronizace. Pokud se výsledný systém neliší od předchozího, je možné pomocí např. změně DNS záznamů nebo adres systémů provést přepnutí starého řešení na nové, aniž by to uživatelé postřehli nebo potřebovali nějaké rozsáhlejší školení. Pokud se ale některé části systému významněji změnily, je potřeba provést zaškolení uživatelů. Jakmile jsou uživatelé seznámení s novým systémem a je provedeno přepnutí systémů, může se začít nový systém plně používat. Pokud to prostředky dovolují, je možné provozovat oba systémy vedle sebe po určitou dobu. 7.1.10
Podpora a dokumentace
Po zavedení systémů do praxe je dobré podržet si aspoň některé členy týmu, kteří migraci prováděli, aby mohli poskytovat podporu při řešení problémů, které se mohou objevit hned po zavedení systému. Problémy mohou souviset s neznalostí nového systému, nepředvídané problémy s výkonem aplikací nebo databází, problém s během částí systému apod. Výsledný systém celé migrace by také měl být dobře zdokumentovaný. V dokumentaci by měly být popsány všechny části systému, způsob jejich vzájemné komunikace, metody použité pro jejich zabezpečení, způsoby zálohování apod. Tato dokumentace by měla být udržována stále aktuální pro potřeby budoucí údržby a vývoje.
7.2
Ověření metodiky
Jak už bylo v práci zmíněno, metodika bude ověřena použitím na příkladu společnosti Abstract s.r.o. Některé kroky navržené metodiky jsou již obsaženy v samotné práci a zde budou uvedeny jen odkazy na patřičné kapitoly.
Metodika migrace do cloudu
55
Prvotní posouzení migrace V rámci posuzování je věnován prostor následujícím oblastem: o Důvody pro migraci - Společnost Abstract s.r.o. si za dobu svého fungování vybudovala vlastní infrastrukturu pro provoz svých systémů. Tato infrastruktura se rozrostla na velké množství serverů různých velikostí a výkonu. Hardware těchto serverů stárne a klesá jeho spolehlivost. Vzhledem k jejich množství a ne příliš velké přehlednosti, vyžaduje jejich správa a údržba velké množství času, který jim musí IT zaměstnanci věnovat a tím rostou náklady. Část infrastruktury je provozována přímo v prostorách společnosti, kde je účtována spotřeba elektrického proudu. Serverovna, složená z mnoha strojů, se nevyznačuje zrovna velkou úsporností. Většina serverů je virtualizováno pomocí hypervizoru Xen. Jednotlivé instance ale nemají jasný účel a obvykle obstarávají více služeb a aplikací zaráz. Kvůli tomu kolísá jejich výkon a problém jedné služby ohrožuje i další. o Současné prostředí společnosti – Aplikace a služby provozované na infrastruktuře byly popsány v 5. kapitole. o Odhad náročnosti migrace – Většina aplikací je vystavěna na relačních databázích MySQL. Některé databáze dosahují velikosti několika GB, po archivaci a pročištění by mělo ale dojít ke zmenšení množství záznamů a jejich přenos do cloudu by měl být poměrně jednoduchý. Množství aplikací je větší, ale jsou poměrně dobře odděleny, spolu komunikují hlavně prostřednictvím databáze, takže by v tomto ohledu neměly vznikat problémy. Vzhledem k jejich nezávislosti lze jejich přechod provázet postupně. o Bezpečnostní nároky - V databázích společnosti jsou uloženy i citlivá data, jako informace o zákaznících, smlouvy, faktury a uživatelská data návštěvníku, soutěžících apod. Tato data vyžadují vyšší bezpečnostní oprávnění. o Technické a funkční požadavky – všechny služby popsané v 5. kapitole je možné provozovat v cloudu bez větších problémů. o Odhad potřebných zdrojů – vzhledem k rozsáhlosti současné struktury, není potřeba pořizování žádného nového hardwaru. Z provozovaných serverů budou vyhrazeny zdroje, na kterých začne vznikat nový cloud systém. Analýza cloud řešení a návrh vlastního systému Jednotlivé cloud služby a serverová řešení byla popsána v kapitolách 3 a 4. Na základě znalostí cloudu, analýzy služeb, virtualizačních řešení a cloud platform bylo rozhodnuto o následující podobě systému. Navrhovaný cloud bude hybridního typu a bude se skládat z více částí.
Metodika migrace do cloudu
56
První část je tvořena privátním cloudem provozovaným na současné infrastruktuře společnosti. Vzhledem k velkému množství vlastněných serverů byl vybrán systém Ubuntu MaaS, který bude použit k zapojení serverů do infrastruktury. Jednotlivé servery budou postupně uvolňovány a připojovány. Náhled grafického administračního rozhraní systému MaaS s šesti připojenými servery zobrazuje Obrázek 2: Ukázka rozhraní MaaS systému. Jako základní operační systém pro centrální MaaS server bylo zvoleno Ubuntu Server. Na tento systém budou postupně převáděny i ostatní servery. I když je systém MaaS určen primárně pro fyzické servery, je možné k němu připojit i virtuální instance systému KVM. Proto budou současné Xen virtuální stroje nahrazeny KVM instancemi. Na vytvořenou strukturu fyzických a virtuálních serverů budou následně pomocí služby Juju umístěny potřebné komponenty pro provoz služeb, jako je MySQL databáze nebo Apache Web Engine. V tomto privátním cloudu bude provozováno úložiště dokumentů, vlastní kancelářské nástroje a prezentační část výsledků statistických nástrojů. Dále zde bude provozován i systém SugarCRM. Původně bylo zvažováno využití služeb společnosti SalesForce.com, ale vzhledem k poměrně častým požadavkům na proprietární úpravy systému, bylo rozhodnuto o využití systému, jehož funkce lze upravovat.
Obrázek 2: Ukázka rozhraní MaaS systému
Součástí MaaS infrastruktury, ale ne plně integrovanou součástí cloudu, je systém VoIP. Jeho provozní část stojí jako samostatný virtuální stroj. Databáze a úložiště, které používá, budou součástí cloudu.
Metodika migrace do cloudu
57
Samostatnou částí celé lokální infrastruktury je virtuální server Windows pro provoz účetního systému Pohoda. Vzhledem k dlouholetým zkušenostem s tímto programem je rozhodnuto o jeho ponechání. Zálohy databáze, které jsou v tomto programu tvořeny, budou ukládány v cloud úložišti. Tím bude i tento systém částečně spojen s cloudem. Druhou částí hybridního cloudu je postavena na produktech společnosti Amazon. Z rozsáhlé nabídky těchto služeb byly vybrány produkty Amazon EC2 pro provoz virtuálních instancí, Amazon RDS pro provoz databází a Amazon S3 pro úložiště dokumentů. V první fázi bude tato část systému použita jako rozšíření výkonu v případě potřeby a jako záložní řešení v případě výpadku. Postupně bude snižováno množství serverů lokálního cloudu a služby budou přenášeny do Amazonu. Výsledná struktura navrženého cloudu je pro lepší představu naznačena na Obrázek 3: Návrh cloud systému.
Amazon Web Services
Lokální cloud
MaaS
Obrázek 3: Návrh cloud systému
Příprava a ověření návrhu Pro počáteční fázi přípravy systému bylo provedeno uvolnění jednoho serveru ze současné infrastruktury. Na tento server byl instalován systém Ubuntu Server s řídícím rozhraním Ubuntu MaaS. Zároveň bylo na tomto stroji vytvořeno několik KVM instancí. Na tyto jsou umístěny potřebné Charms použitím soft-
Metodika migrace do cloudu
58
waru Juju. Pomocí systému Juju lze také umisťovat Charms přímo do Amazon WS služeb. Zároveň byl na serveru Amazon vytvořen nový uživatelský účet pro využívání produktů z řady AWS a byly otestovány funkce Amazon EC2, RDS a S3. Pro systém VoIP ústředny byla připravena virtuální instance systému CentOS s ústřednou Asterisk v poslední verzi. Nová instalace systému Windows Server 2012, jehož licenci firma vlastní, byl a připravena pro aplikaci Pohoda. Ta je také virtualizována, ale není součástí MaaS. Příprava a migrace dat Data jsou migrovaná z databází umístěných na různých serverech. Jedná se o přenos relační databáze na relační databázi. Problémy, které se při této migraci můžou vyskytnout, jsou tedy pouze mezi verzemi, ale na žádné větší nebylo naraženo. Při přípravě dat bylo provedeno odstranění různých kopií tabulek a databází, vytvořených pro testovací a vývojové jednorázové účely, byla provedena kontrola duplicit v databázích a archivace starších záznamů. Přenášeny jsou databáze systému SugarCRM, kancelářských nástrojů a databáze, ze které se prezentují výsledky statistických nástrojů. Data VoIP ústředny a nezpracovaná data statistik přenášena v této fázi nebyla, byly přeneseny jen jejich schémata, aby bylo možné se k nim v testovacích fázích alespoň připojit. Příprava a migrace aplikací v cloudu Podle aplikací, které se přenáší, byl vytvořen následující plán: o Přenos systému SugarCRM
Vzhledem k množství vlastních změn provedených ve verzi systému, je přenesen jako celek do nového cloudu. V následujícím testování budou sledovány nejčastěji používané části systému. Pro porovnání s nejnovější verzí aplikace. Na základě porovnání funkcí bude provedena aktualizace verze softwaru, databáze a doplnění vlastních úprav. SugarCRM je přenese na vlastní virtuální instanci.
o Přenos kancelářských nástrojů Skupina nástrojů pro péči o zákazníky – Celý MVC systém nástrojů postavený na frameworku Kohana je přesunut do na novou instanci v cloudu. Upravena konfigurace frameworku, připojení do databází a aktualizovány uživatelská oprávnění.
Skupina nástrojů pro editaci obsahu – Nástroje této skupiny nejsou řešeny jednotným způsobem. Editory jsou založeny na knihovně phpMyEdit a nástroje pro publikaci, archivaci a mazání záznamů jsou řešeny různými způsoby s nepřehlednou konfi-
Metodika migrace do cloudu
59
gurací. K odstranění těchto nejasností bylo rozhodnuto o jejich sloučení do jednoho systému. Za tímto účelem byla na novou instanci cloudu instalována nová verze Kohany, do které jsou nástroje přeneseny. Jedná se tedy o znovu vytvoření aplikací v cloudu. o Přenos statistických nástrojů – Tyto nástroje mají prezentační vrstvu a vrstvu pro zpracování dat. Zpracování údajů je náročnější, ale probíhá nárazově. Proto byly tyto dvě vrstvy rozděleny. Prezenční vrstva – Přenesena do stejného systému Kohana, jako nástroje pro péči o zákazníky, protože potřebuje stejná data a má podobnou funkci. Zpracování dat – Pro tuto vrstvu byla vytvořena samostatná virtuální instance, která bude spouštěna jen v případě potřeby zpracování dat. o Systém Pohoda – na připravené instanci Windows Server 2012 instalována Pohoda. Do ní bude přenesena databáze ze současně používané verze. S touto aplikací není možné provádět žádné větší operace. o VoIP systém – Pro spuštění VoIP ústředny z nové instalace CentOS a Asterisk je nutný pouze přenos konfiguračních souborů a změna připojení do databáze, která je v současnosti lokální, ale nově bude provozována v cloudu. o Úložiště – pro vybudování vlastního úložiště bud využito komponenty systému OpenStack s názvem Swift, která umožňuje provoz ukládání dat. Pro ovládání této služby bude vytvořena nová aplikace, jejíž tvorbě se věnuje kapitola 7.3. Tvorba plánu pro ošetření výpadků Vzhledem k tomu, že hlavní část cloudu je provozována na vlastním systému, je nutné připravit způsob obnovy v případě výpadku. V rámci tohoto systému jsou sledovány tři skupiny: o Databáze – pro zálohování databází je použito techniky Master – slave replikace. Slave databáze jsou provozovány na různých virtuálních systémech a různých serverech. Díky tomuto řešení je možné obnovovat databáze v případě výpadku Mastera i např. vyrovnání velké zátěže. Zálohy jsou zde tvořeny automaticky, obnova je nutná manuální. o Instance – Vzhledem k oddělení dat a aplikací jsou virtuální instance tvořeny v podstatě jen systémem a soubory aplikací, jejich velikost tedy není značné. Po zprovoznění aplikací na jejich instancí jsou vytvořeny jejich zálohy a ty jsou umístěny na jiný hardware, odkud je ho možné spustit. Zálohování a obnovování je prováděno ručně. o Úložiště – Díky využití OpenStack služby Swift není nutné se příliš věnovat ošetření úložiště, jelikož se o to služba stará sama.
Metodika migrace do cloudu
60
o Monitorování – Sledování běhu služeb je prováděno samotnými uživateli. V případě výpadku ohlásí problém administrátorovi a ten provede nutnou opravu. Do budoucna je nutné vytvoření aplikace (nebo výběr existujícího řešení), která bude monitorovat běh instancí, databází a dostupnost aplikací. Tato aplikace bude v první verzi jen informovat administrátora, v dalších verzích by měla i automaticky provádět obnovy. Testovací provoz systému Aplikace a databáze byly testovány v průběhu jejich přenosu. Následně byly části zaměstnanců, kteří používají aplikace denně, předány adresy webových rozhraní směřující do nového systému. Uživatelé strávili několik hodin denně v průběhu týdne prací v tomto systému. Následně předali informace o chybách a svých pocitech z používání aplikací administrátorům systému. V rámci testování bylo také otestována replikace Master – Slave a obnova instancí z vytvořených záloh. Optimalizace aplikací a systému Na základě těchto testů byly provedeny opravy chyb a bylo rozhodnuto o větším rozdělení databází na více databázových serverů a navýšení zdrojů některých instancí, které projevovaly nižší výkon. Toto bude provedeno, jakmile se uvolní více zdrojů po spuštění nového systému. Vzhledem k tomu, že většina částí systému je používána jen v pracovní době zaměstnanců, bylo rozhodnuto o vypínání nepotřebných částí systému. Jedná se především o instance, provozující systém SugarCRM, Windows Server s programem Pohoda a editační nástroje obsahu. Spouštění instance pro zpracování dat je prováděno jen v případě potřeby. Ústředna běží pořád, jelikož zpracovává i hovory přicházející mimo pracovní dobu. Kancelářské nástroje obsahují i nástroje, které provádí různé náročnější přenosy dat a synchronizace databázi právě v době, kdy pracovníci nejsou ve firmě. Z tohoto důvodu není jejich instance vypínána. Instance jsou rozděleny tak, aby servery, na kterých jsou spuštěné, mohly být vypnuty v případě, že žádná instance není potřebná. Vypínáni a zapínání virtuálních instancí i serverů je možné pomocí systému MaaS. Pro ovládání běhu instancí a serverů bude v budoucnu tvořeno rozhraní, které bude provádět tyto operace automaticky nebo umožní uživatelům, aby si spouštěl potřební části sám. Kompletace zavedení systému Systém je kompletně spuštěn na části infrastruktury, je otestován uživateli a optimalizován pro používání. Jsou aktualizována data uložená v databázích, aby obsahovala nejnovější data. Po synchronizaci dat je provedena změna DNS záznamu a na původních adresách se vyskytují aplikace běžící na novém systému.
Metodika migrace do cloudu
61
Části původní infrastruktury jsou následně zálohovány a ukládány pro případ budoucích problému. Uvolněné zdroje jsou zapojeny do MaaS infrastruktury, případně jsou virtuální instance úplně odstraněny a jejich zdroje jsou přiřazeny novým. Probíhá dokončování nástrojů určených pro monitorování systému a ovládání jeho částí. I bez těchto nástrojů je ale systém připraven k používání. Podpora a dokumentace V průběhu provádění migrace byly zaznamenávány prováděné změny v aplikacích, jejich nové rozdělení a umístění. Pro tuto dokumentaci je vytvořena instance, na kterou je pomoci Juju umístěna služba MediaWiki, kerá je podobná populární webové encyklopedii Wikipedia. V dokumentaci budou zapsány i budoucí změny. Tým, který migraci prováděl je součástí stálého vývojového týmu společnosti Abstract s.r.o. a je tedy k dispozici pro poskytování podpory po provedení migrace. V případě jeho obměny bude provedeno zaškolení nových správců, kteří se mohou opřít o udržovanou dokumentaci.
7.3
Vývoj aplikace v cloudu
V průběhu aplikace migrace bylo rozhodnuto o použití komponenty Swift, která je součástí systému OpenStack. Swift slouží k ukládání a získávání dat pomocí jednoduchého API. Zajišťuje spolehlivost, přístupnost a bezpečnost uložených dat. Existují klienti pro systémy Windows i Linux (pokud podporují Amazon S3, měly by podporovat i Swift), kteří jsou schopní přistupovat k souborům a objektům uloženým pomoci Swift. Vlastní aplikace využívající dostupné aplikační rozhraní (API) může přinést lepší kontrolu nad přístupy k datům, jejich kontrolu nebo vyhledávání. Může se jednat i o citlivá data, které nechceme svěřovat cizí aplikaci. Požadavky na aplikaci Účelem aplikace je ovládání datového úložiště postaveného na řešení Swift. Požadavky na funkce aplikace jsou následující: o Připojení k Swiftu. o Přihlašování uživatelů. o Přístup k souborům ve Swiftu. o Vkládání nových souborů. Návrh a implantace aplikace Vzhledem k tomu, že většina aplikací společnosti je provozována pomocí programovacího jazyka PHP, bude i tato aplikace postavena na něm. Pro udržení kvality aplikace a také její podobnosti ostatním aplikacím ve firmě bude použito frameworku Kohana, jako základu pro tvorbu aplikace (User Guide, Kohana).
Metodika migrace do cloudu
62
K použití API Swift by bylo možné napsat novou knihovnu, která by obsluhovala všechna potřebná volání. V dnešní době je ale velmi často výhodným řešením použití existujících knihoven, které vznikají v rámci komunity, která se tvoří kolem produktů. Tak je tomu i v tomto případě a pro komunikaci s API bude použito otevřeného projektu OpenStack PHP-Client (OpenStack PHP-Client, GitHub). Pro získávání informací o uživatelích bude použita MySQL databáze umístěna ve vytvořené infrastruktuře. K vytvoření přívětivější aplikace bude využit framework TwitterBootstrap pro tvorbu webových stránek a jeho zdarma dostupná šablona pro tvorbu webových stránek (Getting Started, Twitter Bootstrap). Výsledná aplikace Aplikace obsahuje popsané funkce. Má dva hlavní přehledy. Prvním je stránka s uloženými soubory v jednotlivých složkách. Odtud je možné soubory procházet, prohlížet je a případně mazat. Druhou část je určena pro vkládání nových souborů. Zde je možné také vytvářet nové složky. Funkce aplikace jsou pouze základní, ukazují možnost komunikace s OpenStack Swift komponentou pomocí PHP. Možnosti dalšího vývoje takové aplikace jsou značné. Zdrojový kód aplikace je k práci přiložen v elektronické podobě. Náhled aplikace zobrazuje Obrázek 4: Rozhraní aplikace pro nahrání souborů do cloudu.
Metodika migrace do cloudu
63
Obrázek 4: Rozhraní aplikace pro nahrání souborů do cloudu
7.4
Ekonomické faktory ovlivněné migrací
Cloud řešení, které vzniklo jako výsledek aplikování metodiky, není úplně standartním, vzhledem k malému použití služeb poskytovatelů cloudu. Toto vyplývá hlavně z vlastnictví rozsáhlé infrastruktury a snahy o kontrolu nad svými systémy. Toto uspořádání se může v budoucnu měnit, jelikož stárnutím hardwaru a jeho nedostatečnou kapacitou se bude infrastruktura zmenšovat a bude potřebné znovu zhodnotit, jestli je výhodnější pořídit nový hardware, nebo začlenit více služeb cloudu od poskytovatelů. Změna provozních nákladů Jak bylo v práci uvedeno, současná infrastruktura je provozována jednak v datacentru společnosti GTS a jednak ve vlastních prostorách firmy. Z tohoto plynou náklady na nájem prostoru v datacentru a dále náklady na provoz serverů v prostorách firmy. Nájem na prostor datacentra se migrací nemění, jelikož je používáno i nadále v novém systému. Náklady na provoz serverů v lokální serverovně firmy ovlivněny migrací jsou. Tato změna vychází především ze získání větší kontroly nad spouštěnými stroji a zvýšením efektivity jejich provozu. Díky tomu není nutné, aby byly
Metodika migrace do cloudu
64
spouštěny neustále a i jejich vytížení je nižší. Tím klesá spotřeba energie samotných serverů i systému pro chlazení vyhrazené místnosti. Díky novému systému, který tvoří více propojená, přehlednější a automatizovaná struktura, byla získána lepší kontrola nad virtuálními instancemi, aplikacemi i daty, které jsou používány. Díky tomu klesají náklady na údržbu a uvolňuje se čas vývojářů a administrátorů pro další činnosti. Zavedením systému pro zálohování a obnovy se snížila i doba řešení problémů. Náklady na migraci K provedení migrace nebylo zapotřebí žádného nového hardwaru ani softwaru. Pro tvorbu nového systému byla použita část provozované infrastruktury a nevznikla ani potřeba nových licencí. Malým nákladem, který vznikl v průběhu migrace, bylo krátkodobé používání Amazon Web Services, kdy byly tyto služby testovány a ověřováno jejich zapojení do systému. Jelikož se nepředpokládá jejich výraznější používání, nebudou tyto náklady dosahovat vysokých hodnot. Hlavními náklady na migraci tedy byla práce a čas administrátorů a vývojářů, kteří se na migraci podíleli. Díky využití vlastního týmu, který je seznámen se všemi systémy společnosti, byly náklady na tuto práci nižší. Zhodnocení Změna ekonomických faktorů, která vznikla provedením migrace, není tak výrazná, jelikož mnoho částí systému zůstalo podobných. Přínosy migrace se budou projevovat delší dobu, nedojde k nějakému výraznému skoku nákladů a úspor. Jednoduchý přehled ovlivněných ekonomických faktorů obsahuje Tabulka 4: Změna nákladů po migraci. Tabulka 4: Změna nákladů po migraci
Provozní Správa Správa Napájení, Hardware Licence faktor hardwaru služeb chlazení Změna
žádná
pokles
pokles
žádná
pokles
Pronájem datacentra žádná
Závěr
8
65
Závěr
Hlavním cílem této práce bylo vytvoření obecné metodiky migrace do cloudu, která by společnostem usnadnila přechod z tradičních serverových řešení na technologii cloud computingu. Metodika je určena primárně menším společnostem, které si nemohou nebo nechtějí pořídit velké hotové cloud řešení nebo nechtějí najmout jinou firmu, aby migraci provedla. Předpokládá se tedy, že firma má kapacitu a schopnosti k provedení přenosu svých služeb. K vytvoření metodiky bylo nutné nejdříve se seznámit s významem pojmu cloud computing. Jeho problematika je vysvětlena na začátku práce. Jsou popsány vlastnosti cloudu, možnosti jeho využití ve firemním sektoru a výhody a nevýhody, které vedou z jeho použití. Pro lepší pochopení problematiky cloud computingu jsou také popsány jeho druhy, modely nabízeních služeb a ekonomické faktory, které jeho provoz ovlivňuje. Významným tématem v oblasti cloudu je jeho bezpečnost a proto je této oblasti také věnován prostor. Trh s cloud službami se neustále rozrůstá a přibývá produktů a jejich poskytovatelů. Proto se po seznámení se základy cloudu, věnuje práce právě poskytovatelům cloudu. Jsou popsány a srovnány nabídky společností, jako Amazon, Microsoft nebo Oracle, jejichž produkty patří mezi velmi rozšířené a populární. Tyto společnosti nabízí hotové služby provozované na jejich systémech, platformy pro provoz a vývoj svých vlastních aplikací nebo i celou infrastrukturu, na kterých si firma může vybudovat svůj vlastní systém. V některých případech firma, zvažující přechod do cloudu, nemusí chtít využít hotových řešení jiných společností, ale chce si vybudovat vlastní cloud systém na své infrastruktuře, kterou má pod kontrolou. Oblasti provozu vlastních cloud systému je tedy věnována další část. Jsou zde popsány základy virtualizace, na které celá technologie cloudu silně závisí, dále zde jsou uvedeny a srovnány některá z mnohých virtualizačních řešení pro servery a na závěr jsou uvedeny platformy a systémy, které umožňují vybudování cloudu na virtualizovaném prostředí. Po seznámení se s cloudem, nabídkou poskytovatelů i vlastních řešení cloudu jsou popsány služby využívané ve společnosti a o jejichž provozu v cloudu je uvažováno. Pro popsání těchto služeb posloužila společnost Abstract s.r.o., jejíž služby jsou popsány. Jedná se základní druhy softwarového vybavení, které společnosti v různých podobách, používají. I když se tedy jedná o popsání služeb jedné společnosti, mohou se zde poznat i jiné firmy. Jak již bylo řečeno, cílem práce je vytvoření metodiky migrace. Proto je věnována také část obecné problematice migrace služeb a migrace služeb do cloudu. Jsou zde uvedeny některé faktory, které vyplývají z migrace. Také jsou zde uvedeny možnosti migrace do cloudu, tak jak je publikovali někteří z poskytovatelů cloud služeb a řešení. Tyto možnosti se věnují hlavně problematikou spojenou s přechodem právě na produkty těchto firem. Následně přichází samotný návrh metodiky migrace do cloudu. Vytvořená metodika, skládající se z několika navazujících kroků, popisuje postup, který by firma, provádějící migraci do cloudu, měla následovat. Každý krok obsahuje popis oblastí,
Závěr
66
kterými je nutné se zabývat a činností, které se mají vykonat. Následování těchto kroků vede k vytvoření vlastního cloud řešení a provozu migrovaných služeb z nového systému. Následně byla vytvořená metodika použita k provedení migrace služeb společnosti Abstract s.r.o. a je popsáno, jakým způsobem vypadá provedení jednotlivých kroků právě u této společnosti. Pro připravený systém je také vytvořena aplikace, která ovládá cloudové úložiště souborů, které je jeho součástí. Tato aplikace slouží jako ukázka možností práce s cloudem ve vlastních programech. Po provedení migrace a vývoji aplikace, jsou obecně zhodnocené ekonomické faktory, které byly migrací ovlivněny. Přesné hodnoty nejsou známy, jelikož způsob, jakým byla migrace provedena, se projeví spíše až v dlouhodobém hledisku. Cíl práce, kterým bylo právě vytvoření metodiky migrace, byl splněn. Navržená metodika je dostatečně obecná, aby ji bylo možné použít pro migraci do libovolného cloudového řešení, které si firma zvolí. Funkčnost metodiky byla ověřena na příkladu reálné společnosti, které pomohla ujasnit si připravit se na využití cloud služeb pro svoje potřeby. Řešení, které bylo pro firmu navrženo, je poměrně základní. Nevyužívá příliš služeb jiných společností, a cloud platforma je použita jen okrajově. To vyplynulo z podmínek, ve kterých se společnost nachází (např. rozsáhlá infrastruktura). Po provedení tohoto přechodu je ale firma připravena na další vývoj a přeměnu svých aplikací do cloudové podoby s širším využitím cloudových platform nebo služeb poskytovatelů. Po dokončení této přeměny by mohla plně využít všech výhod cloudu, i těch, kterých se současné řešení dotýká jen okrajově. Vytvořenou metodiku migrace by bylo do budoucna možné rozšířit o nástroje, které by se staly její součástí, a které by usnadnily sledování jednotlivých kroků migrace a samotnou migraci jednotlivých částí systémů. Součástí takového nástroje by také mohlo být napojení přímo na služby některých z hlavních poskytovatelů cloudu, aby byl přechod na tyto služby snazší. Tímto by se z metodiky a nástrojů mohl stát kompletní produkt, který by bylo možno nabízet i komerčně.
Literatura
9
67
Literatura
SOSINSKY, B. Cloud Computing Bible. Wiley India Pvt Ltd. 2011. 528 s. ISBN 9788126529803. MELL, P., GRANCE, T. The NIST Definition of Cloud Computing. [online]. Gaithersburg, 2011 [cit. 2014-05-06]. MD 20899-8930. Dostupné z: http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf. VELTE, A., VELTE, T., ELSEPETER, R. Cloud Computing, A Practical Approach. Columbus. McGraw-Hill Osborne Media, 2009. 352 s. ISBN 0-07-162694-8. CANONICAL LTD. MAAS: Metal As A Service. [online]. 2014 [cit. 2014-05-06]. Dostupné z: http://maas.ubuntu.com/docs1.5. KRUTZ, R. L., VINES, R. D. Cloud Security: A comprehensive Guide to Secure Cloud Computing. Wiley Publishing, Inc, 2010. ISBN 978-0-470-58987-8. RANSOME, J. F., RITTINGHOUSE, J. W. Cloud Computing: Implementation, Management, and Security. Boca Raton: CRC Press, 2009. 340 s. ISBN 978-1-4398-0680-7. REESE, G. Cloud Application Architectures – Building Applications and Infrastructure in the Cloud. Shroff Publishers & Distributors. 2010. 190 s. ISBN 978-81-8404714-1. ERL, T. SOA: servisně orientovaná architektura: kompletní průvodce. 1. vyd. Brno: Computer Press, 2009. 671 s. ISBN 978-80-251-1886-3. Products & Services. Amazon Web Services [online]. 2014 [cit. 2014-04-18]. Dostupné z: http://aws.amazon.com/products/. Products. Google Cloud Platform [online]. 2014 [cit. 2014-04-18]. Dostupné z: http://cloud.google.com/products/. Features. Microsoft Azure [online]. 2014 [cit. 2014-04-18]. Dostupné z: http://azure.microsoft.com/en-us/overview. Cloud Computing. Oracle [online]. 2014 [cit. 2014-04-22]. Dostupné z: https://www.oracle.com/cloud/index.html. Salsesforce Products Overview. Salesforce.com [online]. 2014 [cit. 2014-04-22]. Dostupné z: http://www.salesforce.com/eu/crm/products.jsp. Hyper-V Overview. Microsoft TechNet [online]. 2012, 2014-03-30 [cit. 2014-04-18]. Dostupné z: http://technet.microsoft.com/en-us/library/hh831531.aspx. Microsoft Hyper-V. Microsoft TechNet Blog [online]. 2012 [cit. 2014-04-18]. Dostupné z: http://blogs.technet.com/b/technetczsk/p/microsoft-hyperv.aspx. HAGEN, W. Using KVM virtualization. IBM developerWorks [online]. 2014, 2014-0109 [cit. 2014-04-20]. Dostupné z: https://www.ibm.com/developerworks/linux/library/l-using-kvm/. Guest Support Status. KVM [online]. 2014 [cit. 2014-04-10]. Dostupné z: http://www.linux-kvm.org/page/Guest_Support_Status.
Literatura
68
Products. VMware. [online]. 2014 [cit. 2014-04-25]. Dostupné z: https://www.vmware.com/cz/products.html. Xen Project Software Overview. XenProject. [online]. 2014 [cit. 2014-04-28]. Dostupné z: http://wiki.xenproject.org/wiki/Xen_Overview. OpenShift Origin Product. OpenShift. [online]. 2014 [cit. 2014-06-10]. Dostupné z: https://www.openshift.com/products/origin. The Open Source Cloud Operating System. OpenStack. [online]. 2014 [cit. 2014-0610]. Dostupné z: http://www.openstack.org/software/. Metal as a Service. Ubuntu MaaS. [online]. 2014 [cit. 2014-06-10]. Dostupné z: https://maas.ubuntu.com/. Juju. Ubuntu Cloud. [online]. 2014 [cit. 2014-06-10]. Dostupné z: https://juju.ubuntu.com/ What is Methodology. wiseGEEK. [online]. [cit. 2014-06-05]. Dostupné z: http://www.wisegeek.com/what-is-methodology.htm. LASZEWSKI, T. NAUDURI, P. Migrating to the Cloud: Oracle Client / Server Modernization. Waltham, MA: Elsevier Inc., 2012. ISBN 978-1-59749-647-6. VARIA, J. Migrating your Existing Applications to the AWS Cloud. [online]. 2010-10 [cit. 2014-06-05]. Dostupné z: http://media.amazonwebservices.com/CloudMigration-main.pdf. GOTTS, I. Migrating your application to the cloud. [online]. 2014-03-14 [cit. 2014-0610]. Dostupné z: http://thenextweb.com/insider/2014/03/10/migratingapplication-cloud/. User Guide. Kohana. [online]. [cit. 2014-06-20]. Dostupné z: http://kohanaframework.org/3.2/guide/. OpenStack PHP-Client. GitHub. [online]. [cit. 2014-06-20]. Dostupné z: https://github.com/stackforge/openstack-sdk-php Getting Started. Twitter Bootstrap. [online]. [cit. 2014-06-20]. Dostupné z: http://getbootstrap.com/getting-started/.