Renderizar

Obtenga información sobre cómo publicar un microservicio basado en la plataforma Devprime en el host Render.com mediante el servicio web, una base de datos PostgreSQL, docker y Github.

Devprime usando Render

Introducción

La plataforma Devprime acelera la productividad de los desarrolladores de software al ofrecer un diseño completo de arquitectura de software, componentes con comportamientos inteligentes, aceleradores para la implementación de código y actualizaciones con nuevas funciones.

En este artículo, cubriremos el uso del servicio Host Render, una plataforma de alojamiento de aplicaciones que ofrece funciones como servicios web, sitios estáticos, trabajadores en segundo plano, trabajos cron, docker, PostgreSQL y Redis.

Durante este artículo, usaremos un microservicio con una regla de negocio relacionada con el orden y la base de datos PostgreSQL. Te guiaremos a través de los pasos para crear el microservicio, los servicios de alojamiento en Render y, a continuación, las configuraciones necesarias para que esté disponible con el plan gratuito.

Lista de verificación y preparación del entorno inicial:

Creación de un microservicio para usar en el ejemplo

El primer paso es crear un nuevo microservicio que podamos usar como plantilla para publicar en el host. El nombre de este microservicio se establecerá en “ms-render”, como se muestra en el siguiente comando.

  • Creación del primer microservicio
    dp new ms-render --stream rabbitmq --state postgresql
  • Agregar un ejemplo de regla de negocio “Orden”
    dp marketplace order
  • Inicialización y aceleración de implementaciones de microservicios
    dp init

Después de la creación del nuevo microservicio, vaya a la carpeta del proyecto “ms-render”, donde puede ver todas las implementaciones de Visual Studio Code, como se muestra en el artículo relacionado con creación del primer microservicio.

Devprime usando Render

En este momento no usaremos RabbitMQ y lo desactivaremos en la Configuración del adaptador de flujo a través del archivo de configuración en “src\App\appsettings.json”.

  1. Escriba la nueva publicación ms-order y ábrala desde Visual Studio Code
    code src\App\appsettings.json

  2. Localiza la tecla “DevPrime_Stream” y en la opción “Habilitar” pon “false”.

  3. Cambie el controlador “OrderCreated” comentando la línea “Dp.Stream.Send(destination, eventName, eventData);” para que no desencadene el evento que enviará el flujo.

Abrir el controlador desde Visual Studio Code
src\Core\Application\EventHandlers\Order\OrderCreatedEventHandler.cs

IMPORTANTE:
En este ejemplo, estamos utilizando una base de datos relacional estándar y, por lo tanto, es necesario aplicar la estructura de tablas a la base de datos utilizando scripts SQL o utilizando el comando dp state apply.

Creación de la base de datos PostgreSQL en Render.com

En este ejemplo, usaremos una base de datos PostgreSQL en una instancia gratuita. Inicie el proceso de creación y configure los siguientes parámetros: Nombre de PostgreSQL/Base de datos/Usuario/Región/Versión. Al final del procedimiento, tendrá acceso a la configuración como se ilustra en la imagen a continuación, que es un paso crucial para obtener las credenciales necesarias.

Devprime usando Render

Los siguientes valores son solo ejemplos para ejemplificar cómo obtener configuraciones de base de datos PostgreSQL en Render.com y luego transportarlas al microservicio de acuerdo con configuration.

Artículo Descripción Valor
Nombre de host URL interna DPG-ckv4bi3amefc73cu3e5g-a
Puerto Puerto TCP 5432
Base de datos Nombre de la base de datos msrender
Nombre de usuario Usuario de acceso msrender
Contraseña Contraseña 0KxiNwzyNyIviwVizfjrROkmMjnd41yp
URL de la base de datos interna Cadena de conexión interna postgres://msrender:0KxiNwzyNyIviwVizfjrROkmMjnd41yp@dpg-ckv4bi3amefc73cu3e5g-a/msrender
URL de base de datos externa Cadena de conexión externa postgres://msrender:0KxiNwzyNyIviwVizfjrROkmMjnd41yp@dpg-ckv4bi3amefc73cu3e5g-a.oregon-postgres.render.com/msrender
Conexión Composición de la conexión Devprime Host=dpg-ckv4bi3amefc73cu3e5g-a.oregon-postgres.render.com; Nombre de usuario=msrender; Contraseña=0KxiNwzyNyIviwVizfjrROkmMjnd41yp; Base de datos=msrender

En el siguiente ejemplo, demostramos cómo aplicar la configuración de PostgreSQL al microservicio a través del archivo de configuración “src\App\appsettings.json”. Para acceder al entorno local, es necesario utilizar la url externa de la base de datos.

