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 | Provider | Default number of containers |
---|---|---|
kiuwan/apacheloadbalancer | Kiuwan | 1 |
kiuwan/wildflykiuwan | Kiuwan | 3 |
kiuwan/updaterkiuwan | Kiuwan | 1 (temporal) |
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.
Clustering support
Depending on your needs, Kiuwan on premise architecture supports both clustered environments and monohost 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, various or all of the provided non-kiuwan services:
- Apache load balancer
- Redis
- MySQL
All kiuwan instance containers can be scaled up or down to the default configuration.