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 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 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 and Kiuwan Insights database updates.
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 name||Services||Default number of containers||Maximum number of containers||Provider|
|mysql:5.7.27||mysql||1||1||Docker Official Images|
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 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.
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
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.