Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

NSWI150 - Virtualizace a Cloud Computing Cloudové technologie Filip Zavoral.

Podobné prezentace


Prezentace na téma: "NSWI150 - Virtualizace a Cloud Computing Cloudové technologie Filip Zavoral."— Transkript prezentace:

1 NSWI150 - Virtualizace a Cloud Computing Cloudové technologie Filip Zavoral

2 Cloud Computing

3 Cloud Computing Components - exekuční modely Execution Models Virtual MachinesWeb SitesCloud Services Mobile servicesContainersHi-Perf Computing Storage & Data SQL DatabaseKey-Value TablesColumn Store BlobsDocumentDBCaching Data Processing Map/ReduceHadoop ZooReporting Networking Virtual NetworkConnectTraffic Manager Messaging Service BusQueuesTopics / Relays (Multi-)Media Media ServicesStreamingContentDelivery Other Services GIS / MapsSearching / IndexingMarketplace GamingMachine LearningLanguage / Translate Languages / SDK C++.Net Java PHP Python Node.js...

4 Cloud Computing Components - správa a zpracování dat Execution Models Virtual MachinesWeb SitesCloud Services Mobile servicesContainersHi-Perf Computing Storage & Data SQL DatabaseKey-Value TablesColumn Store BlobsDocumentDBCaching Data Processing Map/ReduceHadoop ZooReporting Networking Virtual NetworkConnectTraffic Manager Messaging Service BusQueuesTopics / Relays (Multi-)Media Media ServicesStreamingContentDelivery Other Services GIS / MapsSearching / IndexingMarketplace GamingMachine LearningLanguage / Translate Languages / SDK C++.Net Java PHP Python Node.js...

5 Cloud Computing Components - komunikace Execution Models Virtual MachinesWeb SitesCloud Services Mobile servicesContainersHi-Perf Computing Storage & Data SQL DatabaseKey-Value TablesColumn Store BlobsDocumentDBCaching Data Processing Map/ReduceHadoop ZooReporting Networking Virtual NetworkConnectTraffic Manager Messaging Service BusQueuesTopics / Relays (Multi-)Media Media ServicesStreamingContentDelivery Other Services GIS / MapsSearching / IndexingMarketplace GamingMachine LearningLanguage / Translate Languages / SDK C++.Net Java PHP Python Node.js...

6 Cloud Computing Components Execution Models Virtual MachinesWeb SitesCloud Services Mobile servicesContainersHi-Perf Computing Storage & Data SQL DatabaseKey-Value TablesColumn Store BlobsDocumentDBCaching Data Processing Map/ReduceHadoop ZooReporting Networking Virtual NetworkConnectTraffic Manager Messaging Service BusQueuesTopics / Relays (Multi-)Media Media ServicesStreamingContentDelivery Other Services GIS / MapsSearching / IndexingMarketplace GamingMachine LearningLanguage / Translate Languages / SDK C++.Net Java PHP Python Node.js...  Konkrétní technologie  Microsoft Azure, Google Cloud Platform, Amazon Web Services, IBM BlueMix, OpenCloud,...,...

7 1. Exekuční modely správa virtuálních strojů a procesů, deployment

8 Execution Models  Execution models  způsoby nasazení a běhu 'kódu' v cloudu  úroveň poskytovaných služeb  pro provozování vlastních aplikací  IaaS, PaaS  nemusím se o nic starat vs. můžu cokoliv  architektura služeb

9 Service-oriented Computing Private Storage Server HW Networking Servers Databases Virtualization Runtimes Applications Security & Integration Infrastructure as a Service Infrastructure as a Service Storage Server HW Networking Servers Databases Virtualization Runtimes Applications Security & Integration Managed by vendor You manage Platform as a Service Platform as a Service Storage Server HW Networking Servers Databases Virtualization Runtimes Applications Security & Integration Software as a Service Software as a Service Storage Server HW Networking Servers Databases Virtualization Runtimes Applications Security & Integration HW virtual DC cloud

10 Virtual Machine  Virtual machines  vlastní image / gallery  další cloudové služby  db, networking  pay-per-use, pay-per-config  memory, processors, disk space  administrace  web portal  scripting console  API (REST)  běžící VM  virtuální disky - OS, data  typicky BLOBy  využití  development / test environment  běh aplikací, provoz služeb  rozšíření datacentra  disaster recovery ... whatever

11 Virtual Machine  IaaS  Infrastructure as a Service  fault tolerance, monitoring  replikace - BLOB  aktualizace  ne pro vlastní image  Grouping  load balancing  rozložení požadavků  availability set  rozložení na různé uzly  no single point of failure  komunikace

12 Web Sites  Web Sites / Web Apps  webová aplikace na různých platformách  jedno z nejčastějších využití cloudových infrastruktur  ideální podmínky pro nasazení v cloudu  nepredikovatelné škálovatelnost  lze i pomocí virtual machines  zbytečně složité  nutná vlastní instalace, konfigurace a údržba

13 Web Sites  Web Sites / Web Apps  Platform-as-a-Service, PaaS  předkonfigurované instalace  kompletní framework - OS, db, web server, knihovny,...  administrace, aktualizace a údržba komponent  vývojář jen nakopíruje html/php/js/...  dynamické přidávání instancí, load balancing  automatické škálování - dle rozvrhu, používání, nebo dosažením kvót  různé úrovně izolace  shared / private VM  různé frameworky, jazyky a db  JAVA,.Net, PHP, Node.js, bflm-SQL  Joomla, Drupal, WordPress,...  WebJobs  běh scriptů / jobů  fronty, scheduler  připravené prostředí

