{"id":188,"date":"2023-10-09T11:26:26","date_gmt":"2023-10-09T09:26:26","guid":{"rendered":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/?page_id=188"},"modified":"2023-10-16T13:14:39","modified_gmt":"2023-10-16T11:14:39","slug":"introduccio","status":"publish","type":"page","link":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/","title":{"rendered":"Introducci\u00f3"},"content":{"rendered":"<p>A mesura que la quantitat de dades en l\u2019\u00e0rea de ci\u00e8ncies de la vida i en altres \u00e0rees del coneixement augmenta exponencialment, sorgeix la necessitat d\u2019estructurar i manejar sistem\u00e0ticament la informaci\u00f3 adquirida. Que les dades que manegem segueixin els principis <a href=\"javascript:void(0);\" class=\"tooltip\" data-toggle=\"popover\" data-placement=\"bottom\" data-content=\"El 2016 es van establir les guies de bones pr\u00e0ctiques del maneig de dades, per a la qual cosa es van crear els principis FAIR [1]. FAIR, de l\u2019angl\u00e8s <em>Findable, Accessible, Interoperable i Reusable<\/em>.<br> \r\n\r\n\u2022 Findable: les dades i metadades (informaci\u00f3 sobre les dades) han de ser f\u00e0cilment trobables tant per humans com per m\u00e0quines.<br>\r\n\u2022\tAccessible: s\u2019ha de saber com es pot accedir a aquestes dades, incloent processos d\u2019identificaci\u00f3 i autenticaci\u00f3.<br>\r\n\u2022 Interoperable: moltes vegades les dades s\u2019han d\u2019integrar amb altres dades o aplicacions per al seu emmagatzematge, processament i an\u00e0lisi.<br>\r\n\u2022 Reusable: tant les dades com les metadades han d\u2019estar ben descrites per si els resultats han de ser replicats o reanalitzats utilitzant altres par\u00e0metres.\r\n\" data-placement=\"top\" data-html=\"true\" >FAIR<\/a> \u00e9s fonamental per a la correcta manipulaci\u00f3 de les dades i de la seva tra\u00e7abilitat al llarg del cicle de vida de la dada. A m\u00e9s, hi ha dos processos fonamentals, els quals estudiarem en els propers temes, que s\u00f3n l\u2019escalabilitat i la reproductibilitat.<\/p>\n<p>Tradicionalment, per tal de minimitzar el nombre de passos manuals que es duen a terme en una an\u00e0lisi, els processos s\u2019han unit program\u00e0ticament en els anomenats<em> pipelines<\/em>. Aquesta concatenaci\u00f3 de processos normalment s\u2019estructura en arxius (<em>scripts<\/em>). Aquest tipus d\u2019automatitzaci\u00f3 normalment comporta una elevada depend\u00e8ncia en les versions del programari instal\u00b7lades i en l\u2019arquitectura local de l\u2019ordinador en el qual es processa.<\/p>\n<p>Com segurament ja heu vist, llenguatges de programaci\u00f3 com Python, <em>bash<\/em>, R, etc. executen el que s\u2019anomenen paquets. Els paquets poden contenir programes que poden ser utilitzats per poder processar les dades a analitzar. Un paquet per si sol normalment no t\u00e9 tot el codi necessari per realitzar les seves funcions i en necessita d\u2019altres per tal d\u2019executar-les. D\u2019aquesta manera es reutilitza codi, minimitzant el temps de desenvolupament d\u2019un paquet i creant eines m\u00e9s robustes. Per poder gestionar les depend\u00e8ncies que un paquet t\u00e9 sobre d\u2019altres van apar\u00e8ixer els gestors de paquets (<em>apt<\/em>,<em> yum<\/em>,<em> Home Brew<\/em>,<em> pip<\/em>&#8230;).<\/p>\n<p>En el proc\u00e9s d\u2019utilitzaci\u00f3 i actualitzaci\u00f3 dels paquets ens podem trobar amb diverses dificultats. Durant el desenvolupament d\u2019un paquet \u00e9s possible que una funci\u00f3 es vegi modificada, alterant les dades d\u2019entrada o sortida, o eliminada en una versi\u00f3 m\u00e9s recent del paquet. En el moment en qu\u00e8 diferents paquets depenen d\u2019aquesta funci\u00f3 es poden produir problemes de compatibilitat i no \u00e9s suficient saber que un paquet dep\u00e8n d\u2019un altre sin\u00f3 tamb\u00e9 si dep\u00e8n d\u2019una versi\u00f3 en espec\u00edfic. L\u2019actualitzaci\u00f3 d\u2019un paquet pot representar que un altre paquet ja no funcioni. Aix\u00f2 comportaria la necessitat d\u2019instal\u00b7lar dues versions diferents del mateix <em>software<\/em>, fet que moltes vegades no \u00e9s possible. Una altra problem\u00e0tica associada a les versions dels paquets \u00e9s la reproductibilitat de resultats en sistemes diferents. Dos ordinadors podrien tenir instal\u00b7lats els mateixos paquets i les seves depend\u00e8ncies, per\u00f2 amb versions diferents, produint resultats diferents. En projectes multic\u00e8ntrics de vegades cal executar els mateixos processos en cadascuna de les institucions implicades, amb la seguretat que no hi haur\u00e0 variabilitat en els resultats a causa del processament de les dades.<\/p>\n<p>Aix\u00ed, hem de controlar:<\/p>\n<ul>\n<li>La utilitzaci\u00f3 dels mateixos paquets i de les seves depend\u00e8ncies.<\/li>\n<li>La implementaci\u00f3 en altres entorns computacionals, evitant que la configuraci\u00f3 local alteri el resultat final.<\/li>\n<\/ul>\n<p>Per mantenir una configuraci\u00f3 estable i aplicable a diferents infraestructures computacionals, fonamentalment hi ha dues estrat\u00e8gies a seguir: la creaci\u00f3 d\u2019entorns fixos i la creaci\u00f3 de contenidors.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A mesura que la quantitat de dades en l\u2019\u00e0rea de ci\u00e8ncies de la vida i en altres \u00e0rees del coneixement augmenta exponencialment, sorgeix la necessitat d\u2019estructurar i manejar sistem\u00e0ticament la informaci\u00f3 adquirida. Que les dades que manegem segueixin els principis \u00e9s fonamental per a la correcta manipulaci\u00f3 de les dades i de la seva tra\u00e7abilitat [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"acf":[],"_links":{"self":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/wp-json\/wp\/v2\/pages\/188"}],"collection":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/wp-json\/wp\/v2\/comments?post=188"}],"version-history":[{"count":6,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/wp-json\/wp\/v2\/pages\/188\/revisions"}],"predecessor-version":[{"id":361,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/wp-json\/wp\/v2\/pages\/188\/revisions\/361"}],"wp:attachment":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/wp-json\/wp\/v2\/media?parent=188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}