Uvod v računalništvo v oblaku RAČUNALNIŠTVO V OBLAKU Univerza v Ljubljani, FRI Center za računalništvo v oblaku www.cloud.si Robert Dukarić, Rok Povše, Matjaž B. Jurič Vsebina Definicija Storitveni modeli računalništva v oblaku Ključne karakteristike SWOT analiza Upravljanje oblaka Načrtovanje kapacitet in elastičnost v oblaku Arhitekturna zasnova računalništva v oblaku Infrastruktura kot storitev (IaaS) Analiza IaaS produktov Platforma kot storitev (PaaS) Java EE 7 in oblak Podatkovna shramba v oblaku Analiza PaaS produktov Programska opreme kot storitev (SaaS) Namestitveni modeli Uporaba javnih oblakov Migracija v oblak Prenosljivost oblačnih storitev med ponudniki Izhodna strategija 2 1 Uvod v računalništvo v oblaku Definicija Računalništvo, pri katerem so dinamično razširljiva in pogosto virtualizirana računalniška sredstva na voljo kot storitev preko interneta. Wikipedia Slog računalništva, kjer so masivno skalabilne IT zmogljivosti dostavljene zunanjim odjemalcem kot storitev, z uporabo internetnih tehnologij. Gartner Nabor disciplin, tehnologij in poslovnih modelov za prikaz IT virov kot storitev na zahtevo. Burton 3 Definicija Množico skalabilnih računalniških virov za gostovanje, ki omogočajo zaračunavanje glede na dejansko porabo. Forrester Model za omogočanje omrežnega dostopa do deljenih računalniških virov (omrežje, strežniki, shramba, aplikacije in storitve), ki so lahko rapidno oskrbovane in izdane z minimalnim trudom vodstva oziroma z interakcijo ponudnika storitve. NIST Gre za aplikacije, strojno opremo in sistemsko programsko znotraj podatkovnih centrov, ki so dostavljene kot storitev preko medmrežja. UC Barkley 4 2 Uvod v računalništvo v oblaku Definicija 5 Definicija PaaS Elastičnost SaaS IaaS Samopostrežba Javni Avtomatizacija Privatni Tipi … Karakteristike Hibridni Namestitveni modeli Znižanje stroškov Večja agilnost Lokalno Prednosti Računalništvo v oblaku Lokalnost … Oddaljeno Distribuirano Sorodne tehnologije Deležniki Storitveno usmerjena arhitektura (SOA) Mrežno računalništvo Organizacije Ponudniki Odjemalci Virtualizacija … 6 3 Razvijalci Uvod v računalništvo v oblaku Tipi računalništva v oblaku SaaS • Software as a Service Odjemalci PaaS • Platform as a Service Razvijalci IaaS • Infrastructure as a Service Administrator 7 Ključne karakteristike Ključne karakteristike računalništva v oblaku lahko obravnavamo iz treh aspektov: • Nefunkcionalni aspekt: – Obravnava lastnosti sistema raje kot specifične tehnološke zahteve. Med ponudniki se zelo razlikujejo. • Poslovni aspekt: – Ključen razlog za vpeljavo računalništva v oblaku v poslovne organizacije. • Tehnični aspekt: – Gre za realizacijo nefunkcionalnega in poslovnega aspekta. Nefunkcionalni aspekt: • Elastičnost • Zanesljivost • Kvaliteta storitev (QoS) • Agilnost in prilagodljivost • Razpoložljivost • Dostopnost 8 4 Uvod v računalništvo v oblaku Ključne karakteristike Poslovni aspekt: • • • • • • Znižanje stroškov Pay-as-you-go model Izboljšan čas na trg (Time to market) Donosnost naložbe (ROI) Pretvorba CAPEX v OPEX Green IT 9 Ključne karakteristike Tehnični aspekt: • • • • • • • • • Virtualizacija Večnajemniški model Varnost, zasebnost in skladnost s predpisi Samopostrežba Avtomatizacija Upravljanje s podatki API-ji in programska podpora Merjenje Orodja za razvoj, upravljanje in nadzor 10 5 Uvod v računalništvo v oblaku SWOT analiza Prednosti (Strengths): • • • • • • Znanje in izkušnje iz sorodnih področij in tehnologij. Izkušnje pri razvoju aplikacij za potrebe gospodarstva. Številne raziskave in izgradnja odprtokodnih tehnologij. Močna skupnost iz področja raziskav SOA in distribuiranih sistemov. Velika sinergija med raziskavami in industrijo. Oskrbovanje kompleksnih procesov kot storitev namesto oskrbovanja nizko-nivojske infrastrukture. • Močna industrija telekomunikacij. • Številne uspešne zgodbe in primeri uporabe po svetu. 11 SWOT analiza Slabosti (Weaknesses): • • • • • • • Pomanjkanje infrastrukture (podatkovnih centor) v Evropi. Majhen poudarek na razvoju novih Cloud tehnologij v Evropi. Večina ponudnikov računalništva v oblaku je v ZDA. Ni prisotne platforme, ki bi omogočila izbiro različnih ponudnikov. Pomanjkanje standardov in interoperabilnosti. Izguba fizičnega nadzora nad lastnimi podatki. Zaklepanje znotraj ponudnika. 12 6 Uvod v računalništvo v oblaku SWOT analiza Priložnosti (Opportunities): • Veliko izkušenj in vključevanja v standardizacijo oblaka. • Potreba po novih podatkovnih centrih po svetu. • Povečan interes po računalništvu v oblaku s strani industrije in akademske sfere. • Oblak predstavlja močan temelj za razvoj mobilnih in tabličnih aplikacij. • Povečana konkurenčnost in produktivnost ponudnikov storitev pri adapciji privatnih, hibridnih in javnih oblakov. • Podpora MSP-jev in „start-up“ podjetjem z izboljšanim ROI-jem. • Novi poslovni modeli za produkte in uporabnike oblaka. • Težnja po premiku iz mrežnega računalništva v računalništvo v oblaku. 13 SWOT analiza Grožnje (Threats): • Za izgradnjo infrastrukture za računalništvo v oblaku so potrebne velike investicije. • Velika odvisnost od zunanjih (neevropskih) ponudnikov. • Latenca je zaradi zagotavljanja federacije oblakov lahko velika. • Zaupanje podatkov in aplikacij tretji organizaciji. • Zagotovitev kontinuitete poslovanje v primeru bankrota ponudnika. • Regulativa na lokalni, nacionalni in internacionalni ravni (US Patriot Act, EU Privacy Law, …). 14 7 Uvod v računalništvo v oblaku Upravljanje oblaka Lokalno IaaS PaaS SaaS Aplikacije Aplikacije Aplikacije Aplikacije Podatki Podatki Podatki Podatki Izvajalno okolje Izvajalno okolje Izvajalno okolje Izvajalno okolje Vmesna programska oprema Vmesna programska oprema Vmesna programska oprema Vmesna programska oprema Operacijski sistem Operacijski sistem Operacijski sistem Operacijski sistem Virtualizacija Virtualizacija Virtualizacija Virtualizacija Strežniki Strežniki Strežniki Strežniki Shramba Shramba Shramba Shramba Omrežje Omrežje Omrežje Omrežje Upravlja ponudnik Upravlja uporabnik 15 Klasično načrtovanje kapacitet Predvidena obremenitev KAPACITETA Primanjkljaj kapacitet Cena na enoto kapacitete Presežek kapacitet Fiksna cena kapacitet Dejanska obremenitev ČAS 16 8 Uvod v računalništvo v oblaku Elastičnost v oblaku KAPACITETA Ni primanjkljaja kapacitet Znižanje začetne investicije Alocirana kapaciteta Ni presežka kapacitet Predvidena obremenitev V primeru manjše obremenitve se kapacitete samodejno znižajo (in s tem stroški) Dejanska obremenitev ČAS 17 INFRASTRUKTURA KOT STORITEV 9 Uvod v računalništvo v oblaku Definicija Zmožnost oskrbovanja procesnih, podatkovnih in omrežnih kapacitet ter drugih računalniških virov. Uporabnik lahko postavi in zaganja poljubno programsko opremo, ki vključuje operacijski sistem in aplikacije. Le-ta ne upravlja in nadzira infrastrukture oblaka, temveč ima nadzor nad operacijskim sistemom, shrambo, postavljenimi aplikacijami in ima običajno omejen nadzor nad omrežnimi komponentami. NIST 19 Ključne karakteristike Virtualizacija Avtomatizacija in orkestracija Cloudbursting Federacija Elastičnost in skalabilnost Samopostrežba Večnajemniški model Merjenje storitev Konsolidacija in centralizacija Migracija virtualcev Replikacija podatkov 20 10 Uvod v računalništvo v oblaku Primerjava s sorodnimi tehnologijami Računalništvo v oblaku in mrežno računalništvo: Skaliranje Distribuirani sistemi Super-računalniki Mrežno računalništvo Računalništvo v oblaku Gruče Web 2.0 Aplikacijska usmerjenost Storitvena usmerjenost 21 Primerjava s sorodnimi tehnologijami Računalništvo v oblaku in mrežno računalništvo: • Poslovni model: – Računalništvo v oblaku: o „Pay-as-you-go“ model – plačamo za storitve, ki jih dejansko porabimo. – Mrežno računalništvo: o Projektno orientirano – uporabniki oziroma skupnost dobi na voljo določeno število enot (npr. CPE ur), ki jih lahko porabi. • Arhitektura: Omrežno računalništvo Računalništvo v oblaku Aplikacija Aplikacija Kolektiv Platforma Viri Enotni viri Povezljivost Infrastruktura Infrastruktura 22 11 Uvod v računalništvo v oblaku Primerjava s sorodnimi tehnologijami Računalništvo v oblaku in mrežno računalništvo: • Arhitektura: – Računalništvo v oblaku: o Infrastruktura – predstavlja računalniške vire na nivoju strojne opreme, kot so izvajalna enota, shramba in omrežje. o Enotni viri – vsebujejo vire, ki so virtualizirani in izpostavljeni višjim nivojem in končnim uporabnikom kot integrirane vire (npr. virtualne stoje, gruče, logični datotečni sistem, podatkovna baza, itn.) o Platforma – dodaja zbirko specifičnih orodij, vmesno programsko opremo in storitve nad enotne vire, da bi ponudila platformo za razvoj, izvajanje in postavitev aplikacij. o Aplikacija - predstavlja aplikacije, ki se izvajajo v oblaku. 23 Primerjava s sorodnimi tehnologijami Računalništvo v oblaku in mrežno računalništvo: • Arhitektura: – Omrežno računalništvo: o Infrastruktura – ponuja dostop do virov, kot so izvajalna enota, shramba in omrežje, repozitorij programske kode. Infrastruktura se pri omrežnem računalništvu nanaša na upravljavce lokalnih virov. o Povezljivost – definira temeljne komunikacijske in avtentikacijske protokole za varne omrežne transakcije (GSI protokol). o Viri – definira protokole za objavo, odkrivanje, pogajanje, spremljanje in zaračunavanje deljenih operacij na individualnih virih (GRAM in GridFTP protokola). o Kolektiv – zajema interakcije med kolekcijami virov, imeniškimi storitvami, kot so storitve za odkrivanje in spremljanje (MDS) ter storitve za razporejanje in posredovanje (Condor-G in Nimrod-G). o Aplikacija – predstavlja aplikacije zgrajene na protokolih in API-jih, ki operirajo v VO (Virtual Organization) okolju. 24 12 Uvod v računalništvo v oblaku Primerjava s sorodnimi tehnologijami Računalništvo v oblaku in mrežno računalništvo: Funkcionalnost Mreža (Grid) Oblak (Cloud) Deljenje virov Kolaboracija (VO-ji, deljenje datotek). Dodeljeni viri niso deljeni. Virtualizacija Virtualizacija podatkov in računalniških virov. Virtualizacija platform programske in strojne opreme. Varnost Varnost preko delegacije poverilnic (credentials). Varnost preko izolacije. Arhitektura Storitveno usmerjena. Uporabniško izbrana arhitektura. Odvisnost programske opreme Domensko odvisna programska oprema. Domensko neodvisna programska oprema. Platformsko zavedanje Odjemalec mora biti „Grid-enabled“. Ponudnikova programska oprema deluje v kostumiziranem okolju. Skalabilnost Skalabilnost vozlišč in strani. Skalabilnost vozlišč, strani in strojne opreme. Samopostrežba Možnost ponovnih nastavitev. Možnost ponovnih nastavitev, samo-popravila (self-healing). Stopnja centralizacije Decentraliziran nadzor. Centraliziran nadzor. Uporabnost Težavnost upravljanja. Uporabniku prijazen. Standardizacija Standardizacija in interoperabilnost. Pomanjkanje standardov za interoperabilnost oblaka. Plačilni model Rigiden. Fleksibilen. QoS zagotovila Omejena podpora. Omejena podpora, osredotočena na razpoložljivost in neprekinjeno delovanje. 25 Vir: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.176.6131&rep=rep1&type=pdf Primerjava s sorodnimi tehnologijami Računalništvo v oblaku in virtualizacija: • Virtualizacija – Zmožnost izvajanja več operacijskih sistemov na enojnem fizičnem sistemu in zmožnost deljenja virov strojne opreme. Virtualizacija Elastičnost Izolacija • Računalništvo v oblaku Konsolidacija Samopostrežba Avtomatizacija 26 13 Uvod v računalništvo v oblaku Amazon Javni ponudnik storitev računalništva v oblaku Storitve so na voljo na samopostrežen način (Self Service) Zaračunavanje po porabi (Pay As You Go) Poln dostop do virtualiziranih storitev EC2 je na voljo v več regijah (Regions) • US-West Oregon, US-West N. California, US-East Virginia, EU-West Ireland, Asia Pacific Singapore, Asia Pacific Tokyo Znotraj vsake regije je na voljo več con za dostop (Availability Zones) npr, za EU-West Ireland: • eu-west-1a,eu-west-1b,wu-west-1c 27 Amazon Na nivoju IaaS so na voljo storitve: EC2, S3, Amazon CloudWatch, Amazon CloudFront, EBS. EC2 (Elastic Compute Cloud) • • • • • Zagotavljanje izvajalnih kapacitet (virtualni stroji) Na voljo so predkonfigurane slike (AMI - Amazon Machine Image) Izberemo želeno konfiguracijo strojne opreme Določimo nastavitve za dostop (ključi) Možnosti samodejnega skaliranja, izenačevanja obremenitev, postavitev na več lokacij, povezovanje za HPC, … • Plača se po porabi (št ur, konfiguracija, AMI) 28 14 Uvod v računalništvo v oblaku Amazon Primer obračunavanja za nove Linux/Windows instance Primer posebne instance: 29 Amazon S3 (Simple Storage Service) • • • • Preprosta shramba na internetu. Dostop do preko podatkov preko REST in SOAP vmesnikov Objekte, velike do 5 TB je mogoče brati, pisati in brisati Organizacija objektov je najbolj podobna datotečni strukturi (primer uporabe: Dropbox) SimpleDB • • • • Ne-relacijska NoSQL podatkovna baza Podatki dostopni preko spletnih storitev Urejenost podatkov je urejena v domene in atribute Urejenost je analogna preglednici (Excel), kjer je domena en dokument ali List/Stran, atributi pa so imena vertikalnih stolpcev po katerih lahko iščemo 30 15 Uvod v računalništvo v oblaku Amazon Amazon CloudWatch • Storitev za spremljanje delovanja storitev • Zbrane podatke je poleg grafov mogoče prejeti tudi programsko • Osnovno spremljanje na 5 minutni interval je brezplačno Amazon CloudFront • Storitev za dostavo vsebin z uporabniku bližje lokacije • Hramba je v obliki S3 bucketa. • Plačevanje po prenosu podatkov in številu zahtevkov 31 OpenStack Uvod: • Predstavlja kolekcijo odprtokodnih tehnologij, ki ponujajo skalabilno in modularno IaaS rešitev v oblaku. • Vsebuje kolekcijo odprtokodnih projektov, ki jih vzdržuje celotna skupnost in ponuja operacijsko platformo in orodja za orkestracijo oblakov. • Trenutno ponuja tri komponente: Compute, ObjectStorage in Image Service. • Je kompatibilen z EC2 in S3 vmesniki. • V OpenStack skupnosti danes sodeluje več kot šestdeset vodilnih podjetij, kot so Rackspace, NASA, IBM, Cisco, Citrix, Dell, Intel, Microsoft in Facebook. 32 16 Uvod v računalništvo v oblaku OpenStack Arhitektura: Mobilne aplikacije, spletni odjemalci, poslovno informacijski sistemi… API sloj OpenStack Compute OpenStack Object Storage OpenStack Image Service OpenStack Identity OpenStack Dashboard 33 OpenStack Arhitektura: • OpenStack Compute (Nova) – ponuja orodje za orkestracijo oblaka in vključuje zaganjanje instanc, upravljanje omrežja in nadziranje dostopa do oblaka različnim uporabnikom. – Kompatibilen z Amazon EC2 vmesnikom. 34 17 Uvod v računalništvo v oblaku OpenStack Arhitektura: • OpenStack Compute (Nova) 35 OpenStack Arhitektura: • OpenStack Object Storage (Swift) – Omogoča izdelavo redundantne in skalabilne shrambe objektov, ki uporablja gruče standardiziranih strežnikov za shrambo ogromne količine podatkov. – Je kompatibilen z Amazon S3 vmesnikom. – Izvira iz Rackspace storage tehnologije (Cloud Files). 36 18 Uvod v računalništvo v oblaku OpenStack Arhitektura: • OpenStack Object Storage (Swift) 37 OpenStack Arhitektura: • OpenStack Image Service (Glance) – ponuja odkrivanje, registracijo in dostavo storitev za virtualne diskovne slike. Omogoča nalaganje privatnih in javnih slik v različnih formatih, kot so VHD, VDI, qcow2, VMDK ter OVF. Image: • Format diska, format vsebnika, velikost, … Image Property: • Poljubni metapodatki slik. 38 19 Uvod v računalništvo v oblaku OpenStack Upravljanje: • • • • • Upravljanje virtualnih omrežij. Upravljanje s slikami virtualnih strojev. Upravljanje z virtualnimi stroji. Upravljanje podatkovne shrambe. Upravljanje z uporabniki in skupinami. • Orodja: – VNC Console in Euca2ools – administrativna konzola. – OpenStack Dashboard – samopostrežni spletni portal (Horizon). Namestitveni modeli: P J H 39 OpenStack OpenStack Dashboard – samopostrežni spletni portal. 40 20 Uvod v računalništvo v oblaku OpenNebula Uvod: • OpenNebula je odprtokodno fleksibilno orodje za gradnjo privatnih, javnih in hibridnih IaaS oblakov. • Ponuja uporabnikom infrastrukture elastično platformo za hitro dostavo in skalabilnost storitev, da bi ugodili dinamičnim potrebam. • OpenNebule orkestrira tehnologije shrambe, omrežja, virtualizacije, spremljanja in varnosti, da bi omogočil izvajanje storitev na distribuirani infrastrukturi. • Storitve se izvajajo v virtualnih strojih, ki se nato nadzirajo in kontrolirajo v oblaku z uporabo OpenNebula Operations Center (SunStone) ali katerim izmed OpenNebula vmesnikov. • Ima Java RPC API za upravljanje z oblakom -> enostavno nadgrajevanje funkcionalnosti. • Razširitev Event handlinga, pošiljanje e-pošte ob določenih dogodkih (manipulacija hostov/instanc). – www.cloud.si 41 OpenNebula Gonilniki Jedro Orodja Arhitektura: Razporejevalnik SQL bazen CLI Ostala orodja Upravitelj zahtevkov (izpostavlja XML-RPC API) Upravitelj VM-jev Gonilnik za prenos Upravitelj gostiteljev Gonilnik VM-jev Upravitelj prenosov Gonilnik informacij Če želimo uporabljati drug hipervizor… 42 21 Uvod v računalništvo v oblaku OpenNebula Arhitektura: Orodja: • CLI – namenjen administratorjem in uporabnikom za manualno manipulacijo z virtualno infrastrukturo. • Razporejevalnik – omogoča administratorjem, da določijo politiko namestitve virtualnih strojev na fizičnih virih. Gonilniki: • OpenNebula podpira dodatne module za interakcijo s specifično vmesno programsko opremo, kot so hipervizorji, oblačne storitve, mehanizmi za prenos datotek ali informacijske storitve. Ti moduli so poimenovani kot gonilniki. 43 OpenNebula Arhitektura: Jedro: • Upravitelj zahtevkov – izpostavlja XML-RPC vmesnik s katerim ločuje funkcionalnosti jedra OpenNebule od zunanjih komponent, kot je na primer Scheduler. • Upravitelj virtualnih strojev – zadolžen za upravljanje in nadzor virtualnih strojev. Ponuja dodaten nivo abstrakcije za ukaze namenjene hipervizorju. • Upravitelj prenosov – dogovoren za prenose vseh datotek (npr. prenos slik VM-jev) potrebnih za pravilno postavitev virtualnih strojev. • Upravitelj virtualnih omrežij – omogoča kreiranje virtualnih omrežij, pri čemer sledi zapisom (IP in MAC naslovom), ki jih virtualni stroji uporabljajo. • Upravitelj gostiteljev - namenjena upravljanju in nadzoru fizičnih gostiteljev, pri čemer uporablja za to primerne gonilnike. • Podatkovna baza – hrani informaciije, potrebne za upravljanje oblaka (temelji na podatkovni bazi SQLite3). 44 22 Uvod v računalništvo v oblaku OpenNebula Upravljanje: • • • • • Upravljanje z gostitelji in gručami. Upravljanje s slikami virtualnih strojev. Upravljanje z instancami virtualnih strojev. Upravljanje z uporabniki/skupinami. Upravljanje z omrežjem. • Orodja: – SunStone – grafični vmesnik. – Ukazna vrstica. Namestitveni modeli: P J H 45 Eucalyptus Uvod: • V osnovi je bil Eucalyptus zasnovan za podporo visoko zmogljivemu računanje (High Performance Computing - HPC) na univerzi v Kaliforniji. • Gre za odprtokodno programsko opremo, ki temelji na Linuxu in implementira skalabilne privatne in hibridne oblake znotraj obstoječe infrastrukture IT organizacij. • Podpira integracijo z Amazon EC2 in S3 storitvami javnega oblaka in na tak način omogoča zmožnosti postavitve hibridnega oblaka. • Lahko nameščen brez dodatnih modifikacij na vseh večjih Linux distribucijah, kot so Ubuntu/CentOS, openSUSE, in Debian. • Razširitev za samodejno skaliranje. • Integracija z Ganglia in Nagios odprto-kodnimi monitoring sistemi. – www.cloud.si 46 23 Uvod v računalništvo v oblaku Eucalyptus Arhitektura: Spletni brskalnik SOAP orodja REST orodja Nadzornik oblaka (CLC) Walrus Gruča B Gruča A Nadzornik gruče (CC) Nadzornik gruče (CC) Nadzornik shrambe (SC) Nadzornik vozlišč (NC) Nadzornik vozlišč (NC) Nadzornik vozlišč (NC) Nadzornik vozlišč (NC) Nadzornik vozlišč (NC) Nadzornik vozlišč (NC) Nadzornik shrambe (SC) 47 Eucalyptus Arhitektura: • Nadzornik oblaka (CLC) - zadolžen za izpostavljanje in upravljanje spodaj-ležečih virtualiziranih virov (strežniki, omrežje in shramba) preko standardnih API—jev (Amazon EC2) in spletnih uporabniških vmesnikov. • Walrus – omogoča shrambo trajnih podatkov, ki so organizirani kot vedra (buckets) in objekti. Je kompatibilen z Amazon S3 vmensikom. • Nadzornik gruče (CC) – združuje informacije o virtualnih strojih in razporeja izvajanje virtualnih strojev na specifične NC enote. Ravno tako je zadolžen za upravljanje omrežja virtualnih instanc. • Nadzornik vozlišč (NC) – nadzira izvajanje, preverjanje in ustavljanje instanc virtualnih strojev na gostitelju, kjer se le-ta izvaja. • Nadzornik shrambe (SC) – ponuja podobne funkcionalnosti kot Amazon EBS in podpira številne datotečne sisteme (NFS, iSCSI, …). 48 24 Uvod v računalništvo v oblaku Eucalyptus Upravljanje: • • • • • • Upravljanje virtualnih strojev. Upravljanje ključev SSH. Upravljanje shrambe in slik. Upravljanje uporabnikov/skupin. Upravljanje omrežja. Upravljanje varnostnih skupin. • Orodja: – Euca2ools – administrativna konzola. – ElasticFox – samopostrežni spletni portal. Namestitveni modeli: P J H 49 OpenStack, Eucalyptus, OpenNebula Namestitev: Vsa ogrodja delujejo na podoben način: • Namestitev je možna na več različnih distribucijah Linuxa (Ubuntu / Debian sta zelo dobro podprta) • Namestitev vključuje veliko število opravil: – Namestitev programske opreme, konfiguracija hipervizorja, konfiguracija omrežja, namestitev podatkovne baze… – Namestitvi sledijo opcijske dodatne nastavitve: o Uporaba MySql namesto SQLite podatkovne baze o Inštalacija grafičnega uporabniške vmesnika za upravljanje z oblakom… • Sledi dodajanje uporabnikov oblaka, ustvarjanje skupin in uvoz slik virtualnih strojev (images). – slike virtualnih strojev morajo biti do neke mere prilagojene za uporabo v oblaku (npr. omogočati morajo takojšen SSH dostop ob zagonu / podpora za preverjanje ključev, itd.) • Ko uspešno opravimo vse te korake, lahko pričnemo z zaganjanjem instanc virtualnih strojev. 50 25 Uvod v računalništvo v oblaku OpenStack, Eucalyptus, OpenNebula Primerjava: OpenStack OpenNebula Eucalyptus Amazon AWS Komponenta identitete Keystone Interna Interna Amazon IAM Komponenta hrambe objektov (Object Store) Object Store (Swift) Interna Walrus Amazon S3 Omrežna komponenta Nova-network Virtual Network Manager Interna Interna Izvajalna komponenta (Compute) Nova-compute Oned Cloud Controller Amazon EC2 Komponenta nosilca (Volume) Nova-volume Interna Storage Controller Amazon EBS Komponenta razporejanja (Scheduler) Nova-scheduler Razporejevalnik (Scheduler) Cluster Controller ELB Nadzorna plošča (Dashboard) OpenStack Dashboard, Horizon SunStone, ElasticFox ElasticFox, Admin UI AWS Management Console 51 VMware vCloud Uvod: • Predstavlja infrastrukturo kot storitev (IaaS), ki lahko streže številnim infrastrukturnim in programskim potrebam, kot so eksperimentiranje, prototipiranje, testiranje in sam razvoj aplikacij. • Omogoča konsistentno in transparentno upravljanje privatnih in javnih vCloud instanc. • Predstavlja nabor storitev za računalništvo v oblaku, ki uporabljajo vCloud Director komponento kot razširitev zmožnosti vSphere virtualizacijske platforme. • Ključne komponente IaaS rešitve vCloud so: – vCloud Director, vSphere, vShield, vCenter Chargeback, vCenter Orchestrator ter vCloud Connector. 52 26 Uvod v računalništvo v oblaku VMware vCloud Arhitektura: vCloud API vCenter Operations vCloud Director vShield Manager vCenter Chargeback vCloud Connector vSphere Orchestrator vSphere API RabbitMQ VADP Fizična infrastruktura VMware Configuration Manager VMware Service Manager Skupni vmesnik Sklad oblaka Upravljanje in orkestracija 53 VMware vCloud Arhitektura: VMware vCloud Director • Storitev, ki omogoča izgradnjo ter izpostavljanje oblakov s pomočjo spletnega portala in programskih vmesnikov. 54 27 Uvod v računalništvo v oblaku VMware vCloud Arhitektura: VMware vCloud Director 55 VMware vCloud Arhitektura: VMware vSphere • Virtualizirana platforma, ki ponuja abstrakcijo nivoja fizične infrastrukture za vCloud. vStorage APIs for Data Protection 56 28 Uvod v računalništvo v oblaku VMware vCloud Arhitektura: VMware vShield • Ponuja omrežno varnost za virtualizirane podatkovne centre z uporabo VMware vShield Edge in vShield Manager tehnologije. 57 VMware vCloud Arhitektura: VMware vCenter Chargeback • Ponuja dinamično merjenje virov, cenovno modeliranje in izdelavo poročil. 58 29 Uvod v računalništvo v oblaku VMware vCloud Arhitektura: VMware vCenter Chargeback 59 VMware vCloud Arhitektura: Vmware vCloud Connector • Ponuja vtičnik s katerim se smejo uporabniki povezati z oblaki, ki temeljijo na vSphere in vCloud Director tehnologijah, ter upravljati te oblake preko enojnega vmesnika. 60 30 Uvod v računalništvo v oblaku VMware vCloud Arhitektura: VMware vCenter Orchestrator • Omogoča avtomatizacijo oskrbovanja in operativnih opravil med VMware in drugimi aplikacijami s pomočjo odprte in fleksibilne arhitekture. 61 VMware vCloud Arhitektura: VMware vCenter Orchestrator 62 31 Uvod v računalništvo v oblaku VMware vCloud Upravljanje: • • • • • Upravljanje z virtualnimi stroji. Upravljanje s slikami virtualnih strojev. Upravljanje z virtualiziranim omrežjem. Upravljanje z uporabniki/računi. Upravljanje s podatkovno shrambo... • Orodja: – VMware vCloud Director – grafični (spletni) administrativni vmesnik. Namestitveni modeli: P J H 63 Microsoft Hyper-V Cloud Uvod: • Omogoča izgradnjo privatnega oblaka s pomočjo Windows Server 2008 R2, Microsoft Hyper-V ter Microsoft System Center produkti. • Temelj produkta je postavljen na Windows Sever platformi skupaj z Windows Server Active Directory Identity Framework-om, Hyper-V virtualizacijsko zmožnostjo in System Center upravljavsko tehnologijo. • S pomočjo System Center Virtual Machine Self-Service portala lahko skrbimo za oskrbovanje, dodeljevanje in uporabo virov znotraj podatkovnega centra. 64 32 Uvod v računalništvo v oblaku Microsoft Hyper-V Cloud Arhitektura: Samopostrežba in oskrbovanje System Center VMM Self-Service Portal Integrirano upravljanje System Center Platforma Windows Server 2008 R2 Hyper-V Identiteta Windows Server 2008 Active Directory 65 Microsoft Hyper-V Cloud Arhitektura: Microsoft System Center • Družina produktov za upravljanje fizičnega in virtualiziranega IT okolja med več podatkovnimi centri, odjemalci in napravami: – – – – Upravitelj virtualnih strojev (Virtual Machine Manager) Upravitelj zaščite (Protection Manager) Upravitelj operacij (Operation Manager) Upravitelj konfiguracije (Configuration Manager) 66 33 Uvod v računalništvo v oblaku Microsoft Hyper-V Cloud Arhitektura: Microsoft System Center Self-Service Portal 67 Microsoft Hyper-V Cloud Arhitektura: Windows Server 2008 R2 Hyper-V • Ključen del Windows Server komponente in predstavlja temeljno virtualizacijsko platformo. Omogoča konsolidacijo strežnikov, izgradnjo dinamičnih podatkovnih centrov, itn. Windows Server 2008 R2 Active Directory • Omogoča upravljanje identitet ter ponuja funkcionalnosti za centralno konfiguracijo in administracijo sistema, uporabnikov in aplikacijskih nastavitev. 68 34 Uvod v računalništvo v oblaku Microsoft Hyper-V Cloud Upravljanje: • • • • • Upravljanje z virtualnimi stroji. Upravljanje zaščite podatkov. Upravljanje operacij. Upravljanje konfiguracij. Upravljanje storitev… • Orodja: – Družina produktov Microsoft System Center. Namestitveni modeli: P J H 69 Apache VCL Uvod: • Virtual Computing Lab (VCL) predstavlja idejo računalništva v oblaku, ki je bila zasnovana na ameriški univerzi North Carolina State University (NCSU) s tesno kolaboracijo IBM-ove iniciative za virtualno računalništvo (IBM Virtual Computing Initiative). • Predstavlja odprtokodni sistem za dinamično oskrbovanje in posredovanje dostopa do samostojnih strojev, kot so univerzitetni računalniki znotraj laboratorijev. • Eden izmed ključnih ciljev VCL sistema je za omejen čas dostaviti računalniško okolje uporabnikom preko spletnega vmesnika. • VCL se sestoji iz treh ključnih komponent: – Spletne komponente, – komponente podatkovne baze in – upravljavskega vozlišča. 70 35 Uvod v računalništvo v oblaku Apache VCL Arhitektura: Spletna komponenta (VCL razporejevalnik) • • • • rezervacije VCL kapacitet, nadzor dostopa, inventar strojev, zgodovino logov. Podatkovna baza Upravljavsko vozlišče Repozitorij slik Fizična postavitev Modul za novo postavitev Virtualna postavitev • • Vozlišče Vozlišče Vozlišče Bladi, VM-ji, stroji v LAB-ih… 80 – 120 blade-ov 71 Apache VCL Arhitektura: • Spletna komponenta – predstavlja jedro VCL oblaka in ponuja orodja za upravljanje, zahtevo in nadzor računalniških virov oblaka. • Komponenta podatkovne baze – hrani vse podatke povezane z rezervacijami VCL kapacitet, nadzorom dostopa, inventarjem strojev in okolja, zgodovino logov, itn. • Upravljavsko vozlišče – zadolženo za dodeljevanje primernega števila strežniških virov, avtomatično namestitev želenega operacijskega sistema, aplikacij in drugih slik programske opreme ter njihovo distribucijo. 72 36 Uvod v računalništvo v oblaku Apache VCL Upravljanje: • • • • Upravljanje s slikami virtualnih strojev. Upravljanje virtualnih omrežij. Upravljanje podatkovne shrambe. Upravljanje uporabnikov/skupin. • Orodja: – Samopostrežni spletni portal. Namestitveni modeli: P J H 73 Nimbus Uvod: • Nimbus je odprtokodno orodje, ki je osredotočeno na ponujanje infrastrukture kot storitve – IaaS za znanstvene namene. • Omogoča tri bistvene storitve: – Izgradnjo privatnih in javnih IaaS oblakov. – Uporabo IaaS oblaka. – Upravljanje IaaS oblaka. • Zasnovo Nimbusa sestavlja 7 komponent, ki temeljijo na spletnih tehnologijah. • Je kompatibilen z EC2 in S3 vmesniki. 74 37 Uvod v računalništvo v oblaku Nimbus Arhitektura: Razporejevalnik Cumulus Storage Service • Koordinacija samodejnega zagona VM-jev Workspace Pilot (integracija) Workspace Service (WSRF, EC2) Context Broker Context odjemalec Workspace resource manager Cloud odjemalec Ponudnik oblaka Workspace odjemalec Workspace Control • zagonu, zaustavitvi VM-jev. • upravljanju slik VM-jev. • varno povezovanju VM na omrežje. 75 Nimbus Arhitektura: Workspace Service: • Omogoča upravljanje in administriranje virtualnih strojev preko dveh vmesnikov. Prvi temelji na vmesniku Web Service Resource Framework (WSRF), drugi pa na EC2 WSDL . Ta storitev komunicira z Workspace Resource Manager ali Workspace Pilot komponento za upravljanje instanc. Workspace Resource Manager: • Implementira ustvarjanje instanc virtualnih strojev in njihovo upravljanje. Workspace Control: • Program nameščen na vsakem vozlišču in je namenjen zagonu, zaustavitvi in začasni zaustavitvi virtualnih strojev. Poleg tega je namenjen še rekonstrukciji in upravljanju slike virtualnega stroja, varnemu povezovanju virtualnega stroja na omrežje ter dostavi informacij za kontekstualizacijo. 76 38 Uvod v računalništvo v oblaku Nimbus Arhitektura: Workspace Pilot: • Omogoča integracijo virtualnih strojev z že konfiguriranimi viri za upravljanje opravil. Context Broker: • Storitev, ki odjemalcem omogoča koordinacijo samodejnega in ponavljajočega se zagona velikega števila virtualnih gruč. Workspace odjemalec: • Odjemalec, ki omogoča dostop do izbranih funkcionalnosti storitve Workspace Service. Cumulus Storage Service: • Omogoča akumulacijo in upravljanje podatkov, kar vključuje nalaganje podatkov v oblak, nadziranje statusa podatkov in prenos podatkov. • Omogoča shranjevanje slik za Nimbus izvajalne oblake. 77 Nimbus Upravljanje: • • • • Upravljanje virtualnih omrežij. Upravljanje z instancami virtualnih strojev. Upravljanje podatkovne shrambe. Upravljanje uporabnikov. • Orodja: – Cloud Client – administrativna konzola. Namestitveni modeli: P J H 78 39 Uvod v računalništvo v oblaku Xen Cloud Platform Uvod: • XPC je odprtokodna platforma za strežniško virtualizacijo in računalništvo v oblaku. • Podpira Xen hipervizorja ter različne operacijske sisteme (Windows in Linux). • Kombinira zmožnosti večnajemniškega modela in izolacije z naprednimi tehnologijami varnosti ter podatkovne in omrežne virtualizacije. • XCP je licenciran pod GNU General Public Licence (GPL2) in je brezplačen. • Sestavljen je iz petih ključnih komponent: – XAPI, XAPI Lib, nadzorniški vmesniki, Xen hipervizor, Dom0 domena ter operacijski sistemi. 79 Xen Cloud Platform Arhitektura: Nadzorniški vmesniki Dom0 XAPI XAPI Lib Ctrl IF Omrežje Shramba Gonilniki Operacijski sistem (Windows, Linux) Xen hipervizor Bazen virov Fizična strojna oprema 80 40 Uvod v računalništvo v oblaku Xen Cloud Platform Arhitektura: • XAPI – upravljavski sklad, ki nadzira gostitelje in bazene virov ter koordinira vire znotraj bazena. • XAPI Lib – nabor knjižnic in pripomočkov. • Nadzorniški vmesniki – XCP ponuja XE ukazno vrstico za nadzor Xen virtualnih strojev in bazenov. Obstajajo številna druga orodja. • Xen hipervizor – XCP podpira Xen hipervizorja. • Dom0 domena – vključuje podporo za omrežje, shrambo in gonilnike. • Operacijski sistem – podpira širok nabor Linux in Windows gostiteljev. 81 Xen Cloud Platform Upravljanje: • • • • Upravljanje virtualnih omrežij (Open vSwitch). Upravljanje slik virtualnih strojev. Upravljanje uporabnikov/skupin. Upravljanje spremljanja in poročanja. • Orodja: – XE – administrativna konzola. – Številni „third party“ vmesniki. Namestitveni modeli: P J H 82 41 Uvod v računalništvo v oblaku OpenQRM Uvod: • Odprtokodni produkt zgrajen na enoviti konzoli za upravljanje in številnimi vtičniki, ki skrbijo za ostale funkcionalnosti. • Podpira številne operacijske sisteme, hipervizorje (VMware, Xen, KVM in Citrix XenServer), podatkovne strežnike in omogoča razvoj lastnih vtičnikov. • Je licenciran pod GNU General Public Licence (GPL2). • Podpira P2V (physical to virtual), V2P (virtual to physical) in V2V (virtual to virtual) migracije. • Ponuja failover mehanizem, ki omogoča skupinam strežnikov uporabo enojnega „standby“ načina. • Podpira integracijo z Nagios monitoring sistemom. 83 OpenQRM Arhitektura: • Strežnik – temelj openQRM storitev je strežnik, ki je zadolžen za upravljanje virtualizirane vire oblaka. • Vtičnik oblaka – ponuja polno-avtomatiziran zahtevek in cikel za oskrbovanje in postavitev. Xen iSCSI-Target Abstrakci ja hrambe NetAPP OpenQRM strežnik Abstrakci ja virov VMware ESX KVM NFS-balde AoE-balde OpenQRM vtičnik oblaka 84 42 • • Dodelitev stežnikov, Postavitev slik… Uvod v računalništvo v oblaku OpenQRM Upravljanje: • • • • • • Upravljanje virtualnih omrežij. Upravljanje s slikami virtualnih strojev. Upravljanje z virtualnimi stroji. Upravljanje shrambe. Upravljanje spremljanja in poročanja. Upravljanje z uporabniškimi računi. • Orodja: – Enojna administrativna konzola. Namestitveni modeli: P J H 85 RedHat CloudForms Uvod: • Omogoča izgradnjo in upravljanje lastnega IaaS oblaka za interno uporabo. • Podpira integracijo z obstoječimi produkti in tehnologijami, kot so fizični strežniki ter virtualizacijske platforme drugih ponudnikov. • Zagotavlja upravljanje aplikacij skozi njihovo življenjsko dobo. • CloudForms ponuja IaaS infrastrukturo s pomočjo treh komponent: – Upravljanje življenjskega cikla aplikacij (sistemski in aplikacijski pogon). – Upravljanje izvajalnih virov (pogon oblaka). – Infrastrukturne storitve (storitve oblaka). 86 43 Uvod v računalništvo v oblaku RedHat CloudForms Arhitektura: Upravljanje izvajalnih virov Sistemski pogon • Izdelavo virov, • upravlja politike in delovne tokove • Vodi dostop in dovoljenja do teh virov. Aplikacijski pogon Upravljanje izvajalnih virov Pogon oblaka Infrastrukturne storitve Storitve oblaka Storitve oblaka Storitve oblaka Storitve oblaka Spremljanje, upravljanje, sporočanje, replikacija, visoka razpoložljivost (HA)… 87 RedHat CloudForms Arhitektura: CloudForms pogon oblaka: • Zadolžen za upravljanje vseh virov oblaka. Omogoča izdelavo virov, upravljanje politik in delovnih tokov ter voditi dostop in dovoljenja do teh virov. CloudForms aplikacijski pogon: • Ponuja upravljanje z aplikacijami, ki temelji na šablonah. Lahko dvigne, inicializira in ponuja definirane storitve. CloudForms sistemski pogon: • Upravlja izvajane sisteme med fizična in virtualna okolja ter okolja oblaka. CloudForms storitve oblaka: • Predstavljajo dodatke, ki zagotavljajo konsistentne funkcionalnosti med različnimi ponudniki oblaka. Primer: spremljanje, upravljanje, sporočanje, replikacija, visoka razpoložljivost (HA), itn. 88 44 Uvod v računalništvo v oblaku RedHat CloudForms Upravljanje: • • • • • Upravljanje s slikami virtualnih strojev. Upravljanje z življenjskim ciklom aplikacije. Upravljanje z oskrbovanjem. Upravljanje uporabnikov in računov. Upravljanje spremljanja in poročanja. • Orodja: – Grafični vmesnik za nadziranje in upravljanje. Namestitveni modeli: P J H 89 IBM SmartCloud Uvod: • IBM ponuja množico tehnologij za IaaS računalništvo v oblaku. • Produkte lahko združimo v štiri storitve: Upravljalne infrastrukturne storitve, sisteme za operacijsko podporo, optimizacijske storitve ter varnostno komponento. 90 45 Uvod v računalništvo v oblaku IBM SmartCloud Arhitektura: Upravljanje infrastrukturne storitve Sistemi za operacijsko podporo Optimizacijske storitve Varnostna komponenta 91 IBM SmartCloud Arhitektura: Upravljalne infrastrukturne storitve: • IBM SmartCloud Enterprise Sistemi za operacijsko podporo: • IBM Service management for cloud computing IBM Tivoli Monitoring for Virtual Servers • IBM Service Delivery Manager • Tivoli Monitoring for Virtual Servers • IBM Tivoli Storage Manager for Virtual Environments 92 46 Uvod v računalništvo v oblaku IBM SmartCloud Arhitektura: Optimizacijske storitve: • • • • • • • • IBM Service management for cloud computing IBM Service Delivery Manager IBM CloudBurst IBM BladeCenter Foundation for Cloud IBM Power Systems Cloud solutions IBM System z Solution Edition for Cloud Computing IBM System for Cloud Computing System Storage for Cloud Computing Varnostne komponente: • IBM Rational Cloud Application Security and Compliance solutions • Tivoli Cloud Security Management solutions 93 IBM SmartCloud Upravljanje: • • • • Upravljanje z gostitelji in gručami. Upravljanje s slikami virtualnih strojev. Upravljanje z instancami virtualnih strojev. Upravljanje z uporabniki in računi. • Orodja: – Nadzorna plošča za upravljanje in spremljanje. Namestitveni modeli: P J H 94 47 Uvod v računalništvo v oblaku Oracle IaaS Uvod: • Oracle sam ne dostavlja IaaS storitev vendar ponuja drugim IaaS ponudnikom strojno in programsko opremo za vzpostavitev privatnih in javnih oblakov. • V grobem ga sestavlja sedem ključnih komponent: – – – – – – – Shramba Strežniki Oracle Solaris vsebniki, Oracle VM za SPARC Oracle VM za x86 Oracle Solaris Oracle Linux Fizično in virtualno upravljanje sistema (Oracle Enterprise Manager Ops Center) 95 Oracle IaaS Arhitektura: Aplikacija 1 Aplikacija 2 Oracle Solaris Aplikacija 3 Oracle Linux Oracle Solaris vsebniki Oracle VM za SPARC Oracle VM za x86 Strežniki Shramba 96 48 Fizično in virtualno upravljanje sistema (Oracle Enterprise Manager Ops Center) Uvod v računalništvo v oblaku Oracle IaaS Arhitektura: Strežnik (Oracle VM Server): • Namestimo ga lahko neposredno na strežniško strojno opremo z x86 procesorji in ne zahtevajo operacijskega sistema gostitelja. Vključuje VM agenta, ki omogoča komunikacijski kanal z Oracle VM Manager komponento za upravljavske namene. Oracle VM Manager (Oracle Enterprise Manager Ops Center): • Upravljavski strežnik, ki temelji na Javanski tehnologiji in uporablja Oracle podatkovno bazo kot repozitorij za upravljanje. Zadolžen je za upravljanje virtualnih strojev, ki se izvajajo na Oracle VM Server komponenti (to počne s pomočjo Oracle VM Agent komponente). 97 Oracle IaaS Upravljanje: • • • • • Upravljanje z gostitelji in gručami. Upravljanje s slikami virtualnih strojev. Upravljanje z instancami virtualnih strojev. Upravljanje spremljanja in poročanja. Upravljanje z uporabniki in računi. • Orodja: – Oracle VM Manager – Oracle VM Management Pack Namestitveni modeli: P J H 98 49 Uvod v računalništvo v oblaku PLATFORMA KOT STORITEV Definicija Zmožnost postavitve različnih tipov aplikacij, ki si razvite z uporabo programskih jezikov in orodij ponujenih s strani ponudnika. Uporabnik pri tem ne upravlja in nadzira spodaj ležečo infrastrukturo (omrežje, shrambo, operacijski sistem ali strežnik) temveč ima nadzor nad postavljeno aplikacijo in pogosto tudi nastavitvami gostujočega okolja. NIST 100 50 Uvod v računalništvo v oblaku Ključne karakteristike Samopostrežba Avtomatizirano upravljanje in spremljanje Skalabilnost Večnajemniški model Centraliziran nadzor Varovana platforma ter dostop Merjenje in zaračunavanje porabe Visoka razpoložljivost aplikacij in podatkov Integracijski model storitev Celovito podprt življenjski cikel razvoja aplikacij Podprt skupinski razvoj 101 Programski modeli Odjemalec/Strežnik (Client/Server): • Ločuje sistem na aplikacije, kjer odjemalec pošilja zahteve strežniku. V večini primerov je strežnik podatkovna baza z aplikacijsko logiko, ki je predstavljena kot bazna procedura. Komponentna arhitektura (Component-Based Architecture): • Dekompozicija aplikacijske arhitekture v ponovno uporabljive funkcionalne in logične komponente, ki izpostavljajo dobro definirane komunikacijske vmesnike. Domensko gnano načrtovanje (Domain Driven Design): • Objektno orientiran arhitekturni stil osredotočen na modeliranje poslovnih domen in definiranju poslovnih objektov, ki temeljijo na entitetah znotraj poslovne domene. 102 51 Uvod v računalništvo v oblaku Programski modeli Nivojska arhitektura (Layered Architecture): • Osredotoča se na grupiranje sorodnih funkcionalnosti aplikacije v različne nivoje, katerih funkcionalnosti so povezani s skupno vlogo ali odgovornostjo. Sporočilno vodilo (Message Bus): • Arhitekturni stil, ki predpisuje uporabo programske opreme za pošiljanje in sprejem sporočil z uporabo enega ali več komunikacijskih kanalov. Na tak način so lahko različne aplikacije v interakciji, ne da bi se zavedale podrobnosti drugih. Večslojna/3-slojna arhitektura (N-Tier/3-Tier): • Združuje funkcionalnosti v ločene segmente na podoben način kot nivojski arhitekturni stil. V tem primeru vsak segment predstavlja logičen nivo, ki je lociran na drugem fizičnem računalniku. 103 Programski modeli Storitveno usmerjena arhitektura (SOA): • Arhitektura aplikacij, ki izpostavljajo in koristijo funkcionalnosti v obliki storitev z uporabo pogodb in sporočil. Model računalništva v oblaku: • Računalništvo v oblaku prinaša številne prednosti, kot so elastičnost, visoka stopnja razpoložljivosti in zanesljivosti ter agilnost. Ravno tako vpeljuje nov način dostave storitev, kot so relacijska podatkovna baza v oblaku, NoSQL baza, avtomatično skaliranje, varnostne skupine, itn. Da bi uspešno koristili vse te prednosti, morajo aplikacije za oblak biti načrtovane tako, da sledijo specifičnemu aplikacijskemu modelu. • Različni ponudniki storitev oblaka imajo različne zahteve in s tem drugačne modele aplikacij. 104 52 Uvod v računalništvo v oblaku Programski modeli Model računalništva v oblaku: • Amazon AWS: Odjemalec Zunanji sistem Vnaprej nastavljen AMI Aplikacija AWS Elastic Beanstalk Amazon EC2 RDS EC2+EBS SimpleDB SQS S3 105 Programski modeli Model računalništva v oblaku: • Google App Engine: Odjemalec Zunanji sistem URLFetch Service Aplikacija App Engine izvajalno okolje Blobstore Datastore Memcache 106 53 Uvod v računalništvo v oblaku Programski modeli Model računalništva v oblaku: • Windows Azure: Odjemalec Odjemalec Zunanji sistem AppFabric Service Bus Aplik Aplikacija Web role Web role Worker role Azure Storage AppFabric Caching SQL Azure 107 Programski modeli Model računalništva v oblaku: • Force.com: Odjemalec Worke VM role Zunanji sistem Force.com Web Services Aplikacija Apex izvajalno okolje Force.com Database 108 54 SQL Azure AppFa Cach Uvod v računalništvo v oblaku Življenjski cikel razvoja aplikacij na PaaS SDLC na PaaS: Lokalno V oblaku Razvoj aplikacije Postavitev in izdaja Gradnja in testiranje Postavi - Orodja za razvoj - Orodja za Unit testiranje - Spletni portal - CLI orodja - SDK-ji in vtičniki za razvojna orodja Sistemsko testiranje Izdaja verzije Izdaja v produkcijo Integracijski test UAT Smoke test Prenos v produkcijo Nastavitve Upravljanje Spremljanje Odpravljanje hroščev Upravljanje verzij in nadzor kode Upravljanje in spremljanje storitev 109 Življenjski cikel razvoja aplikacij na PaaS Testiranje aplikacije v oblaku je smiselno opraviti v treh fazah: • Lokalno testiranje aplikacije znotraj emulatorjev. • Uporaba lokalne podatkovne shrambe. Lokalno Hibridno • Lokalno testiranje aplikacije znotraj emulatorjev. • Uporaba podatkovne shrambe v oblaku. 110 55 • Testiranje aplikacije v oblaku. • Uporaba podatkovne shrambe v oblaku. V oblaku Uvod v računalništvo v oblaku Java EE 7 in oblak – JSR 342 Podpora za delovanje aplikacij v PaaS okoljih Zasebnih in javnih oblakov Podpora večnajemniškemu modelu Podpora elastičnosti Bolj natančne zahteve za vire in upravljanje stanja Boljša izolacija med aplikacijami Standardni APIji na ne-RDBMS, medpomnjenje, itd. Enotni vmesniki za upravljanje in nadzor Boljše pakiranje aplikacije / modularnost 111 Java v oblaku Aplikacija UPRAVLJANO OKOLJE Aplikacija Aplikacija Aplikacija PaaS Java storitve Trajnost podatkov Storitveno vodilo, sporočilni sistem, … IaaS Virtualizacija Upravljanje stanj, elastičnost, … 112 56 Uvod v računalništvo v oblaku Modularnost v Java EE 7 Bo temeljila na modularnosti Java SE 8 Aplikacije sestavljene iz modulov SCA Odvisnosti so eksplicitne Vgrajeno verzioniranje Izboljšani nalagalniki razredov 113 Ostale novosti v Java EE 7 Java Persistence API 2.1 – JSR 338 JAX-RS 2.0 – JSR 339 Servlets 3.1 – JSR 340 Expression Language 3.0 – JSR 341 Java EE 7 – JSR 342 Java Message Service 2.0 – JSR 343 Java Server Faces 2.2 – JSR 344 EJB 3.2 – JSR 345 CDI 1.1 – JSR 346 JCache – JSR 107 Bean Validation 1.1 – JSR 349 ... 114 57 Uvod v računalništvo v oblaku Podatkovna shramba v oblaku Uvod: • Pod podatkovno shrambo v oblaku je smiselno obravnavati štiri možnosti: – – – – Objektna shramba statičnih podatkov (BLOBs) Relacijska podatkovna baza Distribuirano predpomnjenje NoSQL podatkovna baza 115 Podatkovna shramba v oblaku Distribuiran datotečni sistem (Objektna shramba): • Predstavlja datotečni sistem, ki omogoča dostop do datotek v distribuiranem, večnajemniškem (multi-tenant) okolju preko omrežja. • Primeri: – – – – – – – – – Windows Azure Storage blobs Amazon Simple Storage Service (S3) Google File System Hadoop Distributed File System (HDFS) XtreemFS GlusterFS Eucalyptus Walrus OpenStack Object Storage (Swift) Nimbus - Cumulus Storage Service 116 58 Uvod v računalništvo v oblaku Podatkovna shramba v oblaku Relacijska baza v oblaku: • Gre za relacijsko bazo, ki je dostavljena kot storitev v oblaku. • Primeri: – – – – – – Amazon RDS SQL Azure Google Cloud SQL Oracle Database Cloud Service IBM DB2 for Private Cloud Drizzle 117 Podatkovna shramba v oblaku Distribuirano predpomnjenje: • Ponuja predpomnjenje podatkov, da bi pospešili performanco visoko-skalabilnih sistemov. • Primeri: – – – – – – – – – – Gemstone Gemfire IBM Webpshere eXtreme Scale Gigaspaces IBM Webpshere eXtreme Scale Infinispan Memcached Ncache Oracle Coherence Terracotta for Web Sessions Hazelcast 118 59 Uvod v računalništvo v oblaku Podatkovna shramba v oblaku NoSQL podatkovne baze: • Definicija NoSQL še zmeraj ni popolnoma razjasnjena. V literaturi sicer zasledimo dve možni interpretaciji: – Not Only SQL – Not Relational • Ključne karakteristike NoSQL: – Zmožnost horizontalnega skaliranja operacij (read/write) med več strežniki. – Zmožnost replikacije in distribucije podatkov med več strežniki. – Preprost vmesnik ali protokol (kot nasprotje SQL binding-a). – Šibak model sočasnega izvajanja (kot nasprotje ACID transakcijam večine SUPB). – Učinkovita uporaba distribuiranih indeksov in RAM-a za podatkovno hrambo. – Zmožnost dinamičnega dodajanja novih atributov k zapisom podatkov. – ACID (Atomic, Consistent, Isolated, Durable) -> BASE (Basic Availability, Soft state, Eventual consistency) 119 Podatkovna shramba v oblaku NoSQL podatkovne baze: • V kontekstu NoSQL baz običajno velja t.i. CAP teorem in pravi, da sta lahko v distribuiranem okolju zagotovljena zgolj 2 izmed 3 atributov: • Consistency – vsi vozlišča vidijo iste podatke ob istem času. • Availibility – vsak odjemalec lahko zmeraj piše/bere. • Partition-tolerance – sistem ne preneha delovati v primeru izgub sporočil med dvema ali več vozlišči (npr. napaka omrežja). • Večina NoSQL sistemov ovrže ravno konsistenco. • NoSQL baze lahko klasificiramo glede na naslednje podatkovne modele: • „Key-value“ baze – sistem hrani indeksirane podatke, ki jih pridobimo glede na njihov ključ. • Dokumentno usmerjene – hranijo in organizirajo podatke kot zbirke dokumentov (JSON, XML), raje kot strukturirane tabele z enotno velikostjo polj za vsak zapis. • Stolpično usmerjene – namesto shranjevanja podatkov v strukturirane tabele stolpcev in vrstic z fiksno dolžino atributov, stolpčno usmerjene baze vsebujejo razširljive stolpce. • Baze, ki temeljijo na grafih – baze, kjer podatke hranimo v obliki grafov. 120 60 Uvod v računalništvo v oblaku Podatkovna shramba v oblaku NoSQL podatkovne baze: A Consistency, Availability: • • Availability, Partition-tolerance: • • • RDBMS (MySQL, Postgres, DB2, …) Vertica (stolpično usmerjena) C Consistency, Partition-tolerance: • • • MongoDB Terrastore Redis • • • BigTable Hypertable HBase • • • Scalaris MemcacheDB Berkeley DB 121 Podatkovna shramba v oblaku NoSQL podatkovne baze: • Primeri „Key-value“ baz: – – – – – – – – – – – Dynamo Voldemort Cassandra Windows Azure Table Storage Oracle NoSQL Database Voldemort (temelji na Dynamo) Amazon Dynamo Riak (temelji na Dynamo) Membase Redis Berkeley DB MemcacheDB Scalaris Tokyo Cabinet / Tyrant 122 61 P • • • SimpleDB CouchDB Riak Uvod v računalništvo v oblaku Podatkovna shramba v oblaku NoSQL podatkovne baze: • Primeri dokumentno usmerjenih baz: – – – – – – – – SimpleDB (uporablja Amazon S3) CouchDB MongoDB Terrastore ThruDB OrientDB RavenDB IBM Lotus Domino 123 Podatkovna shramba v oblaku NoSQL podatkovne baze: • Primeri stolpično usmerjenih baz: – – – – – – Cassandra (Bigtable + Dynamo) Hbase (temelji na BigTable) PNUTs (ni komercialno na voljo - Yahoo) BigTable (ni komercialno na voljo - Google) Hypertable (temelji na BigTable) HBase (uporablja Hadoop) 124 62 Uvod v računalništvo v oblaku Podatkovna shramba v oblaku NoSQL podatkovne baze: • Primeri baz, ki temeljijo na grafih: – – – – – – – – – – – Neo4J Infinite Graph Sones InfoGrid HyperGraphDB Trinity AllegroGraph Bigdata DEX AllegroGraph FlockDB 125 Podatkovna shramba v oblaku NoSQL podatkovne baze: • Apache Cassandra: – Gre za odprtokodni projekt, ki ga leta 2008 navzven odprl Facebook. – Visoko-skalabilna in distribuirana podatkovna baza, ki predstavlja kombinacijo Amazon Dynamo (distribuirana arhitektura) in Google Bigtable (stolpično usmerjena baza). – Lastnosti: o Simetrična baza: × Ni enojne točne za napako (Single Point Of Failure) × Linearno skalabilna × Enostavna administracija o Fleksibilno particioniranje in menjava replik o Automatizirano oskrbovanje o Visoka stopnja razpoložljivosti (Morebitna konsistenca) – Osnovno enoto hrambe prestavlja stolpec. – CAP teorem: AP (razpoložljiva in odporna na particije). 126 63 Uvod v računalništvo v oblaku Podatkovna shramba v oblaku NoSQL podatkovne baze: • Apache CouchDB: – Gre za odprto-kodno bazo nad katero lahko izvajamo poizvedbe in indeksiranje z uporabo JavaScripta (MapReduce). – Nima sheme in je dokumentno usmerjena. – Ponuja inkrementalno replikacijo z dvosmerno detekcijo konfliktov. – Ponuja RESTful JSON API. – Napisa je v programskem jeziku Erlang (funkcijski jezik, idealen za izdelavo sočasnih distribuiranih sistemov). – Operacije branja uporabljajo MVCC (Multi-Version Concurrency Control) model, pri čemer vsak odjemalec vidi konsistenten posnetek celotne operacije branja. – Dokument v kontekstu CouchDB predstavlja objekt, ki se sestoji iz poimenovanih polij (Stringi, števila, datumu, urejeni seznami, …). – Podpira vse ACID (Atomic Consistent Isolated Durable) lastnosti. – CAP teorem: AP (razpoložljiva in odporna na particije). 127 Podatkovna shramba v oblaku NoSQL podatkovne baze: • Azure Table Storage (Key-value): – Za razliko od prejšnjih dveh je ta komercialna. – Gre za „Key-value“ podatkovno bazo, pri čemer pare (ključ-vrednost) imenujemo lastnosti. – Je brez sheme, kar omogoča, da so lastnosti vsake entitete v tabeli med seboj različne. – Predstavlja eno izmed Windows Azure Storage komponent (Blobi, Tabele in Vrste). – Podatke, ki hrani posamezna tabela so shranjeni v skupini entitet, ki vsebujejo lastnosti. – Namesto klasičnih SQL poizvedb, tukaj uporabljamo poizvedbe z uporabo konvencij, definiranih s strani OData. – Takšna struktura omogoča hitro skaliranje med več virtualnih strojev. – Dostopen preko REST API-ja. – CAP teorem: AP (razpoložljiva in odporna na particije). 128 64 Uvod v računalništvo v oblaku AWS Elastic Beanstalk Uvod: • Omogoča hitro postavitev in upravljanje aplikacij ne da bi morali skrbeti za spodaj-ležečo infrastrukturo. AWS Elastic Beanstalk skrbi za postavitvene podrobnosti, oskrbovanje kapacitet, izenačevanje obremenitev, avtomatično skaliranje in spremljanje zdravja aplikacij. • AWS Elastic Beanstalk je sestavljen in številnih komponent, ki delujejo skupaj, da bi omogočili enostavno postavitev in upravljanje aplikacij v oblaku: – – – – – Aplikacijska komponenta. Komponenta verzij. Komponenta okolja. Komponenta konfiguracije okolja. Komponenta konfiguracijske predloge. 129 AWS Elastic Beanstalk Arhitektura: http://moja-aplikacija.elasticbeanstalk.com/ Elastic Load Balancer Okolje Verzija S3 vedro Auto Scaling EC2 instance EC2 instance EC2 instance Apache Elastic Beanstalk Host Manager Elastic Beanstalk aplikacija Tomcat Izvajana aplikacija Amazon Linux AMI 130 65 Uvod v računalništvo v oblaku AWS Elastic Beanstalk Arhitektura: Aplikacijska komponenta: • Predstavlja logično kolekcijo komponent, kot so okolja, verzije ter konfiguracije. Komponenta verzij: • Predstavlja specifično, označeno iteracijo postavljene kode. Verzija kaže na Amazon S3 objekt, ki vsebuje postavljeno kodo (npr. Javansko WAS datoteko). Aplikacija lahko ima več verzij. Komponenta okolja: • Predstavlja verzijo, ki je postavljena na virih AWS. Okolje lahko ima le eno verzijo istočasno, vendar je lahko prisotnih več simultanih okolij, ki izvajajo isto ali različne verzije. • AWS viri znotraj okolja vključujejo izenačevalca obremenitev, Auto Scaling skupino ter eno ali več EC2 instanc. 131 AWS Elastic Beanstalk Arhitektura: Komponenta konfiguracije okolja: • Zadolžena za identifikacijo kolekcije parametrov in nastavitev, ki definirajo obnašanje okolja in asociiranih virov. Ob posodobitvi nastavitev okolja, AWS Elastic Beanstalk avtomatično aplicira spremembe k obstoječim virom ali izbriše in postavi nove vire. Komponenta konfiguracijske predloge: • Konfiguracijska predloga omogoča izdelavo unikatne konfiguracije okolja. Lahko jih izdelamo oziroma modificiramo s pomočjo komandne vrstice ali API-jev. 132 66 Uvod v računalništvo v oblaku AWS Elastic Beanstalk Upravljanje: • • • • • Spremljanje porabe in izvajanja. Upravljanje opozoril. Upravljanje z avtomatičnim skaliranjem. Upravljanje verzij in logiranja. Spremljanje virov (EC2, ELB, S3, CloudWatch) • Orodja: – Eclipse razširitve – AWS upravljavska konzola. Namestitveni modeli: P J H 133 RedHat OpenShift Uvod: • Storitev, ki omogoča razvoj, izvajanje in postavitev aplikacij med več oblaki in z uporabo različnih ogrodij in programskih jezikov. • Trenutno je sestavljen iz dveh storitev: Flex in Express. 134 67 Uvod v računalništvo v oblaku RedHat OpenShift Arhitektura: RedHat OpenShift Express Flex Amazon EC2 infrastruktura 135 RedHat OpenShift Arhitektura: OpenShift Express • Brezplačna aplikacijska platforma za Ruby, Perl, PHP in Python aplikacije. • Uporablja Git sistem za dodajanje in postavitev aplikacij na OpenShift Express (takšen sistem omogoča nadzor verzij). • Uporablja CLI (Command Line Interface) orodja za postavitev in upravljanje aplikacij v oblaku. OpenShift Flex • Brezplačna aplikacijska platforma za Java EE in PHP aplikacije. • Ponuja grafični uporabniški vmesnik za izdelavo, postavitev, upravljanje in spremljanje oblaka in aplikacije. • Na voljo so orodja za spremljanje performance, izvedbo analize logov ter zagotavljanje avtomatične skalabilnosti. • Postavljen na Amazon EC2 infrastrukturi. 136 68 Uvod v računalništvo v oblaku RedHat OpenShift Upravljanje: • • • • • Upravljanje z nastavitvami virtualnih strojev. Upravljanje z aplikacijami in podatki. Spremljanje porabe in izvajanja. Upravljanje skaliranja. Upravljanje verzij (Git sistem). • Orodja: – CLI orodja – postavitev in upravljanje aplikacij v oblaku. – GUI za izdelavo, postavitev, upravljanje in spremljanje oblaka in aplikacije. Namestitveni modeli: P J H 137 Windows Azure platforma Uvod: Windows Azure platforma je sestavljena iz štirih tehnologij: • • • • Windows Azure, SQL Azure, Windows Azure AppFabric, Windows Azure Marketplace. Komponente lahko uporabljamo skupaj ali posamično. 138 69 Uvod v računalništvo v oblaku Windows Azure platforma Arhitektura: Aplikacije in podatki Windows Azure AppFabric SQL Azure Windows Azure Marketplace Windows Azure 139 Windows Azure platforma Arhitektura: Windows Azure: • Okolja za izvajanje aplikacij in shrambo podatkov na strežnikih znotraj Microsoftovih podatkovnih centrih. Storitev je sestavljena iz petih komponent: – Compute – skrbi za izvajanje aplikacij na Windows Server strežnikih. – Storage – omogoča shrambo treh tipov podatkov (blob-ov, tabel in vrst). – Fabric controller – programska oprema, ki upravlja in spremlja izvajane aplikacije ter računalniške vire. – Content Delivery Network (CDN) – predpomnjenje najpogosteje uporabljenih podatkov blizu končnega uporabnika. – Connect – omogoča obravnavo aplikacij, kot da bi bile znotraj požarnega zidu organizacij, ki do njih dostopajo. SQL Azure: • Omogoča delo z relacijsko podatkovno bazo v oblaku. Storitev sestavljajo tri komponente: – SQL Azure Database – predstavlja sistem za upravljanje s podatkovno bazo (SUPB) v oblaku. – SQL Azure Reporting – omogoča izdelavo standardnih SSRS poročil. – SQL Azure Data Sync – omogoča sinhronizacijo podatkov med SQL Azure podatkovnimi bazami in lokalnimi SQL Server bazami. 140 70 Uvod v računalništvo v oblaku Windows Azure platforma Arhitektura: Windows Azure AppFabric: • Omogoča izdelavo infrastrukturnih storitev v oblaku. Storitev je sestavljena iz treh komponent: – Service Bus – omogoča izpostavljanje končnih točk do katerih lahko dostopajo druge aplikacije. – Access Control – ponuja vgrajeno podporo za delo z identitetami. – Caching – omogoča distribuirano predpomnjenje najpogosteje uporabljenih podatkov. Windows Azure Marketplace: • Repozitorij aplikacij in nabora podatkov (datasets). Sestavljata ga dve komponenti: – DataMarket – omogoča ponudnikom, da izpostavljajo dataset-e, do katerih lahko dostopajo končni uporabniki. – AppMarket – razvijalci lahko izpostavljajo svoje aplikacije potencialnim končnim uporabnikom. 141 Windows Azure platforma Upravljanje: • Upravljanje z virtualnimi stroji (spletne, delovne in VM vloge). • Upravljanje s podatkovno shrambo (relacijska baza, NoSQL baza, blobi, sporočilne vrste). • Spremljanje porabe in izvajanja. • Upravljanje verzij. • Orodja: – Windows Azure portal – grafični administrativni vmesnik. Namestitveni modeli: P J H 142 71 Uvod v računalništvo v oblaku Google App Engine Uvod: • Gre za platformo kot storitev (PaaS) in omogoča izgradnjo in gostovanje spletnih aplikacij na Google-ovih podatkovnih centrih. • Podpira aplikacije razvite v številnih programskih jezikih. Podprta so tri izvajalna okolja: Javansko izvajalno okolje, Python izvajalno okolje ter Go izvajalno okolje. • Ključne arhitekturne komponente lahko razdelimo na tri dele: Izvajalno okolje, shrambo in ostale storitve. 143 Google App Engine Arhitektura: Datastore Blobstore Memcache Aplikacijski strežniki zehteva URL Fetch Mail Images XMPP Task Queues Accounts „Frontend“ Datotečni strežniki 144 72 Uvod v računalništvo v oblaku Google App Engine Arhitektura: Izvajalno okolje: • Omogoča dejansko izvajanje aplikacij. Trenutno podpira izvajalna okolja za Python, Javo in Go. Shramba: • Datastore – App Engine ne ponuja tradicionalne relacijske podatkovne baze temveč vpeljuje distribuirano in skalabilno Datastore bazo, ki temelji na BigTable. • Blobstore – omogoča shranjevanje binarnih objektov, ki so veliko večji od podatkov dovoljenih znotraj Datastore baze. • Memcache – omogoča predpomnjenje pogosto uporabljenih podatkov in je skladen z JCache specifikacijo (JSR 107). 145 Google App Engine Arhitektura: Storitve: • URL Fetch – aplikacijam omogoča dostop do spletnih storitev (s pomočjo URL Fetch service storitvijo) in drugih podatkov na spletu. • Mail – poštna storitev, ki omogoča pošiljanje in prejemanje e-poštnih sporočil. • XMPP – analogno Mail storitvi, vendar gre za sistem za takojšnje sporočanje (Instant Messaging). • Images – integrirana storitev za manipulacijo s slikami (povečanje, združevanje, pretvarjanje formatov, rotiranje, …). • Task queues – vgrajena funkcionalnost za procesiranje iz ozadja (background processing). • Accounts – omogoča integracijo z aplikacijami za uporabo avtentikacije uporabnikov. 146 73 Uvod v računalništvo v oblaku Google App Engine Upravljanje: • • • • Upravljanje z virtualnimi stroji. Upravljanje s podatkovno shrambo (Datastore, Blobstore). Spremljanje porabe in izvajanja. Upravljanje verzij in logov. • Orodja: – Administrativna konzola – omogoča pregled nad realnočasovnimi podatki, logi, prometom, itn. Omogoča vpogled nad ternutno performanco postavljene aplikacije. Ponuja možnost postavitve nove verzije izvorne kode. – Eclipse razširitve Namestitveni modeli: P J H 147 IBM PaaS Uvod: • IBM-ova PaaS rešitev obsega številne tehnologije, ki jih lahko razdelimo v štiri področja: Aplikacijske storitve, življenjski cikel aplikacij, integracijske storitve in „Workload“ storitve. 148 74 Uvod v računalništvo v oblaku IBM PaaS Arhitektura: Aplikacijske storitve Življenjski cikel aplikacij Integracijske storitve „Workload“ storitve 149 IBM PaaS Arhitektura: Aplikacijske storitve: • Storitve za kolaboracijo, analitiko in upravljanje poslovnih procesov. Produkti, ki so na voljo: – IBM Smart Analytics Cloud for System z – IBM Systems Director – IBM Blueworks Live Življenjski cikel aplikacije: • Tehnologije, ki omogočajo kolaboracijo in avtomatizacijo razvoja aplikacij skozi celoten življenjski cikel: – IBM Rational Collaborative Software Delivery Life Cycle Management Solutions on the Cloud – IBM Rational Solutions for Cloud Development and Test 150 75 Uvod v računalništvo v oblaku IBM PaaS Arhitektura: Integracijske storitve: • Omogoča integracijo podatkov, aplikacij in storitev z različnimi okolji oblaka: – IBM WebSphere Cast Iron Cloud Integration Workload storitve: • Gre za storitve optimizacije zmogljivosti od aplikacijskih vzorcev, do vzorcev obremenitve, ki zagotavljajo QoS in razpoložljivost. Produkti, ki so na voljo: – – – – – IBM Workload Deployer WebSphere Virtual Enterprise WebSphere Application Server IBM DB2 for Private Cloud IBM Informix Flexible Grid for Private Cloud 151 IBM PaaS Upravljanje: • • • • • • Upravljanje z postavitvijo in izvajanjem aplikacij. Upravljanje s podatkovno shrambo. Upravljanje z repozitorijem slik. Spremljanje porabe in izvajanja. Upravljanje z življenjskim ciklom razvoja aplikacij. Upravljanje verzij. • Orodja: – Tivoli Service Automation Manager. Namestitveni modeli: P J H 152 76 Uvod v računalništvo v oblaku Oracle PaaS Uvod: • Oracle ponuja celovit nabor produktov za izgradnjo aplikacijske platforme PaaS, ki je na voljo kot storitev javnega ali privatnega modela računalništva v oblaku. • Osnovan je na Oracle Grid tehnologijah za postavitev modela mrežnega računalništva. • Produkte, ki omogočajo postavitev privatnega PaaS oblaka lahko razdelimo med 8 komponent: Podatkovna komponenta, aplikacijska komponenta, integracijska komponenta, komponenta upravljanja s procesi, varnostna komponenta, komponenta uporabniške interakcije ter deljene storitve. 153 Oracle PaaS Arhitektura: Aplikacija 1 Aplikacija 2 Aplikacija 3 Deljene storitve Integracijska komponenta Komponenta upravljanja s procesi Komponenta uporabniške interakcije Varnostna komponenta Aplikacijska komponenta Podatkovna komponenta 154 77 Upravljavska komponenta Uvod v računalništvo v oblaku Oracle PaaS Arhitektura: Podatkovna komponenta: • Oracle Database, RAC, ASM, Partitioning, IMDB Cache, Active Data Guard, Database Security. Aplikacijska komponenta: • WebLogic Server, Coherence, Tuxedo, JRockit. Integracijska komponenta: • Oracle SOA Suite – omogoča izdelavo ponovno uporabljivih komponent znotraj privatnega oblaka PaaS. Komponenta upravljanja s procesi: • Oracle BPM Suite – orodje za upravljanje s poslovnimi procesi. 155 Oracle PaaS Arhitektura: Varnostna komponenta: • Identity Management – družina produktov, ki omogoča upravljanje z različnimi ponudniki identitet. Komponenta uporabniške interakcije: • WebCenter Suite – platforma za izdelavo spletnih aplikacij, portalov ter omrežij za socialno kolaboracijo. Deljene storitve: • Vključuje samopostrežni vmesnik in deljene komponente. Upravljavska komponenta: • Oracle Enterprise Manager – omogoča celovito upravljanje z življenjskim ciklom razvoja aplikacij. 156 78 Uvod v računalništvo v oblaku Oracle PaaS Upravljanje: • • • • Upravljanje z postavitvijo in izvajanjem aplikacij. Upravljanje s podatkovno shrambo. Spremljanje porabe in izvajanja. Upravljanje z življenjskim ciklom razvoja aplikacij (Oracle Enterprise Manager). • Upravljanje verzij. • Orodja: – Oracle Enterprise Manager – grafični administrativni vmesnik. Namestitveni modeli: P J H 157 VMware vFabric Uvod: • Platforma kot storitev (PaaS), ki je optimizirana za izvajanje Java Spring aplikacij. • Podpira integracijo s Springsource Tool Suite (STS). • Sestavljena je iz petih komponent: – – – – – Strežniška komponenta. Podatkovna komponenta. Sporočilna komponenta. Komponenta za razporejanje bremena. Komponenta za upravljanje in spremljanje. 158 79 Uvod v računalništvo v oblaku VMware vFabric Arhitektura: Komponenta za razporejanje bremena (ERS) Komponenta za upravljanje in spremljanje (Hyperic) Strežniška komponenta (tc Server) Sporočilna komponenta (RabbitMQ) Podatkovna komponenta (GemFire) 159 VMware vFabric Arhitektura: Strežniška komponenta: • VMware vFabric tc Server je osrednja komponenta VMware vFabric aplikacijske platforme PaaS. Tc Server v osnovi izhaja iz Apache Tomcat strežnika in mu dodaja značilnosti za prilagoditev poslovnega okolju, kot so dodane razvojne, operacijske in postavitvene zmogljivosti. Podatkovna komponenta: • VMware vFabric GemFire zagotavlja zavarovan, zanesljiv in skalabilen podatkovni nivo za gradnjo poslovnih aplikacij za oblak. Komponenta omogoča paralelno izvajanje podatkovno usmerjenih funkcionalnosti aplikacije nad porazdeljenim podatkovnim nivojem. 160 80 Uvod v računalništvo v oblaku VMware vFabric Arhitektura: Sporočilna komponenta: • RabbitMQ je odprtokodna rešitev, ki omogoča delovanje sporočilnih sistemov v vFabric platformi. Zgrajena je z namenom zagotavljanja zanesljivega in robustnega sporočilnega sistema v porazdeljenem okolju. RabbitMQ je implementacija AMQP protokola (Advance Messaging and Queuing Protocol). Komponenta za razporejanje bremena: • Enterprise Ready Server (ERS) je komponenta, ki zajema spletni strežnik in komponento za razporejanje bremena. Zagotavlja celovito in centralizirano upravljanje Apache HTTP strežnika in Apache Tomcat okolja. 161 VMware vFabric Arhitektura: Komponenta za upravljanje in spremljanje: • VMware vFabric Hyperic je nadzorna komponenta VMware vFabric aplikacijske platforme. Omogoča spremljanje razpoložljivosti in zmogljivostnih metrik postavljenih spletnih aplikacij. Omogoča avtomatizirano odkrivanje, dodajanje v repozitorij in pregled strežniških komponent, ne glede na tip in lokacijo. • Arhitekturo upravljalnega sistema sestavljajo tri komponente: – HQ Agent – komponenta, katero poganjamo na vseh strežniških instancah in je zadolžena za zbirajo metrik o razpoložljivosti, utilizaciji, performanci in metrik prepustnosti. – HQ Server strežnik – prejema zajete metrike in druge podatke, ter jih shranjuje v HQ Database repozitorij v obliki podatkovne baze. – HQ Database – omogoča mehanizem za izdelavo varnostnih kopij, obnove po incidentu, spremljanje delovanje baze, shrambo metrik, itn. 162 81 Uvod v računalništvo v oblaku VMware vFabric Upravljanje: • • • • • Upravljanje z izvajanjem in postavitvijo aplikacij. Upravljanje s podatkovno shrambo (relacijska baza, sporočilne vrste). Spremljanje porabe, razpoložljivosti in izvajanja. Upravljanje z repozitorijem slik. Upravljanje z opozorili. • Orodja: – VMware vFabric Hyperic – grafični administrativni vmesnik. – HQ Dashboard – nadzorna plošča, kjer so zbrani podatki o spremembah inventarja komponent, informacije o težavah, zadnjih opozorilih in metričnih pregledih pomembnih virov. Namestitveni modeli: P J H 163 WMware Cloud Foundry Uvod: • Zastonjska in odprtokodna platforma kot storitev, ki ponuja različna ogrodja, podpira več ponudnikov oblaka in številne aplikacijske storitve. • Cloud Foundry je ponujen uporabnikom v treh oblikah: – CloudFoundry.com – popoln, večnajemniško PaaS okolje, ki je gostovano in upravljano s strani VMware. Izvaja se na vSphere platformi in podpira razvoj Spring za javanske aplikacije, Rails in Sinatra za Ruby aplikacije, Node.js ter Grails aplikacije. – CloudFoundry.org – odprtokodni projekt, ki ga vzdržuje in razvija skupnost pod Apache License 2.0. Je IaaS agnostična platforma (vSphere, OpenStack, AWS in Eucalyptus). – Cloud Foundry mikro oblak – enojna razvijalska instanca, ki omogoča osebni PaaS na lastnih namizjih. Ponujen je kot prenosljiva slika • Arhitektura Cloud Foundry platforme se sestoji iz šestih komponent. 164 82 Uvod v računalništvo v oblaku WMware Cloud Foundry Arhitektura: Upravljavec zdravja Razvijalec Nadzornik oblaka (CC) DEA DEA … DEA Sporočilno vodilo Storitve Storitve Storitve Storitve Usmerjevalniki 165 WMware Cloud Foundry Arhitektura: Droplet izvajalni agent (DEA): • Zadolžen za izvajanje dropletov. Vsebuje vse objekte, ki sestavljajo aplikacijo in so organizirani kot tar datoteke ter ovite z parom start/stop skripte. DEA se izvaja na vsakem izmed vozlišč in je zadolžena za izvajanje aplikacije na tem vozlišču. Nadzornik oblaka (CC): • Vmesnik namenjen razvijalcem za dostop do Cloud Foundry platforme. CC je zadolžen za pakiranje aplikacije v Droplet in obvesti sporočilno vodilo, da je na voljo aplikacija za izvajanje. Usmerjevalniki: • Platforma ima bazen identičnih usmerjevalnikov. Le-ti prejmejo aplikacijske zahteve od zunanjih entitet in jih usmerjajo do naslovljenih aplikacij. Zahteve uporabnikov so usmerjene k enemu izmed usmerjevalnikov s strani izenačevalca obremenitev. Usmerjevalni nato preusmeri zahtevo k ustrezni aplikaciji. 166 83 Uvod v računalništvo v oblaku WMware Cloud Foundry Arhitektura: Upravljavec zdravja: • Zadolžen za zanesljive operacije platforme. Periodično skenira podatkovno bazo CC komponente, da bi ugotovil kakšno je stanje oblaka. Storitve: • Gre za nabor storitev, kot so sporočanje, predpomnjenje in storitve podatkovne baze (MySQL). Sporočilno vodilo: • Ponuja mehanizem preko katerega komunicirajo komponente Cloud Foundry platforme. 167 WMware Cloud Foundry Upravljanje: • • • • Upravljanje z oskrbovanjem instanc. Upravljanje z opozorili. Spremljanje stanja aplikacij. Upravljanje z življenjskim ciklom razvoja aplikacij. • Orodja: – Spletni portal za upravljanje in nadzor. Namestitveni modeli: P J H 168 84 Uvod v računalništvo v oblaku Force.com Uvod: • Ponuja platformo kot storitev za izdelavo in postavitev poslovnih aplikacij. • Ponuja vgrajene mobilne in socialne funkcionalnosti, poslovne procese, poročanje, iskanje, itn. • Ponudnik platforme skrbi za varnost, skalabilnost ter izdelavo varnostnih kopij. • Platforma je sestavljena iz sedmih komponent: – – – – – – – Infrastrukture. Podatkovne baze. Integracije. Logike. Uporabniškega vmesnika. Razvojnih orodij. AppExchange komponente. 169 Force.com Arhitektura: AppExchange Razvojna orodja Uporabniški vmesnik Logika Integracija Podatkovna baza Infrastruktura 170 85 Uvod v računalništvo v oblaku Force.com Arhitektura: Infrastruktura: • Predstavlja okolje za postavitev in izvajanje aplikacij. Sestavlja jo napreden in upravljan podatkovni center, ki uporablja sodobne tehnologije varnosti. Podatkovna baza: • Zgrajena na temeljih Force.com infrastrukture. Omogoča izdelavo metapodatkov, ki opisujejo objekte podatkovne baze, kot so tabele in polja. Integracija: • Platforma ponuja storitev za integracijo aplikacij z viri in aplikacijami, ki se nahajajo v lokalnih podatkovnih centrih in podatkovnih centrih drugih ponudnikov. Za te namene platforma ponuja Force.com Web Services API (podpira integracijo z Amazon Web Services, Facebook, in Google Apps). 171 Force.com Arhitektura: Logika: • Platforma omogoča avtomatizacijo poslovnih procesov. Workflow Engine omogoča ponovno uporabljive procese, kot so izdelava opravil, dodelitev opravil, časovne akcije ter dogodkovno gnano integracijo sistema. Naštete komponente je možno uporabiti pri poslovni logiki aplikacije. Uporabniški vmesnik: • Platforma ponuja dve možnosti za izdelavo GUI-ja: – Force.com builder – preprost vmesnik za izgradnjo in modificiranje uporabniškega vmesnika. – Visualforce – popolno ogrodje za izdelavo poljubnega grafičnega vmesnika za katerokoli napravo in aplikacijo. 172 86 Uvod v računalništvo v oblaku Force.com Arhitektura: Razvojna orodja: • Ponuja številna orodja in API-je za razvoj, postavitev in integracijo informacijskih sistemov (Force.com Metadata API, Force.com Integrated Development Environment (IDE), Force.com Sandbox ter Force.com Code Share). AppExchange: • Predstavlja portal, ki povezuje razvijalce aplikacij in potencialne kupce in uporabnike. Omogoča objavo certificiranih aplikacij s strani razvijalcev in na drugi strani najem aplikacij s strani končnih uporabnikov. 173 Force.com Upravljanje: • • • • • Upravljanje s podatkovno shrambo (relacijska baza). Spremljanje porabe in izvajanja aplikacij. Upravljanje življenjskega cikla razvoja aplikacij. Upravljanje s poslovnimi procesi. Upravljanje verzij. • Orodja: – Nadzorna plošča za upravljanje. Namestitveni modeli: P J H 174 87 Uvod v računalništvo v oblaku CloudBees Uvod: • Ponuja platformo kot storitev (PaaS) in omogoča razvoj, testiranje, postavitev in izvajanje javanskih spletnih aplikacij v oblaku. • Sestavljata jo dve temeljni komponenti RUN@cloud ter DEV@cloud. • Gre za IaaS agnostično platformo, saj lahko izbiramo med številnimi ponudniki infrastrukture kot storitve. • Ponuja „failover“ in HA podporo. • Za razvoj, postavitev in testiranje uporablja platforma Jenkins Continuous Integration strežnik. 175 CloudBees Arhitektura: DEV@cloud RUN@cloud Testiraj Izgradi Jenkins strežnik Testiraj PaaS, ki temelji na JVM Kontinuirana postavitev Shrani Git SVN Storitve MySQL Maven HA CloudBees Ekosistem - razširitve HTTP API-ji, CLI, grafični UI, vtičnik za Eclipse, Vtičnik za Maven, Ant 176 88 … Uvod v računalništvo v oblaku CloudBees Arhitektura: DEV@Cloud: • Ponuja nabor storitev za podporo celotnega življenjskega cikla razvoja aplikacij v oblaku. • Ponuja naročniško storitev za Jenkins strežnike, ki se izvajajo v oblaku. • Podpira privatne in varovane Maven repozitorije. • Ponuja upravljavske funkcije za varno administracijo privilegijev in pravil dostopa razvojne ekipe. • Omogoča uporabo SVN in Git repozitorijev. 177 CloudBees Arhitektura: RUN@Cloud: • Omogoča postavitev Javanskih aplikacij v oblak. • Ponuja izenačevanje obremenitev, avtomatično skalabilnost ter visoko razpoložljivost (HA) za spletne aplikacije, Java EE ter Spring aplikacije. • Ponuja storitve za zagotavljanje failover mehanizma, merjenja in zaračunavanja. • Ponuja RUN@cloud SDK kot kolekcijo orodij za razvoj in postavitev aplikacij na lokalnih računalnikih. • Za upravljanje RUN@cloud storitev ponuja RUN@cloud API. • Postavitev aplikacij je možna iz različnih okolij (UI, Eclipse, CLI, REST, Maven, Ant). 178 89 Uvod v računalništvo v oblaku CloudBees Upravljanje: • • • • • • Upravljanje z virtualnimi stroji. Upravljanje s podatkovno shrambo (relacijska MySQL baza). Spremljanje porabe in izvajanja. Upravljanje z failover mehanizmom in visoko razpoložljivostjo. Upravljanje avtomatične skalabilnosti. Upravljanje verzij. • Orodja: – Nadzorna plošča za upravljanje in nadzor v obliki spletnega portala. Namestitveni modeli: P J H 179 CumuLogic Uvod: • Predstavlja platformo kot storitev za razvoj Javanskih in Spring aplikacij za oblak. • Je IaaS agnostična platforma, saj ponuja možnost izbire med številnimi infrastrukturnimi produkti (Amazon EC2, VMware, Eucalyptus, OpenStack, itn.). • Platforma se sestoji iz desetih ključnih komponent. 180 90 Uvod v računalništvo v oblaku CumuLogic Arhitektura: Katalog storitev v oblaku Ogrodje vtičnik Komponenta za avtomatično skaliranje Komponenta za spremljanje zmogljivosti in analitiko Komponenta za upravljanje z viri Komponenta za upravljanje z uporabniki Strežnik podatkovne baze (SQL ali NoSQL) Aplikacijski strežnik Spletni strežnik Izenačevalec obremenitev RESTful API Integracija Sporočilne vrste Ogrodje za avtomatizacijo storitev Eclipse IDE, Dev Tools vtičniki CLI Administrativna konzola API za integracijo z IaaS nivojem 181 CumuLogic Arhitektura: API za integracijo z IaaS nivojem: • Omogoča integracijo z različnimi IaaS ponudniki, kot so VMware, Cloud.com, Eucalyptus, OpenStack in Amazon EC2. Ogrodje za avtomatizacijo storitev: • Vključuje izenačevalca obremenitve, spletni strežnik, aplikacijski strežnik, sporočilne vrste, relacijsko in NoSQL bazo. Komponenta za avtomatično skaliranje: • Vgrajen mehanizem za avtomatično skaliranje omogoča aplikacijam, da skalirajo in vzdržujejo želeno stopnjo performance. CumuLogic mehanizem za avtomatično skaliranje prejme metrike iz nivoja operacijskega sistema, infrastrukturnega nivoja, JVM nivoja in aplikacijskega nivoja, da bi zadovoljil potrebe po skaliranju. Komponenta za spremljanje zmogljivosti in analitiko: • Platforma podpira vgrajen mehanizem za spremljanje celotnega sklada platforme in aplikacije. 182 91 Uvod v računalništvo v oblaku CumuLogic Arhitektura: Komponenta za upravljanje z viri: • Omogoča administratorjem, da definirajo minimalno in maksimalno število vozlišč v vsaki gruči z razlogom, da bi aplikacija ustregla SLA zahtevam in skladno z njimi skalirala. Komponenta za upravljanje z uporabniki: • Omogoča nadzor nad pravicami uporabnikov glede na funkcionalne vloge PaaS okolja. Ogrodje vtičnik: • S pomočjo ogrodja vtičnik smejo razvijalci dodajati v katalog poljubne strežnike in jih deliti z ostalimi razvojnimi ekipami. Katalog storitev v oblaku: • Ponuja testirane infrastrukturne komponente za privatni in javni oblak. Razvijalci lahko dodajajo v katalog nove strežniške slike ali programsko opremo. 183 CumuLogic Arhitektura: RESTful API: • Razvijalcem daje nadzor nad postavitvijo aplikacij in omogoča integracijo z razvojnimi orodji. Razvojna orodja: • S pomočjo CumuLogic vtičnika za Eclipse lahko Java razvijalci postavijo in upravljajo aplikacijo neposredno iz razvojnega okolja. 184 92 Uvod v računalništvo v oblaku CumuLogic Upravljanje: • • • • • • • Upravljanje z oskrbovanjem instanc. Upravljanje konfiguracij. Upravljanje s podatkovno bazo (MySQL gruča). Spremljanje porabe in izvajanja aplikacij ter platforme. Upravljanje z življenjskim ciklom razvoja aplikacij. Upravljanje avtomatične skalabilnosti in SLA-jev. Upravljanje uporabnikov/vlog in politike. • Orodja: – Samopostrežni spletni portal – CLI orodja. Namestitveni modeli: P J H 185 AppScale Uvod: • Predstavlja odprtokodno platformo kot storitev, ki implementira številne API-je, kot so Google App Engine, MapReduce (preko Hadoop), MPI in druge. • AppScale se izvaja kot gostovan virtualni stroj (guestVM) na vseh slojih virtualizacije, ki lahko gostiijo Ubuntu Karmic sliko. • Trenutno sta podprta dva hipervizorja: Xen in KVM. • AppScale avtomatično postavlja aplikacije na Amazon EC2 javni oblak ter Eucalyptus privatni oblak. • Platformo sestavlja pet ključnih komponent: AppController (AC), AppLoadBalancer (ALB), AppServer (AS), komponenta upravljanja podatkov ter AppScale orodja. 186 93 Uvod v računalništvo v oblaku AppScale Arhitektura: Razvijalec GAE aplikacij (AppScale admin) Uporabnik GAE aplikacij DBM ALB AS AS AS DBS DBS DBS AppScale orodja AppController (AC) HTTPS 187 AppScale Arhitektura: AppController (AC) • Izvaja se na vsakem vozlišču in se zažene ob vsakem dvigu virtualnega stroja. AC v čelnem vozlišču je zadolžen za spremljanje postavitve in avtomatično skaliranje. AppLoadBalancer (ALB) • Zadolžen za distribucijo zahtevkov s strani uporabnika do posamezne AS komponente GAE aplikacije. Uporabniki običajno vzpostavijo stik z ALB ob prijavi in avtentikaciji. AppServer (AS) • Omogoča izvajanje GAE aplikacij na Xen gručah znotraj izbranega javnega oblaka (Amazon EC2 ali Eucalyptus). 188 94 Uvod v računalništvo v oblaku AppScale Arhitektura: Komponenta upravljanja podatkov • Za upravljanje s podatki je zadolžen PBServer in skrbi za komunikacijo z podprtimi podatkovnimi bazami. Deluje nad DBM (Database Master) in DBS (Database Slave) komponentami. • AppScale trenutno podpira številne podatkovne baze: Cassandra, HBase, Hypertable, MongoDB, MemcacheDB, Scalaris, SimpleDB, MySQL Cluster in Voldemort. AppScale orodja • Omogočajo izdelavo AppScale instance in postavitev GAE aplikacij na odprtokodno platformo. – Amazon’s EC2 tools for AWS. 189 AppScale Upravljanje: • Upravljanje z virtualnimi stroji. • Upravljanje s podatkovno shrambo (relacijska baza, NoSQL baza, blobi). • Spremljanje porabe in izvajanja aplikacij. • Upravljanje življenjskega cikla razvoja aplikacij. • Upravljanje z varnostnimi kopijami. • Orodja: – CLI orodja. Namestitveni modeli: P J H 190 95 Uvod v računalništvo v oblaku PROGRAMSKA OPREMA KOT STORITEV Definicija Zmožnost izvajanja aplikacije v infrastrukturi oblaka pri čemer je le-ta dostopna več odjemalcem (spletni brskalnik, mobilne in tablične naprave, …). Uporabnik pri tem ne rabi skrbeti za upravljanje ali nadzor nad spodaj-ležečo infrastrukturo oblaka, omrežjem, strežniki, operacijskim sistemom ter individualnimi aplikacijskimi zmožnostmi. Primeri: • • • • • Google Gmail, Yahoo! Mail, Hotmail, … Facebook, Twitter, LinkedIn, … Salesforce CRM, Oracle CRM On Demand Oracle Fusion Application Services … 192 96 Uvod v računalništvo v oblaku Osnovne karakteristike SaaS Dostop do programske opreme preko različnih odjemalcev: • Spletni brskalnik, mobilne in tablične naprave, namizje … Upravljanje aplikacije iz centralne lokacije. Aplikacija je dostavljena na dva različna načina: • Pay As You Go model • Naročnina (mesečna, celoletna, …) Uporabniki ne rabijo skrbeti za nadgradnje programske opreme in popravke. API-ji omogočajo integracijo med različnimi deli aplikacije. Elastično obnašanje aplikacije - samodejna skalabilnost. 193 Arhitektura Večina SaaS rešitev temelji na večnajemniški (Multi-tenant) arhitekturi. • Ena različica aplikacije z enojno konfiguracijo (strojna oprema, omrežje, operacijski sistem) je uporabljena za vse stranke. Za podporo skalabilnosti je SaaS aplikacija nameščena na več strojih znotraj podatkovnega centra (lahko tudi med različnimi PC). 194 97 Uvod v računalništvo v oblaku Poslovni model Zaračunavanje tradicionalne programske opreme: • Stalne licence, ki jih plačamo vnaprej Zaračunavanje SaaS aplikacij: • Običajno uporabljajo naročniški poslovni model (npr. mesečna ali celoletna naročnina) • Običajno so zaračunane preko parametrov uporabe (npr. število uporabnikov aplikacije) – Pay As You Go model. • Ker so podatki aplikacije v številnih primerih ravno tako hranjeni pri SaaS ponudniku, lahko le-ti zaračunavajo glede na parametre, kot so transakcije, količina shranjenih podatkov ter ostale enote. • Zaradi večnajemniške (Multi-tenant) arhitekture lahko ponudniki ponujajo aplikacije po zelo nizki cenah – včasih tudi brezplačno. – Gmail je brezplačen, saj je poslovni model osredotočen v oglaševanje. 195 Tržni delež namestitvenih modelov 196 98 Uvod v računalništvo v oblaku NAMESTITVENI MODELI Namestitveni modeli Javni oblak: • • • • • V lasti tretje organizacije, ki ga tudi upravlja. Na voljo širši javnosti, organizacijam, podjetjem… Ponuja nizko-cenovni “pay-as-you-go” model. Večji od RC znotraj podjetij -> skalabilnost na zahtevo. Primer: Amazon AWS, IBM SmartCloud, Windows Azure… 198 99 Uvod v računalništvo v oblaku Namestitveni modeli Privatni oblak: • Postavljeni izključno za posamezno organizacijo. • Večji nadzor nad podatki, za varnost skrbijo organizacije. • Dve možnosti: – “On-premise” privatni oblak (notranji) o o o o Znotraj podatkovnega centra organizacije. Omejen na velikost in skalabilnost. Visoki kapitalni ter operativni stroški. Primerni za aplikacije, ki zahtevajo popolni nadzor nad nastavitvijo infrastrukture ter varnostjo. – Zunanji privatni oblak o Postavljen zunaj organizacije, pri enem izmed ponudnikov računalništva v oblaku. o Ponudnik mora zagotoviti popolno zaupnost. o Primerna za organizacije, ki ne želijo uporabljati javnega oblaka zaradi deljenja fizičnih resursov. • Primer: OpenStack, Eucalyptus, Microsoft Hyper-V Cloud… 199 Namestitveni modeli Hibridni oblak: • Kompozicija dveh ali več oblakov (privatnega ali javnega), ki ohranjajo unikatne entitete. Vežejo jih standardizirane tehnologije, ki omogočajo portabilnost podatkov in aplikacij (npr. cloudbursting za izenačevanje obremenitev med oblaki). • Običajno gre za razširitev privatnega oblaka z viri, ki jih ponuja javni oblak (v primeru da pride do nepričakovanega povečanja bremena). 200 100 Uvod v računalništvo v oblaku Namestitveni modeli Pregled ponudnikov: Ponudniki Privatni oblak Javni oblak Hibridni oblak IBM x x x Oracle x x x Microsoft x x x VMware x x x HP x x x EMC x x x Cisco x Amazon x x Google x x RightScale x x TerraMark x x 201 UPORABA JAVNIH OBLAKOV 101 Uvod v računalništvo v oblaku Javni oblak Zagotavljanje dinamičnih virov preko interneta na samopostrežen način in plačevanje virov po porabi. Hibridni Privatni Javni 203 Javni oblak - IaaS Javni ponudniki na nivoju IaaS • • • • • • • • • • Amazon AWS (EC2, S3, SimpeDB, …) Rakspace Cloud IBM SmartCloud Joyent GoGrid Terremark FlexiScale ElasticHosts Enomaly OpSource 204 102 Uvod v računalništvo v oblaku Javni oblak - PaaS Javni ponudniki na nivoju PaaS • • • • • • Google App Engine Windows Azure AWS Elastic Beanstalk Oracle Public Cloud Force.com IBM SmartCloud 205 Dostopnost - Primer EC2 AWS Upravljana konzola Elasticfox razširitev za Firefox 206 103 Uvod v računalništvo v oblaku Dostopnost - Primer EC2 Razširitev za Razvojna okolja (Eclipse) Amazon EC2 AMI Tools EC2 QUERY, EC2 SOAP API 207 Tveganja Varnost • Nevarnost vdora (tako s strani ponudnika kot nekih tretjih organizacij). • Glede na raziskavo IDC je vidik varnosti prvi pomislek, ki ga organizacije imajo glede oblaka. Šele nato sledi dostopnost in zmogljivost. • Za manjša podjetja je z omejenimi finančnimi viri je lahko hramba podatkov v oblaku varnejša. Zasebnost in privatnost • Uporabniki nimajo nadzora nad podatki, ki jih ponudniki o njih zbirajo (Gmail - Oglaševanje). Priklepanje ponudnika (Vendor Lock-In) • Niso vsi viri enostavno prenosljivi med ponudniki. • Uporaba specifičnih sistemov za podatkovno shrambo (npr. BigTable). • Uporaba drugih specifičnih storitev (npr. Google Login service). • Uporaba specifične platforme PaaS (npr. Windows Azure). 208 104 Uvod v računalništvo v oblaku Tveganja Dostopnost • Za poslovne aplikacije je dostopnost kritičnega pomena. • V zadnjem letu je bilo precej odmevnih izpadov: – Azure (November 2011) – Amazon (April 2011) • Dostopnost je določena z SLA, kjer pa je potrebno biti pazljiv. Q: What does your Amazon EC2 Service Level Agreement guarantee? A: The Amazon EC2 SLA guarantees 99.95% availability of the service within a Region over a trailing 365 day period. • Ob izpadu Aprila 2011, so bile 4 dni težave z delovanjem EBS in RDS storitev (bločna shramba in relacijska podatkovna baza), ki so pogosto pogoj za delovanje aplikacij v EC2 instancah. • SLA ni bil prekršen, ker zajema samo EC2, ki pa je deloval normalno! 209 Tveganja Stabilnost zmogljivosti • Raziskave so pokazale da ponudniki še ne dosegajo ustreznega skaliranja. Test Amazona, Googla in Microsofta je pokazal, da je pri nenadnemu povečanju uporabnikov na 2000, odzivni čas variiral tudi za faktor 20! Omejitve omrežja • Delovanje storitev je odvisno od delovanja omrežja. • Zaradi nepredvidljivega odzivnega časa oblak ni primeren za določene aplikacije (npr. trgovanje z delnicami in valutami). • Prenos ogromnih količin podatkov je lahko dražji in traja dlje časa kot če klasične diske pošljemo s kurirsko službo. 210 105 Uvod v računalništvo v oblaku Prednosti Samopostrežba virov (Self Service) • Uporabnik si sam postreže z viri. • Spletni portal, ukazna vrstica, razširitve za razvijalce (Eclipse). Plačilo po porabi (Pay-as-you-Go) • Na podlagi različnih metrik se meri poraba. • Zmerjena poraba se zaračuna. Skalabilnost • Viri so elastični, navidezno neskončni • Dobili bomo toliko virov kot ji bomo potrebovali. Odpornost na napake in okrevanje ob izpadu • • • • Ni potrebno da sami zagotovimo te vidike. Samo-odpravljanje napak. Samodejna izdelava varnostnih kopij podatkov. Večkratna redundanca podatkov in aplikacije. 211 Prednosti Neodvisnost od lokacije uporabnika • Enostavna uporaba virov od doma, z mobilnih telefonov, tablic, … (Gmail). Specifičen kader za vzdrževanje storitev ni potreben Samodejno posodabljanje • Amazon RDS, SaaS Storitve, … Nižji stroški • Ni kapitalnih stroškov (CAPEX), samo operativni (OPEX). Poslovna agilnost • Nakup opreme je hiter. • Pohitri se čas na tržišče (Time to Market). • Pohitri se čas do ustvarjanja dobička (Time to Revenue). 212 106 Uvod v računalništvo v oblaku Prednosti - primeri Zahtevne simulacije • Izvedemo hitreje in ne kupujemo nepotrebne opreme. Razvoj aplikacij, testiranje in zagotavljanje kakovosti • Nakup specifičnih produktov potrebnih v času razvoja ni potreben. • Nakup fizične programske in strojne ni potreben za namene testiranja in zagotavljana kakovosti. – – – – Operacijski sistemi Različne strojne konfiguracije Različne verzije izvajalnih okolij Testiranje skaliranja Nepredvidljive potrebe po virih • Obisk spletnih trgovin pred prazniki, prodaja nogometnih vstopnic. 213 MIGRACIJA V OBLAK, PORTABILNOST IN IZHODNA STRATEGIJA 107 Uvod v računalništvo v oblaku Migracija obstoječih rešitev v oblak Gartner identificira pet načinov, kako migrirati aplikacije v oblak: • Ponovno gostovanje (Rehost): – Postavimo aplikacijo v drugo okolje strojne opreme in spremenimo infrastrukturne konfiguracije. – Prednost: Ponovno gostovanje aplikacije brez arhitekturnih sprememb in „refactoringa“ je hitra rešitev migracije v oblak (na nivoju IaaS). – Slabost: Ker arhitekture aplikacije ni potrebno spreminjati pa ne moremo polno koristiti karakteristik infrastrukture oblaka, kot je na primer skalabilnost. • Preurejanje (Refactoring): – Izvajanje aplikacije na infrastrukturi ponudnika oblaka. – Prednost: Razvijalci lahko ponovno uporabijo programske jezike, ogrodja in vsebnika v katere so investirali (na nivoju PaaS). – Slabost: Pomanjkanje zmožnosti, tranzitivno tveganje in zaklepanje v ogrodje (framework lock-in). 215 Migracija obstoječih rešitev v oblak Gartner identificira pet načinov, kako migrirati aplikacije v oblak: • Revizija (Revise): – Modificiramo ali razširimo obstoječo programsko kodo, da bi modernizirali „legacy“ sisteme. Nato uporabimo ponovno gostovanje (1) ali preurejanje (2) in tako postavimo aplikacijo v oblak. – Prednost: Omogoča organizacijam optimizirati aplikacijo, ki bo koristila karakteristike oblaka ponudnika. – Slabost: Takšen projekt bi zahteval veliko truda in stroškov, da bi mobilizirali razvojno ekipo. • Ponovna gradnja (Rebuild): – Ponovno zgradi aplikacijo na PaaS, odstrani kodo iz obstoječe aplikacije in ponovno načrtuj aplikacijo za oblak. – Prednost: Čeprav ponovna gradnja zahteva izgubo podobnosti z obstoječo kodo in ogrodji je njena prednost v inovativnih funkcionalnostih ponudnikove platforme. – Slabost: Na drugi strani pa je zaklepanje pri ponudniku največja slabost- V primeri, da ponudnik naredi tehnične ali cenovne spremembe, ki jih uporabnik ne more sprejeti, ali prekrši SLA, je uporabnik prisiljen zamenjati oziroma zapustiti nekatera ali vsa sredstva aplikacije. 216 108 Uvod v računalništvo v oblaku Migracija obstoječih rešitev v oblak Gartner identificira pet načinov, kako migrirati aplikacije v oblak: • Zamenjava (Replace): – Zavrži obstoječo aplikacijo ali nabor aplikacij in uporabi komercialno programsko opremo dostavljeno kot storitev (SaaS). – Prednost: Ta možnost se izogne investicijam potrebnih za mobiliziranje razvojne ekipe v primerih, ko se zahteve po poslovnih funkcionalnostih hitro zamenjajo. – Slabost: Nekonsistentna podatkovna semantika, težave pri dostopu do podatkov in zaklepanje pri ponudniku. 217 Migracija obstoječih rešitev v oblak Amazon AWS predlaga šestfazni migracijski pristop: 1 Faza evalvacije: • Finančna evalvacija (kalkulacija TCO in ROI). • Evalvacija varnosti in predpisov. • Tehnična evalvacija. • Identifikacija ponovno uporabljivih orodij. • Migracija licenčnih produktov. Faza evalvacije • Ustvari drevo odvisnosti • Ocena stroškov • Ocena arhitekture • Ocena varnosti 218 109 Uvod v računalništvo v oblaku Migracija obstoječih rešitev v oblak Amazon AWS predlaga šestfazni migracijski pristop: 2 Proof of Concept faza: • Preučitev AWS tehnologije. • Izdelava pilotne aplikacije in validacija tehnologije. • Testiranje obstoječe programske opreme v oblaku. Proof of Concept faza • Študija AWS • Izdelava pilota • Vzpostavitev podpore znotraj organizacije 219 Migracija obstoječih rešitev v oblak Amazon AWS predlaga šestfazni migracijski pristop: 3 Faza migracije podatkov: • Razumevanje različnih možnosti shrambe podatkov. • Migracija datotečnih strežnikov na Amazon S3. • Migracija komercialnih SUPB na EC2 + EBS. • Migracija MySQL na Amazon RDS. Faza migracije podatkov • Preizkus različnih možnosti shrambe • Migracija podatkov 220 110 Uvod v računalništvo v oblaku Migracija obstoječih rešitev v oblak Amazon AWS predlaga šestfazni migracijski pristop: 4 Faza migracije aplikacije: • Celostna migracijska strategija. • Hibridna migracijska strategija. • Izdelava AMI-jev za vsako komponento. Faza migracije aplikacije • Celostna migracija • Hibridna migracija 221 Migracija obstoječih rešitev v oblak Amazon AWS predlaga šestfazni migracijski pristop: 5 Faza uporabe oblaka: • Preizkus ostalih AWS storitev. • Avtomatizirana elastičnost in SDLC. • Izboljšana varnost. • Izdelava nadzorne plošče za upravljanje virov AWS. • Uporaba več dostopnih območij. Faza uporabe oblaka • Avtomatično skaliranje • Avtomatizacija • Elastičnost • Visoka stopnja dostopnosti 222 111 Uvod v računalništvo v oblaku Migracija obstoječih rešitev v oblak Amazon AWS predlaga šestfazni migracijski pristop: Faza optimizacije: 6 • Optimizacija uporabe na zahtevo. • Izboljšava učinkovitosti. • Implementacija naprednega spremljanja. • Re-inženiring aplikacije. Faza optimizacije • • • • • Utilizacija Spremljanje Učinkovitost Zmogljivost Ponovni inženiring 223 Migracija med IaaS platformami Migracija med Amazon EC2 in OpenStack: • Uporaba multi-cloud ogrodja jclouds zagotavlja enostavno migracijo Javanske aplikacije med Amazon EC2 in OpenStack instancami, brez potrebe po spreminjanju izvorne kode. Aplikacija jclouds OpenStack EC2 … 224 112 Uvod v računalništvo v oblaku Migracija med IaaS platformami Migracija med Amazon EC2 in OpenStack: • jclouds trenutno ponuja dve API abstrakciji: – Blobstore o Poenostavlja delo z key-value ponudniki, kot sta na primer Amazon S3 in Azure Storage Blobs. – Computeservice o Poenostavlja delo z upravljanjem virtualnih strojev v oblaku. Podprti produkti so Amazon EC2, Rackspace Cloud Servers, OpenStack, VMware vCloud API in RimuHosting VPS. 225 Migracija obstoječih rešitev na PaaS Primer migracije na Azure: Analiza Strategija Načrtovanje Izvedba migracije komponent Analiza: • Analiziramo trenutno stanje svoje tehnološke infrastrukture in aplikacij ter ocenimo na čem smo in hkrati, kje bi želeli biti v prihodnje. 226 113 Uvod v računalništvo v oblaku Migracija obstoječih rešitev na PaaS Primer migracije na Azure: Analiza Strategija Načrtovanje Izvedba migracije komponent Strategija: • Ko enkrat uspemo identificirati, katere oblačne prednosti razširljivost, elastičnost, rapidna postavitev itn. – nam bo najbolje ustrezala, želimo izbrati ocenjevalno ter migracijsko strategijo, ki bo najbolje ustrezala poslovnim potreba. 227 Migracija obstoječih rešitev na PaaS Primer migracije na Azure: Analiza Strategija Načrtovanje Izvedba migracije komponent Načrtovanje: • Ko so aplikacije enkrat identificirane kot del celotne strategije, je potrebno začeti razmišljati o njihovi arhitekturi in načrtovanju. 228 114 Uvod v računalništvo v oblaku Migracija obstoječih rešitev na PaaS Primer migracije na Azure: Analiza Strategija Načrtovanje Izvedba migracije komponent Izvedba migracije posameznih komponent: • Microsoft SQL Server migracija: – Premik velikih tabel v Azure Storage tabele. – Segmentacija podatkov preko več instanc SQL Azure Database. • NFS migracija: – Omrežni datotečni sistem migriramo v visoko razširljive Azure Storage blobe. • Migracija spletne aplikacije: – Aplikacija se preslika v spletne, delovne ali VM role. • Migracija sporočilne vrste – MSMQ: – Sporočilne vrste se preslikajo v Windows Azure Storage vrste. 229 Portabilnost med PaaS platformami Migracija aplikacij iz Windows Azure na Microsoft Private Cloud: Portabilnost aplikacije Portabilnost aplikacije Tradicionalni podatkovni center Privatni oblak Javni oblak • PaaS: Windows Azure Platform Appliance • IaaS: Hyper-V Cloud Identiteta Windows Server Active Directory Upravljanje System Center Razvoj Visual Studio, .NET 230 115 • PaaS: Windows Azure Platform Uvod v računalništvo v oblaku Portabilnost med PaaS platformami Migracija Javanskih aplikacij na GAE. URLFetch Service Aplikacija App Engine izvajalno okolje Obstoječa javanska aplikacija ? Blobstore Datastore Memcache 231 Portabilnost med PaaS platformami Migracija Javanskih aplikacij na GAE. • Migracija obstoječe (Java) aplikacije na Google App Engine ni nemogoča, je pa v številnih primerih potrebno narediti „refactoring“ programske kode. • Google App Engine v celoti ne podpira Java EE specifikacije in nima podpora za delo z relacijskimi podatkovnimi bazami. • Trenutna podpira: – – – – – – – – – Java Data Objects (JDO) Java Persistence API (JPA) Java Server Faces (JSF) 1.1 - 2.0 Java Server Pages (JSP) + JSTL Java Servlet API 2.4 JavaBeans™ Activation Framework (JAF) Java Architecture for XML Binding (JAXB) JavaMail XML API-ji za procesiranje (DOM, SAX in XSLT) 232 116 Uvod v računalništvo v oblaku Portabilnost med PaaS platformami Migracija Javanskih aplikacij na GAE. • Ne podpira naslednjih tehnologij: – – – – – – – – – Enterprise Java Beans (EJB) JAX-RPC JAX-WS Java Database Connectivity (JDBC) Java EE™ Connector Architecture (JCA) Java Management Extensions (JMX) Java Message Service (JMS) Java Naming and Directory Interface (JNDI) Remote Method Invocation (RMI) 233 Portabilnost med PaaS platformami Platforme, ki podpirajo razvoj Javanskih aplikacij: • • • • • • • • • • • • Google App Engine OpenShift FLEX (beta) IBM PaaS VMware vFabric Cloud Application Platform Oracle PaaS VMware Cloud Foundry AWS Elastic Beanstalk CloudBees Windows Azure CumuLogic Jelastic … 234 117 Uvod v računalništvo v oblaku Izhodna strategija Večina IaaS in PaaS ponudnikov uporablja unikatne in lastniške uporabniške vmesnike, API-je in podatkovne baze. Uporaba takšnih storitev v polni meri zahteva od uporabnikov, da programirajo v skladu s predpisanimi specifikacijami ponudnika. V primeru, da uporabniki storitev želijo zamenjati ponudnika iz kakršnegakoli razloga (nezadovoljstvo, ponudnik preneha poslovati) znajo naleteti na številne težave, predvsem zaradi nestandardiziranih formatov, na primer: • Prenos statičnih podatkov iz Amazon S3 na Azure Storage Blobs. Rešitev: • Uporaba multi-cloud ogrodij, ki zagotavljajo neodvisnost od ponudnika storitev oblaka: – jclouds (http://www.jclouds.org/) – Dasein Cloud API (http://dasein-cloud.sourceforge.net/) – Deltacloud (http://incubator.apache.org/deltacloud/)... • Standardizacija storitev oblaka. 235 SKLEP e-naslov: http://www.cloud.si e-naslov: http://www.soa.si e-pošta: info@cloud.si 236 118
© Copyright 2024