14 Cloud Services  Cloud Services  poskytování škálovatelných SaaS služeb  WS - omezený přístup, nelze instalovat cokoliv, nejsou dostupné všechny služby  VM - plný přístup, ale nutnost administrace a údržby, samo neškáluje  Platform as a Service  škálovatelnost, dostupnost, spolehlivost, údržba, různé jazyky a platformy  aplikační model s větším počtem rolí  web roles / worker roles  front-end, GUI, http  výpočty, aplikační logika  vhodné pro vícevrstvé škálovatelné aplikace

15 Cloud Services  Cloud Services  jedna adresa, více web/worker rolí  automatický load balancing a availability set  vývojové a produkční prostředí (staging area)  jednoduchý vyvoj/testování a přechod na novou verzi  monitorování nejen (virtuálního) hardware  agent uvnitř web/worker role  Cloud Services vs. Web Sites  administrativní přístup do VM  instalace libovolného potřebného software  web role / worker role  vícevrstvé aplikace - vlastní VM pro aplikační logiku  možnost propojení cloudové aplikace s privátními uzly  Remote Desktop pro přímý přístup k aplikační VM

16 Cloud Services - scénáře

17 Mobile Services  Mobile Services  cloud back-end "za minutu"  Backend-as-a-Service  mobilní klient  Android, iOS, Windows  Datové a app služby  back-end logika  job scheduler  přístup k DB  REST API / lib  offline support / synchronization  Autentizační služby  přihlášení účtem jiné služby  integrace se sociálními sítěmi  Facebook, Google, MS, Twitter,...  Notifikace  nahrazení aplikací na pozadí  push-notifications  IM, mail, aktualizace, kalendář,...  periodické / hromadné zprávy

18 Containers  Kontejnery  sdílení systémových souborů, paměti,...  izolace namespace, kontrola prostředků  copy-on-write, resource governance,...  “komodizace” cloud platforem  Dev  kód, knihovny, konfigurace, služby, data  Ops  monitorování, síť, přesouvání kontejnerů, logování, startování/vypínání kontejnerů  Docker, Rocket,...  Image  r/o obraz souborového systému  zapouzdřuje metadata  síťové porty, připojené “disky”  příkaz/script při startu kontejneru  = distribuční balíček  Kontejner  běhová r/w instance image  obsahuje běžící procesy  izolace  často jeden proces  commit - lze vytvořit nový image Containers are the hottest thing in cloud right now

19 Containers - Isolation levels  Isolace kontejnerů  není dokonalá  interference prostředků, nad které nespravuje kernel  L3 cache, propustnost fyzické paměti,... kombinace VM a kontejnerů fakticky zjednodušené vytvoření VM a kontejneru v něm kombinace VM a kontejnerů fakticky zjednodušené vytvoření VM a kontejneru v něm

20 Containers & Microservices  Kontejner vs. Virtual Machine  menší režie, rychlejší start  snadný deployment, škálovatelnost  menší stupeň izolace  bezpečnost  Microservices  návrhový vzor  dekompozice na malé samostatné služby  snadná flexibilita a cílená škálovatelnost  efektivní implementace pomocí kontejnerů  stateless / stateful  př.: protocol gateways, user profiles, shopping carts, inventory processing, queues, caches,...

21 Microservices-based Apps Stateless service Stateful service State & replication management

22 Microservice Platforms  Platform  AppEngine, Service Fabric, Container Engine,...  runtime, middleware - základní mikroslužby  deployment, upgrades, scaling  health monitoring, failure detectors, restarting  service discovery, state management, resource management

23 Container Management Systems & Orchestrace  Orchestrace  plánování - job scheduling, resource scheduling  automatizovaný výběr hostitele - host allocation  vyvažování výkonu - load balancing  zajištění dostupnosti - high availability  health checking & logging, service restarting, automatická replikace služeb  procedurální vs. deklarativní popis  Azure  Service Fabric  Azure SQL Database cluster  100s machines s containers databases  každá databáze je Service Fabric stateful microservice  Cloud Services vs. Service Fabric  CS: kód vázaný na instance VM (Web/Worker Role)  SF: kód vázaný na SF - abstraktní vrstva  rychlejší (re)start, menší režie, hustší hosting, multiplatformnost (Win/Lx), management

24 Container Management Systems & Orchestrace  Google  Borg  Cluster Management System, vývoj od 2005  100k jobů, 10k uzlů  Production / Non-Production jobs - priority  alloc - task grouping, jednotka pro alokaci prostředků  Borgmaster - 5x replikovaný - Paxos  failure detection, relibility, availability  Borg-based tools & zoo  naming and service discovery  application-aware load balancing  horizontal and vertical autoscaling  rollout tools - deployment of new binaries and configuration data  workflow tools - multijob pipelines with interdependencies between the stages  monitoring tools - gathering, aggregating and presentation of information about containers, alert triggers  Omega  redesign a reimplementace, vychází z Borgu a Apache Mesos  Paxos-based transaction-oriented store  Kubernetes  open source (2014)  pod - množina kontejnerů alokovaných vždy na stejný uzel  rolling updates - postupná aktualizace replik bez přerušení dostupnosti  základ pro Google Container Engine

