Versions Compared

Key

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

Kiuwan on premises On-Premises (KoP) is based on a client-server architecture that includes these major server components:

  • Apache web server
  • Wildfly application server
  • MySQL database
  • Redis in-memory data store

Kiuwan on premises On-Premises can be installed on a single host or on multiple hosts (externalizing one, some or all of the provided infrastructure services).

You can also install Kiuwan on premises On-Premises under your own AWS cloud, replacing the provided infrastructure services with compatible AWS services.

Kiuwan On-Premises and its roles

Kiuwan on On-Premises defines three different roles for each Kiuwan service instance:

  • Kiuwan front: receives and answers HTTPS, HTTP or AJP requests (depending on your configuration) from the Apache web server (or directly from a client, depending on your configuration), both for the web application and REST API calls.
  • Kiuwan analyzer: processes analysis results asynchronously.
  • Kiuwan scheduler: processes background tasks such as notifications and Kiuwan Insights database updates.

The default installation will create a Kiuwan service instance of each role.

Supplied services

All needed services are supplied as Docker containers. The following table summarizes all the available services:

ServiceImage Docker service nameServicesDefault number of containersMaximum number of containersProvider
kiuwan/apacheloadbalancerloadbalancer11Kiuwan
kiuwan/wildflykiuwanwildfly-f[1-8]18 
wildfly-a[1-8]18
wildfly-s[1-2]12
kiuwan/updaterkiuwanupdaterkiuwan1 (temporal)1
mysql:5.7.27mysql11Docker Official Images
redis:5.0.5

redis_0000[n]

66
clustercreator1 (temporal)1

The following diagram shows the infrastructure that KoP installer will create by default:

Description
Kiuwan frontwildflykiuwan-f[n]A Kiuwan front instance
Kiuwan analyzerwildflykiuwan-a[n]A Kiuwan analyzer instance
Kiuwan schedulerwildflykiuwan-s[n]A Kiuwan scheduler instance
Kiuwan updaterupdaterkiuwanThe Kiuwan container that manages Kiuwan On-Premises installations and updates
ApacheapacheloadbalancerThe Apache web server instance that works as a front-end server and load balancer
MySQLmysqlkiuwanThe Kiuwan database
Redisredis_0000[n]A Redis in-memory data store node
Redis cluster creatorclustercreatorThe Redis container that manages the Redis cluster creation

The following diagram shows how Kiuwan On-Premises would be set out by default (that is, a single host default installation):


Image Added Image Removed


The main purpose of each piece is (service names are shown between parentheses):

  • Apache (loadbalancerapacheloadbalancer): an Apache instance that balances the traffic between Kiuwan frontals (kept in the default installation to allow easy frontal scaling).
  • Kiuwan front (wildflywildflykiuwan-f1): a Kiuwan frontalrecieves and processes HTTPS requests.
  • Kiuwan analyzer (wildflywildflykiuwan-a1): a Kiuwan analyzerprocesses analyses.
  • Kiuwan scheduler (wildflywildflykiuwan-s1): a Kiuwan schedulerexecutes background tasks.
  • MySQL (mysqlmysqlkiuwan): the main stores Kiuwan databasedata.
  • Redis cluster (redis_0000[n]): redis store nodes. Used used by Kiuwan as a data cache.
  • Redis cluster creator (clustercreator): a temporal redis container that configures each Redis node as a cluster.
  • Kiuwan updater (updaterupdaterkiuwan): a temporal Kiuwan instance that installs, updates and upgrades needed data or configuration.

Note that connection with Kiuwan Cloud is only needed in some situations (see Needed internet connections).

Clustering support

Depending on your needs, the Kiuwan on On-Premises architecture supports both clustered environments and single-host installations. You can:

  • Keep all services in an all-in-one host installation.
  • Under AWS, decide Decide where each service will be installed, one by one (both kiuwan Kiuwan services and infrastructure, as long as you use AWS elasticache as Redis cluster).
  • Externalize one, some or all of the provided non-Kiuwan services:
    • Apache load balancer
    • MySQL
    • Redis

All Kiuwan instance containers can be scaled up (to a limit) or down to the default configuration. This means that you can start more containers of each Kiuwan role depending on your load needs. 

To illustrate the flexibility that Kiuwan On-Premises installation tool provides, an alternative and possible configuration is depicted in the following image (Kiuwan Cloud and temporal services were ommitted in order to simplify the diagram):


Image Added

As the picture shows, you can distribute Kiuwan On-Premises services across different hosts and use external services to replace some of the ones provided.

Note

Note that although distributed architecture is feasible, we do not provide explicit documentation on how an installation of this kind has to be performed, as there are plenty of manual steps and usually the single-host approach is valid for most customers. In case your company needs more advanced architectural solutions for a Kiuwan On-Premises Distributed installation, please contact Kiuwan support.