V can effectively be used in scenarios involving system configuration, system availability, system performance and system security.
Installing, upgrading, or removing system components—system configuration for short—is a disruptive process. Taking a system from one stable state to a new stable state, is the goal of system configuration. Between these two stable states is the messy arena of testing, tuning, monitoring, problem discovery, and diagnostic troubleshooting. V is a good tool for working in this arena, providing the system administrator with repeatable results that can reliably be used to compare before and after differences.
Systems that have been running in a proven, stable state, are not immune to the effects of stochastic inputs, such as higher than average volumes of data, out of range data, hardware failures, or broken links to other dependent systems. These stochastic inputs may cause the system to become unstable or unavailable. V can be used to determine whether or not a system's individual components are available: are networks accessible, can mail be sent, are filesystems available, are daemons running?
Over time, systems are asked to do more with the same set of resources. This increased work load can cause system throughput to decrease and users to be subject to unacceptable delays. System performance monitoring can be accomplished with V's threshold trip-point evaluators. Using V statements, a system administrator defines the resource to be monitored, and specifies the maximum or minimum acceptable value for that resource. Rules can be written that monitor CPU, memory, filesystem, network bandwidth, and other hardware utilization. Also, V language rules can be written for software packages that have monitoring API's, such as database servers, web servers, DNS servers and mail servers.
Systems are provisioned and deployed for an intended usage and for an intended audience. When unethical users place excessive or illegitimate demands on a system, the intended audience can be prevented from using the system as designed. Also, when criminal users steal data or intellectual property from a system, corporate responsibility rules mandate that legal authorities and affected third parties be promptly notified. V has provisions for examining system log files, for identifying policy violations, and for reporting breaches. Reports from V can be used by a system administrator to implement tighter restrictions on resource usage.
A Linux implementation of V can be set to run at periodic intervals using the Linux cron facility. Rulebooks can be written in the V language, where each rulebook contains distinct sets of resource objects and validation objects. Cron can be set to evaluate each rulebook at a different frequency. For example, a security rulebook might be run every fifteen minutes, a performance monitoring rulebook might be run every hour, a system availability rulebook might be run once a day, and a system configuration rulebook might be run only on demand, such as just before and just after a planned upgrade.