25 Container Management Systems & Orchestrace  Amazon Web Services  EC2 Container Service  proprietární řešení, těsná integrace s AWS, nebezpečí lock-in  Open Stack  OpenStack Heat  nativní součást OpenStack  šablony - textový soubor  Terraform  open source, vyvíjen nezávisle na OpenStack  provider - jednotný systém pro OpenStack, vSphere, Amazon AWS, Azure  HPE Cloud Service Automation  komerční enterprise řešení, orchestrace je jen z jednou z component  grafický designer  umožňuje z jednotlivých šablon vytvářet nabídky viditelné v uživatelském portálu

26 High-Performance Computing  Hi-Perf Cloud Computing  data-intensive computing  neočekávaná / periodická potřeba výkonu  investice → provoz  cluster – privátní / cloud / kombinovaný  celá infrastruktura / rozšíření vlastní  job scheduler, cluster manager/engine  proprietární vs. externí - prevence lock-in  chráněný přenos dat, VPN, IPsec  Problémy / omezení  privátní a citlivá data  závislost na externím sw  velká data - přenos

27 HPC  Azure  Big Compute  Google  Cloud Dataflow  Amazon  AWS HPC

28 Správa a ovládání  Web portal  Scripting  API / SDK / Libraries  REST API - CRUD Add OS Image https://management.core.net/ /services/images image-label uri-of-the-containing-blob image-name Linux|Windows image-description image-family published-date true/false Small/Large/Medium/ExtraLarge language-of-image Add OS Image https://management.core.net/ /services/images image-label uri-of-the-containing-blob image-name Linux|Windows image-description image-family published-date true/false Small/Large/Medium/ExtraLarge language-of-image (PartitionKey='PK',RowKey='RK')?$select=

29 Správa a ovládání  Web portal

30 Správa a ovládání  Scripting Add OS Image https://management.core.net/ /services/images image-label uri-of-the-containing-blob image-name Linux|Windows image-description image-family published-date true/false Small/Large/Medium/ExtraLarge language-of-image Add OS Image https://management.core.net/ /services/images image-label uri-of-the-containing-blob image-name Linux|Windows image-description image-family published-date true/false Small/Large/Medium/ExtraLarge language-of-image

31 Správa a ovládání  API / SDK / Libraries Add OS Image https://management.core.net/ /services/images image-label uri-of-the-containing-blob image-name Linux|Windows image-description image-family published-date true/false Small/Large/Medium/ExtraLarge language-of-image Add OS Image https://management.core.net/ /services/images image-label uri-of-the-containing-blob image-name Linux|Windows image-description image-family published-date true/false Small/Large/Medium/ExtraLarge language-of-image

32 Správa a ovládání  REST API - CRUD  Create, Read, Update, Delete  Přístup k službám i datům (PartitionKey='PK',RowKey='RK')?$select=

33 Monitoring  Health dashboard  komplexní pohled na funkční provoz infrastruktury v cloudu  Topologické pohledy  monitorování hlavních komponent v cloudu  Reporty  pohled na aktuální stav, trendy, zátěž (workload)  reportovacím nástroj Cognos  What-If  kapacitní plánování  Policy-Based optimalizace  na základě monitoringu – kde nejlépe provozovat daný workload  Performance Analytics  pro správné škálování virtuálních serverů

34 Typické využití  Vývoj aplikací  mnohoplatformní vývojové a testovací prostředí, VM  Aplikace s velmi proměnlivou zátěží  online prodej lístků  Paralelní výpočty  komplexní modelování  Masivní škálovatelnost  sociální sítě, multiplayer  Vysoká spolehlivost a dostupnost  SaaS  Krátká nebo nepředvídatelná životnost  marketingová kampaň, startup  Přetékající aplikace  nedostatečná infrastruktura, nevyhovující politiky

35 Premium P1 Standard S2 [ ] Premium P2 [ ] Standard S1 [ ] Scalability Dimensions Basic [ ] Basic [ ] Basic [ ] Basic [ ] Basic [ ] Scale out/in Scale up/down Basic [ ] Basic [0-100]  Vertikální škálovatelnost  scale-up / scale-down  navýšení odpovídajících vlastností zdroje  zátěž je alokována na jednu jednotku  Horizontální škálovatelnost  scale-out / scale-in  více zdrojů stejného typu, rozdělení zátěže  potřeba minimalizace závislostí a redukce sdílených zdrojů  homogenní bezstavové uzly  synchronizace, konzistence Cloud Design Patterns Best Practices scale-out scale up

36 2. Data management ukládání a zpracování dat

37 Data Management  SQL  různé implementace, knihovny - JDBC, ADO.NET,...  optimalizace pro cloud  PaaS - maintenance, administrace, federation, replikace  přístupné pro cloud i externí aplikace  typicky distribuované řešení - availability, scalability  primární / sekundární replika  load balancing  cluster index  NoSQL databáze  Key/Value Tables, Column Stores, Blobs  Document stores, Graph databases,...

38 Data Management NDBI040 - Big Data Management (Irena Holubová)

39 Tables  Key-Value Tables  NoSQL - nejde o relační databázi  velmi rychlý škálovatelný přístup k velkým (TB) typovaným datům  replikace, sharding, často kombinace  identifikace  Key  PartitionKey / RowKey  nepodporuje složité dotazy (join) ani třídění podle více klíčů scale-out

