Saltar a contenido

✨ Primeros Pasos

Visión general

Esta guía le ayudará a configurar Etendo, incluyendo tanto las funcionalidades de Etendo Classic como Etendo RX, nuestra plataforma reactiva capaz de ejecutar microservicios con interacción con la base de datos y acciones asíncronas.

Requisitos

  1. Instale Etendo Classic. Para ello, siga la guía de instalación de Etendo Classic.
  2. Instale el Platform Extensions Bundle.
  3. Este proyecto depende de las siguientes herramientas:

Warning

Evite instalar Docker mediante Snap, ya que puede estar restringido por este sandbox y puede no tener acceso a directorios del host como /opt/, lo que puede impedir que los contenedores Docker de Etendo se inicien correctamente.

Recomendación: instale Etendo utilizando la ISO más reciente(que incluye Docker) o instale Docker siguiendo la guía de instalación oficial de su distribución.

Servicios dockerizados

En el bundle de plataforma, puede encontrar el módulo Servicios dockerizados, que proporciona la arquitectura necesaria para distribuir la infraestructura. En este caso, en este bundle, también se incluye el módulo Etendo RX y, para lanzar los servicios distribuidos en él, se necesita una determinada configuración. En el archivo gradle.properties, añada la siguiente variable:

gradle.properties
docker_com.etendoerp.etendorx=true

Info

Para más información sobre cómo gestionar las dockerizaciones de Etendo, visite Gestión de Docker.

Tomcat y PostgresSQL dockerizados (opcional)

También es posible ejecutar el servicio PostgreSQL y el servicio Tomcat dockerizados, añadiendo opcionalmente el Platform Extensions Bundle y las siguientes variables de configuración:

gradle.properties
docker_com.etendoerp.tomcat=true
docker_com.etendoerp.docker_db=true

Si desea depurar Tomcat localmente con IntelliJ, visite Servicio dockerizado de Tomcat.

Configuraciones de Etendo RX

Antes de iniciar los servicios dockerizados, hay algunas configuraciones que deben realizarse en Etendo Classic.

Configuración de la Entidad

Aplicación > Configuración General > Entidad > Entidad

Es necesario configurar el token de cifrado para la autenticación en la ventana Entidad con el rol System Administrator. Si el tiempo de expiración es igual a 0, los tokens no caducan.

Genere una clave aleatoria con el botón Generar Clave.

Ventana RX Config

Aplicación > Etendo RX > RX Config

Esta ventana de configuración almacena los datos de acceso para los servicios de Etendo RX, que son cruciales para la interacción entre diferentes servicios. Con el rol System Administrator, en esta ventana, ejecute el proceso Initialize RX Services en la barra de herramientas.

Tras la ejecución de este proceso, se completan las variables de configuración por defecto, en función de la configuración de la instancia y de la infraestructura; incluso se configuran los parámetros por defecto requeridos por cada servicio.

default-rx-config.png

Info

El campo URL pública solo necesita configurarse cuando los servicios estén configurados para producción.

Lanzar servicios RX

A continuación, para ejecutar eficazmente los servicios, es necesario ejecutar el comando en el terminal:

Terminal
./gradlew resources.up

Aquí, se pueden ver todos los servicios y sus respectivos logs en ejecución utilizando lazydocker o Docker Desktop para una gestión de contenedores sencilla y rápida.

Servicios Docker

Por defecto, los siguientes servicios deberían estar en funcionamiento:

  • Config
  • Auth
  • Edge
  • Das

Success

Ha configurado correctamente los servicios de Etendo RX. Para más información, visite la página Projections and Mappings y Creating a New Microservice en la sección de la guía del desarrollador.

Actualmente, la mayor parte de los servicios de Etendo RX se basan en imágenes Docker denominadas dynamic-das y dynamic-gradle, que sustentan la ejecución de microservicios. Dynamic-das se dedica exclusivamente a ejecutar el microservicio Das y dynamic-gradle, por el contrario, puede lanzar múltiples microservicios, como Config, Edge, Auth, AsyncProcess, ObConnSrv, Worker y otros.

