En aquesta secció, posarem en pràctica els conceptes apresos al llarg del curs mitjançant una sèrie d'exercicis pràctics. Aquests exercicis estan dissenyats per reforçar els coneixements adquirits i proporcionar experiència pràctica en el disseny i implementació d'arquitectures de sistemes.
Exercici 1: Disseny d'una Arquitectura de Comerç Electrònic
Descripció
Dissenya una arquitectura de sistema per a una plataforma de comerç electrònic que ha de ser escalable, segura i capaç de gestionar un gran volum de transaccions.
Requisits
- Capes d'Arquitectura: Defineix les diferents capes de la teva arquitectura (presentació, lògica de negoci, dades).
- Escalabilitat: Explica com implementaràs l'escalabilitat horitzontal i vertical.
- Seguretat: Detalla les mesures de seguretat que implementaràs, incloent autenticació, autorització i protecció de dades.
- Bases de Dades: Selecciona el tipus de base de dades que utilitzaràs i justifica la teva elecció.
- Balanceig de Càrrega: Descriu com implementaràs el balanceig de càrrega per assegurar un rendiment òptim.
Solució Proposada
1. Capes d'Arquitectura
- Presentació: Aplicació web i mòbil.
- Lògica de Negoci: Serveis RESTful implementats amb microserveis.
- Dades: Bases de dades SQL per a transaccions i NoSQL per a dades de productes i usuaris.
2. Escalabilitat
- Horitzontal: Utilització de microserveis per permetre l'escalabilitat independent de cada component.
- Vertical: Augment de recursos en servidors crítics quan sigui necessari.
3. Seguretat
- Autenticació: Implementació de OAuth 2.0 per a la gestió d'usuaris.
- Autorització: Control d'accés basat en rols (RBAC).
- Protecció de Dades: Xifratge de dades sensibles tant en trànsit com en repòs.
4. Bases de Dades
- SQL: PostgreSQL per a transaccions financeres.
- NoSQL: MongoDB per a dades de productes i usuaris.
5. Balanceig de Càrrega
- Implementació: Utilització de Nginx com a balancejador de càrrega per distribuir el trànsit entre els diferents servidors de microserveis.
Exercici 2: Arquitectura d'una Aplicació de Xarxes Socials
Descripció
Dissenya una arquitectura de sistema per a una aplicació de xarxes socials que ha de ser capaç de gestionar milions d'usuaris actius diaris i proporcionar una experiència d'usuari fluida.
Requisits
- Capes d'Arquitectura: Defineix les diferents capes de la teva arquitectura.
- Escalabilitat: Explica com implementaràs l'escalabilitat horitzontal i vertical.
- Seguretat: Detalla les mesures de seguretat que implementaràs.
- Bases de Dades: Selecciona el tipus de base de dades que utilitzaràs i justifica la teva elecció.
- Balanceig de Càrrega: Descriu com implementaràs el balanceig de càrrega.
Solució Proposada
1. Capes d'Arquitectura
- Presentació: Aplicació web i mòbil.
- Lògica de Negoci: Serveis RESTful i WebSocket per a comunicació en temps real.
- Dades: Bases de dades NoSQL per a dades d'usuaris i missatges.
2. Escalabilitat
- Horitzontal: Utilització de microserveis per permetre l'escalabilitat independent de cada component.
- Vertical: Augment de recursos en servidors crítics quan sigui necessari.
3. Seguretat
- Autenticació: Implementació de OAuth 2.0 per a la gestió d'usuaris.
- Autorització: Control d'accés basat en rols (RBAC).
- Protecció de Dades: Xifratge de dades sensibles tant en trànsit com en repòs.
4. Bases de Dades
- NoSQL: Cassandra per a dades d'usuaris i missatges degut a la seva capacitat de gestió de grans volums de dades i alta disponibilitat.
5. Balanceig de Càrrega
- Implementació: Utilització de Nginx com a balancejador de càrrega per distribuir el trànsit entre els diferents servidors de microserveis.
Exercici 3: Optimització de Rendiment
Descripció
Optimitza el rendiment d'un sistema existent que està experimentant problemes de latència i temps de resposta lents.
Requisits
- Identificació de Colls d'Ampolla: Identifica els components del sistema que estan causant problemes de rendiment.
- Optimització de Base de Dades: Proposa millores per optimitzar el rendiment de la base de dades.
- Cache: Implementa una solució de cache per millorar el temps de resposta.
- Balanceig de Càrrega: Revisa i millora la configuració del balancejador de càrrega.
Solució Proposada
1. Identificació de Colls d'Ampolla
- Anàlisi de Logs: Revisió dels logs del sistema per identificar components amb temps de resposta elevats.
- Monitorització: Utilització d'eines de monitorització com New Relic o Prometheus per identificar colls d'ampolla.
2. Optimització de Base de Dades
- Índexs: Creació d'índexs en les taules més consultades.
- Consultes Optimitzades: Revisió i optimització de les consultes SQL per reduir el temps d'execució.
3. Cache
- Implementació: Utilització de Redis o Memcached per emmagatzemar dades freqüentment consultades.
- Estratègia de Cache: Definició d'una estratègia de cache adequada per a les dades més crítiques.
4. Balanceig de Càrrega
- Revisió de Configuració: Revisió i ajust de la configuració de Nginx per assegurar una distribució òptima del trànsit.
- Escalabilitat: Afegir més instàncies de servidors si és necessari per gestionar la càrrega.
Conclusió
Els exercicis pràctics proporcionats en aquesta secció estan dissenyats per ajudar-te a aplicar els conceptes apresos al llarg del curs en situacions reals. A mesura que treballis en aquests exercicis, recorda revisar els principis i pràctiques discutits en els mòduls anteriors per assegurar-te que estàs dissenyant arquitectures robustes i escalables que suportin els objectius de negoci.
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