40 Tables - datový model  Struktura přístupu  Account / Table / Partition / Entity / Property  Table  množina řádek  jednoznačná identifikace: PartitionKey/RowKey  PartitionKey - rozložení entit mezi různá replikovaná úložiště  RowKey - jednoznačná identifikace v rámci Partition  Třídění pouze podle PK/RK  Entity  množina Properties (atributy)  vždy PartitionKey/RowKey a Timestamp  PK/RK - uživatelsky definovaný obsah  další atributy aplikačně definované  bez pevného schématu  různé entity mohou mít různé atributy

41 Tables - škálovatelnost  Partitioning  operace na jedné partition atomické  rozložení dat mezi uzly řízeno aplikací  volba PartitionKey/RowKey  související entity na jednom uzlu - shodný PK  rozvnoměrné rozložení entit mezi partitions - různé PK  efektivní dotazy - filtr přes PK  Příklady  blogovací server  témata, příspěvky v tématech  PartitionKey: téma  RowKey: datum a čas příspěvku  další atributy: text, hodnocení  verzované úložiště dokumentů  PK: jméno souboru  RK: verze  další atributy: datum, id, poznámka k verzi,...  vlastní data typicky na BLOB úložišti Efektivní dotaz: nejaktuálnější příspěvky v tématu Efektivní dotaz: nejaktuálnější příspěvky v tématu

42 Column stores  Sloupcově orientovaná architektura  složitější organizace dat než Key/Value  řádky – velmi mnoho hodnot (tisíce, i miliony)  adresace: column family / row / column → value  no schema – různé počty a typy hodnot  columns - static, dynamic  řádka ≈ data vyhovující předpokládanému dotazu - materializaed view  efektivní čtení dat  verzování hodnot, timestamps, přístup k starším verzím C-store Cassandra MonetDB HBase... C-store Cassandra MonetDB HBase...

43 Column stores  Sloupcově orientovaná architektura  třídění dle row i column - rychlý přístup  joiny nepodporovány  ruční indexy, runtime, nákladné  replikace  vlotelná úroveň konzistence per-request  strict c.  eventual c.  kolekce  set  list  map dynamic columns secondary index

44 Document stores  Dokument  jednotka ukládání - store / retrieve  XML, JSON, BSON, RDF, CSV,...,...  event logging, content management, RT analytics,...  sharding  range-based / hash-based partitioning  journaling  append-only, write-ahead redo logs  Struktura  references  normalizovaný datový model  komplexnější m:n relace  náročnější na výpočet  embedded document  denormalizovaný datový model  jednodušší, rychlejší MongoDB RavenDB TerraStore... MongoDB RavenDB TerraStore...

45 BLOB  Binary Large Objects  nestrukturovaná velká (TB) binární data  sdružené v replikovaných kontejnerech  jméno kontejneru jako PartitionKey  integrace s filesystemem, persistence  virtuání disky VM  video, backup - levné  Typy blobů  Block Blob  sekvence bloků (řádově až miliony)  optimalizováno pro sekvenční přístup - streamy  rychlý zápis (append) a sekvenční čtení  Page Blob  stránkově orientované  náhodný read/write přístup  vyšší režie

46 BLOB BlobContainerAccount / Pages/ Blocks myaccount pic01.jpg Block/Page pic02.jpg images vid1.avivideos  RESTful API  PutBlob, GetBlob, DeleteBlob, CopyBlob, SnapshotBlob, LeaseBlob

47 Business Analytics  SQL Reporting  reporting, business analytics  RDL  data mining nad SQL / NoSQL  rozhodovací stromy, lesy  regresní analýza  clustering,...  různé typy výstupů  grafy, sestavy, agragace  různé formáty (XML, PDF,...)

48 RDL example Year\Category Solid 1pt 1pt 1pt 1pt bold 0.25in =Fields!Category.Value ="" + Fields!Category.Value + " = "+Sum(Fields!Sales.Value) Solid 1pt 1pt 1pt 1pt bold Grand Total... formátování "výpočty" data

49 Hadoop & Map/Reduce  Hadoop, Distributed Data Processing  BigData, nezpracovatelná rozumně jedním DBMS  Map / Reduce paradigma  pro paralelizaci a distribuovanost výpočtů  implementace: Hadoop, Spark, MR-MPI, Marissa,...  Další součásti a související moduly  HDFS - distribuovaný FS  Pig, PigLatin - parallelization platform, high-level language  Hive, HiveQL - data warehouse & querying, data analysis 

50 Map/Reduce magie

51 map(String key, String value): // key: document name // value: document contents for each word w in value: EmitIntermediate( w, count(w)); map(String key, String value): // key: document name // value: document contents for each word w in value: EmitIntermediate( w, count(w)); Map/Reduce  Map/Reduce  paradigma pro paralelizaci a distribuovanost  map  každý uzel nezávisle  input → (key, value)  reduce  (key, list of values[]) → output  sjednocení hodnot pro každý klíč  zpracování, výsledek  mezivýsledky mohou být duplicitní  zpracování velmi velkých objemů dat  fault tolerance  Frekvence slov  spočítat četnost slov v mnoha dokumentech  map( file, text) → ( word, count)  reduce( word, list of counts) → count reduce(String key, List values): // key: a word // values: a list of counts int result = 0; for each v in values: result += v; Emit( result); reduce(String key, List values): // key: a word // values: a list of counts int result = 0; for each v in values: result += v; Emit( result);