Dynamic DAS v1.1.0

Pila

  • Imagen base: amazoncorretto:17.0.14-alpine3.21 (enlace)
  • Versión de JDK: 17.0.14
  • Versión de Gradle: 8.12.1
  • Versión de OpenTelemetry: v2.18.1 (versión)
  • Gestor de paquetes: apk (Alpine Package Keeper)
  • Herramientas adicionales instaladas: wget, unzip

Puertos

Puerto Descripción
5021 Puerto del servicio DAS
8092 Puerto de depuración remota

Variables de entorno

Name Description Type Allowed Values Default Notes
DEPENDENCIES Coordenadas GAV de Maven para dependencias dinámicas string Lista separada por comas null
REPO_URL URL del repositorio Maven URL Cualquier URL válida https://repo.maven.apache.org/maven2/
REPO_USER Nombre de usuario del repositorio Maven string null
REPO_PASSWORD Contraseña del repositorio Maven string null
CONFIG_SERVER_URL URL del servidor Spring Cloud Config URL Cualquier URL válida http://localhost:8888
TASK Tarea a ejecutar enum downloadJar, run downloadJar
DB_HOST Nombre de host de la base de datos string db
DB_PORT Puerto para la conexión a la base de datos integer Cualquier puerto válido 5432
DB_SID SID de la base de datos string etendo
DEBUG_PORT Puerto de depuración remota integer Cualquier puerto válido 5021
ENABLE_OPEN_TELEMETRY Habilita la instrumentación de OpenTelemetry boolean true, false false
OTEL_SERVICE_NAME Nombre del servicio para OpenTelemetry string Cualquier cadena das
OTEL_EXPORTER_OTLP_ENDPOINT URL base del endpoint OTLP string Cualquier URL http://jaeger:4318 Añade automáticamente /v1/traces\|metrics\|logs} en función del tipo de señal
OTEL_EXPORTER_OTLP_PROTOCOL Protocolo de transporte para OTLP enum grpc, http/protobuf, http/json http/protobuf
OTEL_METRICS_EXPORTER Exportador de métricas enum otlp, prometheus, console, logging, none none
OTEL_LOGS_EXPORTER Exportador de logs enum otlp, console, logging, none none
OTEL_TRACES_EXPORTER Exportador de trazas enum otlp, zipkin, console, logging, none otlp
OTEL_EXPORTER_OTLP_TIMEOUT Tiempo de espera (ms) para la exportación de datos OTLP (trazas, métricas, logs) integer Cualquier número positivo 10000
SPRING_PROFILES_ACTIVE Perfiles activos de Spring string Lista separada por comas null Ejemplo: prod,dev
SPRING_CLOUD_CONFIG_SERVER_NATIVE_SEARCHLOCATIONS Rutas de búsqueda nativas para el servidor Spring Config string Rutas de archivo separadas por comas null Ejemplo: file:///config,classpath:/defaults
DISABLE_DEBUG Deshabilitar el agente de depuración de la JVM boolean true, false false Si true, añade -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:${DEBUG_PORT}. dt_socket: el mecanismo de transporte (es decir, un socket TCP) utilizado para la conexión de depuración. server=y indica a la JVM que actúe como servidor de depuración (esperando a que un depurador se conecte). suspend=n significa “no pausar al inicio”: la aplicación se ejecutará inmediatamente y podrá adjuntar el depurador en cualquier momento. (Si configura suspend=y, la JVM se pausará en la primera línea hasta que se adjunte un depurador).
JAVA_OPTS Opciones adicionales de la JVM string Cualquier opción válida de la JVM null Ejemplo: -Dfile.encoding=UTF-8
GRADLE_FLAGS Flags del comando de Gradle string Cualquier flag válido de Gradle -no-daemon --info --refresh-dependencies
DEBUG_MODE Habilitar el modo de depuración para la aplicación boolean true, false false

Dynamic Gradle v1.1.0

Pila

  • Imagen base: amazoncorretto:17.0.14-alpine3.21 (enlace)
  • Versión de JDK: 17.0.14
  • Versión de Gradle: 8.12.1
  • Versión de OpenTelemetry: v2.18.1 (versión)
  • Gestor de paquetes: apk (Alpine Package Keeper)
  • Herramientas adicionales instaladas: wget, unzip

