En aquest tema, explorarem els diferents tipus de bases de dades i solucions d'emmagatzematge que es poden utilitzar en una arquitectura de sistemes. Entendre les opcions disponibles i saber com seleccionar la més adequada per a les necessitats específiques del sistema és crucial per dissenyar una arquitectura robusta i escalable.
Objectius d'Aprenentatge
Al final d'aquest tema, hauràs de ser capaç de:
- Comprendre els diferents tipus de bases de dades i solucions d'emmagatzematge.
- Identificar els avantatges i desavantatges de cada tipus.
- Seleccionar la solució d'emmagatzematge adequada per a diferents escenaris.
Tipus de Bases de Dades
- Bases de Dades Relacionals (RDBMS)
Les bases de dades relacionals emmagatzemen dades en taules amb files i columnes. Utilitzen SQL (Structured Query Language) per gestionar i interrogar les dades.
Exemples:
- MySQL
- PostgreSQL
- Oracle Database
- Microsoft SQL Server
Avantatges:
- ACID (Atomicitat, Consistència, Aïllament, Durabilitat) garanteix la integritat de les dades.
- Estructura ben definida i normalitzada.
- Suport per a transaccions complexes.
Desavantatges:
- Escalabilitat limitada en entorns de grans volums de dades.
- Pot ser menys flexible per a dades no estructurades.
- Bases de Dades NoSQL
Les bases de dades NoSQL són dissenyades per emmagatzemar i recuperar dades no estructurades o semi-estructurades. No utilitzen SQL com a llenguatge principal.
Tipus de NoSQL:
- Documentals: Emmagatzemen dades en documents JSON o BSON.
- Exemple: MongoDB, CouchDB
- Clau-Valor: Emmagatzemen dades com a parelles clau-valor.
- Exemple: Redis, DynamoDB
- Columnars: Emmagatzemen dades en columnes en lloc de files.
- Exemple: Cassandra, HBase
- Gràfics: Emmagatzemen dades en nodes i arestes per representar relacions.
- Exemple: Neo4j, ArangoDB
Avantatges:
- Alta escalabilitat horitzontal.
- Flexible per a dades no estructurades.
- Rendiment alt per a certs tipus de consultes.
Desavantatges:
- Falta de suport per a transaccions complexes.
- Pot no garantir ACID.
Solucions d'Emmagatzematge
- Emmagatzematge en Disc
L'emmagatzematge en disc és la forma més tradicional d'emmagatzematge de dades, utilitzant discos durs (HDD) o unitats d'estat sòlid (SSD).
Avantatges:
- Cost relativament baix.
- Gran capacitat d'emmagatzematge.
Desavantatges:
- Rendiment més baix comparat amb altres solucions modernes.
- Latència més alta.
- Emmagatzematge en Memòria
L'emmagatzematge en memòria utilitza la memòria RAM per emmagatzemar dades, oferint un accés molt ràpid.
Exemples:
- Redis
- Memcached
Avantatges:
- Accés molt ràpid a les dades.
- Ideal per a dades temporals o en memòria cau.
Desavantatges:
- Capacitat limitada per la quantitat de RAM disponible.
- Dades volàtils (perden les dades en cas de fallada de corrent).
- Emmagatzematge en Núvol
L'emmagatzematge en núvol ofereix una solució escalable i flexible per emmagatzemar dades, utilitzant serveis proporcionats per proveïdors de núvol.
Exemples:
- Amazon S3
- Google Cloud Storage
- Azure Blob Storage
Avantatges:
- Escalabilitat pràcticament il·limitada.
- Alta disponibilitat i redundància.
- Pagament per ús.
Desavantatges:
- Dependència del proveïdor de serveis.
- Potencials problemes de latència.
Comparació de Solucions d'Emmagatzematge
Tipus de Solució | Avantatges | Desavantatges | Usos Recomanats |
---|---|---|---|
Emmagatzematge en Disc | Cost baix, gran capacitat | Rendiment més baix, latència alta | Emmagatzematge de dades massives, arxius històrics |
Emmagatzematge en Memòria | Accés ràpid, ideal per a memòria cau | Capacitat limitada, dades volàtils | Dades temporals, memòria cau, sessions d'usuari |
Emmagatzematge en Núvol | Escalabilitat, alta disponibilitat | Dependència del proveïdor, latència | Emmagatzematge de dades massives, còpies de seguretat, contingut multimèdia |
Exercicis Pràctics
Exercici 1: Selecció de Base de Dades
Escenari: Estàs dissenyant un sistema de comerç electrònic que necessita gestionar tant dades estructurades (com ara informació de productes i comandes) com dades no estructurades (com ara ressenyes de productes i comentaris d'usuaris).
Pregunta: Quina combinació de bases de dades utilitzaries i per què?
Solució:
- Base de Dades Relacional (RDBMS): Utilitzaria una base de dades relacional com MySQL o PostgreSQL per gestionar les dades estructurades com la informació de productes i comandes, ja que aquestes dades requereixen integritat i suport per a transaccions complexes.
- Base de Dades NoSQL Documental: Utilitzaria una base de dades NoSQL documental com MongoDB per gestionar les ressenyes de productes i comentaris d'usuaris, ja que aquestes dades són no estructurades i poden variar en format.
Exercici 2: Optimització d'Emmagatzematge
Escenari: Estàs treballant en una aplicació de xarxes socials que necessita emmagatzemar grans quantitats de fotos i vídeos dels usuaris.
Pregunta: Quina solució d'emmagatzematge utilitzaries i per què?
Solució:
- Emmagatzematge en Núvol: Utilitzaria una solució d'emmagatzematge en núvol com Amazon S3 o Google Cloud Storage, ja que ofereixen escalabilitat pràcticament il·limitada, alta disponibilitat i redundància, i són ideals per emmagatzemar grans quantitats de contingut multimèdia.
Resum
En aquest tema, hem explorat els diferents tipus de bases de dades i solucions d'emmagatzematge disponibles per a arquitectures de sistemes. Hem après a identificar els avantatges i desavantatges de cada tipus i a seleccionar la solució adequada per a diferents escenaris. Aquest coneixement és fonamental per dissenyar arquitectures robustes i escalables que suportin els objectius de negoci.
En el següent tema, explorarem les diferències entre microserveis i monòlits, i com aquestes arquitectures poden influir en el disseny del sistema.
Arquitectures de Sistemes: Principis i Pràctiques per Dissenyar Arquitectures Tecnològiques Robustes i Escalables
Mòdul 1: Introducció a les Arquitectures de Sistemes
- Conceptes Bàsics d'Arquitectura de Sistemes
- Importància d'una Bona Arquitectura
- Tipus d'Arquitectures de Sistemes
Mòdul 2: Principis de Disseny d'Arquitectures
Mòdul 3: Components d'una Arquitectura de Sistemes
Mòdul 4: Escalabilitat i Rendiment
Mòdul 5: Seguretat en Arquitectures de Sistemes
Mòdul 6: Eines i Tecnologies
Mòdul 7: Casos d'Estudi i Exemples Pràctics
- Cas d'Estudi: Arquitectura d'un Sistema de Comerç Electrònic
- Cas d'Estudi: Arquitectura d'una Aplicació de Xarxes Socials
- Exercicis Pràctics