FlexDeploy Architecture

Overview

FlexDeploy is a Java web application which requires an Application server (Tomcat) and an Oracle or PostgreSQL database. FlexDeploy is accessed by Browser and can be integrated with various Directory Servers and SSO providers for Authentication and Authorization, an internal local security realm is also provided by FlexDeploy.

FlexDeploy uses a built-in File-System-based Artifact Repository to store build artifacts like jar, ear, war, zip etc. Build artifacts are versioned and used during deployment.

FlexDeploy connects to target servers using the SSH protocol and only requires a Temporary Working Directory and Java for execution on target servers. SSH connectivity to Windows servers is established using native SSH server found in Windows 2019 and higher or Cygwin for older endpoints.

FlexDeploy can be installed On-Premise or in the Cloud (AWS, Azure, Oracle, etc) and can be used to perform Build / Deploy / Test / Utility executions on targets which are On-Premise or in the Cloud as only SSH connectivity is required. You can also use the FlexDeploy Docker container from docker hub for installation.

FlexDeploy has a plugin architecture which allows for integration with various technologies. FlexDeploy comes with many out-of-the-box plugins and customers can to developer their own plugins using the Plugin SDK.

Database Tier

Application Tier

Target Endpoints

High Availability Considerations

Here are some guidelines on Active Passive configuration for FlexDeploy, as running more than one server process for FlexDeploy is not yet supported. You can choose to setup Cluster for Application or Database or Both.

  • Install FlexDeploy application on two separate Physical Server or Virtual Machines.

    • Tomcat

      • Install two separate Tomcat as per Installation instructions.

      • Both installation will have configuration for JDBC connection to RAC database.

  • Setup Database cluster for FlexDeploy. This would be RAC cluster for Oracle database. Follow guidelines setup by database vendor for clustering.

  • Make sure to use JDBC connect string for database cluster nodes when defining Data Source definitions.

  • Use shared file systems for the Artifact Repository directory and the plugins subdirectory of the server Working directory, so that active node and passive node will have access to the files.

    • The Artifact Repository location is specified in the flexagon.fd.repository.root Java system property of the server.

    • The Working Directory location is specified in  the flexagon.fd.install.root Java system property of the server. There is no need to place the entire working directory on a shared file system. The requirement is for the plugins subdirectory only.

  • Configure Load Balancer to route all FlexDeploy users to Active Application Server. You can automate the process of fail over to Passive node if necessary.

  • Make sure that only one of the Application Server process is running. This is absolutely necessary even when Load Balancer is routing traffic to only one of the server.

    • This can be achieved by leaving out some configuration details on the Passive node. For example, you can omit Data Source configuration on Passive node, so that it does not start processing request if it is started by mistake.

The following macros are not currently supported in the footer:
  • style