Kiuwan 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 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 under your own AWS cloud, replacing the provided infrastructure services with compatible AWS services.
Kiuwan On-Premises and its roles
Kiuwan On-Premises defines three different roles for each 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 scheduler: processes background tasks such as notifications and Kiuwan Insights database updates.
The default installation will create a Kiuwan instance of each role.
Supplied services
All needed services re supplied as Docker containers. The following table summarizes all the available services:
The following diagram shows how Kiuwan On-Premises would be set out by default (that is, a single host default installation):
The main purpose of each piece is (service names are shown between parentheses):
Apache (apacheloadbalancer): an Apache instance that balances the traffic between Kiuwan frontals (kept in the default installation to allow easy frontal scaling).
Kiuwan front (wildflykiuwan-f1): a Kiuwan frontal.
Kiuwan analyzer (wildflykiuwan-a1): a Kiuwan analyzer.
Kiuwan scheduler (wildflykiuwan-s1): a Kiuwan scheduler.
MySQL (mysqlkiuwan): the main Kiuwan database.
Redis cluster (redis_0000[n]): Redis store nodes, used by Kiuwan as data cache.
Redis cluster creator (clustercreator): a temporal redis container that configures each Redis node as a cluster.
Kiuwan updater (updaterkiuwan): a temporal Kiuwan instance that installs, updates and upgrades needed data or configuration.
Depending on your needs, the Kiuwan On-Premises architecture supports both clustered environments and single-host installations. You can:
Keep all services in an all-in-one host installation.
Decide where each service will be installed, one by one (both Kiuwan services and infrastructure).
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):
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.