Skip to content

Middle Tier overview

Overview

The middle tier used by IFS Cloud, is deployed in a Kubernetes cluster as docker containers. The architecture is multi single tenant which allows one or many IFS Cloud installations to be deployed in the same Kubernetes cluster using a shared ingress proxy that routes the traffic to the correct namespace. In some cases you might have one Kubernetes cluster per IFS Cloud installation.

Docker Containers

A Container is a small encapsulated kernel similar to a Virtual machine, but it shares its resources with the host machine. A container can have a fully working operating system using less than 5Mb of memory and have a small application running inside it. This application will typically interact externally over http. The container can have other external interaction such as DB connections as well. A container can have both Linux and Windows kernels, but not running on the same host machine. All IFS cloud containers are therefore consistently based on Linux only, which in turn implies that the Kubernetes cluster is always deployed on Linux machines. The containerization can be made using different containerization SW but IFS Cloud containers are based on Docker.

Kubernetes

Kubernetes will be installed and configured by installer tools and processes provided by IFS as a part of the required infrastructure to deploy IFS Cloud. The Kubernetes cluster will reside in the middle tier server which is a Linux server. No Linux knowledge is required as you never directly operate in this server. All operations such as install/configuration/maintenance/monitoring etc. will be done using a collection of script that comes with the Remote solution. The remote solution consist of the middle tier server and a management server, the management server is a Windows server from where the middle tier server is managed.

Instances

The architecture allows one or many IFS Cloud installations to be deployed in the same Kubernetes cluster using a shared ingress proxy that routes the traffic to the correct namespace.

Scaling and High Availability

To scale up a k8s cluster more node machines can be added to the cluster and more containers (# of replicas) can be started to distribute the load. All namespaces span over all nodes. High availability is built in by design in k8s. If k8s is instructed to start >2 replicas of each containers the container can start on different nodes. This allows HA on only parts of IFS Cloud.  The container can also be sized to have different amount of CPU/Memory resources limits/quotas - this is done through the installer.

ContainerDescription
ammApplication Monitoring Metrics - This container fetches and expose system metrics that are not exported from individual containers. Many of the metrics are same as in Solution Manager - Monitoring Console.
application-svcThis is a collection of small applications like - apidoc - demand server proxy - gisint - svcsch
busmodService to query data from analysis service tabular models to be used in the business modeler visualizations.
clientCloud Web client - render Cloud Web client with page and lobby layouts from metadata
client-servicesCloud Web client services - serves up metadata for Cloud Web and lobby pages.
client-notification-servicesCloud Web client notification services - serves up notifications for Cloud Web clients.
connectIFS connect - messaged broker integrates to external system using files/ftp/mail/soap/json
docThe end user documentation
iamIdentity Access Management - Authenticates users using a local dictionary or an external dictionary e.g. Azure AD.
ifs-am-schedulerThis service is used to schedule the reload intervals of the parquet files
ifsapp-am-datapumpThis is a service that extracts data from Information Sources in Oracle DB and creates a parquet file loaded in the Data Lake
ifsapp-docman-esignElectronic Signatures / Esign for IFS Document Management (Docman). NOT supported in Remote Deployment!
native-serverData synchronization for mobile apps.
native-executorHandles offline transactions for the mobile apps.
native-notificationHandles Azure Push Notifications for mobile apps.
odataIFS OData Provider. This is the OData Endpoint for the server logic and additionally provides the projection API's for native mobile clients.
proxyIs the entry point of for all containers - it hosts the Landing Pages and make sure all request to the system has been properly authenticated otherwise to forwards the request to the IAM container. It will only accept calls from the k8s ingress controller and with host headers set to "system url" or "secondary system url".
remIFS Remote Assistant Container. Used for the Remote Assistant Functionality.
signing-serviceIFS Signing Service for Digital Signatures.
reportingHandles generation of the output of Operational Report Layouts.
reporting-brIFS BR execution server for IFS Business Reporter Layouts.
reporting-crUsed for providing Quick Reports functionality for Crystal Report Layouts.
reporting-renUsed for generating the final output of Report Designer Layouts.
reporting-webdesignerUsed to design the Report Studio - Designer Layouts.
reporting-webdesignerrenUsed to design & preview the layouts in Report Studio - Designer.
reporting-webtransformerUsed for generating JSON data needed to generate the report with a Report Studio - Designer Layouts.
reporting-webruntimerenUsed for generating the final output of Report Studio - Designer Layouts at runtime.
rmpanelUsed for IFS CRM/SRM Panel functionality.
rmsyncUsed for IFS CRM/SRM Outlook Calendar Sync functionality.
scimIFS Cross Identity Management Container. Used for user federation with external user directories
ifs-db-initThis container deploys configuration to the DB, and runs only during installation.
ifsmaintenix-appserverMaintenix Application Container - IFS Aviation Maintenance management application component
ifsmaintenix-reportserverMaintenix Report Container - Component to generate Maintenix reports
ifs-virus-scannerIFS Virus Scanner Container - This provides the endpoint for rest of the containers to scan files
graphGraphService Container - Provides functionality to communicate with graph datasources and other graph related operations
chatProvides AI powered chat capabilities to ifs.ai copilot