The hardware requirements vary depending on multiple factors including: the deployment type, seat count, repository size, and usage patterns. This page provides guidelines that help estimate the required hardware specifications.
Deveo application is written to be efficient and lightweight. However due to the nature of the product, most of the activities trigger calls to the underlying version control system. Keeping this in mind makes choosing the right hardware easier, since Deveo usage is estimated along with the underlying components.
Deveo technology stack consists of a number of components. In order for them to stay coherent, the following minimum hardware specifications are required for any server having Deveo installation:
|Data Storage||High-performance SAN or locally attached storage|
Determining hardware capacity requirements
Deveo is battle-tested to serve thousands of users. The variation in usage patterns makes it hard to give accurate numbers, but the following matrix can be used as reference based on past experience.
|Seats||Memory||CPU Cores||Root disk space|
Since the system deals with a lot of IO operations to the repositories on disk, it is recommended to have an ultra-fast (SSD/SAN) data storage with speedy access.
Built-in support for horizontal scalability makes Deveo ready to handle a large number of requests with increased performance. It's recommended to use a hardware or software (see How to setup HAProxy) load balancer for distributing the load across Deveo cluster nodes. Combining round-robin algorithms with decent hardware specs delivers the best performance.
Deveo uses MongoDB extensively. It is recommended giving MongoDB a decent amount of RAM to have the working set reside in memory for fast access.
If using HAProxy for load balancing, Deveo recommends 1-2 CPU cores and 2GB of RAM. Having a reliable and fast network between the load balancer and the Deveo Web servers is extremely important.
Understanding Deveo Resource Usage
Git cloning is the most demanding task for CPU/RAM. For a large Git repo (1.5 GB, 500K commits), git-pack-objects utilizes a single core CPU from 45% to around 90% and around 10% of RAM. It then uses lower resources during git-receive-pack operation to about 20% CPU and 40% RAM. For the same repository, the initial Git push/import triggers git-index-pack, which utilizes CPU from 45% to around 90% and about 10% of RAM.
For questions or concerns about performance issues and/or capacity management, don't hesitate to contact the Deveo Support Team.