52 Map/Reduce - Frekvence slov  Frekvence slov  spočítat četnost slov v mnoha dokumentech  map( file, text) → ( word, count)  reduce( word, list of counts) → count

53 Map/Reduce - architektura  master/slave architektura  jobtracker - single master server  rozhraní pro klienty  fronta jobů, zpracování FIFO, přiřazení jobů tasktrackerům  tasktrackers - slave servers, jeden per node v clusteru  vykonávají tasky dle jobtrackeru  přesuny dat mezi fázemi map a reduce   vhodné pro:  ne-relační (nestrukturovaná) data  velké objemy dat  dávkový/offline režim   nevhodné pro:  malá data - režie  nevhodný výpočetní model  komunikace a synchronizace mezi uzly  nízká latence, interaktivita, transakčnost distributed filesystem

54 Hadoop Zoo  HDFS  Hadoop Distributed File System, optimalizován pro Hadoop  HBase  NoSQL databáze  Bigtable-like structured storage system for Hadoop HDFS  Pig, PigLatin  Hi-level language for data analysis, překlad na map/reduce joby  HIVE, HiveQL  Data warehousing infrastructure  SQL-like jazyk pro dotazy nad HDFS  Mahout  framework pro strojové učení a data mining  Hama  distributed (grid) computing framework  BSP (Bulk Synchronous Parallel) computing techniques for massive scientific computations  Zookeeper  high-performance coordination service for distributed applications  consensus, naming, synchronization, group membership, leader election, queues, event notifications, configuration, workflow & cluster management, sharding,...

55 HDFS  HDFS  Hadoop Distributed File System  řádově 10 4 uzlů, 10 6 souborů, PB dat  Vlastnosti  odolnost proti chybám HW  replikace, detekce chyb a zotavení  optimalizace pro velké množství levného HW  failure is not an exception  streamování souborů  optimalizace propustnosti, ne přístupové doby  orientace na velké soubory  velká data jsou uložená v menším množství velkých souborů  write-once-read-many  jednou zapsaný soubor už není možné měnit ani přidávat data na konec  podpora pro append už sice existuje (HDFS-265), ale jen pro speciální případy  „Moving computation is cheaper than moving data“  výpočet je efektivnější spustit přímo u dat

56 HDFS  Architektura HDFS  NameNode  master - správa metadat  seznam souborů a adresářů, jejich mapování na bloky, umístění bloků  DataNode  slave - úložiště bloků, operace zápisu a čtení, neví nic o souborech  NameNode může nařídit blok zreplikovat či smazat  operace se souborovým systémem  zápis: NameNode založí soubor a rozhodne, jaký DataNode použít  čtení: NameNode zjistí umístění bloků souboru, klient komunikuje přímo s DataNode  replikace  atribut souboru - počet požadovaných replik  na jednom uzlu vždy jedna replika bloku  odolnost proti výpadku disku / uzlu  zápis: odložená replikace  HCFS - HDFS rozhraní  možné jiné implementace FS  Azure Blob Storage, CassandraFS, CephFS, CleverSafe Object Store, GlusterFS, GridGain, Lustre, MapR FS, Quantcast FS, Symtantec Veritas Cluster FS,...

57 Pig  Pig  nevýhody Map/Reduce  příliš low-level  nepodporuje složitější data-flow  Pig - runtime environment for web-scale data processing  transformace na soustavu MapReduce jobů  BigData - batch processing  PigLatin  hi-level language for data analysis  data-parallel language  operace pro manipulaci s relačními daty  imperativní styl programování  snadná uživatelská rozšíření

58 Pig Data Flow & Pig Latin visits = load ‘/data/visits’ as (user, url, time); gVisits = group visits by url; visitCounts = foreach gVisits generate url, count(visits); urlInfo = load ‘/data/urlInfo’ as (url, category, pRank); visitCounts = join visitCounts by url, urlInfo by url; gCategories = group visitCounts by category; topUrls = foreach gCategories generate top(visitCounts,10); store topUrls into ‘/data/topUrls’;

59 Compilation into Map-Reduce Load Visits Group by url Foreach url generate count Foreach url generate count Load Url Info Join on url Group by category Foreach category generate top10(urls) Foreach category generate top10(urls) Map 1 Reduce 1 Map 2 Reduce 2 Map 3 Reduce 3 Every group or join operation forms a map-reduce boundary

60 Pig Latin operations loadRead data from file system storeWrite data to file system foreachApply expression to each record and output one or more records filterApply predicate and remove records that do not return true group/cogroupCollect records with the same key from one or more inputs joinJoin two or more inputs based on a key; various join algorithms available orderSort records based on a key distinctRemove duplicate records unionMerge two data sets splitSplit data into 2 or more sets, based on filter conditions streamSend all records through a user provided executable sampleRead a random sample of the data limitLimit the number of records

61 Pig Latin vs. Map Reduce Users = load ‘users’ as (name, age); Fltrd = filter Users by age >= 18 and age <= 25; Pages = load ‘pages’ as (user, url); Jnd = join Fltrd by name, Pages by user; Grpd = group Jnd by url; Smmd = foreach Grpd generate group, COUNT(Jnd) as clicks; Srtd = order Smmd by clicks desc; Top5 = limit Srtd 5; store Top5 into ‘top5sites’;

