Definice cloudu
Cloud je obecný pojem pro cokoliv, kde jde o poskytování pronajímaných služeb přes Internet. Slovo samotné znamená anglicky mrak a pochází ze zvyku kreslit ve schematických obrázcích komunikaci přes Internet jako obrázek mraku, například v následujícím obrázku:
Potíž je, že cloud může znamenat různé věci. Existuje velice precizní definice v dokumentu The NIST Definition of Cloud Computing, která ale zabírá dvě stránky textu, neboť obsahuje pět nezbytných charakteristických vlastností, tři modely služeb a čtyři modely nasazení.
Nejjednodušší je vyjmenovat možné modely nasazení: veřejný, soukromý, komunitní a hybridní cloud, tedy zda jsou služby pronajímány veřejnosti, jen v rámci organizace, uzavřené komunitě nebo smíšeným způsobem.
Nezbytné charakteristické vlastnosti cloudu jsou: samoobsluha podle potřeby, široká dostupnost přes síť, sdílení prostředků, rychlá pružnost a měřená spotřeba.
Nejsložitější na vysvětlení jsou tři možné modely služeb: SaaS, PaaS a IaaS. Nejlépe je asi vysvětlíme na známých příkladech níže.
SaaS - Software jako služba
Model SaaS - Software-as-a-Service - je dobře znám běžným uživatelům, protože to je jediný z modelů služeb cloudu, který přímo používají. Tento model poskytuje nezávislost na koncovém zařízení, jeho služby mohou být použity z libovolného počítače připojeného k Internetu, například osobního počítače (PC), notebooku, smartphonu, tabletu, chytrého televizoru, čtečky elektronických knih, Internetového kiosku a dalších zařízení. Známé příklady SaaS cloudových služeb jsou:
- webové e-mailové služby - GMail, Hotmail, Centrum.cz mail, Seznam.cz Email
- sociální sítě a zasílání zpráv - Facebook, Google+, Twitter
- on-line kancelářské balíky - Google Docs, Microsoft Office 365
- sdílení souborů - Dropbox, Google Drive, Microsoft OneDrive, ownCloud
- knihovny obrázků - Picasa, Flickr, Rajce.net
- knihovny hudebních nahrávek - Spotify, Google Play, iTunes
- knihovny videí - YouTube, Vimeo
- komunikační nástroje - Adobe Connect, WebEx
- software pro podnikání - Salesforce, NetSuite
- správa obsahu webových stránek - Google Sites, Wordpress.com
SaaS se také někdy nazývá „software na vyžádání“ nebo „Application Service Providing“. Poskytovatel SaaS poskytuje software ve formě stáhnutelného výkonného kódu, který lze spustit na uživatelově zařízení, např. JavaScript v uživatelově www prohlížeči, nebo aplikace pro uživatelův operační systém (MS Windows, Linux, OS X, Android, iOS, atd.). Kód prováděný na uživatelově zařízení volá přes Internet platformově nezávislé programové rozhraní (API - Application Programming Interface) umístěné na serverech poskytovatele služby. Takové programové rozhraní je obvykle založeno na protokolu HTTP a někdy může být využito i aplikacemi dalších stran. Pěkný příklad je Google API, které mohou další firmy využít ve vlastních aplikacích určených pro uživatele s Google účtem.
PaaS - Platforma jako služba
Platforma je softwarové prostředí použité pro vývoj a běh aplikací. Model PaaS - Platform-as-a-Service - není viditelný běžným uživatelům, je určen vývojářům a správcům aplikací vyvíjejícím respektive provozujícím aplikace v modelu SaaS.
Známé příklady PaaS jsou:
- Google App Engine (poskytuje prostředí PHP, Python, Java, Go)
- Amazon Elastic Beanstalk (poskytuje Ruby, PHP, Python, .NET, Java, JavaScript)
- Heroku (poskytuje Ruby, PHP, Python, Java, JavaScript, Perl)
- Microsoft Azure Websites (poskytuje PHP, Python, .NET, JavaScript)
- Red Hat OpenShift (poskytuje Ruby, Python, PHP, JavaScript, Perl, Java, Haskell, .NET)
Tyto platformy obvykle poskytují vybrané programovací jazyky s jejich standardními knihovnami a populárními frameworky, jako například Django pro jazyk Python, Ruby on Rails pro jazyk Ruby, nebo Node.js pro jazyk JavaScript. Také poskytují způsoby jak ukládat data, obvykle relační databáze (MySQL, PostgreSQL, Oracle, MS SQL) a non-SQL databáze optimalizované na velkou škálovatelnost (Google BigTable, Amazon DynamoDB).
IaaS - Infrastruktura jako služba
Model IaaS - Infrastructure-as-a-Service - poskytuje virtuální datové centrum. Jeho uživatelé nemusí mít vlastní klimatizované výpočetní sály, zabezpečené proti požáru, se skříněmi naplněnými počítači propojenými kabely a síťovými prvky, s nepřerušitelným přívodem elektřiny.
Poskytovatel IaaS poskytuje virtuální stroje (VM - virtual machine) poskytující kompletní platformu pro běh kompletního operačního systému. Jeden nebo více virtuálních strojů může být umístěno na jednom fyzickém stroji se speciálním virtualizačním softwarem zvaným hypervizor. Známé hypervizory jsou například KVM, Xen, VMware, VirtualBox.
Poskytovatel IaaS obvykle také poskytuje:
- obrazy disků s přeinstalovaným operačním systémem (různé verze Linuxu, MS-Windows)
- síťové služby - virtuální LAN, VPN, přidělování IP adres, firewally, loadbalancery, DNS služby
- ukládání dat - virtuální bloková zařízení, úložiště souborů, úložiště objektů s metadaty, relační databáze, no-SQL databáze, archivaci na magnetické pásky, CDN (Content Delivery Network)
Velcí poskytovatelé IaaS rozmísťují své fyzické prostředky na zeměpisně vzdálená místa, aby katastrofy typu zemětřesení a povodní mohly zničit nanejvýš část jejich infrastruktury.
Uživatelé IaaS vytvářejí a ruší virtuální stroje podle svých potřeb. Můžou to dělat ručně, nebo stanovením pravidel typu „spusť další VM, pokud již spuštěné VM jsou využité na více než 95%“.
Známé příklady veřejných IaaS cloudů jsou:
- Amazon Elastic Compute Cloud
- Google Compute Engine
- Microsoft Azure
- Rackspace Cloud Servers
Je možné vytvořit si vlastní soukromý IaaS cloud pomocí následujících softwarových nástrojů:
- OpenNebula
- OpenStack
- Eucalyptus
- VMware vCloud Suite
Prostředky pronajaté z IaaS cloudu mouho být použity přímo, například pro renderování animovaného filmu či jiné náročné výpočty, nebo jako vrstva pod PaaS a SaaS cloud.
Shrnutí tří typů cloudu
Cloud má tři různé modely služeb:
- Software-as-a-Service poskytuje přístup k softwaru, buď jako stáhnutelnému kódu spuštěnému na klientově zařízení, nebo přes vzdáleně volatelné programové API.
- Platform-as-a-Service poskytuje softwarové prostředí pro provozování aplikací, obvykle zahrnuje konkrétní programovací jazyky a jejich knihovny.
- Infrastrucure-as-a-Service poskytuje služby virtuálního datového centra, tedy virtuální počítače, virtuální sítě a ukládání dat.
Cloud v MetaCentru
MetaCentrum provozuje komunitní IaaS cloud pro náročné výpočty. Více viz heslo Cloud v MetaCentru.
CESNET dále provozuje tyto SaaS služby:
- ownCloud po ukládání souborů
- FileSender pro zasílání souborů
- webové konference
- videoarchiv