Middle Tier 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 Kubenetes 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 Clous installation.
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.
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.
|Application 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.
|This is a collection of small applications like - apidoc - demand server proxy - gisint - svcsch
|Service to query data from analysis service tabular models to be used in the business modeler visualizations.
|Aurena client - render Aurena client with page and lobby layouts from metadata
|Aurena client services - serves up metadata for Aurena and lobby pages.
|Aurena client notification services - serves up notifications for Aurena clients.
|IFS connect - messaged broker integrates to external system using files/ftp/mail/soap/json
|The end user documentation
|Identity Access Management - Authenticates users using a local dictionary or an external dictionary e.g. Azure AD.
|Data synchronization for native mobile.
|Handles offline transactions for the native mobile.
|Handles Azure Push Notifications for native mobile.
|IFS OData Provider. This is the OData Endpoint for the server logic and additionally provides the projection API's for native mobile clients.
|Is 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".
|IFS Remote Assistant Container. Used for the Remote Assistant Functionality.
|IFS Signing Service for Digital Signaures.
|Handles generation of the output of Operational Report Layouts.
|IFS BR execution server for IFS Business Reporter Layouts.
|Used for providing Quick Reports functionality for Crystal Report Layouts.
|Used for generating the final output of Report Designer Layouts.
|Used for IFS CRM/SRM Panel and Outlook Calendar Sync functionality.
|IFS Cross Identity Management Container. Used for user federation with external user directories
|This container deploys configuration to the DB, and runs only during installation.
|Maintenix Application Container - IFS Aviation Maintenance management application component
|Maintenix Report Container - Component to generate Maintenix reports
|IFS Virus Scanner Container - This provides the endpoint for rest of the containers to scan files
|GraphService Container - Provides functionality to communicate with graph datasources and other graph related operations
Some containers are dependant on other containers in functional flow. Please refer the container dependency chart (MS Excel worksheet) for details.