Infrastructure capacity planning
Summary
Infrastructure capacity planning is the process of determining the hardware and software resources required to meet current processing demand as well as over some future period of time. A common concern of enterprises is whether the required resources are in place to handle an increase in users or number of transactions.
Capacity Planning is a part of a wider field of Capacity Management. Capacity Management is concerned with ensuring that cost-effective capacity exists at all times which meets or exceeds the agreed needs of the business as established in Service Level Agreements. Capacity is defined as the maximum throughput a service, system, or device can handle.
Standard build
Refer to System requirements.
The System requirements page summarizes the recommended standard specification for the environment to run WorkFusion SPA.
The recommended production configuration is set up to handle the following1:
- 40 active business processes: total of 4 000 000 transactions a year
- 12 000 000 OCR pages a year 2
- 4 simultaneous ML prediction jobs
- 1 simultaneous HPO AutoML model training 3
- 5 bots 4
- 50 simultaneous (unlimited of named/registered) WorkSpace workers
- 8 simultaneous (unlimited of named/registered) Control Tower users
- 50 simultaneous Analytics users 5
1 There are a number of factors that can impact performance and scalability of the software. Some of the important system variables include business processes design, server configuration, infrastructure tuning, data environment, compute capacity, and networking. The above numbers were established in a closed network lab on automated load tests mimicking realistic production workload.
2 100K pages is typical bundled volume. Additional pages require an extra license to be purchased.
3 AutoML HPO training is performed on Development environment
4 The easiest component to scale. Keep reading.
5 5 named Analytics users is typical bundled volume. Additional users require an extra license to be purchased.
RPA
The first step in planning the RPA capacity is estimating number of bots required to handle the work.
Horizontal scaling
The RPA scaling is done by horizontally scaling the hardware resources (VDIs or RPA servers) executing RPA tasks.
Scaling to 100 bots is possible purely by adding the RPA resources.
To scale beyond 100 - Application server upgrade may be required. For example upgrading CPU on Application server to 32 cores will allow horizontal scaling of the RPA component up to 500 bots.
Minimal system requirement for single bot
Single bot is operational on the following system specs:
- 1 core
- 2 GB RAM
- 10 GB HDD
Production deployment on VDI
In case of bots deployments on VDI technology. Each bot has a dedicated VDI.
Typical VDI capacity:
- 2 cores
- 8 GB RAM
- 50 GB HDD
Production deployment on server
In case of bots deployments on Windows Server. Multiple bots can be deployed to a single server.
Typical for 5 bots:
- 8 cores
- 16 GB RAM
- 250 GB HDD
Typical for 10 bots:
- 16 cores
- 32 GB RAM
- 500 GB HDD
For this type of deployment you need Terminal Services license.
OCR
OCR engine allows processing of incoming requests in parallel using
multiple CPU cores.
Requirements for 1 processor:
- 1 core
- 4 GB RAM
- 10 GB HDD
ABBYY License license has no limitation on productivity. OCR requests can be paralleled based on available CPU Cores:
workers = CPU Cores - 1
Transaction throughput calculation
It's possible to calculate minimal number of required OCR workers knowing the following details:
- Transaction time (average time for processing single item) - TT
- Number of transactions per time interval - N
- Time interval - T
min(workers) = TT * N / T
Example: OCR processing takes 20 seconds (TT = 20) for 1-page document. If we want to process 30 documents (N = 30) within 1 minute (T = 60) - we need 20 * 30 / 60 = at least 10 workers
Scenario A
- 10 seconds per page
- 5 pages per document
We can't preview this file. You'll have to download the file to view it.
Scenario B
- 10 seconds per page
- 10 pages per document
We can't preview this file. You'll have to download the file to view it.
Factors which might affect processing speed:
- OCR parameters (example - number of output document types)
- CPU clock speed
- Document complexity
- How efficiently Business Process loads OCR queue (its best when there is always additional 30% documents in queue comparing to number of workers, example - 32 workers and 40 documents in queue. This can be achieved via setting high number of threads in Bot Source)
To estimate exact hardware requirements - it's better to run several documents through OCR on test server and check OCR logs for timing details
Machine Learning
Additional system resources might be required for the following cases:
- Parallel extraction with different models
- Parallel training is scheduled
It is possible to setup Mesos cluster on several ML servers and utilize all system resources of the cluster.
Exact CPU/RAM requirements can be estimated during runtime - but always start with recommended production setup.
Additional things to consider:
- Compute intensive training or extract process is done on demand or with intervals.
- Training can be run in cloud using WorkFusion infrastructure if input data can be supplied.
ML capacity planning building blocks
HPO training
Running HPO to produce metamodel takes the following resources for each field:
- 24 cores
- 96 GB RAM
- 10 hours of processing time per every field
- 1 TB HDD
Adding more resources lets running HPO training for multiple fields in parallel.
Metamodel re-training
Re-training metamodel takes the following resources for each field:
- 4 cores
- 32 GB RAM
- 1 hour of processing time per every field
Adding more resources lets running metamodel re-training for multiple fields in parallel.
Model prediction
Use a trained model (multi-field) on an unseen document to generate ML predictions takes:
- 2 core
- 8 GB RAM
- 5 GB HDD
- A few seconds of the processing time (ranges from milliseconds to a minute depending on the document size) per field (prediction for a document is done sequncially, field by field)
If server resources available the clustering engine automatically spins up additional model instances to process multiple incoming requests from the queue concurrently.
Requirements and calculations
The requirements may differ based on the training strategy selected.