Puertos

Puerto Descripción
8888 Puerto del servicio de configuración
5020 Puerto de depuración remota del servicio de configuración
8094 Puerto del servicio de autenticación
5022 Puerto de depuración remota del servicio de autenticación
8096 Puerto del servicio Edge
5023 Puerto de depuración remota del servicio Edge
8099 Puerto del servicio de procesamiento asíncrono
5024 Puerto de depuración remota del servicio de procesamiento asíncrono
8101 Puerto del servicio Obconnsrv
5025 Puerto de depuración remota del servicio Obconnsrv
8102 Puerto del servicio Worker
5026 Puerto de depuración remota del servicio Worker

Variables de entorno

Nombre Descripción Tipo Valores permitidos Valor por defecto Notas
DEPENDENCIES Coordenadas Maven GAV para dependencias dinámicas string Lista separada por comas null
REPO_URL URL del repositorio Maven URL Cualquier URL válida https://repo.maven.apache.org/maven2/
REPO_USER Nombre de usuario para el repositorio Maven string null
REPO_PASSWORD Contraseña para el repositorio Maven string null
CONFIG_SERVER_URL URL del servidor Spring Cloud Config URL Cualquier URL válida http://localhost:8888
TASK Tarea a ejecutar enum downloadJar, run run
DEBUG_PORT Puerto de depuración remota integer Cualquier puerto válido 5005
ENABLE_OPEN_TELEMETRY Habilita la instrumentación de OpenTelemetry boolean true, false false
OTEL_SERVICE_NAME Nombre del servicio para OpenTelemetry string Cualquier cadena dynamic-gradle
OTEL_EXPORTER_OTLP_ENDPOINT URL base del endpoint OTLP string Cualquier URL http://jaeger:4318 Añade automáticamente /v1/traces\|metrics\|logs} en función del tipo de señal
OTEL_EXPORTER_OTLP_PROTOCOL Protocolo de transporte para OTLP enum grpc, http/protobuf, http/json http/protobuf
OTEL_METRICS_EXPORTER Exportador de métricas enum otlp, prometheus, console, logging, none none
OTEL_LOGS_EXPORTER Exportador de logs enum otlp, console, logging, none none
OTEL_TRACES_EXPORTER Exportador de trazas enum otlp, zipkin, console, logging, none otlp
OTEL_EXPORTER_OTLP_TIMEOUT Tiempo de espera (ms) para la exportación de datos OTLP (trazas, métricas, logs) integer Cualquier número positivo 10000
SPRING_PROFILES_ACTIVE Perfiles Spring activos string Lista separada por comas null Ejemplo: prod,dev
SPRING_CLOUD_CONFIG_SERVER_NATIVE_SEARCHLOCATIONS Rutas de búsqueda nativas para el servidor Spring Config string Rutas de archivo separadas por comas null Ejemplo: file:///config,classpath:/defaults
DISABLE_DEBUG Deshabilitar el agente de depuración de la JVM boolean true, false false Si es true, añade -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:${DEBUG_PORT}. dt_socket: el mecanismo de transporte (es decir, un socket TCP) usado para la conexión de depuración. server=y indica a la JVM que actúe como servidor de depuración (esperando a que se conecte un depurador). suspend=n significa “no pausar al inicio”: la aplicación se ejecutará inmediatamente y puede adjuntar el depurador en cualquier momento. (Si configura suspend=y, la JVM se pausará en la primera línea hasta que se adjunte un depurador).
JAVA_OPTS Opciones adicionales de la JVM string Cualquier opción válida de la JVM null Ejemplo: -Dfile.encoding=UTF-8
GRADLE_FLAGS Flags del comando de Gradle string Cualquier flag válido de Gradle -no-daemon --info --refresh-dependencies
DEBUG_MODE Habilitar el modo de depuración para la aplicación boolean true, false false

This work is licensed under CC BY-SA 2.5 ES by Futit Services S.L..