Delavnica racunalništvo v oblaku zaudelezence
-
Upload
tomaz-verbinc -
Category
Documents
-
view
236 -
download
4
description
Transcript of Delavnica racunalništvo v oblaku zaudelezence
Uvod v računalništvo v oblaku
1
Univerza v Ljubljani, FRI
Center za računalništvo v oblaku www.cloud.si
Robert Dukarić, Rok Povše, Matjaž B. Jurič
RAČUNALNIŠTVO V OBLAKU
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
Uvod v računalništvo v oblaku
2
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
Uvod v računalništvo v oblaku
3
Definicija
5
Definicija
6
Računalništvo v oblaku
Računalništvo v oblaku
Tipi
Namestitveni modeli
Lokalnost
Deležniki Sorodne tehnologije
Prednosti
Karakteristike
IaaS
PaaS
SaaS Elastičnost
Avtomatizacija
Samopostrežba
Znižanje stroškov
Večja agilnost
Storitveno usmerjena arhitektura (SOA)
Mrežno računalništvo
Virtualizacija
Ponudniki
Odjemalci Razvijalci
Organizacije
Lokalno
Oddaljeno
Distribuirano
Privatni
Javni
Hibridni
…
…
…
Uvod v računalništvo v oblaku
4
Tipi računalništva v oblaku
7
SaaS • Software as a Service
PaaS • Platform as a Service
IaaS • Infrastructure as a Service
Razvijalci
Odjemalci
Administrator
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
Uvod v računalništvo v oblaku
5
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
Uvod v računalništvo v oblaku
6
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
Uvod v računalništvo v oblaku
7
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
Uvod v računalništvo v oblaku
8
Upravljanje oblaka
15
Aplikacije Aplikacije
Izvajalno okolje Izvajalno okolje
Podatki Podatki
Vmesna programska oprema
Vmesna programska oprema
Operacijski sistem Operacijski sistem
Virtualizacija Virtualizacija
Strežniki Strežniki
Shramba Shramba
Omrežje Omrežje
Aplikacije Aplikacije
Izvajalno okolje Izvajalno okolje
Podatki Podatki
Vmesna programska oprema
Vmesna programska oprema
Operacijski sistem
Virtualizacija
Strežniki
Shramba
Omrežje
Aplikacije Aplikacije
Izvajalno okolje
Podatki Podatki
Vmesna programska oprema
Operacijski sistem
Virtualizacija
Strežniki
Shramba
Omrežje
Aplikacije
Izvajalno okolje
Podatki
Vmesna programska oprema
Operacijski sistem
Virtualizacija
Strežniki
Shramba
Omrežje
Lokalno IaaS PaaS SaaS
Upravlja ponudnik
Upravlja uporabnik
Klasično načrtovanje kapacitet
16
ČAS
KA
PAC
ITET
A
Dejanska obremenitev
Presežek kapacitet
Primanjkljaj kapacitet
Fiksna cena kapacitet
Predvidena obremenitev
Cena na enoto
kapacitete
Uvod v računalništvo v oblaku
9
Elastičnost v oblaku
17
Dejanska obremenitev
Alocirana kapaciteta
Znižanje začetne
investicije
Ni presežka kapacitet
Ni primanjkljaja kapacitet
V primeru manjše
obremenitve se kapacitete samodejno znižajo (in s tem stroški)
ČAS
KA
PAC
ITET
A
Predvidena obremenitev
INFRASTRUKTURA KOT STORITEV
Uvod v računalništvo v oblaku
10
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
Uvod v računalništvo v oblaku
11
Računalništvo v oblaku in mrežno računalništvo:
Distribuirani sistemi
Web 2.0 Web 2.0
Primerjava s sorodnimi tehnologijami
21
Gruče
Super-računalniki Super-računalniki
Računalništvo v oblaku
Mrežno računalništvo
Skaliranje
Aplikacijska usmerjenost
Storitvena usmerjenost
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:
Primerjava s sorodnimi tehnologijami
22
Aplikacija Aplikacija
Platforma Platforma
Enotni viri Enotni viri
Infrastruktura Infrastruktura
Aplikacija Aplikacija
Kolektiv Kolektiv
Povezljivost Povezljivost
Infrastruktura Infrastruktura
Viri Viri
Omrežno računalništvo Računalništvo v oblaku
Uvod v računalništvo v oblaku
12
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
Uvod v računalništvo v oblaku
13
Primerjava s sorodnimi tehnologijami
Računalništvo v oblaku in mrežno računalništvo:
25
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.
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.
• Računalništvo v oblaku
26
Izolacija
Konsolidacija
Elastičnost
Virtualizacija
Samopostrežba
Avtomatizacija
Uvod v računalništvo v oblaku
14
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
Uvod v računalništvo v oblaku
15
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
Uvod v računalništvo v oblaku
16
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
Uvod v računalništvo v oblaku
17
OpenStack
Arhitektura:
33
OpenStack Compute
OpenStack Compute
OpenStack Object Storage
OpenStack Object Storage
OpenStack Image Service
OpenStack Image Service
API sloj API sloj
Mobilne aplikacije, spletni odjemalci, poslovno informacijski sistemi…
OpenStack Identity OpenStack Identity OpenStack Dashboard OpenStack Dashboard
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
Uvod v računalništvo v oblaku
18
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
Uvod v računalništvo v oblaku
19
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.
38
Image: • Format diska, format
vsebnika, velikost, … Image Property: • Poljubni metapodatki slik.
Uvod v računalništvo v oblaku
20
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:
39
P J H
OpenStack
OpenStack Dashboard – samopostrežni spletni portal.
40
Uvod v računalništvo v oblaku
21
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
Arhitektura:
42
Razporejevalnik Razporejevalnik Ostala orodja Ostala orodja CLI CLI
Gonilnik za prenos
Gonilnik za prenos
Gonilnik informacij Gonilnik
informacij Gonilnik VM-jev Gonilnik VM-jev
SQL bazen SQL bazen Upravitelj zahtevkov (izpostavlja
XML-RPC API) Upravitelj zahtevkov (izpostavlja
XML-RPC API)
Upravitelj gostiteljev Upravitelj gostiteljev
Upravitelj prenosov Upravitelj prenosov
Upravitelj VM-jev
Upravitelj VM-jev
Oro
dja
Je
dro
G
on
ilnik
i
Če želimo uporabljati drug hipervizor…
Uvod v računalništvo v oblaku
22
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
Uvod v računalništvo v oblaku
23
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:
45
P J H
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
Uvod v računalništvo v oblaku
24
Eucalyptus
Arhitektura:
47
Nadzornik oblaka (CLC) Nadzornik oblaka (CLC) Walrus Walrus
Nadzornik gruče (CC) Nadzornik gruče (CC) Nadzornik gruče (CC) Nadzornik gruče (CC) Nadzornik shrambe (SC) Nadzornik shrambe (SC) Nadzornik shrambe (SC) Nadzornik shrambe (SC)
Nadzornik vozlišč (NC) Nadzornik vozlišč (NC)
Nadzornik vozlišč (NC) Nadzornik vozlišč (NC)
Nadzornik vozlišč (NC) Nadzornik vozlišč (NC)
Nadzornik vozlišč (NC) Nadzornik vozlišč (NC)
Nadzornik vozlišč (NC) Nadzornik vozlišč (NC)
Nadzornik vozlišč (NC) Nadzornik vozlišč (NC)
Spletni brskalnik SOAP orodja REST orodja
Gruča A Gruča B
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
Uvod v računalništvo v oblaku
25
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:
49
P J H
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
Uvod v računalništvo v oblaku
26
OpenStack, Eucalyptus, OpenNebula
Primerjava:
51
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
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
Uvod v računalništvo v oblaku
27
VMware vCloud
Arhitektura:
53
vCloud Director vCloud Director
vSphere vSphere
Fizična infrastruktura Fizična infrastruktura
vShield Manager vShield
Manager vCenter
Chargeback vCenter
Chargeback vCloud
Connector vCloud
Connector
vCenter Operations
vCenter Operations
VMware Service
Manager
VMware Service
Manager
VMware Configuration
Manager
VMware Configuration
Manager
Orchestrator Orchestrator
RabbitMQ RabbitMQ
vCloud API vCloud API
vSphere API vSphere API
VADP VADP
Skupni vmesnik Upravljanje in
orkestracija Sklad oblaka
VMware vCloud
Arhitektura:
VMware vCloud Director
• Storitev, ki omogoča izgradnjo ter izpostavljanje oblakov s pomočjo spletnega portala in programskih vmesnikov.
54
Uvod v računalništvo v oblaku
28
VMware vCloud
Arhitektura:
VMware vCloud Director
55
VMware vCloud
Arhitektura:
VMware vSphere
• Virtualizirana platforma, ki ponuja abstrakcijo nivoja fizične infrastrukture za vCloud.
56
vStorage APIs for Data Protection
Uvod v računalništvo v oblaku
29
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
Uvod v računalništvo v oblaku
30
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
Uvod v računalništvo v oblaku
31
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
Uvod v računalništvo v oblaku
32
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:
63
P J H
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
Uvod v računalništvo v oblaku
33
Microsoft Hyper-V Cloud
Arhitektura:
65
Samopostrežba in oskrbovanje
Samopostrežba in oskrbovanje
System Center VMM Self-Service Portal
System Center VMM Self-Service Portal
Integrirano upravljanje Integrirano upravljanje System Center System Center
Platforma Platforma Windows Server 2008
R2 Hyper-V Windows Server 2008
R2 Hyper-V
Identiteta Identiteta Windows Server 2008
Active Directory Windows Server 2008
Active Directory
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
Uvod v računalništvo v oblaku
34
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
Uvod v računalništvo v oblaku
35
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:
69
P J H
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
Uvod v računalništvo v oblaku
36
Apache VCL
Arhitektura:
71
Spletna komponenta (VCL razporejevalnik) Spletna komponenta (VCL razporejevalnik)
Podatkovna baza
Podatkovna baza
Upravljavsko vozlišče Upravljavsko vozlišče
Fizična postavitev
Fizična postavitev
Virtualna postavitev Virtualna
postavitev
Modul za novo
postavitev
Modul za novo
postavitev
Repozitorij slik Repozitorij slik
Vozlišče Vozlišče Vozlišče Vozlišče
Vozlišče Vozlišče
• rezervacije VCL kapacitet, • nadzor dostopa, • inventar strojev, • zgodovino logov.
• Bladi, VM-ji, stroji v LAB-ih… • 80 – 120 blade-ov
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
Uvod v računalništvo v oblaku
37
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:
73
P J H
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
Uvod v računalništvo v oblaku
38
Nimbus
Arhitektura:
75
Cumulus Storage Service
Cumulus Storage Service
Workspace Service
(WSRF, EC2)
Workspace Service
(WSRF, EC2)
Context Broker Context Broker
Workspace Control
Workspace Control
Context odjemalec
Context odjemalec
Cloud odjemalec
Cloud odjemalec
Workspace odjemalec Workspace odjemalec
Workspace resource manager
Workspace resource manager
Workspace Pilot
(integracija)
Workspace Pilot
(integracija)
Ponudnik oblaka
Ponudnik oblaka
Razporejevalnik
• zagonu, zaustavitvi VM-jev. • upravljanju slik VM-jev. • varno povezovanju VM na omrežje.
• Koordinacija samodejnega zagona VM-jev
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
Uvod v računalništvo v oblaku
39
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:
78
P J H
Uvod v računalništvo v oblaku
40
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:
80
Nadzorniški vmesniki Nadzorniški vmesniki
Dom0 Dom0 XAPI XAPI
XAPI Lib XAPI Lib
Ctrl IF Ctrl IF
Omrežje Shramba Gonilniki
Omrežje Shramba Gonilniki
Operacijski sistem
(Windows, Linux)
Operacijski sistem
(Windows, Linux)
Xen hipervizor Xen hipervizor
Fizična strojna oprema Fizična strojna oprema Bazen virov
Uvod v računalništvo v oblaku
41
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:
82
P J H
Uvod v računalništvo v oblaku
42
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.
84
OpenQRM strežnik
OpenQRM strežnik
OpenQRM vtičnik oblaka
OpenQRM vtičnik oblaka
Abstrakcija
hrambe
Abstrakcija virov
AoE-balde
NFS-balde
NetAPP
iSCSI-Target
• Dodelitev stežnikov, • Postavitev slik…
VMware ESX
KVM
Xen
Uvod v računalništvo v oblaku
43
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:
85
P J H
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
Uvod v računalništvo v oblaku
44
RedHat CloudForms
Arhitektura:
87
Infrastrukturne storitve Infrastrukturne storitve
Storitve oblaka
Storitve oblaka
Storitve oblaka
Storitve oblaka
Storitve oblaka
Storitve oblaka
Storitve oblaka
Storitve oblaka
Upravljanje izvajalnih virov Upravljanje izvajalnih virov
Pogon oblaka Pogon oblaka
Upravljanje izvajalnih virov Upravljanje izvajalnih virov
Sistemski pogon Sistemski pogon Aplikacijski pogon Aplikacijski pogon
Spremljanje, upravljanje, sporočanje, replikacija, visoka razpoložljivost (HA)…
• Izdelavo virov, • upravlja politike
in delovne tokove
• Vodi dostop in dovoljenja do teh virov.
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
Uvod v računalništvo v oblaku
45
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:
89
P J H
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
Uvod v računalništvo v oblaku
46
IBM SmartCloud
Arhitektura:
91
Upravljanje infrastrukturne storitve
Upravljanje infrastrukturne storitve
Sistemi za operacijsko podporo Sistemi za operacijsko podporo
Optimizacijske storitve Optimizacijske storitve
Varnostna komponenta Varnostna komponenta
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
Uvod v računalništvo v oblaku
47
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:
94
P J H
Uvod v računalništvo v oblaku
48
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:
96
Strežniki Strežniki
Shramba Shramba
Aplikacija 1 Aplikacija 1 Aplikacija 2 Aplikacija 2 Aplikacija 3 Aplikacija 3
Fizično in virtualno
upravljanje sistema (Oracle
Enterprise Manager
Ops Center)
Fizično in virtualno
upravljanje sistema (Oracle
Enterprise Manager
Ops Center)
Oracle Solaris vsebniki Oracle VM za SPARC
Oracle Solaris vsebniki Oracle VM za SPARC
Oracle VM za x86 Oracle VM za x86
Oracle Linux Oracle Linux Oracle Solaris Oracle Solaris
Uvod v računalništvo v oblaku
49
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:
98
P J H
Uvod v računalništvo v oblaku
50
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
Uvod v računalništvo v oblaku
51
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
Uvod v računalništvo v oblaku
52
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
Uvod v računalništvo v oblaku
53
Programski modeli
Model računalništva v oblaku:
• Amazon AWS:
105
Aplikacija
Aplikacija
Amazon EC2
Vnaprej nastavljen AMI
Odjemalec Zunanji sistem
AWS Elastic Beanstalk
RDS EC2+EBS
SimpleDB
SQS
S3
Programski modeli
Model računalništva v oblaku:
• Google App Engine:
106
Aplikacija
Aplikacija
App Engine izvajalno okolje
URLFetch Service
Odjemalec Zunanji sistem
Blobstore Datastore
Memcache
Uvod v računalništvo v oblaku
54
Programski modeli
Model računalništva v oblaku:
• Windows Azure:
107
Aplikacija
Web role Worker role VM role
Odjemalec Zunanji sistem
AppFabric Service Bus
AppFabric Caching
SQL Azure
Azure Storage
Aplikacija
Aplikacija
Web role
SQL Azure
AppFabric Service Bus
Odjemalec Zunanji sistem
Worker role
VM role
Azure Storage
AppFabric Caching
Programski modeli
Model računalništva v oblaku:
• Force.com:
108
Aplikacija
Aplikacija
Apex izvajalno okolje
Force.com Database
Force.com Web Services
Odjemalec Zunanji sistem
Uvod v računalništvo v oblaku
55
Življenjski cikel razvoja aplikacij na PaaS
SDLC na PaaS:
109
Lokalno Lokalno
Razvoj aplikacije Upravljanje verzij in nadzor
kode
Gradnja in testiranje - Orodja za razvoj - Orodja za Unit testiranje
Gradnja in testiranje - Orodja za razvoj - Orodja za Unit testiranje
Postavi - Spletni portal - CLI orodja - SDK-ji in vtičniki za razvojna orodja
Postavi - Spletni portal - CLI orodja - SDK-ji in vtičniki za razvojna orodja
V oblaku V oblaku
Postavitev in izdaja
Upravljanje in spremljanje storitev
Sistemsko testiranje
Sistemsko testiranje
Izdaja v produkcijo
Izdaja v produkcijo
UAT
Prenos v produ-kcijo
Smoke test
Integra-cijski test Upra-
vljanje
Spre-mljanje
Nasta-vitve
Izdaja verzije
Odpravljanje hroščev
Življenjski cikel razvoja aplikacij na PaaS
Testiranje aplikacije v oblaku je smiselno opraviti v treh fazah:
110
• Lokalno testiranje aplikacije znotraj emulatorjev.
• Uporaba lokalne podatkovne shrambe.
Lokalno
• Lokalno testiranje aplikacije znotraj emulatorjev.
• Uporaba podatkovne shrambe v oblaku.
Hibridno • Testiranje aplikacije v
oblaku.
• Uporaba podatkovne shrambe v oblaku.
V oblaku
Uvod v računalništvo v oblaku
56
111
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
112
Java v oblaku
Aplikacija
PaaS
IaaS
Virtualizacija
Upravljanje stanj, elastičnost, …
Java storitve
Trajnost podatkov
Storitveno vodilo, sporočilni sistem, …
Aplikacija Aplikacija Aplikacija
UPRAVLJANO
OKOLJE
Uvod v računalništvo v oblaku
57
113
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
114
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
...
Uvod v računalništvo v oblaku
58
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
Uvod v računalništvo v oblaku
59
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
Uvod v računalništvo v oblaku
60
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
Uvod v računalništvo v oblaku
61
Podatkovna shramba v oblaku
NoSQL podatkovne baze:
121
A
P C
Availability, Partition-tolerance:
• Dynamo • Voldemort • Cassandra
• SimpleDB • CouchDB • Riak
Consistency, Availability:
• RDBMS (MySQL, Postgres, DB2, …) • Vertica (stolpično usmerjena)
Consistency, Partition-tolerance:
• BigTable • Hypertable • HBase
• MongoDB • Terrastore • Redis
• Scalaris • MemcacheDB • Berkeley DB
Podatkovna shramba v oblaku
NoSQL podatkovne baze:
• Primeri „Key-value“ baz:
– 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
Uvod v računalništvo v oblaku
62
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
Uvod v računalništvo v oblaku
63
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
Uvod v računalništvo v oblaku
64
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
Uvod v računalništvo v oblaku
65
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:
130
Elastic Beanstalk aplikacija
Okolje Okolje
Verzija Verzija
S3 vedro
http://moja-aplikacija.elasticbeanstalk.com/
Elastic Load Balancer Elastic Load Balancer
Apache Apache
Tomcat
Tomcat
Amazon Linux AMI Amazon Linux AMI
EC2 instance EC2 instance EC2 instance EC2 instance EC2 instance EC2 instance Auto Scaling
Izvajana aplikacija
Elas
tic
Bea
nst
alk
Ho
st
Man
ager
El
asti
c B
ean
stal
k H
ost
M
anag
er
Uvod v računalništvo v oblaku
66
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
Uvod v računalništvo v oblaku
67
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:
133
P J H
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
Uvod v računalništvo v oblaku
68
RedHat OpenShift
Arhitektura:
135
RedHat OpenShift RedHat OpenShift
Amazon EC2 infrastruktura Amazon EC2 infrastruktura
Express Express Flex Flex
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
Uvod v računalništvo v oblaku
69
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:
137
P J H
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
Uvod v računalništvo v oblaku
70
Windows Azure platforma
Arhitektura:
139
Windows Azure Windows Azure
Windows Azure AppFabric
Windows Azure AppFabric
SQL Azure SQL Azure
Aplikacije in podatki
Windows Azure Marketplace
Windows Azure Marketplace
Windows Azure platforma
Arhitektura:
Windows Azure: • Okolja za izvajanje aplikacij in shrambo podatkov na strežnikih znotraj Microsoft-
ovih 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
Uvod v računalništvo v oblaku
71
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:
142
P J H
Uvod v računalništvo v oblaku
72
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:
144
„Frontend“ „Frontend“
Datotečni strežniki
Datotečni strežniki
zehteva
Datastore Blobstore Memcache
URL Fetch URL Fetch Mail Mail
Images Images XMPP XMPP
Task Queues
Task Queues
Accounts Accounts
Aplikacijski strežniki
Aplikacijski strežniki
Uvod v računalništvo v oblaku
73
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
Uvod v računalništvo v oblaku
74
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:
147
P J H
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
Uvod v računalništvo v oblaku
75
IBM PaaS
Arhitektura:
149
Aplikacijske storitve Aplikacijske storitve
Življenjski cikel aplikacij Življenjski cikel aplikacij
Integracijske storitve Integracijske storitve
„Workload“ storitve „Workload“ storitve
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
Uvod v računalništvo v oblaku
76
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:
152
P J H
Uvod v računalništvo v oblaku
77
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:
154
Deljene storitve Deljene storitve
Integracijska komponenta Integracijska komponenta
Aplikacijska komponenta Aplikacijska komponenta
Podatkovna komponenta Podatkovna komponenta
Komponenta upravljanja s
procesi
Komponenta upravljanja s
procesi
Varnostna komponenta
Varnostna komponenta
Komponenta uporabniške interakcije
Komponenta uporabniške interakcije
Aplikacija 1 Aplikacija 1 Aplikacija 2 Aplikacija 2 Aplikacija 3 Aplikacija 3
Upravljavska komponenta Upravljavska komponenta
Uvod v računalništvo v oblaku
78
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
Uvod v računalništvo v oblaku
79
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:
157
P J H
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
Uvod v računalništvo v oblaku
80
VMware vFabric
Arhitektura:
159
Komponenta za razporejanje bremena (ERS) Komponenta za razporejanje bremena (ERS)
Strežniška komponenta (tc Server) Strežniška komponenta (tc Server)
Sporočilna komponenta (RabbitMQ)
Sporočilna komponenta (RabbitMQ)
Komponenta za upravljanje in spremljanje
(Hyperic)
Komponenta za upravljanje in spremljanje
(Hyperic)
Podatkovna komponenta (GemFire)
Podatkovna komponenta (GemFire)
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
Uvod v računalništvo v oblaku
81
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
Uvod v računalništvo v oblaku
82
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:
163
P J H
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
Uvod v računalništvo v oblaku
83
WMware Cloud Foundry
Arhitektura:
165
Nadzornik oblaka (CC) Nadzornik
oblaka (CC) DEA DEA DEA DEA DEA DEA
Sporočilno vodilo
Storitve Storitve Storitve Storitve
Storitve Storitve Storitve Storitve Usmerjevalniki Usmerjevalniki
Upravljavec zdravja
… Razvijalec
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
Uvod v računalništvo v oblaku
84
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:
168
P J H
Uvod v računalništvo v oblaku
85
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:
170
AppExchange AppExchange
Uporabniški vmesnik Uporabniški vmesnik
Logika Logika
Integracija Integracija
Podatkovna baza Podatkovna baza
Infrastruktura Infrastruktura
Raz
vojn
a o
rod
ja
Raz
vojn
a o
rod
ja
Uvod v računalništvo v oblaku
86
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
Uvod v računalništvo v oblaku
87
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:
174
P J H
Uvod v računalništvo v oblaku
88
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:
176
DEV@cloud DEV@cloud
Testiraj Testiraj
Izgradi Izgradi
Shrani Shrani
Git Git SVN SVN Maven Maven
RUN@cloud RUN@cloud
Testiraj Testiraj
Kontinuirana postavitev Kontinuirana postavitev PaaS, ki temelji
na JVM PaaS, ki temelji
na JVM
Storitve Storitve
MySQL MySQL HA HA … …
Jenkins strežnik Jenkins strežnik
CloudBees Ekosistem - razširitve CloudBees Ekosistem - razširitve
HTTP API-ji, CLI, grafični UI, vtičnik za Eclipse, Vtičnik za Maven, Ant HTTP API-ji, CLI, grafični UI, vtičnik za Eclipse, Vtičnik za Maven, Ant
Uvod v računalništvo v oblaku
89
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
Uvod v računalništvo v oblaku
90
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:
179
P J H
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
Uvod v računalništvo v oblaku
91
Ogrodje za avtomatizacijo storitev Ogrodje za avtomatizacijo storitev
CumuLogic
Arhitektura:
181
Strežnik podatkovne baze (SQL ali NoSQL) Strežnik podatkovne baze (SQL ali NoSQL)
API za integracijo z IaaS nivojem API za integracijo z IaaS nivojem
RESTfu
l AP
I R
ESTful A
PI
Komponenta za avtomatično skaliranje
Komponenta za avtomatično skaliranje
Komponenta za spremljanje
zmogljivosti in analitiko
Komponenta za spremljanje
zmogljivosti in analitiko
Komponenta za upravljanje z viri Komponenta za upravljanje z viri
Komponenta za upravljanje z uporabniki
Komponenta za upravljanje z uporabniki
Sporočilne vrste Sporočilne vrste Integracija Integracija
Aplikacijski strežnik Aplikacijski strežnik
Spletni strežnik Spletni strežnik Izenačevalec obremenitev Izenačevalec obremenitev
Ogrodje vtičnik Ogrodje vtičnik
Katalog storitev v oblaku Katalog storitev v oblaku
Eclipse IDE, Dev Tools vtičniki
Eclipse IDE, Dev Tools vtičniki
CLI CLI
Administrativna konzola
Administrativna konzola
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
Uvod v računalništvo v oblaku
92
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
Uvod v računalništvo v oblaku
93
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:
185
P J H
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
Uvod v računalništvo v oblaku
94
AppScale
Arhitektura:
187
ALB ALB DBM DBM
DBS DBS DBS DBS
DBS DBS AS AS
Razvijalec GAE aplikacij
(AppScale admin)
Razvijalec GAE aplikacij
(AppScale admin)
Uporabnik GAE aplikacij
Uporabnik GAE aplikacij
AS AS AS AS
AppScale orodja
AppController (AC)
HTTPS
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
Uvod v računalništvo v oblaku
95
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:
190
P J H
Uvod v računalništvo v oblaku
96
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
Uvod v računalništvo v oblaku
97
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
Uvod v računalništvo v oblaku
98
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
Uvod v računalništvo v oblaku
99
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
Uvod v računalništvo v oblaku
100
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 Znotraj podatkovnega centra organizacije.
o Omejen na velikost in skalabilnost.
o Visoki kapitalni ter operativni stroški.
o 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
Uvod v računalništvo v oblaku
101
Namestitveni modeli
Pregled ponudnikov:
201
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
UPORABA JAVNIH OBLAKOV
Uvod v računalništvo v oblaku
102
Javni oblak
Zagotavljanje dinamičnih virov preko interneta na samopostrežen način in plačevanje virov po porabi.
203
Privatni Javni
Hibridni
Javni oblak - IaaS
204
Javni ponudniki na nivoju IaaS
• Amazon AWS (EC2, S3, SimpeDB, …)
• Rakspace Cloud
• IBM SmartCloud
• Joyent
• GoGrid
• Terremark
• FlexiScale
• ElasticHosts
• Enomaly
• OpSource
Uvod v računalništvo v oblaku
103
Javni oblak - PaaS
205
Javni ponudniki na nivoju PaaS
• Google App Engine
• Windows Azure
• AWS Elastic Beanstalk
• Oracle Public Cloud
• Force.com
• IBM SmartCloud
Dostopnost - Primer EC2
AWS Upravljana konzola
Elasticfox razširitev za Firefox
206
Uvod v računalništvo v oblaku
104
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
Uvod v računalništvo v oblaku
105
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
Uvod v računalništvo v oblaku
106
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
Uvod v računalništvo v oblaku
107
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
Uvod v računalništvo v oblaku
108
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
Uvod v računalništvo v oblaku
109
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:
218
Faza evalvacije:
• Finančna evalvacija (kalkulacija TCO in ROI).
• Evalvacija varnosti in predpisov.
• Tehnična evalvacija. • Identifikacija ponovno
uporabljivih orodij. • Migracija licenčnih produktov.
1 1
Faza evalvacije
• Ustvari drevo odvisnosti
• Ocena stroškov
• Ocena arhitekture
• Ocena varnosti
Uvod v računalništvo v oblaku
110
Migracija obstoječih rešitev v oblak
Amazon AWS predlaga šestfazni migracijski pristop:
219
Proof of Concept faza:
• Preučitev AWS tehnologije. • Izdelava pilotne aplikacije in
validacija tehnologije. • Testiranje obstoječe
programske opreme v oblaku.
2 2
Proof of Concept faza
• Študija AWS
• Izdelava pilota
• Vzpostavitev podpore znotraj organizacije
Migracija obstoječih rešitev v oblak
Amazon AWS predlaga šestfazni migracijski pristop:
220
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.
3 3
Faza migracije podatkov
• Preizkus različnih možnosti shrambe
• Migracija podatkov
Uvod v računalništvo v oblaku
111
Migracija obstoječih rešitev v oblak
Amazon AWS predlaga šestfazni migracijski pristop:
221
Faza migracije aplikacije:
• Celostna migracijska strategija.
• Hibridna migracijska strategija.
• Izdelava AMI-jev za vsako komponento.
4 4
Faza migracije aplikacije
• Celostna migracija
• Hibridna migracija
Migracija obstoječih rešitev v oblak
Amazon AWS predlaga šestfazni migracijski pristop:
222
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.
5 5
Faza uporabe oblaka
• Avtomatično skaliranje
• Avtomatizacija
• Elastičnost
• Visoka stopnja dostopnosti
Uvod v računalništvo v oblaku
112
Migracija obstoječih rešitev v oblak
Amazon AWS predlaga šestfazni migracijski pristop:
223
Faza optimizacije:
• Optimizacija uporabe na zahtevo.
• Izboljšava učinkovitosti. • Implementacija naprednega
spremljanja. • Re-inženiring aplikacije.
6 6
Faza optimizacije
• Utilizacija
• Spremljanje
• Učinkovitost
• Zmogljivost
• Ponovni inženiring
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.
224
jclouds jclouds
OpenStack OpenStack EC2 EC2 … …
Aplikacija Aplikacija
Uvod v računalništvo v oblaku
113
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:
• Analiziramo trenutno stanje svoje tehnološke infrastrukture in aplikacij ter ocenimo na čem smo in hkrati, kje bi želeli biti v prihodnje.
226
Analiza Strategija Načrtovanje Izvedba
migracije komponent
Uvod v računalništvo v oblaku
114
Migracija obstoječih rešitev na PaaS
Primer migracije na Azure:
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
Analiza Strategija Načrtovanje Izvedba
migracije komponent
Migracija obstoječih rešitev na PaaS
Primer migracije na Azure:
Načrtovanje:
• Ko so aplikacije enkrat identificirane kot del celotne strategije, je potrebno začeti razmišljati o njihovi arhitekturi in načrtovanju.
228
Analiza Strategija Načrtovanje Izvedba
migracije komponent
Uvod v računalništvo v oblaku
115
Migracija obstoječih rešitev na PaaS
Primer migracije na Azure:
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
Analiza Strategija Načrtovanje Izvedba
migracije komponent
Portabilnost med PaaS platformami
Migracija aplikacij iz Windows Azure na Microsoft Private Cloud:
230
Javni oblak Privatni
oblak
Tradicionalni podatkovni
center
• PaaS: Windows Azure Platform Appliance • IaaS: Hyper-V Cloud
• PaaS: Windows Azure Platform
Portabilnost aplikacije Portabilnost aplikacije
Windows Server Active Directory Windows Server Active Directory
System Center System Center
Visual Studio, .NET Visual Studio, .NET
Identiteta
Upravljanje
Razvoj
Uvod v računalništvo v oblaku
116
Portabilnost med PaaS platformami
Migracija Javanskih aplikacij na GAE.
231
Aplikacija
Aplikacija
App Engine izvajalno okolje
URLFetch Service
Blobstore Datastore
Memcache
Obstoječa javanska aplikacija ?
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
Uvod v računalništvo v oblaku
117
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
Uvod v računalništvo v oblaku
118
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
236
e-naslov: http://www.cloud.si
e-naslov: http://www.soa.si
e-pošta: [email protected]