Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This article describes how the runtime can be deployed to a cloud environment. When this is done, several points require configuring.

Table of Contents

Out of

Reading the

box situation

configuration

Out of the box blueriq the runtime uses an embedded cloudconfig server to retrieve the values of property files.
This server reads all property files it finds in the assigned folder, and blueriq in order the runtime asks the server for the value of the property it wants.it needs.

If you wish to run the cloud config server on its own, that is also possible. In a cloud environment you want to be sure that all nodes run under the same configuration so that the all show the same behavior. Having a local configuration on each node is difficult to maintain as any change to the configuration should be made to the configuration of each node at the same time. Therefore it is better to lead each node read the configuration from one central position. This is what the spring cloudconfig server can do.
To accomplish this, some changes must be made:

  • In the bootstrap.properties you must place the url to reach the server (example:spring.cloud.config.uri=http://ipadress:portnumber)
  • Add the following annotation on the standalone config server:

 

Code Block
@Configuration
@EnableAutoConfiguration
@EnableConfigServer
public class Application {

public static void main(String[] args) {
         SpringApplication.run(ConfigServerApplication.class, args);
         }
}

 

Creating documents

To generate a document we use the runtime uses an IBEX renderer.
This renderer requires some two adjustments by the customer before being usable.

For starters(1) No physical paths can be used in a cloud environment. Therefore, the folder containing the xsl files (required to generate documents) must be in the WAR, since we cannot use the physical paths any more.
To do this you must unpack the war and add the folder to the src/main/resources folder of the application server used.
When doing so, the property blueriq.documents.base-folder must be given the value "classpath:/", using this value Blueriq will use the runtime uses the documents folders inside the WAR.

This (2) The IBEX renderer also uses windows fonts when creating a pdf-A file.
We cannot . These fonts also should not be read from the file system, as they might be missing on one of the cloud nodes. It is not possible for us to include these fonts due to copyright infringement so it's limitations. Therefor, it is required for customers to add them to the WAR themselves.
To do this you must unpack the war has to be unpacked and add the windows fonts should be added to the src/main/resources folder of the application server.

Usage of exports

When using the spring cloud config server embedded, all the exports can be placed in the exports folder in the aquima.home folder.
However if config server is running standalone, these exports must be explicitly named with the full path to each file in the application.properties file.
Resulting in a line like: blueriq.exports.files=D:\exports\example.zip, D:\exports\example2.zip, etc.
These exports must be on the same server as the runtime is running on.

Possible changes:

Git

The spring cloudconfig server reads its values from file system (possible on one central location). It is possible to stop using files on the filesystem, and read property files out of git. This has advantages also the properties are version managed using a standard approach.
To be able to do this, some these change have to be made:

bootstrap.properties - for using the file - system

Code Block
spring:

   profiles:
      active: native
   cloud:
      config:
         server:
            native:
                   searchLocations:

   profiles:
      active: native
   cloud:
      config:
         server:
            native:
                   searchLocations: file:D:/local-properties



bootstrap.properties - for using GIT - basic authentication

Code Block
spring:

    cloud:
       config:
           server:
               git:
                  uri:

    cloud:
       config:
           server:
               git:
                  uri: https://git.blueriq.com/config-repo.git

                  basedir: target/config
                  username: <git_username>
                  password: <git_password>
However, using git does result in not being able to use the development plugin the same way as it does without GIT.
This is because it can only read from git, but cannot write. So while it does show all the settings, you cannot change them and save them.
They will run during your session, but when it reloads (manually, or new session) all the original settings are being read from GIT again, and be back to original.

                  basedir: target/config
                  username: <git_username>
                  password: <git_password>



Please note that when using GIT the development plugin has limited functionality. As properties can only be read from GIT and not written, the development plugin can only read values and not write them. Any changes made with the development toolbar work during your session, but starting a new session or reloading the application will read the original values from GIT again. This is only an issue for development or test environments, as the development plugin is not present on production environments.


Changes in the future

We foresee these changes for the future, but can not indicate the version in which they will be released

Standalone instead of embedded

If you wish to run the cloud config server on it's own, that's also possible.
To accomplish this, some changes must be made:

In the bootstrap.properties you must place the url to reach the server
(example:spring.cloud.config.uri=http://ipadress:portnumber)

Add the following annotation on the standalone config server:

@Configuration
@EnableAutoConfiguration
@EnableConfigServer
public class Application {

public static void main(String[] args) {
         SpringApplication.run(ConfigServerApplication.class, args);
         }
}

Expected changes in the future

For the following changes we have no realease date, but they are expected to be made.

The development plugin cannot write in property files that are read out of GIT. This is something we want to keep.
will not be changing. However this results in the fact that the development plugin can only read properties, and this changes it its usage.
Either the development plugin, or the compatibilty compatibility with GIT based property storing , will be changed.

Currently static resources are not managed by the spring cloud config server (for example frontend sources and exports).
When we make the spring cloud config server manage those aswellWhen  spring cloudconfig server manages those as well, they can be versioned when using GIT.