62  Hive, HiveQL  Data warehousing infrastructure  ETL tools - data extract/transform/load  vysokoúrovňové operace nad nízkoúrovňovými daty  přístup do souborů HDFS nebo HBase  query execution via MapReduce  Hive QL  SQL-like jazyk pro dotazy nad HDFS  rozšiřitelný o vlastní MapReduce mappers a reducers  pohodlný, nepříliš výkonný SELECT customer.name, sum(orders.cost) FROM customers INNER JOIN ON (customer.id = orders.customer_id) WHERE customer.zipcode = '63105' GROUP BY customer.id; SELECT customer.name, sum(orders.cost) FROM customers INNER JOIN ON (customer.id = orders.customer_id) WHERE customer.zipcode = '63105' GROUP BY customer.id; Hive

63 Hadoop Zoo

64 HBase / Hadoop Architecture

65 SQL-on-Hadoop Frameworks  Apache Hive  tradičně součást instalace Hadoop, Hive-QL, nízká výkonnost  Cloudera Impala  SQL dotazy nad Hadoop daty, vlastní engine, pro rychlé dotazy vlastní formát  Presto (Facebook)  interaktivní SQL dotazy, specializované operátory, vlastní formát dat  Apache Shark  port of Hive to run on Spark  Spark - multistage, in-mem/distributed mem, cca 10x rychlejší než MR  Apache Drill  EMC/Pivotal HAWQ  BigSQL by IBM  Apache Pheonix (for HBase) 

66 3. Komunikace networking, messaging

67 Cloud Networking  Virtual Network  propojení vlastní a cloudové sítě  Connect, přímé propojení  propojení cloudové sítě s lokálními počítačí  Traffic manager  load balancing, směrování

68 Virtual Network  Virtual Network  propojení s vlastní sítí  rozšíření vlastní sítě  přístup k službám lokální sítě z cloudových modulů  přístup k cloudovým službám z lokální sítě  propojení několika datacenter  geografická škálovatelnost možné dedikované linky nepropojené s veřejným internetem možné dedikované linky nepropojené s veřejným internetem

69 Přímé propojení  Cloud Connect - přímé propojení  VPN - nutnost VPN gateway, network admin  klientský sw  přístup k cloudovým službám z lokálních počítačů  bez nutnosti síťování  cloudové služby se jeví jako v lokální síti  možnost individuálního nastavení

70 Traffic Manager  Traffic Manager  load balancing požadavků mezi datacentra  pravidla směrování (routing rules)  definována vývojáři aplikací  Performance (nejbližší), Failover (prioritní), Round Robin (kruhová sýkorka)  vhodné zejména pro velké aplikace, geografická škálovatelnost

71 Cloud Messaging - Service Bus  Service Bus  publish-subscribe, loosely coupled communication  skupinová komunikace 1:N, více příjemců  API mimo cloud  letecká společnost, zpřístupnění rezervace letenek a oznamování změn  Queues, Topics, Relays, Event Hubs

72 Service Bus - Queues  Message Queueing  spolehlivý asynchronní jednosměrný kanál mezi rolemi  web role přijme soubor s videem  uloží ho do blobu, pošle zprávu do MQ  nějaký worker role někdy zprávu vyzvedne a provede konverzi formátu  části zprávy  strukturovaná / nestrukturovaná  škálovatelnost - nezávislý počet read/write rolí  odesílatelů i příjemců může být více  automatický load balancing  Vyzvednutí zprávy  Receive/Delete  jednodušší, možná ztráta při výpadku  idempotentní služby  Peek/Lock/Complete/Abandon  fault tolerance

73 Service Bus - Topics  Topics  publish / subscribe  sekvence zpráv týkajících se nějakého 'tématu'  předplatné (subscription) je definováno jménem a filtrem  filtr na základě vlastností zprávy (WHERE klauzule)  každé předplatné má svoji virtuální kopii zprávy  jedna zpráva může být zpracovávána více příjemci  Receive/Delete, Peek/Complete  Partitioning  Queues / Topics  rozložení zátěže na více brokerů - scale-out  výběr repliky (fragmentu fronty) náhodně nebo podle klíče

74 Service Bus - Relays  Relays  obousměrné propojení  (na rozdíl od Queues/Topics)  Motivace  obě aplikace za firewallem  blokované příchozí porty  NAT - proměnlivá IP adresa  Řešení  Service Bus Relay Service  obě aplikace se přihlásí  registr relay ids

75 Service Bus - Event Hub  Event Hub  real-time streaming services  vysoká propustnost / s  telemetrie, logy,...  competing consumers  pevný počet partitions (2-32)  publisher  individuálně / Shared Access Signature  partition key / round robin  consumer group  způsob zpracování  event ➟ více consumer groups  stream / partition offset  checkpointing  zpracovaný partition offset  pokračování po odhlášení a přihlášení jiného consumera event ingestor partition offset

76 Caching  Caching  access to SQL, Tables & Blobs is fast... ... but access to memory is much faster  intra-app, inter-app, inter-cloud  in-memory key/value store  value: any chunk of data  possibly structured  Memcached  ‘free & open source, high-performance, distributed memory object caching system’  Memcached protokol  Content Delivery Network  mnoho uzlů rozmístěných po celé zemi, galaxii,...  první přístup - kopie dat (blob) do uzlu CDN  další přístupy - jen k uzlu CDN

