====== Fábrica - Servicios Web - Integraciones - AdaDeploymentService ======
Este servicio permite realizar el proceso de despliegue de aplicaciones Powerbuilder en la tecnología Appeon el cual define la siguientes fases.
* **Fase 1 (PHASE_1_COPY_CONFIG_FROM_REMOTE_TO_LOCAL_SERVER)** - Copia de configuración Remota: Extrae los archivos de configuración del despliegue del servidor appeon al un directorio local.
* **Fase 2 (PHASE_2_FULL_BUILD_PB)** - Full Build PB: Realiza la compilación local del código powerbuilder del proyecto.
* **Fase 3 (PHASE_3_DEPLOY_APPEON_DEVELOPER)** - Despliegue Appeon: Realiza la compilación del código powerbuilder y genera el despliegue appeon y lo sube al servidor.
* **Fase 4 (PHASE_4_COPY_CONFIG_FROM_LOCAL_TO_REMOTE_SERVER)** - Copia de configuración Local: Copia la configuración extraida en la fase 1 al servidor appeon.
* **Fase 5 (PHASE_5_RESTART_WEB_SERVER)** - Reiniciar servidor: Reinicia el servidor appeon para que tome los cambios.
Cada fase puede ser lanzada por separado según necesidad. Sin embargo existe una fase (**ALL_PHASES**) que integra todas las fases. Es decir ejecuta todo el proceso de despliegue.
===== Descripción del Servicio =====
^Nombre^Descripción^Tipo Servicio^Tecnología^Lenguaje^Tipo Desarrollo^Versión Desarrollo^Archivo de Configuración^
|AdaDeploymentService|Realiza despliegues Appeon/Powerbuilder.|Rest|SpringBoot 2.6.4|Java 11.0.315|Nuevo|11.6.0.1|application.properties|
^Tipo Empaquetado^Gestor de Dependencias^Servidor de Despliegue^IDE Proyecto^Tipo Repositorio^Url Desarrollo^Url Calidad^Url Producción^
|war|Maven 3.8.1|WildFly 20|SpringTools 4.6|Subversión|[[http://adacsc.co:1443/svn/repository/ADA/SICOFERP/fuentes/branches/development/core/Microservicios/AdaDeploymentService|SVN branches]]|[[http://adacsc.co:1443/svn/repository/ADA/SICOFERP/fuentes/trunk/development/core/Microservicios/AdaDeploymentService|SVN trunk]]|[[|SVN tags]]|
^Dependencias^^^^^^^^
^groupId^artifactId^^version^scope^optional^Descripción^^
|org.springframework.boot|spring-boot-starter-data-rest||N/A|N/A|N/A|API de mapeo de rutas||
|org.springframework.boot|spring-boot-starter-web||N/A|N/A|N/A|Core Servicios Web||
|org.springframework.boot|spring-boot-devtools||N/A|runtime|true|Recarga de aplicaciones||
|org.projectlombok|lombok||N/A|N/A|true|API de anotaciones para reducción de código||
|org.springframework.cloud|spring-cloud-sleuth-zipkin||N/A|N/A|true|API de gestión de logs centralizados||
|org.springframework.boot|spring-boot-starter-test||N/A|test|N/A|Core Springboot||
|org.postgresql|webjars-locator-jboss-vfs||0.1.0|N/A|N/A|Plugins para despliegue en Wildfly||
|org.springframework.boot|spring-boot-starter-tomcat||N/A|provided|N/A|Servidor Embebido Tomcat||
|org.apache.maven.plugins|maven-compiler-plugin||3.8.1|N/A|N/A|Gestor de dependencias||
|org.springdoc|springdoc-openapi-ui||1.5.12|N/A|N/A|Plugins para generar documentación Swagger||
|org.springframework.boot|spring-boot-starter||N/A|N/A|N/A|Core Springboot||
|org.freemarker|freemarker||N/A|N/A|N/A|Plantillas||
|com.jcraft|jsch||0.1.54|N/A|N/A|Conexiones ssh||
|org.springframework.cloud|spring-cloud-starter-openfeign||N/A|N/A|N/A|Cliente Rest||
^Documentación Operaciones^^^^^^^^
^Tipo^Documentación^^^^^^Visor^
|Swagger|[[http://localhost:8080/api-docs|Ver Documento Json]]||||||https://editor.swagger.io/|
|Javadoc|[[http://adacsc.co:1443/svn/repository/ADA/SICOFERP/fuentes/branches/development/core/Microservicios/AdaDeploymentService/doc|Directorio Javadoc]]||||||Navegador Web|
^Ambientes de Despliegue^^^^^^^^
^Tipo^Url^^Observaciones^^^^^
|Desarrollo:|http://localhost:8080||Ambiente de desarrollo|||||
|Calidad:|http://localhost:8080||Ambiente de validación|||||
|Producción:| ||Ambiente de producción|||||
===== Información Adicional =====
===== Despliegue =====
==== Requisitos Técnicos Servidor ====
* Servidor Wildlfy 20 o superior
* Java 11 o OpenJDK 11
* S.O. Linux
* Ram 4GB o superior
* Disco Duro 64 GB
* Publicar la URL y Puerto del WildFly
=== Proceso ===
Siga los siguientes pasos para utilizar la funcionalidad
* Antes de iniciar debe asegurarse que el servidor appeon contiene un despliegue previo para que se pueda extraer la configuración. Ya que appeon genera unas claves de control.
* La solución se debe ejecutar en el mismo entorno donde está instalado el appeon developer y powerbuilder.
* El puerto por defecto de la solución es 8080. Se puede modificar en el application.properties y volver a [[ada:howto:sicoferp:factory:integrations:deployspringboot|Generar el jar]] .
* [[ada:howto:sicoferp:factory:integrations:deployspringboot|Desplegar como jar]]
* Validar Ejemplo de Consumo - Index: http://localhost:8080/
* Validar Documentación Swagger: http://localhost:8080/api-docs
* Realizar despliegue de prueba.
===== Ejemplo de generación de despliegue completo =====
^Http^Url^Request^Response^
|POST|localhost:8080/deployment/generate|Body,raw,json|json|
==== Request ====
{
"profileDeploymentName": "DesplieguePruebaPresupuesto",
"deploymentPhases": [
"ALL_PHASES"
],
"sshHost": "10.1.140.1",
"sshPort": 22,
"sshUser": "jboss09",
"sshPassword": "*********",
"powerbuilderExecutablePath": "\"D:\\Program Files (x86)\\Sybase\\PowerBuilder 12.5\\PB125.EXE\"",
"powerbuilderWorkspaceProjectPath": "\"D:\\ADA\\SICOF\\Presupuesto\\Fuentes\\Branches\\branches 12.5.2.5.0\\presupuesto.pbw\"",
"powerbuilderTargetProjectPath": "\"D:\\ADA\\SICOF\\Presupuesto\\Fuentes\\Branches\\branches 12.5.2.5.0\\presupuesto.pbt\"",
"appeonRepositoryConfigDirectory": "/opt/jboss09/appeon/repository/standalone/config/",
"appeonDeveloperExecutablePath": "\"C:\\Program Files (x86)\\Appeon\\Developer2016\\EonADeploy60.exe\"",
"appeonProfileDeployment": [
{
"appeonProfileDeploymentName": "sicoferp_presupuesto_ada_test",
"appeonProfileDeploymentDatasource": "db104_presupuesto"
}
],
"emailToNotificationDeployment": "carlos.torres@ada.co",
"emailCcNotificationDeployment": "abdimar.estrada@ada.co",
"notes": "Despliegue de Pruebas ADA - Presupuesto",
"stopWebServerCommand": "sudo /etc/init.d/jboss09 stop",
"startWebServerCommand": "sudo /etc/init.d/jboss09 start"
}
^Columna^Descripcion^
|profileDeploymentName|Nombre de la tarea de despliegue.|
|temporaryDeploymentProcessingDirectoryPath|Directorio temporal que se utilizará para la generación de archivos del depsliegue. Esta propiedad no es obligatoria y si no se envía se utilizará un directorio temporal.|
|deploymentPhases|Array de cadenas que contienen las fases del depsliegue las cuales son: PHASE_1_COPY_CONFIG_FROM_REMOTE_TO_LOCAL_SERVER, PHASE_2_FULL_BUILD_PB, PHASE_3_DEPLOY_APPEON_DEVELOPER, PHASE_4_COPY_CONFIG_FROM_LOCAL_TO_REMOTE_SERVER, PHASE_5_RESTART_WEB_SERVER. Si desea ejecutar todas las fases sólo debe enviar la fase ALL_PHASES|
|deploymentExcludePhases|Array de fases que pueden ser excluidas del despliegue. Es utilizada cuando ejecutamos la fase ALL_PHASES|
|sshHost|Dirección Ip de la conexión ssh|
|sshPort|Puerto de la conexión ssh|
|sshUser|Usuario de la conexión ssh. Debe tener permisos de lectura/escritura.|
|sshPassword|Contraseña del usuario de la conexión ssh|
|powerbuilderExecutablePath|Ruta del ejecutable powerbuilder. Si el path tiene espacios deben encapsularse en cadenas "" y separadores \\|
|powerbuilderWorkspaceProjectPath|Ruta del workspace del proyecto powerbuilder. Si el path tiene espacios debe encapsularse en cadenas "" y separadores \\|
|powerbuilderTargetProjectPath|Ruta del target(proyecto) powerbuilder. Si el path tiene espacios debe encapsularse en cadenas "" y separadores \\|
|powerbuilderTargetProjectPath|Ruta del target(proyecto) powerbuilder. Si el path tiene espacios debe encapsularse en cadenas "" y separadores \\|
|appeonRepositoryConfigDirectory|Ruta del directorio appeon donde se guarda la configuración. Si el path tiene espacios debe encapsularse en cadenas "" y separadores \\|
|appeonDeveloperExecutablePath|Ruta del ejecutable appeon. Si el path tiene espacios debe encapsularse en cadenas "" y separadores \\|
|appeonProfileDeployment|Array que contiene los perfiles de despliegue que se van a generar. Solo puede enviar despliegues de un mismo proyecto. Cada depsliegue requiere nombre del despliegue y datasource.|
|emailToNotificationDeployment|Correo principal de notificación de despliegue.|
|emailCcNotificationDeployment|Correo de copia de notificación de despliegue.|
|emailBccNotificationDeployment|Correo de copia oculta de notificación de despliegue.|
|notes|Nota asociada al proceso de despliegue.|
|stopWebServerCommand|Comando de parada del servidor de despliegue.|
|startWebServerCommand|Comando de inicio del servidor de despliegue.|
==== Response ====
{
"code": 0,
"message": "string",
"content": {}
}
^Columna^Descripcion^
|code|Código de respuesta del proceso|
|message|Mensaje de respuesta del proceso|
|content|Array de mensajes complementarios del proceso|
==== Códigos de Respuesta ====
^Código^Mensaje^Acción^
|0|Error en la validación.|Debe consultar el array de mensajes content para más información.|
|-1|Error en las ejecución de las fases.|Debe consultar el array de mensajes content para más información.|
|1|Despliegue realizado correctamente.|Puede consultar el array de mensajes content para más información.|
[[ada:howto:sicoferp:factory:integrations|←Volver atrás]]