Data Management  in The Cloud<br /> J. Xavier Herrero JavaloySGBDO<br />
Índex<br /><ul><li>     ¿Què és el “CloudComputing”?
     Característiques del “CloudComputing”
     Capes de l’ arquitectura del CloudComputing
     Data management in theCloud
     Possibles implementacions de serveis DaaS
     Implementacions comercials
     Altres opcions
     Conclusions
     Bibliografia</li></ul>1<br />
¿ Que és el „Cloud Computing“ ?<br />¿ Que é el  "Cloud Computing" ?<br />¿ Que és el "Cloud Computing" ?<br /><ul><li>   ...
Característiques del "Cloud Computing"<br /><ul><li>   A favor
Agilitat per a adquirir una ampliació de serveis ràpidament i de forma        econòmica.
 	Reducció del cost de les TI convertint el gasto de capital en gasto        operacional.
Independència de localització, multi-plataforma i multi-dispositiu.
Multi-arrendament(permet augmentar la gestió de “peek-loads”, ...).
Escalabilitat, via aprovisionament sota demanda.</li></ul>3<br />
Característiques del "Cloud Computing" II<br /><ul><li>   En Contra
	L’augment de la capacitat de computació és elàstica només si la        càrrega  de treball és paral·lelitzable.
 	Les dades s’ emmagatzemen en màquines no fiables (per exemple si         les dades s’emmagatzemen a USA, la “US Patriot ...
    Les dades estan replicades,  a vegades a través de grans distàncies         geogràfiques.</li></ul>4<br />
Capes de l‘arquitectura del Cloud Computing I<br /><ul><li>   Software as a Service (SaaS)</li></ul>La capa SaaS és la de ...
Capes de l‘arquitectura del Cloud Computing II<br /><ul><li>Infrastructure as a Service (IaaS)</li></ul>La capa inferior o...
Sistemes d'emmagatzemament
      Enrutadors
Sistemes concentrats com per exemple els serveis EC2 i S3 d’           Amazon Web Services (AWS). </li></ul>6<br />
Data Management In the Cloud I<br /><ul><li>   Introducció</li></ul>       A partir d’aquest punt, ens centrarem en les ap...
 	Gestió de dades Analítiques (Analytical Data Management)</li></ul>Però, quin dels dos es podria beneficiar d’ executar-s...
Data Management In the Cloud II<br /><ul><li>   Transactional Data Management
Característiques:
     Necessiten les garanties de les regles ACID
     Executen moltes operacions d’escriptura (write-intensive)
Es un possible candidat ?
     La majoria de sistemes no utilitzen una arquitectura shared-nothing (nodes distribuïts i independents entre sí)  o no...
Upcoming SlideShare
Loading in …5
×

Cloud Computing

1,037 views

Published on

Seminar on cloud computing focusing on data management in the cloud, solutions and limitations

Published in: Technology
  • Be the first to comment

Cloud Computing

  1. 1. Data Management in The Cloud<br /> J. Xavier Herrero JavaloySGBDO<br />
  2. 2. Índex<br /><ul><li> ¿Què és el “CloudComputing”?
  3. 3. Característiques del “CloudComputing”
  4. 4. Capes de l’ arquitectura del CloudComputing
  5. 5. Data management in theCloud
  6. 6. Possibles implementacions de serveis DaaS
  7. 7. Implementacions comercials
  8. 8. Altres opcions
  9. 9. Conclusions
  10. 10. Bibliografia</li></ul>1<br />
  11. 11. ¿ Que és el „Cloud Computing“ ?<br />¿ Que é el "Cloud Computing" ?<br />¿ Que és el "Cloud Computing" ?<br /><ul><li> Definició</li></ul>El “cloud computing” o “computació en núvol”, és un paradigma que permet oferir recursos dinàmicament escalables com a serveis a través d’ Internet (on Internet representa aquest núvol). <br />Els usuaris no necessiten tenir coneixements o ser experts en el control de la infraestructura dins el núvol que els dona suport, i en cas de necessitar més recursos, aquests no han d’ invertir en l’adquisició de nou hardware o software degut a que els recursos són aprovisionats a través del núvol.<br />2<br />
  12. 12. Característiques del "Cloud Computing"<br /><ul><li> A favor
  13. 13. Agilitat per a adquirir una ampliació de serveis ràpidament i de forma econòmica.
  14. 14. Reducció del cost de les TI convertint el gasto de capital en gasto operacional.
  15. 15. Independència de localització, multi-plataforma i multi-dispositiu.
  16. 16. Multi-arrendament(permet augmentar la gestió de “peek-loads”, ...).
  17. 17. Escalabilitat, via aprovisionament sota demanda.</li></ul>3<br />
  18. 18. Característiques del "Cloud Computing" II<br /><ul><li> En Contra
  19. 19. L’augment de la capacitat de computació és elàstica només si la càrrega de treball és paral·lelitzable.
  20. 20. Les dades s’ emmagatzemen en màquines no fiables (per exemple si les dades s’emmagatzemen a USA, la “US Patriot Act” permet al govern accedir sota demanda a qualsevol dada emmagatzemada a qualsevol màquina).
  21. 21. Les dades estan replicades, a vegades a través de grans distàncies geogràfiques.</li></ul>4<br />
  22. 22. Capes de l‘arquitectura del Cloud Computing I<br /><ul><li> Software as a Service (SaaS)</li></ul>La capa SaaS és la de major nivell i ofereix aplicacions completes com a serveis multi-arrendats sota demanda (on entenem serveis multi-arrendats per serveis on una sola instància del proveïdor, dona servei a diverses organitzacions client).<br />Hi ha molts exemples coneguts, com per exemple els Google Apps. <br /><ul><li>Platform as a Service (PaaS)</li></ul>La capa d’ enmig o PaaS, es l’ encapsulació d’una abstracció de l’entorn de desenvolupament i l’ empaquetament d’ un conjunt de serveis.<br />Per exemple una imatge Xen (part del servei AWS), contenint una pila bàsica web (una distro de linux, un servidor web i un ambient de programació com Ruby).<br />5<br />
  23. 23. Capes de l‘arquitectura del Cloud Computing II<br /><ul><li>Infrastructure as a Service (IaaS)</li></ul>La capa inferior o IaaS, es un mitjà per entregar emmagatzemament bàsic i capacitats de computació com a serveis estandaritzats dins la xarxa. És a dir:<br /><ul><li> Servidors
  24. 24. Sistemes d'emmagatzemament
  25. 25. Enrutadors
  26. 26. Sistemes concentrats com per exemple els serveis EC2 i S3 d’ Amazon Web Services (AWS). </li></ul>6<br />
  27. 27. Data Management In the Cloud I<br /><ul><li> Introducció</li></ul> A partir d’aquest punt, ens centrarem en les aplicacions DaaS (Database as a Service), el subconjunt de les aplicacions IaaS que ens interessa. <br /> Existeixen dos grans components en el mercat de la gestió de dades:<br /><ul><li> Gestió de dades transaccionals (Transactional data management)
  28. 28. Gestió de dades Analítiques (Analytical Data Management)</li></ul>Però, quin dels dos es podria beneficiar d’ executar-se en el núvol?<br />7<br />
  29. 29. Data Management In the Cloud II<br /><ul><li> Transactional Data Management
  30. 30. Característiques:
  31. 31. Necessiten les garanties de les regles ACID
  32. 32. Executen moltes operacions d’escriptura (write-intensive)
  33. 33. Es un possible candidat ?
  34. 34. La majoria de sistemes no utilitzen una arquitectura shared-nothing (nodes distribuïts i independents entre sí) o només la utilitzen per DW.
  35. 35. Difícil de garantir les propietats ACID amb dades replicades per tot el món.
  36. 36. Es corre un alt risc al emmagatzemar les dades en màquines no fiables.</li></ul>No! per les següents raons.<br />8<br />
  37. 37. Data Management In the Cloud III<br /><ul><li>Analytical Data Management (Data WareHouse)
  38. 38. Característiques:
  39. 39. Normalment no necessiten garantir les regles ACID ja que la informació no s’ escriu en temps real.
  40. 40. Normalment són read-only o read-mostly, exceptuant procediments batch ocasionals per efectuar els inserts.
  41. 41. Es un possible candidat ? Sí, es un bon candidat
  42. 42. L’ arquitectura shared-nothing és una bona opció.
  43. 43. Les dades particularment sensibles es poden quedar fora del núvol.</li></ul>9<br />
  44. 44. Data Analysis In the Cloud I<br /><ul><li> Que hauria de proporcionar un servei DaaS?
  45. 45. Com hem vist, els serveis DaaS que ens interessen (almenys amb la tecnologia actual) seran DataWarehouse. Tot servei DaaS vol arribar a aconseguir les següents propietats:
  46. 46. Eficiència(El preu s’incrementa al necessitar més capacitat d’emmagatzemament...)
  47. 47. Tolerància (davant de fallades d’un dels nodes involucrat en una query).
  48. 48. Habilitat per funcionar sobre entorns heterogenis.
  49. 49. Habilitat per operar amb informació encriptada.
  50. 50. Habilitat per interactuar amb aplicacions de BI (Business Intelligence).</li></ul>10<br />
  51. 51. Possibles implementacions de serveisDaaS I<br /><ul><li> Introducció</li></ul>Ara ja sabem quines propietats haurien de complir els serveis DaaS, però quina arquitectura podríem utilitzar per a la implementació d’aquests serveis ? Actualment existeixen dues arquitectures per a :<br /><ul><li>Map-Reduce like Software</li></ul>És un framework introduït per Google, per donar suport a la computació paral·lela sobre grans col·leccions de dades.<br /><ul><li>Shared-nothingParallelArchitecture</li></ul>És una arquitectura distribuïda on cada node és independent i autosuficient i que permet computació paral·lela.<br />11<br />
  52. 52. Possibles implementacions de serveisDaaS II<br /><ul><li> Map-Reduce like software
  53. 53. Característiques:
  54. 54. Eficiència:
  55. 55. Més lent que altres sistemes alternatius.
  56. 56. No dissenyat en un principi per a la gestió de DW
  57. 57. El rendiment és dependent de l’aplicació.
  58. 58. Tolerància d’error:
  59. 59. Dissenyat amb aquesta prioritat.
  60. 60. Entorns Heterogenis:
  61. 61. També dissenyat per a executar-se en sistemes heterogenis.
  62. 62. Encriptació de dades:
  63. 63. No disposa de suport d’ encriptació. Ha de definir-lo l’usuari.</li></ul>12<br />
  64. 64. Possibles implementacions de serveisDaaS III<br /><ul><li> Map-Reduce like software
  65. 65. Característiques:
  66. 66. DataWareHouse:
  67. 67. Com que el frameworkmap-reduce no està dissenyat per a funcionar com un SGBD, no disposa de suport SQL.</li></ul>13<br />
  68. 68. Possibles implementacions de serveisDaaS IV<br /><ul><li>Shared-NothingParallelArchitecture (SN)
  69. 69. Característiques:
  70. 70. Eficiència:
  71. 71. Té un alt rendiment per aplicacions de BI.
  72. 72. Tolerància d’error:
  73. 73. Les fallades són rares, però s’ha de reiniciar la query.
  74. 74. Entorns Heterogenis:
  75. 75. Pobre. Típicament dissenyades per a entorn homogenis.
  76. 76. Encriptació de dades:
  77. 77. Pobre. Suport per a accions bàsiques, però no per a accions més complexes com agregacions amb dades encriptades... Es pot codificar a mà.</li></ul>14<br />
  78. 78. Possibles implementacions de serveisDaaS V<br /><ul><li>Shared-NothingParallelArchitecture (SN)
  79. 79. Característiques:
  80. 80. Data WareHouse:
  81. 81. Molt bona, disposa de connectors ODBC, JDBC, ...</li></ul>15<br />
  82. 82. Possibles implementacions de serveisDaaS VI<br /><ul><li> Taula Comparativa</li></ul>Caracterítiques:BonaRegular DolentaNo soportada<br />16<br />
  83. 83. Implementacions comercials I : SDB<br /><ul><li> Amazon SimpleDB (SDB)</li></ul>Es un servei DaaS reduït, via Web Services, preparat per a funcionar conjuntament amb els altres dos serveis de AWS (el EC2 i el S3). <br />Aquest WS permet a les aplicacions fer les crides a les operacions bàsiques per al manteniment d’ un DW, mitjançant una API implementada en diversos llenguatges de programació. Les operacions disponibles són:<br /><ul><li>Operacions sobre els dominis:</li></ul>CreateDomain, DeleteDomain, ListDomains, DomainMetadata<br /><ul><li>Inserir o esborrar informació:</li></ul>Put, Batch Put, Delete<br /><ul><li>Obtenir informació:</li></ul>GetAttributes, Select. <br />17<br />
  84. 84. Implementacions comercials II : SDB<br /><ul><li> Exemple Amazon SimpleDB</li></ul>Veiem un exemple pràctic de com interaccionaria una aplicació Java amb SDB:<br /><ul><li>Inicialització:</li></ul> Primer cal importar les llibreries de la API:<br />importcom.amazonaws.sdb.*;import com.amazonaws.sdb.model.*;<br /> A continuació cal instanciar el client HTTP del Amazon SDB<br />  AmazonSimpleDB service = <br /> new AmazonSimpleDBClient(“accessKeyId”, “secretAccessKey”);<br />Nota:Les llibreries es poden descarregar desde la següent direcció:<br />http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1132<br />18<br />
  85. 85. Implementacions comercials III : SDB<br /><ul><li> Dominis en Amazon SimpleDB</li></ul>Abans de crear un nou domini, anem a entendre QUÈ és un domini. <br /><ul><li> Les bases de dades com Amazon SDB, BigTable de Google, ... Formen part del moviment NoSQL.
  86. 86. La base de dades està formada per un conjunt de dominis.
  87. 87. Cada domini està format per un conjunt de registres.
  88. 88. Cada registre, té un i només un ID que l’identifica, i una llista d’atributs (que és opcional).
  89. 89. Cada registre s’indexa automàticament per tots els atributs.
  90. 90. La operació principal és llegir/escriure un registre, o buscar un conjunt de registres per un o més atributs.</li></ul>19<br />
  91. 91. Implementacions comercials IV : SDB<br /><ul><li>Crear un nou domini :</li></ul> A continuació crearem un nou domini al SDB mitjançant la instància del client HTTP que em creat anteriorment i capturarem el missatge del servidor . <br /> //Creem la “request “ per a fer la crida<br />CreateDomainRequest request = new CreateDomainRequest();<br /> //Com a mínim configurem el nom del domini<br />request.withDomainName(“MyBrandNewFreackStoreOverSDB");<br /> //Fem la crida capturant la resposta del servidor SDB<br />CreateDomainResponse response = service.createDomain(request);<br />20<br />
  92. 92. Implementacions comercials V : SDB<br /><ul><li>Introduir dades:</li></ul> Ara veurem com introduir registres al nostre nou domini. <br /> //Variables comunes<br />StringdomainName = " MyBrandNewFreackStoreOverSDB “;<br />StringrecordID; <br />List<ReplaceableAttribute> attributeList = new ArrayList<ReplaceableAttribute>(7);<br /> //Afegir atributs al primer registre<br />recordID = “SW_Laser_ID”;<br />attributeList.add(new ReplaceableAttribute("Category", “Sword", false)); attributeList.add(new ReplaceableAttribute("Subcategory", “StarWars", false)); attributeList.add(new ReplaceableAttribute("Name", “Laser Sword", false)); attributeList.add(new ReplaceableAttribute("Color", “Light Green", false)); attributeList.add(new ReplaceableAttribute("Size", “Medium ", false)); <br />attributeList.add(new ReplaceableAttribute("Size", " Large ", false)); <br />attributeList.add(new ReplaceableAttribute("Size", “Awesome", false));<br />PutAttributesRequestrequest=new PutAttributesRequest(domainName, recorID, attributeList); PutAttributesResponse response = service.putAttributes(request); <br />21<br />
  93. 93. Implementacions comercials VI : SDB<br /><ul><li>Realitzar una consultes:</li></ul> Finalment, veurem com fer consultes sobre les dades introduïdes. <br /> //Creem la request i afegim la select<br />SelectRequest request = new SelectRequest();<br /> String selectExpression = "Select * From MyStore Where Category = 'Clothes' "; request.withSelectExpression(selectExpression);<br /> //Fem la crida i capturem els resultats de la resposta del servidor<br />SelectResponse response = service.select(request);<br />SelectResult  selectResult = response.getSelectResult();            List<Item> itemList = selectResult.getItem();<br />for (Attribute item : itemList) {<br />doSomething(item.getAttribute());<br /> } <br />//Fi<br />22<br />
  94. 94. Implementacions comercials VII : SDB<br /><ul><li> Preus</li></ul>Els preus es calculen segons els tres factors següents:<br /><ul><li>Utilització de les màquines:
  95. 95. First 25 Amazon SimpleDB Machine Hours consumed per month are free
  96. 96. $0.154 per Amazon SimpleDB Machine Hour consumed thereafter
  97. 97. Transferència de dades:</li></ul> First 1 GB of data transferred out per month is free<br />thereafter:<br /><ul><li>$0.170 per GB – first 10 TB / month data transfer out
  98. 98. $0.130 per GB – next 40 TB / month data transfer out
  99. 99. $0.110 per GB – next 100 TB / month data transfer out
  100. 100. $0.100 per GB – data transfer out / month over 150 TB
  101. 101. Dades Emmagatzemades:
  102. 102. First 1 GB stored per month is free
  103. 103. $0.275 per GB-month thereafter</li></ul>23<br />
  104. 104. Implementacions comercials VIII<br /><ul><li> Altres implementacions comercials
  105. 105. Avantatges: </li></ul> Disposem de processadors més potents que els d’ AWS.<br /><ul><li>Inconvenients:</li></ul> S’ha d’adquirir tota la infraestructura en comptes de, per exemple, només els serveis de DataWarehousing.<br /><ul><li> Finalment, existeixen moltes altres empreses conegudes que ofereixen serveis IaaS, però només a nivell de hosting i capacitat de computació:
  106. 106. GoGrid:
  107. 107. AT&T:
  108. 108. Rackspace
  109. 109. Amazon EC2 i S3:
  110. 110. Arsys.es:
  111. 111. ...</li></ul>24<br />
  112. 112. Altres opcions<br /><ul><li> SGBDR in thecloud
  113. 113. Amazon RDS (RelationalDatabase Service) </li></ul>Amazon RDS proveeix un servei d’ instanciació de bases de dades relacionals MySQL a través del núvol, fàcilment escalables i configurables, accessibles mitjançant Web Services. <br /><ul><li>Oracle 11g (or IBM DB2) on Amazon Escalable ComputeCloud (EC2)</li></ul>També tenim la opció d’ utilitzar els servidors EC2 (per a deployar la instància i aprofitar la escalabilitat) i Amazon Simple Storage Service S3 (per als serveis de backups), per tal de dotar el nostre SGBD d’escalabilitat i poder de computació i emmagatzemament il·limitat. <br />Nota: En el cas de DB2, s’utilitza DB2 Express-C (XML híbrid) sobre Hadoop.<br />25<br />
  114. 114. Conclusions<br /><ul><li> Coses a favor
  115. 115. Els serveis DaaS són especialment interessants per a Data Warehousing, tot i que és possible millorar el rendiment i el cost de les BD relacionals (Amazon RDS, Oracle on EC2...).
  116. 116. Permeten reduir les inversions en software i hardware de les empreses TIC.
  117. 117. Són sistemes escalables y flexibles, que permeten cobrir peek-loads i ajustar-se a sistemes amb càrregues de treball variables.
  118. 118. Són sistemes multi-plataforma i multi-dispositiu.</li></ul>26<br />
  119. 119. Conclusions<br /><ul><li> Coses en contra
  120. 120. Les implementacions actuals no desenvolupen tota la capacitat de les aplicacions DaaS. Necessitat d’una solució híbrida amb encriptació.
  121. 121. En el cas de les BDR, seguretat insuficient i alta complexitat.
  122. 122. Limitacions de NoSQL Data Base: </li></ul>27<br />
  123. 123. Bibliografia<br /><ul><li>CloudComputing</li></ul>http://blog.appirio.com/2009/04/cloud-computing-savings-real-or.html<br />http://www.mercadeo.com/72_cloud_computing.htm<br />http://www.oracle.com/us/technologies/cloud/index.htm<br />http://en.wikipedia.org/wiki/Cloud_computing<br />Cloud_computing_Guide.pdf (from Sun)<br /><ul><li> Data Manegement in thecloud</li></ul>Data management in thecloud – Limitations and opportunities (YaleUniversity - Daniel J. Abadi)<br />http://cs-www.cs.yale.edu/homes/dna/talks/abadi-nedbday09.pdf<br /><ul><li> Altres definicions</li></ul>Map-reduce: http://es.wikipedia.org/wiki/MapReduce<br /> SN Parallel DB: http://en.wikipedia.org/wiki/Shared_nothing_architecture<br />SimpleDB: http://blog.adaptiveblue.com/?p=1145<br />Amazon SDB:http://docs.amazonwebservices.com<br />28<br />
  124. 124. ¿ Preguntes ?<br />Gràcies per la vostra atenció!!<br />29<br />
  125. 125. Annex I: Funcionament Map-Reduce<br /><ul><li> Funcionament del framework Map-Reduce
  126. 126. El funcionament del Map-Reduce és molt simple i es composa de dues parts diferenciades, la funció “Map” i la funció “Reduce”.
  127. 127. La funció Map [Map(k1,v1) -> list(k2,v2)], es on el “master node” separa el problema en diferents subproblemes més petits i els envia als “worker nodes”. Per a fer-ho, separa tots els elements de la col·lecció de dades d’ entrada, estructurant les dades en parells <Clau,Valor> com les taules de dispersió.
  128. 128. La funció Reduce [Reduce(k2, list (v2)) -> list(v3)], es la encarregada d’ agafar la informació processada als “worker nodes” i recomposar-la, per a obtenir la solució al problema plantejat originàriament.
  129. 129. Vegem l’ exemple de la transparència següent.</li></ul>29<br />
  130. 130. Annex I: Funcionament Map-Reduce II<br /><ul><li> Exemple: Codi
  131. 131. A l’exemple farem un comptador de paraules amb el software map-reduce. A continuació, teniu el codi que passarem a explicar a la próxima transparència.</li></ul>voidmap(Stringname, Stringdocument) <br />foreachword w in document: <br />EmitIntermediate(w, 1); <br />voidreduce(Stringword, IteratorpartialCounts) <br />intresult = 0; <br />foreachpc in partialCounts: <br />result+= ParseInt(pc);<br />Emit(result);<br />29<br />
  132. 132. Annex I: Funcionament Map-Reduce III<br /><ul><li> Exemple: Funció Map
  133. 133. La funció map(Stringword, Stringdocument) té dos paràmetres d’entrada, un és el nom del document (que farà de clau) i l’altre el document complet (que correspon al valor).
  134. 134. Dins la funció, convertim l’ entrada (k1 = name, v1 = document) a una llista d’entrades per a ser tractada a cada “worker node” list(k2 = wordi, v2 = 1). On wordi és una paraula del document i l’ 1 correspon a la concurrència parcial de la paraula, que pel moment correspon a 1.
  135. 135. Per a cada parell clau valor generat des de l’entrada de la funció map, s’ emet el resultat intermig que es repartirà en als “worker nodes” mitjançant una funció de hash o una funció de balanceig de carga.</li></ul>29<br />
  136. 136. Annex I: Funcionament Map-Reduce IV<br /><ul><li> Exemple: Funció Reduce
  137. 137. La funció reduce(Stringword, IteratorpartialCounts) té dos paràmetres d’entrada, un és la paraula a trobar (que farà de clau) i l’altre és la llista de valors que tenen com a clau la paraula del primer paràmetre .
  138. 138. El framework ajunta tots els parells amb la mateixa clau i fa la crida a la funció “reduce”. Aquesta agafa els resultats parcials de cada “worker node” i els re composa sumant la concurrència parcial de cada paraula.
  139. 139. Finalment, aquesta funció emet el resultat final al “master node”.</li></ul>29<br />

×