Skip to content

Latest commit

 

History

History
200 lines (141 loc) · 8.89 KB

README_es.md

File metadata and controls

200 lines (141 loc) · 8.89 KB

SA

Esqueleto de proyecto para el laboratorio de SA

Report Bug · Request Feature

Contenidos
  1. Sobre este proyecto
  2. Antes de empezar
  3. Instalación
  4. Enlaces a herramientas, librerías y módulos usados
  5. Contacto

Sobre este proyecto

Este es el proyecto de laboratorio de la asignatura EPCSD de la UOC. Se compone de 3 elementos (cada una tiene su repositorio GIT):

(ir arriba)

Hecho con

(ir arriba)

Antes de empezar

Para el funcionamiento de los contenedores que forman parte de la infraestructura básica del proyecto, se usaran los siguientes puertos:

  • 22181 - Apache Kafka (Zookeeper)
  • 19092 - Apache Kafka (Server)
  • 54320, 54321 - PostgreSQL
  • 18080 - Adminer
  • 18081 - Usado por el microservicio productcatalog
  • 18082 - Usado por el microservicio user

Para evitar conflictos con otras aplicaciones instaladas, se han modificado los puertos por defecto de todas las aplicaciones. Aún así, si hubiera un conflicto por un puerto ya en uso, bastaría con modificar los puertos especificados en el archivo docker-compose.yml para solucionar el problema. Este link de la documentación oficial de docker compose explica como modificar esta configuración mediante la opción ports: Networking in Compose.

AVISO IMPORTANTE: Los puertos que se modifiquen se tendran que cambiar también en la configuración de los microservicios (normalmente definidos en el archivo application.properties).

Instalación

Docker Desktop / Docker Compose

Instalaremos Docker Compose siguiendo los pasos descritos (según SO) en la siguiente guía: https://docs.docker.com/compose/install/

Bajo Windows, es posible que sea necesario registrarse, ya que Docker Desktop lo exige así para proyectos educativos/personales/no-comerciales. Como contrapartida, no será necesario instalar nada más porque ya incorpora Compose.

Es importante que reviséis con atención los requisitos de hardware y software descritos en las guías de instalación, puesto que si vuestro sistema no los cumple, aunque la aplicación se instale satisfactoriamente, dará errores al intentar arrancar contenedores. Una alternativa para aquellos que tengan sistemas un poco más antiguos es Docker Toolbox.

Una vez instalado Docker Compose, seguiremos con el esqueleto de proyecto. Se recomienda seguir la siguiente estructura de carpetas:

epcsd-spring-2023
├ README.md
├ docker-compose.yml
├ epcsd-spring-2023-notification
├ epcsd-spring-2023-productcatalog
└ epcsd-spring-2023-user

(ir arriba)

Infraestructura básica (dockers)

  • Descargar ZIP / Clonar el repositorio epcsd-spring-2023 en la carpeta de trabajo (epcsd-spring-2023 si se ha seguido la recomendación).

  • Desde la carpeta, ejecutar el comando:

    docker compose up
    (Win)
    docker-compose up
    (Linux)

Deberían arrancarse los contenedores:

  • epcsd-spring-2023-adminer_1 - adminer, un cliente SQL
  • epcsd-spring-2023-kafka_1 - el servidor de kafka
  • epcsd-spring-2023-productdb_1 - la bbdd postgresql correspondiente al servicio productcatalog
  • epcsd-spring-2023-userdb_1 - la bbdd postgresql correspondiente al servicio user
  • epcsd-spring-2023-zookeeper_1 - kafka zookeeper

Para verificar que se han levantado todos de manera correcta, ejecutaremos el siguiente comando:

docker ps -a

Deberíamos ver algo como esto:

Docker containers running

Para comprobar el funcionamiento, se puede acceder al panel Adminer en http://localhost:18080/ y hacer alguna consulta contra las BBDDs PostgreSQL que acabamos de instanciar con los siguientes datos de conexión:

  • productdb
  • Motor: PostgreSQL
  • Servidor: productdb
  • Usuario: product
  • Contraseña: product
  • Esquema: product

Adminer productdb 1

Adminer productdb 2

  • userdb
  • Motor: PostgreSQL
  • Servidor: userdb
  • Usuario: user
  • Contraseña: user
  • Esquema: user

Adminer userdb 1

Adminer userdb 2

Esqueletos de microservicios

(ir arriba)

Enlaces a herramientas, librerías y módulos usados

Contacto

Vicenç Font - [email protected]

(ir arriba)