System Architecture

Helix TeamHub software is composed of popular and powerful open source technologies, which are used in todays most advanced cloud solutions. The architecture is layered- each component has its own role in serving user requests.

Architecture

The entire stack is provided as a stand-alone native operating system package, also known as a Combo setup. Alternatively, Helix TeamHub stack can be split into a number of servers, known as a Cluster setup, and further expanded to a HA cluster. Regardless of the deployment type, the logical layers are as follows:

Proxy

Nginx proxy sits at front and handles all user requests. Based on the operation type (static page, version control system, or Web application) requests are forwarded to the appropriate component.

HTTP server

Helix TeamHub has three HTTP servers: Apache, Unicorn and Puma. Apache is responsible for handling version control operations, Unicorn serves Helix TeamHub Web applications, and Puma handles websocket connections.

Application

Helix TeamHub consists of two major components. On the front-end is Ember powered application responsible for providing UI to Helix TeamHub APIs. Back-end is powered by Ruby on Rails, which exposes RESTful APIs and Helix TeamHub Admin UI. It's important to note, Helix TeamHub adheres to an API-first strategy. Any functionality seen in the Helix TeamHub UI can be achieved programatically with Helix TeamHub APIs.

Packages

Helix TeamHub relies on various open source packages that are bundled with Helix TeamHub On-Premises. Packages are precompiled for Helix TeamHub supported operating systems, and are completely isolated from the rest of the system. The below is the list of some of the packages bundled with Helix TeamHub:

Database

At the heart of the stack are the two NoSQL databases. MongoDB is used for storing application data. Redis keeps intermediate data, background jobs and events for example.

File system hierarchy

Helix TeamHub closely follows Linux File System Hierarchy Standard for its data and bundled packages. Here is the layout of the file system hierarchy Helix TeamHub uses:

For a detailed list of system wide configuration files that Helix TeamHub touches, see System overrides section.

Updated on: 5 October 2017