Introducció
En aquest tema, explorarem els conceptes d'automatització i orquestració en sistemes distribuïts. Aquests processos són essencials per gestionar la complexitat i assegurar l'eficiència operativa en entorns de TI moderns. Aprendrem què són, com funcionen i quines eines es poden utilitzar per implementar-los.
Conceptes Clau
Automatització
L'automatització implica l'ús de tecnologies per realitzar tasques repetitives sense intervenció humana. En sistemes distribuïts, això pot incloure:
- Desplegament de serveis: Automatitzar el desplegament de serveis i aplicacions.
- Gestió de configuracions: Mantenir la coherència de les configuracions a través de múltiples nodes.
- Actualitzacions i Parches: Aplicar actualitzacions de programari de manera automàtica.
Orquestració
L'orquestració va un pas més enllà de l'automatització, coordinant múltiples tasques automatitzades per aconseguir un objectiu més gran. Això pot incloure:
- Gestió de dependències: Assegurar que els serveis es despleguin en l'ordre correcte.
- Escalabilitat: Afegir o eliminar recursos automàticament en resposta a la demanda.
- Recuperació de fallades: Detectar i respondre a fallades de manera automàtica.
Eines Populars
Ansible
Ansible és una eina d'automatització que permet gestionar configuracions, desplegar aplicacions i automatitzar tasques. Utilitza fitxers YAML per definir les tasques a realitzar.
- name: Instal·lar Apache
  hosts: webservers
  become: yes
  tasks:
    - name: Instal·lar el paquet Apache
      apt:
        name: apache2
        state: presentKubernetes
Kubernetes és una plataforma d'orquestració de contenidors que automatitza el desplegament, l'escalabilitat i la gestió d'aplicacions en contenidors.
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80Terraform
Terraform és una eina d'infraestructura com a codi (IaC) que permet definir i proporcionar infraestructura a través de fitxers de configuració.
provider "aws" {
  region = "us-west-2"
}
resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
}Exercici Pràctic
Objectiu
Automatitzar el desplegament d'una aplicació web simple utilitzant Ansible i Kubernetes.
Passos
- Configurar Ansible per Instal·lar Docker:
- Crear un fitxer playbook.ymlper instal·lar Docker en els nodes.
 
- Crear un fitxer 
- name: Instal·lar Docker
  hosts: all
  become: yes
  tasks:
    - name: Actualitzar el sistema
      apt:
        update_cache: yes
    - name: Instal·lar paquets necessaris
      apt:
        name: 
          - apt-transport-https
          - ca-certificates
          - curl
          - software-properties-common
        state: present
    - name: Afegir la clau GPG de Docker
      apt_key:
        url: https://download.docker.com/linux/ubuntu/gpg
        state: present
    - name: Afegir el repositori de Docker
      apt_repository:
        repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable
        state: present
    - name: Instal·lar Docker
      apt:
        name: docker-ce
        state: present
    - name: Assegurar que Docker està en execució
      service:
        name: docker
        state: started
        enabled: yes- Desplegar una Aplicació amb Kubernetes:
- Crear un fitxer deployment.yamlper desplegar una aplicació Nginx.
 
- Crear un fitxer 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80- Executar el Playbook d'Ansible:
- Utilitzar Ansible per instal·lar Docker en els nodes.
 
- Desplegar l'Aplicació amb Kubernetes:
- Aplicar el fitxer deployment.yamlutilitzant kubectl.
 
- Aplicar el fitxer 
Solució
Si has seguit els passos correctament, hauràs automatitzat la instal·lació de Docker i el desplegament d'una aplicació Nginx en un clúster de Kubernetes.
Errors Comuns i Consells
- Error: Permisos insuficients: Assegura't que tens permisos d'administrador per executar tasques amb become: yesen Ansible.
- Error: Repositori no trobat: Verifica que el repositori de Docker està configurat correctament.
- Error: Kubernetes no troba el fitxer: Assegura't que el fitxer deployment.yamlestà en el directori correcte i quekubectlestà configurat per apuntar al clúster correcte.
Conclusió
En aquesta secció, hem après sobre l'automatització i l'orquestració en sistemes distribuïts, incloent-hi les eines populars com Ansible, Kubernetes i Terraform. Hem vist com aquestes eines poden simplificar la gestió de sistemes complexos i hem realitzat un exercici pràctic per consolidar els coneixements adquirits. Amb aquestes habilitats, estaràs millor preparat per gestionar i escalar sistemes distribuïts de manera eficient.
Curs d'Arquitectures Distribuïdes
Mòdul 1: Introducció als Sistemes Distribuïts
- Conceptes Bàsics de Sistemes Distribuïts
- Models de Sistemes Distribuïts
- Avantatges i Desafiaments dels Sistemes Distribuïts