77 4. Další cloudové služby

78 Multi- & Media  Video & Media Services  uploadig - blob  encoding, konverze formátů  indexing, vyhledávací služby  protection, encrypted streaming  embeded content - subtitles, advertising  packaging, streaming - live / on demand  scheduling  monitoring & analytics

79 GIS / Maps  Geographic Information Systems  mapy  free / private / special  mapové vrstvy  vazby na sémantická/relační data  hospody, počasí, doprava, firmy,...  vyhledávání, spatial indexes, trasy  offline / online / cache  API, web, mobile

80  Server-side  tenký klient, mobil  problém: latence, propustnost  multiplayer / community  Client-side  deployment  prostředí, mapy, levely  save to cloud + change device  multiplayer / social gaming  DRM – boj proti  Mobile clients  save & play everywhere  autentizace  push-notifications Gaming

81 >100,000 Azure Virtual Machines Titanfall

82 Marketplace  Marketplace  G-Play, MS/Azure Store, AWS Marketplace,...  applications/services  data - video, mp3, e-books,...  publishers  pricing  updates  ranking  segmentation, evaluation  customers  identity  subscriptions  push  updates  reviews / ranking  publishing / subscription API

83 Machine Learning  Machine Learning  aplikace historických dat na konkrétní problém  vytvoření modelu  použití pro predikci budoucího vývoje nebo trendů  BigData, supervised / unsupervised methods  search engines, online product recommendations, GPS traffic directions, credit card fraud prevention systems, personal assistants / Cortana

84 & more...  Další cloudové služby  searching / indexing  text, image, video, similarity search  jazykové a překladatelské služby  translation API... implemented by औ  online collaboration  Google Docs, Office 365 Online  GDrive, OneDrive, DropBox,...,...  GPGPU computing  Azure NVidia Tesla K80, M60  Internet of Things  technologie pro propojování zařízení, monitorování, sběr dat a analýzu  IoT Hub - chráněná obousměrná komunikace s miliony zařízení  data streams, real-time data processing  statistiky, logy, monitoring  micropayments, billing, support for e-commerce ...,...,...  Identita a ochrana přístupu ➟

85 Vlastnosti cloudů  Sdílení systému (multitenancy)  jeden prostředek (server, data, síť) využívá více uživatelů současně  virtualizované zdroje jsou logicky odděleny  nelze přistupovat k cizím zdrojům  Thin provisioning  virtuální alokace prostoru na úložišti dat  klientu je zdánlivě vyhrazena požadovaná kapacita  ve skutečnosti ji mohou až do doby využití používat jiné systémy  různé úrovně záruky dostupnosti  Škálovatelnost a elasticita (scalability, elasticity)  změna výkonu podle potřeb klienta  služby jsou účtovány podle skutečného využití  Spolehlivost a dostupnost (reliability)  záložní systémy na různých úrovních (servery, infrastruktura, datová centra)  software, který za provozu zajistí rychlé nahrazení nefunkční části systému  Aktualizovanost (up-to-date)  software je automaticky aktualizovaný, uživatel nemusí zasahovat

86 Druhy cloudů  Veřejný cloud (Public cloud)  poskytování služeb (IaaS, PaaS, SaaS) třetí stranou - nejčastější typ  zajištěna vysoká škálovatelnost a účtování podle využívaných zdrojů  Soukromý cloud (Private cloud)  infrastruktura poskytující služby pouze jedné organizaci  schopnost účtování jednotlivým složkám organizace  Komunitní cloud (Community cloud)  cloud využívaný komunitou - spolupracující firmy, projekt apod.  Hybridní cloud (Hybrid cloud)  cloud složený z více různých cloudů, např. několika veřejných a soukromého  cloud interoperability - Sky Computing

87 5. Cloudové platformy

88 Microsoft Azure

89 Google Cloud Platform - Compute Engine / App Engine  App Engine - PaaS  Translate API  Prediction API  Big Query  Compute Engine - IaaS  Cloud Datastore  Cloud SQL  Cloud Endpoints  Cloud Storage

90 Amazon Web Services / Elastic Cloud