Ábrelo desde Visual Studio Code y pon tu conexión en JSON.
code src\App\appsettings.json

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
    "DevPrime_State": [

    {
      "enable": "true",
      "alias": "State1",
      "dbtype": "postgresql",
      "type" : "db",
      "connection": "Host=dpg-ckv4bi3amefc73cu3e5g-a.oregon-postgres.render.com;
      Username=msrender;
      Password=0KxiNwzyNyIviwVizfjrROkmMjnd41yp;Database=msrender",
      "timeout": "5",
      "retry": "2",
      "durationofbreak": "45"
    }
  ],

Aplicación de la estructura de datos PostgreSQL en Render.com

En el paso anterior obtuviste las credenciales y lo configuraste en “src\App\appsettings.json” y en ese punto aplicaremos la estructura de datos para que podamos probar el microservicio.

Ejecute el siguiente comando
dp state apply state1

Al final del proceso, la estructura de la tabla se creará en la base de datos PostgreSQL en Render

Devprime usando Render

Ejecute el microservicio localmente y realice un Post/Get

En el paso anterior configuramos la base de datos apuntando al servicio PostgreSQL en Render, por lo que ya podemos realizar una prueba escribiendo y leyendo información.

Para iniciar el microservicio, ejecute uno de los siguientes scripts:
.\run.ps1 (Windows) ou ./run.sh (Linux, macOS)

Acceda a la dirección URL local del microservicio en https://localhost:5001 o http://localhost:5000

Devprime ejecutando microservicios

Exportación de la configuración en el archivo yaml

La configuración de la aplicación se pasa a Render en formato clave/valor. En este punto, usaremos el comando “dp export kubernetes” para exportar plantillas de archivos YAML a Kubernetes. Esto nos permitirá copiar los siguientes parámetros: devprime_app, devprime_observability, devprime_web, devprime_stream1, devprime_state1, devprime_Custom y devPrime_Services.

Ejecute el comando
dp export kubernetes

La exportación creará dos archivos:

  • deployment.yml
  • service.yml

La siguiente imagen muestra el ejemplo del archivo “deployment.yml”.

Devprime dp export kubernetes

Para ver las variables, abra el archivo “Devpoyment” en Visual Studio Code.
code .devprime\kubernetes\deployment.yml

Subir el código a un repositorio privado en Github

Se recomienda usar un repositorio privado de Github al vincular Render al compilar servicios web. Devprime ofrece un comando que elimina las credenciales del archivo de configuración local.

Para eliminar las credenciales del proyecto, ejecute el siguiente comando:

dp clean

Creación de un servicio web en Render

Ahora es el momento de crear un nuevo servicio web en Render con la opción de vincular al código fuente disponible a través de un repositorio privado en GitHub. A medida que avances, tendrás la opción de integrarte con tu cuenta de GitHub y elegir un repositorio específico que se usará para publicar en Render. El Render utiliza el dockerfile presente en la carpeta raíz del proyecto para construir la imagen de nuestro microservicio.

Devprime Crear un nuevo servicio web Render.com

Después de avanzar, el siguiente paso es establecer algunos parámetros iniciales para crear el nuevo servicio web en Render.

Artículo Valor
Nombre Nombre del microservicio
Región Oregón
Sucursal Principal
Directorio raíz En blanco
Tiempo de ejecución docker
Tipo de instancia Gratis

Al final del formulario, ubique la opción “Avanzado” y elija “Agregar variable de entorno” y agregue las variables que tratamos en el paso anterior. devprime_app, devprime_observability, devprime_web, devprime_stream1, devprime_state1, devprime_custom y devprime_services.

Para ver las variables, abra el archivo “Devpoyment” en Visual Studio Code.
code .devprime\kubernetes\deployment.yml

Devprime Crear un nuevo servicio web Render.com

Al final del proceso de compilación de la imagen de docker y con las variables de entorno correctas, el servicio estará activo y ya tendrá una dirección URL pública disponible para probar el servicio.

Devprime Crear un nuevo servicio web Render.com

Reflexiones finales

A continuación, se muestra un breve ejemplo de publicación de un microservicio en la plataforma Devprime alojada en Render. Utilícelo como referencia para publicar otros servicios. Puede agregar funciones adicionales como RabbitMQ, Redis y, especialmente, habilitar la seguridad mediante un proveedor de identidad, como Keycloak, Auth0 y otros, para proteger el acceso a las API.

Última modificación April 16, 2024 (2b35fcc8)