Kiuwan on premises 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 deployed on a number of decentralized servers and accessed by users via HTTPS website.
Kiuwan and its roles
Kiuwan on Premises defines three different roles for each Kiuwan instance:
- Kiuwan front: receives and answers HTTPS requests, both for the web application and REST API calls.
- Kiuwan analyzer: processes analysis results asynchronously.
- Kiuwan scheduler: processes background tasks such as notifications or live database upgrades.
The default installation will create a Kiuwan instance of each role.
All needed services are supplied as Docker containers. The following table summarizes all the available services:
|Image||Provider||Default number of containers|
|mysql:5.7.27||Docker Official Images||1|
|redis:5.0.5||Docker Official Images||6 + 1 (temporal)|
The following diagram shows the infrastructure that KoP installer will create by default:
The main purpose of each container is:
- loadbalancer: an Apache instance that balances the traffic between Kiuwan frontals (kept in the default installation to allow easy frontal scaling).
- wildfly-f1: a Kiuwan frontal.
- wildfly-a1: a Kiuwan analyzer.
- wildfly-s1: a Kiuwan scheduler.
- mysql: the main Kiuwan database.
- redis_0000[n]: redis store nodes. Used by Kiuwan as a data cache.
- clustercreator: a temporal redis container that configures each Redis node as a cluster.
- updater: a temporal Kiuwan instance that installs, updates and upgrades needed data or configuration.
Depending on your needs, Kiuwan on premise 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.
- Externalize one, some or all of the provided non-kiuwan services:
- Apache load balancer
All kiuwan instance containers can be scaled up (to a limit) or down to the default configuration.