91  Compute  Elastic Compute Cloud (EC2) provides scalable virtual private servers using Xen.  Elastic MapReduce (EMR) uses a hosted Hadoop framework running on the web-scale infrastructure.  Lambda (LAMBDA) provides a compute service that runs code in response to events and automatically manages the compute resources needed to run the code.  Networking  Route 53 provides a highly available and scalable Domain Name System (DNS) web service.  Virtual Private Cloud (VPC) creates a logically isolated set of Amazon EC2 instances which can be connected to an existing network using a VPN connection.  AWS Direct Connect provides dedicated network connections into AWS data centers.  Elastic Load Balancing (ELB) automatically distributes incoming traffic across multiple Amazon EC2 instances.  Storage and content delivery  CloudFront, a content delivery network (CDN) for distributing objects to so-called "edge locations" near the requester  Simple Storage Service (S3) provides Web Service based storage.  Glacier provides a low-cost, long-term storage option (compared to S3). High redundancy and availability, but low-frequent access times. Intended for archiving data.  AWS Storage Gateway, an iSCSI block storage virtual appliance with cloud-based backup.  Elastic Block Store (EBS) provides persistent block-level storage volumes for EC2.  AWS Import/Export, accelerates moving large amounts of data into and out of AWS using portable storage devices for transport.  Elastic File System (EFS) a file storage service for EC2 instances.  Database  DynamoDB provides a scalable, low-latency NoSQL online Database Service backed by SSDs.  ElastiCache provides in-memory caching for web applications. This is Amazon's implementation of Memcached and Redis.  Relational Database Service (RDS) provides a scalable database server with MySQL, Oracle, SQL Server, and PostgreSQL support.  Redshift provides petabyte-scale data warehousing with column-based storage.  SimpleDB allows developers to run queries on structured data. It operates in concert with EC2 and S3 to provide "the core functionality of a database".  AWS Data Pipeline provides reliable service for data transfer between different AWS compute and storage services.  Kinesis streams data in real time with the ability to process thousands of data streams.  Deployment  CloudFormation provides a file-based interface for provisioning other AWS resources.  AWS Elastic Beanstalk provides quick deployment and management of applications in the cloud.  AWS OpsWorks provides configuration of EC2 services using Chef.  AWS CodeDeploy provides automated code deployment to EC2 instances.  Management  Identity and Access Management (IAM) is an implicit service, the authentication infrastructure used to authenticate access to the various services.  AWS Directory Service a managed service that allows you to connect your AWS resources with an existing on-premises Microsoft Active Directory or to set up a new, stand-alone directory in the AWS Cloud.  CloudWatch, provides monitoring for AWS cloud resources and applications, starting with EC2.  AWS Management Console, A web-based interface to manage and monitor the Amazon infrastructure suite.  CloudHSM - The AWS CloudHSM service helps you meet requirements for data security by using dedicated Hardware Security Module (HSM) appliances within the AWS cloud.  AWS Key Management Service (KMS) makes it easy to create and control the keys used to encrypt your data.  Application services  API Gateway is a service for publishing, maintaining and securing web service APIs.  CloudSearch provides basic full-text search and indexing of textual content.  DevPay is a billing and account management system.  Elastic Transcoder (ETS) provides video transcoding of S3 hosted videos, marketed primarily as a way to convert source files into mobile-ready versions.  Flexible Payments Service (FPS) provides an interface for micropayments.  Simple Service (SES) provides bulk and transactional sending.  Simple Queue Service (SQS) provides a hosted message queue for web applications.  Simple Notification Service (SNS) provides a multi-protocol "push" messaging for applications.  Simple Workflow (SWF) is a workflow service for building scalable, resilient applications.  Cognito a simple user identity and data synchronization service that helps you securely manage and synchronize app data for your users across their mobile devices.  AppStream a flexible, low-latency service that lets you stream resource intensive applications and games from the cloud.  Analytics  Machine Learning a service that makes it easy for developers of all skill levels to use machine learning technology.  Kinesis is a fully managed, cloud-based service for real-time data processing over large, distributed data streams.  Miscellaneous  Historical Pricing provides access to Amazon's historical sales data from its affiliates.  Mechanical Turk (Mturk) manages small units of work distributed among many persons.  Product Advertising API provides access to Amazon's product data and electronic commerce functionality.  Gift Code On Demand (AGCOD) for Corporate Customers enables companies to distribute Amazon gift cards instantly.  AWS Partner Network (APN) provides partners with the technical information and sales and marketing support to increase business opportunities through AWS.

92 IBM CloudFoundry / BlueMix

93 Open Stack  Cloud Lock-in  functionality, license, development  OpenStack  2010 NASA + Rackspace  nyní řízeno OpenStack Foundation  > 500 firem, od 2014  open source - public / private cloud  API založeno na Amazon EC2 a S3 Compute - Nova Object Storage - Swift Block Storage - Cinder Image Service - Glance Networking - Neuron Identity - Keystone Dashboard - Horizon Orchestration - Heat Workflow - Mistral Telemetry - Ceilometer Database - Trove Map Reduce - Sahara Bare Metal - Ironic Messaging - Zaqar Shared FS - Manila DNS - Designate Search - Searchlight Key Manager - Barbican

94 Cloud Interoperability - Sky Computing

95  InterCloud  cloud interoperability  protokoly, formáty a mechanismy  'cloud roaming'  IEEE, CISCO,...  As of June 2015, the Intercloud has yet to show real world demonstration of federation and interoperability, and challenges remain regarding security and trust, governance and legal issues, QoS, monitoring, arbitrage, and billing. InterCloud

96 Perspektivy Cloud Interoperability

97 6. Návrhové vzory pro cloud computing na samostatných slajdech

98 to be continued...  NSWI151 - Administrace virtualizační infrastruktury  Jakub Yaghob  praktická administraci moderních virtualizačních řešení  plánování, nasazení, zabezpečení a údržba virtualizační infrastruktury  VMware vSphere, Microsoft Hyper-V  NSWI152 - Vývoj cloudových aplikací  Filip Zavoral + Tomáš Herceg, Jiří Vinárek  praktický vývoj a nasazení aplikací  Windows Azure, Google Cloud Platform,...  NDBI040 - Big Data Management  Irena Holubová  Key/Value tables, Column Store, Graph DB, Distributed DB, Hadoop,...  NDBI041 - Pokročilé Big Data Technologie  Leo Galamboš  efektivní zpracování datových proudů, data warehousing, clustering, analýza,...


Stáhnout ppt "NSWI150 - Virtualizace a Cloud Computing Cloudové technologie Filip Zavoral."

Podobné prezentace


Reklamy Google