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.
Supplied services
All needed services are supplied as Docker containers. The following table summarizes all the available services:
Image name | Services | Provider | Default number of containers |
---|---|---|---|
kiuwan/apacheloadbalancer | loadbalancer | Kiuwan | 1 |
kiuwan/wildflykiuwan | wildfly-f[1-8] | Kiuwan | 1 |
wildfly-a[1-8] | 1 | ||
wildfly-s[1-4] | 1 | ||
kiuwan/updaterkiuwan | updaterkiuwan | Kiuwan | 1 (temporal) |
mysql:5.7.27 | mysql | Docker Official Images | 1 |
redis:5.0.5 | redis_0000[n] | Docker Official Images | 6 |
clustercreator | 1 (temporal) |
The following diagram shows the infrastructure that KoP installer will create by default:
The main purpose of each piece is (container names are shown between parentheses):
- Apache (loadbalancer): an Apache instance that balances the traffic between Kiuwan frontals (kept in the default installation to allow easy frontal scaling).
- Kiuwan front (wildfly-f1): a Kiuwan frontal.
- Kiuwan analyzer (wildfly-a1): a Kiuwan analyzer.
- Kiuwan scheduler (wildfly-s1): a Kiuwan scheduler.
- MySQL (mysql): the main Kiuwan database.
- Redis cluster (redis_0000[n]): redis store nodes. 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 (updater): a temporal Kiuwan instance that installs, updates and upgrades needed data or configuration.
Clustering support
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
- Redis
- MySQL
All kiuwan instance containers can be scaled up (to a limit) or down to the default configuration.