Prerequisites for VIDIZMO Application
This documentation outlines the prerequisites for deploying the VIDIZMO application in enterprise environments.
Applies To
- On-premises
- Microsoft Azure
- AWS
- Private Cloud Environments
Deployment Overview
For a detailed understanding of VIDIZMO's architecture and how components interact, refer to the Design and Architecture Overview.
Server Requirements
The following servers are required for a VIDIZMO on-premises deployment:
Deployment Order
Deploy VIDIZMO servers in the following sequence:
- Database Server - Set up SQL Server first as other components depend on it
- Caching & Broker Server - Install Memcached, ZooKeeper, and RabbitMQ
- Application Server - Deploy the web application and APIs
- Encoding Server - Set up video processing services
- AI Server (Optional) - Configure AI services for features such as computer vision, audio and video insights, OCR and transcription
- Streaming Server (Optional) - Set up WOWZA for live streaming capabilities
General Hardware and Software Requirements
The following requirements apply to all VIDIZMO servers.
Compute
- 64-bit Intel or AMD processors
- Multi-core CPUs required for optimal performance
- CPU sizing should scale based on:
- Number of concurrent users
- Upload and encoding volume
- AI processing workload
Storage
- SSD or NVMe disks required for all servers (traditional HDDs are not recommended)
- Storage throughput directly affects:
- Video ingestion
- Encoding performance
- AI processing
- Content delivery
Network
- 10 Gbps network connectivity is recommended for all VIDIZMO servers
- Low-latency network communication is critical for:
- Distributed services
- Encoding workflows
- AI processing
- Shared or cloud-based content storage
Operating Systems
Microsoft .NET
- .NET Framework: Version 4.8
- .NET Runtime / Hosting Bundle: Version 8 or later
Web Server
- Internet Information Services (IIS) 10 or later
- URL Rewrite Module 2.1 must be installed
Scripting and Runtime Dependencies
- Python: Version 3.9.13 (required for Encoding and AI services)
- Container Runtime: Docker (required for Linux AI server deployments)
Time, Security, and Access
- All servers should be time-synchronized (NTP)
- Configure antivirus exclusions for VIDIZMO directories
- Administrative access is required during installation and configuration
Server Specifications
This section defines the minimum and recommended hardware and software requirements for each VIDIZMO server role.
Database Server
Minimum Hardware
- CPU: 8 cores
- RAM: 32 GB
- Network: 10 Gbps
Minimum Storage
- OS Disk: 150 GB SSD (>500 MB/s throughput) or NVMe SSD (>1000 MB/s throughput)
- Data Disk: 256 GB SSD (>500 MB/s throughput) or NVMe SSD (>1000 MB/s throughput)
Recommended Hardware
- CPU: 12 cores
- RAM: 64 GB
- Network: 10 Gbps
Recommended Storage
- OS Disk: 300 GB SSD (>500 MB/s throughput) or NVMe SSD (>1000 MB/s throughput)
- Data Disk: 500 GB SSD (>500 MB/s throughput) or NVMe SSD (>1000 MB/s throughput)
Software Requirements
- Operating System: Windows Server 2019 or 2022 (Standard, Enterprise, Datacenter)
- Microsoft .NET Framework: Version 4.8
- SQL Server 2022 (Developer or Enterprise Edition) with the following features:
- Database Engine Services
- Full-Text Search and Semantic Extractions
- SQL Client Connectivity SDK
- Enable Mixed Mode Authentication (SQL Authentication)
- SQL user account with DB owner permissions on VIDIZMO databases
- SQL Server Management Studio (latest version)
Application Server
Minimum Hardware
- CPU: 4 cores
- RAM: 16 GB
- Network: 10 Gbps
Minimum Storage
- OS Disk: 150 GB SSD (>500 MB/s throughput) or NVMe SSD (>1000 MB/s throughput)
- Data Disk: 100 GB SSD (>500 MB/s throughput) or NVMe SSD (>1000 MB/s throughput)
Recommended Hardware
- CPU: 8 cores
- RAM: 32 GB
- Network: 10 Gbps
Recommended Storage
- OS Disk: 150 GB SSD (>500 MB/s throughput) or NVMe SSD (>1000 MB/s throughput)
- Data Disk: 100 GB SSD (>500 MB/s throughput) or NVMe SSD (>1000 MB/s throughput)
Software Requirements
- Operating System: Windows Server 2019 or 2022 (Standard, Enterprise, Datacenter)
- Microsoft .NET Framework: 4.8
- .NET Core Hosting Bundle: Version 8 or later
- Internet Information Services (IIS): Version 10 or later
- URL Rewrite Module: Version 2.1
Encoding Server
Minimum Hardware
- CPU: 8 cores
- RAM: 32 GB
- Network: 10 Gbps
Minimum Storage
- OS Disk: 150 GB SSD (>500 MB/s throughput) or NVMe SSD (>1000 MB/s throughput)
- Data Disk: 100 GB SSD (>500 MB/s throughput) or NVMe SSD (>1000 MB/s throughput)
Recommended Hardware
- CPU: 16 cores
- RAM: 64 GB
- Network: 10 Gbps
Recommended Storage
- OS Disk: 150 GB SSD (>500 MB/s throughput) or NVMe SSD (>1000 MB/s throughput)
- Data Disk: 100 GB SSD (>500 MB/s throughput) or NVMe SSD (>1000 MB/s throughput)
Optional Hardware
- GPU: NVIDIA GPU with NVENC encoder support (recommended for improved video encoding performance and faster processing times)
Software Requirements
- Operating System: Windows Server 2019 or 2022 (Standard, Enterprise, Datacenter)
- Microsoft .NET Framework: 4.8
- .NET Core Hosting Bundle: Version 8 or later
- Python: Version 3.9.13
VIDIZMO AI Server (Optional)
Minimum Hardware
- CPU: 4 cores
- RAM: 16 GB
- GPU: NVIDIA RTX / Tesla / A series with NVENC and CUDA support
- Network: 10 Gbps
Minimum Storage
- OS Disk: 256 GB SSD (>200 MB/s throughput) or NVMe SSD (>500 MB/s throughput)
Recommended Hardware
- CPU: 8 cores
- RAM: 32 GB or more
- GPU: NVIDIA RTX / Tesla / A series with NVENC and CUDA support
- Network: 10 Gbps
Recommended Storage
- OS Disk: 256 GB SSD (>200 MB/s throughput) or NVMe SSD (>500 MB/s throughput)
Software Requirements (Windows)
- Operating System: Windows Server 2019 or 2022 (Standard, Enterprise, Datacenter)
- Microsoft .NET Framework: Version 4.8
- .NET Core Hosting Bundle: Version 8 or later
- Python: Version 3.9.13
Software Requirements (Linux)
- Operating System: Linux with Docker support (Ubuntu LTS, RHEL recommended)
- Container Runtime: Docker
- NVIDIA Container Toolkit
- NVIDIA GPU Drivers
Caching and Broker Server
Minimum Hardware
- CPU: 2 cores
- RAM: 8 GB
- Network: 10 Gbps
Minimum Storage
- OS Disk: 60 GB SSD (>500 MB/s throughput) or NVMe SSD (>1000 MB/s throughput)
- Data Disk: 100 GB SSD (>500 MB/s throughput) or NVMe SSD (>1000 MB/s throughput)
Recommended Hardware
- CPU: 4 cores
- RAM: 16 GB
- Network: 10 Gbps
Recommended Storage
- OS Disk: 100 GB SSD (>500 MB/s throughput) or NVMe SSD (>1000 MB/s throughput)
- Data Disk: 100 GB SSD (>500 MB/s throughput) or NVMe SSD (>1000 MB/s throughput)
Software Requirements
- Operating System: Windows Server 2019 or 2022 (Standard, Enterprise, Datacenter)
- Microsoft .NET Framework: 4.8
- .NET Core Hosting Bundle: Version 8 or later
- Oracle JDK 17 (required for ZooKeeper)
- NSSM (Non-Sucking Service Manager) for ZooKeeper and Broker services
Streaming Server Requirements (Optional)
This section outlines the system requirements and specifications for the WOWZA Live Streaming Server. This server is only required if live streaming capabilities are needed.
Minimum Recommended Production Hardware
- CPU: Single quad-core, 3.00 GHz or better
- RAM: 4 GB
- Disk: 2 or more disks in RAID 0 (striping)
- Network: 1 Gbps Ethernet
High-Load Recommended Production Hardware
- CPU: Dual quad-core or a single hex-core, 3.00 GHz or better
- RAM: 16-32 GB
- Disk: 2 or more disks in RAID 0 (striping)
- Network: 10 Gbps Ethernet
Supported Operating Systems
- Windows
- Linux
- Mac®
Java Installation
WOWZA Streaming Engine version 4.7.8 and later requires OpenJDK Java SE JRE 9.0.4 at a minimum but supports up to Java version 12. Earlier versions of Java aren't supported.
For detailed information about supported Java versions, refer to WOWZA documentation.
Note for Server Admin: VIDIZMO needs server systems to host the web application, content processing, and databases. The application components can be distributed across multiple server systems to achieve redundancy and ensure high availability. Both physical systems and Virtual Machines (VMs) are supported for the VIDIZMO application deployment.
Administrator Requirement: System Administrators are required to have Elevated Access Permissions on Virtual Machines (VMs) and servers to facilitate the successful deployment, configuration, and management of the VIDIZMO application. It is imperative that dedicated user accounts with elevated access permissions be granted on all VMs and servers where VIDIZMO will be installed.
Broker and Service Discovery Components
VIDIZMO is built on a distributed, event-driven architecture where multiple services operate independently and communicate asynchronously. To support this design, VIDIZMO relies on dedicated components for message brokering and service discovery.
Message Broker
The message broker is responsible for handling asynchronous communication between VIDIZMO services. It decouples producers and consumers, allowing services to scale independently and process workloads reliably.
Recommended Broker:
- RabbitMQ is recommended for on-premises deployments due to simpler setup and lower resource requirements.
Deployment Considerations:
- The broker can be deployed on a dedicated server or shared with other non-resource-intensive components for smaller deployments.
- For high-throughput or large-scale environments, a dedicated broker server is strongly recommended.
- Broker sizing should account for event volume, peak concurrency, and retention requirements.
- High availability can be achieved using broker-specific clustering or replication mechanisms.
The following broker service options are available:
- Azure Service Bus
Azure Service Bus is a cloud-based broker service provided by Microsoft, utilizing AMQP to transmit messages reliably between services.
- Apache Kafka
Apache Kafka is a distributed event streaming platform designed to handle real-time data feeds. VIDIZMO supports Kafka for high-throughput message streaming between applications and services.
- RabbitMQ
RabbitMQ is an on-premises broker service option for message handling within VIDIZMO.
- DAPR
DAPR is not a traditional broker service but offers features for messaging and communication between microservices.
Memcached (Caching Service)
Memcached provides in-memory caching for improved application performance by reducing database load.
Important: Memcached is a required component and is installed as a Windows service on the Caching & Broker Server.
- Default Port: 11211
- Source: Application and Encoder servers
- Destination: Memcached service
Service Discovery (ZooKeeper)
VIDIZMO uses Apache ZooKeeper for service discovery and coordination across distributed platform components.
Important: ZooKeeper is required for ALL VIDIZMO deployments regardless of which message broker you choose. It is essential for service discovery and coordination between VIDIZMO components.
ZooKeeper Functions:
- Register and discover active services dynamically
- Coordinate communication between AI services, Encoding services, and other microservices
- Maintain service state and availability information
- Support failover and resilience in multi-node deployments
Deployment Considerations:
- ZooKeeper is typically deployed on the Caching & Broker Server along with Memcached and the message broker.
- For high availability, ZooKeeper should be deployed as a cluster with an odd number of nodes (e.g., 3 or 5 nodes).
- Stable network connectivity and low latency between ZooKeeper and VIDIZMO services are essential for reliable operation.
Requirements:
- Oracle JDK 17
- NSSM (Non-Sucking Service Manager) for Windows service management
Network Configuration
To achieve a successful VIDIZMO deployment, it is essential to meet specific network configurations and port requirements. VIDIZMO's vital components must establish communication amongst themselves, primarily utilizing Fully Qualified Domain Names (FQDNs). This FQDN-based approach is favored due to its dynamic adaptability, as FQDNs can seamlessly resolve to different IPs. Furthermore, it's advisable to enable firewall port exceptions to facilitate uninterrupted communication, ensuring robust and flexible deployment.
Firewall Rules and Exceptions (Network Ports)
Enable the following firewall port exceptions on the network and Windows firewall for web application server, content processing, and database server systems.
Core Application Ports
AI Service Communication Ports
The following ports are used for communication between application components and AI services:
Note:
- Ports 5671-5672 apply to RabbitMQ and Azure Service Bus.
- Apache Kafka may require additional ports (9092-9094) depending on deployment and clustering configuration.
Important:
- All VIDIZMO servers must have outbound access to license.vidizmo.com for license activation and periodic verification.
- Network latency and bandwidth directly affect media ingestion, playback, encoding, AI processing, and inter-service communication.
- For secure environments, restrict inbound access to trusted sources wherever possible.
Web Application Firewall (WAF)
As a prerequisite for implementing a Web Application Firewall (WAF), it is essential to configure it to allow necessary traffic into VIDIZMO. This involves creating custom rules or policies to whitelist required traffic. During this configuration, it may be necessary to turn off specific rules. In particular, when making policy settings in WAFV2, ensure that the "inspect request body" policy is turned off. This is crucial for applications like VIDIZMO that involve uploading large files, as leaving this feature open might prompt restrictions on the maximum file upload size.
Additionally, as WAFs typically adhere to OWASP policies, it is advised to disable the rule "URL file extension is restricted by Policy." Failure to disable this rule may restrict uploading and downloading files in VIDIZMO. Therefore, adjusting this setting is imperative for the seamless operation of the application within the WAF framework.
Content Storage Options
VIDIZMO supports multiple content storage backends to accommodate different deployment models, scalability needs, and performance requirements.
Local File System
Content can be stored on local disks or network file shares accessible by Application, Encoding, and AI servers.
Prerequisites:
- Users must have valid accounts and necessary permissions to read and write files within the specified file share.
- Ensure that the network infrastructure has SMB protocol support enabled.
- VIDIZMO supports SMB 2.0 or SMB 3.0 for improved performance and security.
- Users must have access to the Universal Naming Convention (UNC) path:
\\\\server name\\file share name
Considerations:
- Limited scalability compared to shared or object storage.
- Requires manual planning for capacity growth and redundancy.
- Network throughput and latency directly impact upload, playback, and encoding performance.
Azure Blob Storage
VIDIZMO can integrate with Microsoft Azure Blob Storage for scalable and durable object storage.
Prerequisites:
- Ensure you have a dedicated non-Multi-Factor Authentication (MFA) user account with "Contributor" level access on the Azure Subscription.
Considerations:
- Requires outbound connectivity to Azure.
- Storage access credentials must be securely configured.
- Performance depends on network bandwidth and proximity to Azure regions.
- Azure storage costs apply based on usage (storage, transactions, egress).
AWS Storage
VIDIZMO supports Amazon Simple Storage Service (S3) as a content storage backend.
Prerequisites:
- Ensure you have an AWS Access Key and Secret Key associated with the AWS Identity and Access Management (IAM) user or role responsible for managing the storage solution.
- Define bucket-level policies to control who can access and perform actions on the S3 bucket.
- Attach IAM policies to IAM users or roles for precise control over their actions within the S3 bucket.
Considerations:
- Requires outbound connectivity to AWS.
- IAM credentials and bucket policies must be properly configured.
- Performance is dependent on network bandwidth and AWS region selection.
- AWS storage and data transfer costs apply.
WOWZA Media Server
A specialized media server solution for streaming content.
Prerequisites:
- Ensure you have a playback URL from your WOWZA Player that will serve as the Provider URL.
- The Streaming Provider URL is essential for WOWZA to identify the source of your media content.
- Determine and specify the storage path where your media assets will be stored.
General Storage Considerations
- Content storage should be accessible to Application, Encoding, and AI servers as required.
- Storage performance (IOPS, throughput, and latency) directly affects upload/ingestion speed, video playback performance, and encoding/AI processing times.
- Backup and disaster recovery strategies should be planned according to the selected storage type.
- For high availability deployments, shared or object storage options are strongly recommended.
Ensure that an appropriate storage option is ready and configured for each portal. You can utilize the Setup Wizard, which streamlines the provisioning of the required storage accounts.
Domain Setup Prerequisites
Domain Name and IP Address Configuration
- Domain Setup for Web Application: Ensure the web application has a designated domain (FQDN) for proper functionality. Determine and configure a domain name that will serve as the access point for the media portal.
- Domain Mapping: To ensure accessibility, map domain name(s) to the IP address of the Web Application server. If multiple domains are used, provide separate entries for each.
- IP Address Mapping: Assign an IP address to the Web Application server and configure DNS accordingly for seamless domain resolution.
- Domain Name for Your Media Portal: Define a user-friendly domain name for accessing the media portal. The domain name serves as the user-accessible address for your media portal. It is essential for user interaction and content access. Configure this domain name to map to a public IP address for external accessibility or a private IP address for internal access based on intended portal configurations. For detailed instructions on configuring VIDIZMO with a custom domain, please refer to the "How to Set a Custom Domain for a Portal" section.
Licensing and Activation
- License Activation Key for VIDIZMO Application: Before initiating a fresh deployment, it is essential to obtain a new License Activation Key for the latest version of the application. This License Activation Key is vital for users to start utilizing VIDIZMO as their chosen digital content management solution.
- When performing an upgrade to a new version of VIDIZMO, it is essential to note that the new License Activation Key will require the truncation of the "ServerLicense" table within the "VidizmoDB" database. This step is essential to remove any existing licenses and must be carried out prior to adding the new license. This process ensures a seamless and successful activation of the updated version by clearing the database of previous licenses. To learn more about it, refer to the article "How to View and Update VIDIZMO License."
Security Configuration
- SSL Certificate: A customer-provided SSL/TLS certificate is required to enable secure communication (HTTPS) between users and VIDIZMO servers. Self-signed certificates are not recommended for production environments. Certificates must be installed on the Application Server and any relevant load balancers or reverse proxies.
SMTP Service Credentials
SMTP credentials are required for:
- Email notifications
- Password resets
- User registration and verification
Supported Options:
- Corporate SMTP servers
- Third-party services like SendGrid or Amazon SES
Configuration:
- Ensure SMTP configuration within the portal to enable email notifications sent during various application steps.
- Configure SMTP to allow email notifications triggered by different scenarios like registration requests, content uploads, content sharing, password resets, etc.
- Ensure firewall rules allow outbound traffic to the SMTP server.
- SMTP is fundamentally required for registering new users in VIDIZMO, facilitating workflows, user registrations, license activations, and other critical notifications within the application.
Software Download Links
The following software components are required for VIDIZMO deployment:
Backup and Disaster Recovery
Plan for regular backups of the following components:
- VIDIZMO Databases: SQL Server backup strategies (full, differential, transaction log)
- Content Storage: Replication or backup of media files
- Configuration Files: Application and server configuration backups
High Availability Considerations
To handle large numbers of concurrent users, consider:
- Multiple Application Servers behind a load balancer
- Dedicated Encoding Servers for high-volume media processing
- Distributed AI Servers for intensive analysis tasks
- SQL Server Always On for database redundancy
- Secondary or passive Application Server deployments
- Cloud storage integration (Azure Blob Storage / AWS S3) for content redundancy
Network bandwidth and storage throughput should be monitored to prevent bottlenecks.