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 requests, 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 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 | Default number of containers | Maximum number of containers | Provider |
---|---|---|---|---|
kiuwan/apacheloadbalancer | loadbalancer | 1 | 1 | Kiuwan |
kiuwan/wildflykiuwan | wildfly-f[1-8] | 1 | 8 | |
wildfly-a[1-8] | 1 | 8 | ||
wildfly-s[1-2] | 1 | 2 | ||
kiuwan/updaterkiuwan | updaterkiuwan | 1 (temporal) | 1 | |
mysql:5.7.27 | mysql | 1 | 1 | Docker Official Images |
redis:5.0.5 | redis_0000[n] | 6 | 6 | |
clustercreator | 1 (temporal) | 1 |
The following diagram shows the infrastructure that KoP installer will create by default:
The main purpose of each piece is (service 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 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, 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.
- Under AWS, decide where each service will be installed, one by one (both 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.