Quantcast
Channel: Knowledge Center - Kaltura Community Edition
Viewing all articles
Browse latest Browse all 61

The Kaltura Video Platform Architecture Overview

$
0
0

Kaltura’s video platform is a modular system that exposes different web-services and that could be deployed in several deployment modes to support different levels of scale. Kaltura’s platform comes in different editions, including the Kaltura-hosted SaaS edition, managed by Kaltura for single publishers and Value Added Resellers (VARs), as well as in several licensing modes of the, self-hosted,  Kaltura On-Prem™ edition: Kaltura Community Edition, Kaltura On-Prem™ for Publishers and Kaltura On-Prem™ for OEMs. 

This document provides a description of Kaltura’s main service layers, system components and their recommended setup based on several scales of deployments. The document also recommends Kaltura’s ‘best practices’ for system architecture design, to be considered when planning self-hosted deployments of Kaltura’s platform. 

This document targets technical readers who are wishing to familiarize themselves with the structure, components, and different physical setup considerations for installing and deploying the Kaltura platform.

 

Table of Contents

  1. Overview of Logical Layers
  2. Overview of Functional Components
  3. Overview of Physical Setup

Overview of Logical Layers

Kaltura’s online video platform relies on a modular software infrastructure designed to enable flexible usage of Kaltura’s technologies and features. There are five main layers in Kaltura’s platform:

The following diagram illustrates the logical layout of Kaltura’s Online Video Platform layers. 

Layer 1 - Kaltura Core Technology

The following list includes the main features of the Kaltura server-side implementation.

Storage and Hosting Services

Kaltura's hosted SaaS Edition offers robust storage and hosting services. Kaltura's servers operate out of state-of-the-art data centers with the highest levels of stability, redundancy and security. Kaltura’s, self-hosted, On-Prem™ edition allows service providers and publishers to set-up their own hosting and storage infrastructure (see below "best practices for self-hosting and hardware considerations").

Content Delivery and Streaming Services

Kaltura's content delivery and streaming is based on optimizing and reselling tier-1 CDN services, including those of Akamai, Limelight Networks, and Level3 Communications. The streaming infrastructure ensures the best media delivery performance possible, even when working with high volumes of content and audience and when utilizing different streaming methods (e.g. progressive download, RTMP, HTTP Streaming). Optionally, Kaltura's platform can be integrated with other CDNs and delivery components, so self-hosting service providers and publishers can customize their Kaltura setup for integrating their system to work with their CDN of choice or to utilize their local streaming facilities.

Kaltura supports 2 alternative content delivery paths via CDN:

  1. Using Kaltura's platform local storage as the CDN origin  - this is the standard delivery mode for publisher accounts hosted on Kaltura's  SaaS platform.
  2. Utilizing publishers' storage accounts on their CDN (e.g. Akamai NetStorage) to be used as the CDN storage origin, while still managing their content on Kaltura.

Media Ingestion and Transcoding Services

The Kaltura platform applies a transcoding process after media upload. Per the account's transcoding settings, video files are transcoded into the required format and codecs to enable web publishing in adaptive qualities and on multiple devices (including different mobile and iOS devices), while supporting all popular media codecs. Each media file is handled according to its type based on a set of pre-defined adjustable parameters, such as transcoder type, quality (bit rate), aspect ratio, and video viewing optimization. These parameters can be set by publishers to provide the best streaming and editing capabilities required to support their media workflow needs. Each source file could be transcoded into multiple flavors – i.e. files with different bitrates, dimensions, and quality. During playback the player selects the most appropriate flavor for playback based on the viewer's available bandwidth, player dimensions, and CPU usage.  Kaltura's unique technology combines several transcoding components with in-house utilities and shell scripts. In addition, Kaltura's platform comes pre-integrated with commercial transcoders. Advanced ingestion options are also available to support the ingestion of multiple flavors, that were generated on the publisher's local transcoding engine into the Kaltura system as well as further automated ingestion workflows utilizing an ingestion drop folders mechanism.

Media Manipulation Services

The platform provides core capabilities of media manipulation, including: thumbnail generation, image cropping and resizing, video trimming, video transitions, video overlaying (annotations), video effects, audio and voice control, video speed control and more. In addition, the platform supports conversion of Office documents (PPT, DOC, XLS, PDF) into SWF files that are playable in the Kaltura player, as well as synchronization and playback of the converted documents with a selected video, creating a  single user interface for a synchronized view of video and document content.

Media Management Services

The platform provides a comprehensive set of media management capabilities and tools. Publishers can easily upload their media, manage and populate a comprehensive set of metadata fields, and organize their media within playlists and gallery widgets while applying filtering criteria and paging options. In addition, Kaltura's system includes media moderation tools enabling publishers to implement safe and controlled UGC functionalities within their web sites.

Account Management Services

The platform provides publisher administration capabilities and tools. Publishers are able to fully manage their accounts, to ensure publisher-level web security while relying on their unique identifiers and secret keys, to configure their specific server settings and more. Administrators of self-hosted deployments of the Kaltura platform can manage multiple accounts for publishers registered to their Kaltura deployments. 

User Management Services

The platform provides user administration capabilities allowing publishers to provision multiple user accounts and assign each user to a pre-defined or custom role. Publisher admins can define specific user roles for providing different levels of permissions to content management and administration functionalities according to their specific organizational needs. In addition publishers are able to relate their internal user identifiers to the media uploaded to the system and, by doing so, to enable user specific media functionality, as well as media related social networking activities on their web sites.

Advertising & Monetization Services

Kaltura's media players come with built-in support for in-stream and companion rich-media advertising. This enables publishers to implement an advertising solution supporting a wide variety of ad formats and ad sources. Kaltura's media players may include the following advertising modes: Simple advertising deployment, Overlay ads, Ad timing configuration, Companion ads, Ad frequency configuration, and Ad reporting and analytics. Kaltura also supports pay-per-view functionalities, like blocking unauthorized access using increased security hashed URL's and Server Secrets. A ‘free preview' feature enables publisher to configure the occurrence and duration of free previews before a fee is charged.

Web Video Analytics Services

Kaltura provides a built-in web video analytics infrastructure combined with a state-of-the-art reporting tool. These technologies provide publishers the ability to track and understand their end-users' video related behavior, and to better monetize their web media services. Kaltura's reporting tool includes user-specific as well as aggregated indicators for media analytics and audience measurement, including: number of contributors, number of syndications, top played content, number of plays, media plays latency, media play drop-offs, number of user interactions with media, media indicators per media type and more.

Media Syndication and Distribution Services

Kaltura provides integrated social syndication technologies within its players, allowing end-users to easily distribute videos to their own web sites, to the most popular social networks sites and blogging platforms, to simply distribute videos to their friends via emails or to locally download videos for their personal use. In addition to social syndication Kaltura's platform provides capabilities and tools for enabling automated multi-destination syndication and distribution of content. Publishers are able to create playlist based syndication feeds for maximizing their content's reach and generate traffic back to their site.  Access Control can be set for each content item/group to limit the access to specific countries, domains or times (scheduling).

Kaltura's content distribution infrastructure enables media companies and content creators to create and automate customized video packages to send to distribution partners directly from within the KMC. Administrators are able to control the destinations for each video package, and for each distribution destination admins can control the video qualities, multiple thumbnails in different sizes, metadata, scheduling data, and more. 

Styling & Branding Services

Kaltura provides tools and the API to customize the style, branding and functionality of the video player, as well as that of additional widgets (e.g. the Upload/Import widget, and the Video Editor). This allows publishes to maintain a consistent UI, and opens up monetization opportunities by way of custom skins that can be sold to advertisers.

Layer 2 - Kaltura Web Services (Server API)

Kaltura's web services layer provides web access to Kaltura's server Application Programming Interfaces (APIs), through a standard HTTP POST/GET URL encoded requests structure. Kaltura server API's, also named Kaltura Partner Services, are designed to follow REST principles (http://en.wikipedia.org/wiki/Representational_State_Transfer).  The API consists of several service actions for querying, setting, updating and listing entities, as well as for activating processes within the Kaltura Platform. Service actions are grouped according to the entity type they apply to.

 Layer 3 - Kaltura API Client Libraries

To enable easy integration of Kaltura’s platform, Kaltura provides several API client libraries written in all common programming languages. These client libraries implement the actual calls to the Kaltura server APIs. They handle HTTP request creation, queuing, and response processing while providing specific classes corresponding to entities and data types used by Kaltura server APIs.  Kaltura API client libraries are available for common programming languages, including .Net, PHP 4/5, Java, and Javascript.
Layer 4 - Kaltura Widgets

The platform includes self-contained, client-side components called Kaltura Widgets, which implement specific APIs in Flash or HTML. Kaltura widgets can be customized, skinned and easily embedded within publisher's websites.  Kaltura widgets rely on advanced web technologies, encapsulating graphics, media functionalities, and workflow events control along with direct access to Kaltura core technologies (via the Kaltura web services layer). Kaltura's most commonly used widgets include: Kaltura Dynamic Player (KDP), Kaltura Contributor Wizard (KCW) and the Kaltura Video-PowerPoint Widget.

Widget Plugins and Modules

Some Kaltura widgets (specifically the Kaltura Dynamic Player) implement internal hooks to enable the widget's integration with a Kaltura or a 3rd party plug-in applications. Such plug-in applications are then used to extend Kaltura widgets' functionality with complementary media services. Examples of 3rd party services already integrated as a plug-in within Kaltura widgets are: Ad services powered by Adap.tv, Ad services powered by Tremor Media, Ad services supporting VAST based ad servers, Media social syndication services powered by Gigya, and subtitle editing services powered by PLYmedia.

Layer 5 - Kaltura Applications

Kaltura's video platform offers tailored combinations of Kaltura widgets and server APIs, called Kaltura Applications. Kaltura applications are tailored to support specific media workflows or are extensions to a third party web content management platform. Kaltura's most commonly used applications include: Kaltura All-in-One Video Module for Drupal, Kaltura All-in-One Video Pack for WordPress,  Kaltura Moodle Plugin,  Kaltura Joomla Plugin, Kaltura Blackboard Building Block, Kaltura Sakai Extension and dozens of other Applications and integration kits. 

The Kaltura Exchange http://exchange.kaltura.com is a virtual marketplace for publishers, developers, integrators and web shops to “trade” in video applications related to the Kaltura open source online video platform.

The Kaltura Management Console (KMC), is a basic Kaltura application, available to administrators of all publisher accounts, which provides a comprehensive and user friendly tool for utilizing Kaltura's media and account management core capabilities, including content importing/uploading,  sorting/filtering/moderating, creation of playlists, configuration of widgets' features and graphic interface, management of publishers' account and server settings, user administration and reporting and analytics.

The Kaltura Admin Console is a basic Kaltura application, available to Kaltura On-Prem platform administrators which provides a comprehensive and user friendly tool for utilizing Kaltura's system and service administration capabilities including: publisher management and configuration, server batch processing control, system monitoring and developers tools.

Overview of Functional Components

The platform's logical layers, described in the previous section, are implemented using several different functional components that are listed in this section. Some of the components must be deployed as part of the core platform (i.e. the service will not operate without them), and some are optional, whereby the decision for their deployment is derived from the applicative needs and/or from the necessary scale of the deployment. All optional components are operable as part of Kaltura SaaS edition deployment.

Core Components

 The following components must operate within Kaltura’s online video platform:

  1. Kaltura Web Services Module
    Apache server and Kaltura web services layer in the form of a set of Application Programming Interfaces (API) as a single access point for client-server applicative communication. This module should be deployed on front-end server/s (traffic distributed by load balancing equipment).
  2. Kaltura Batch Jobs Module
    Scalable middleware entities deployed on back-end server/s. Central orchestration of atomic batch services such as media import, media info extraction, transcoding, server notification and others. This module should be deployed on a backend server. 
  3. Kaltura Transcoding Module
    This module manages all media transcoding tasks, by utilizing open source and/or commercial transcoders. This is a CPU intensive module and could either be deployed on a backend server at a local deployment or can be distributed using independent transcoding servers deployed in a cloud solution. 
  4. Shared Storage
    A dedicated disk space that is shared and accessible by all of Kaltura’s servers within a specific deployment. The Shared storage holds all content and application files, including: media assets, Kaltura flash widgets/applications, skins, thumbnails, players/playlist configuration files (UI conf) etc. The shard storage can be deployed as part of a local deployment or using independent storage within a cloud solution.
  5. Operational Database
    This is the applicative database, used for storing and managing both content related data (metadata, identifiers, URLs etc.) as well as application and business logic supporting data. The operational database should be deployed as part of a local deployment, preferably on dedicated server/s utilizing a master/slave topology. Database layer integrated with a full text search server, based on the open source Sphinx solution
  6. Site Admin Module
    This module is responsible for operating Kaltura’s Admin Console, enabling site administrators to monitor and operate their own deployment of Kaltura’s online video platform. For full monitoring, it is important to deploy this module on a local separate server. 
  7. Video Analytics Module 
    This module is responsible for processing and aggregating Kaltura’s video analytics data into a dedicated Data Warehouse (DWH), and the production of video usage and behavior reports. The module includes the data Exporting, Transforming and Loading processes (ETL), a DWH database, and the reporting utilities in use. This module can be deployed as part of a local deployment or can be distributed using independent analytics servers deployed in a cloud solution. 
Optional Components
  1. Video Recording Module
    This module is responsible for recording web camera streams; it is an optional component to be deployed only when there is a need to support video recording functionalities. Kaltura operates this module using the Adobe FMIS (Flash Media Interactive Server) solution.  Using a local FMS of another provider is possible as well but may require validation. 
  2. Document Conversion Module 
    The Document conversion module converts various document formats into a flash based swf document, later to be used within the Kaltura dynamic player as a synchronized slideshow alongside a video.  The supported document formats include the following:  MS Office documents (e.g. Word, PowerPoint), Open Office documents, and Adobe PDF. The document conversion process can be distributed using independent document conversion servers deployed in a cloud solution. Each server must run Open Office and MS Office in order to perform the document conversion.

Overview of Physical Setup

The physical deployment of the Kaltura platform is flexible and should be tailored according to the size and applicative needs of the specific site deployment.  For optimal resource utilization as well as security reasons, Kaltura platform deployment should be separated to a front-end layer and a back-end layer. The following diagram illustrates a sample deployment architecture:

 

 # Component Name Description
1Load Balancers  LVS based , running on Linux server.  In a Kaltura On-Prem deployment, load balancing equipment and setup is  the site administrator’s responsibility and is not part of the Kaltura platform setup. 
2Web ServersKaltura API and access to shared content
3Thumbnails Server (optional)Dedicated servers for generating thumbnails from images or videos  - In most on-prem deployment types thumbnail processing is  done on the front end servers
4Admin ServerMonitoring and application administration
5MYSQL1  - master DBPrimary SQL server for write operations
6MYSQL2  - Slave DB (optional)SQL servers for read only operations
7Analytics (DWH DB)Server running Analytics ETL software and data warehouse database
8Shared StorageExternal storage contains all Kaltura media entities shared to all relevant servers over a distributed file system
9FMS Server (optional)Servers for webcam recording
10Batch ServerKaltura dedicated batch servers
11Document Conversion Server (optional)Windows based server running document conversion application
12Encoder ServerKaltura generic Linux-based encoding server
13Internal API  ServerInternal API servers for Kaltura batch servers
14FTP server (optional)FTP server for pushing logs from CDN to the Kaltura platform for updating delivery usage metrics into the Kaltura data warehouse

Virtualization

All server components listed in this section can be set on a physical machine or run on top of a virtualization infrastructure. Kaltura provides a standard VMware image to be deployed and run on a VMware ESXi Hypervisor setup. In this case dedicated hardware should be VMWare ESXi compatible.

Standard Setup Sizes

The following sections describe Kaltura’s recommendation for required hardware to be set for initial setup of an instance of the Kaltura platform. Specific site assessment can be made by Kaltura’s engineering and IT teams upon request.

Small - Single Server Setup

Single server setup may be suitable in the following cases, all assuming low traffic and CPU utilization:

  • Small deployment of a Kaltura Community Edition instance.
  • Platform deployment dedicated for providing limited usage video capabilities to a CMS/LMS platform while using Kaltura CMS/LMS extensions
  • Platform deployment used for development or platform evaluation purposes.

In this setup, all required components are deployed on one server. Document conversion module and workflow cannot be utilized in this topology.

Medium - Distributed Site Setup

This physical setup is suitable as an initial setup for small to medium-size deployments of the Kaltura platform, that are expected to serve medium to high traffic/streaming volume and medium to high number of video uploads and transcoding operations. With growth in service utilization this initial setup can be scaled up as needed, to add the required server type (e.g. additional transcoding servers, additional database servers for replications, additional front end server etc).

Server Recommended Hardware Specs. Operable Components 
 Load Balancing Server/sSite Admin responsibility Site Admin responsibility 
Platform Shared Storage

Can reside on one of the platform servers. Storage size to be set according to the expected volume of media assets.

On average - 3X size of the expected video source files (assuming source should be stored as well).

To be accessible by the Kaltura platform servers via NFS.

Stroage
2 Front-End Servers64bit based Linux OS with  4-8 GB RAM and 1 quad core CPU

Kaltura Web Services Module, on top of an apache server

Kaltura Video Recording Module  (if applicable)

Connected to Shared Storage (NFS)

Back-End Batch Server64bit based Linux OS with at least 4GB RAM and 1 quad core CPU

Batch Jobs Module

Connected to Shared Storage (NFS)

Back-End Transcoding Server64bit based Linux OS with at least 8GB RAM and 2 quad core CPU

Transcoding Module

Connected to Shared Storage (NFS)

Back-End DB Server64bit based Linux OS with at least 4GB RAM and 1 quad core CPU

Operational Database

Sphinx – full text search engine

Connected to Shared Storage (NFS)

Back-End DWH Server64bit based Linux OS with at least 8GB RAM and 1 quad core CPU

Video Analytics Module

Connected to Shared Storage (NFS)

Site Admin Server

Linux based OS.

No minimal specifications on hardware

Site Admin Module 

Document Conversion Server (optional)Windows server 2008 With at least 2GB RAM. 1 CPUKaltura Document Conversion Module (if applicable)

Large - Full Distributed Site Setup

This physical setup may be suitable as an initial setup for large-size deployments of a Kaltura platform, that are expected to serve high traffic/streaming volume and high number of video uploads and transcoding needs.  With any growth in service utilization this initial setup can be scaled up as needed, to add the required server type (e.g. additional transcoding servers, additional database replication server, additional front end server etc).

This setup may include the following servers:

Server Recommended Hardware Specs. Operable Components 
 Load Balancing Server/sSite Admin responsibility Site Admin responsibility 
Few Front-End ServersSeveral 64bit based Linux OS with at least 8GB RAM and 1 quad core CPU

Kaltura Web Services Module, on top of an apache server.

Kaltura Video Recording Module  (if applicable)

Connected to Shared Storage (NFS)

Few Back-End Batch ServersSeveral 64bit based Linux OS with at least 4GB RAM and 1 quad core CPU

Batch Jobs Module

Connected to Shared Storage (NFS)

Few Back-End Transcoding ServersSeveral 64bit based Linux OS with at least 8GB RAM and 2 quad core CPU

Transcoding Module

Connected to Shared Storage (NFS)

Few Back-End DB Server/s  (master + replications)64bit based Linux OS with at least 4GB RAM and 1 quad core CPU

Operational Database

Connected to Shared Storage (NFS)

Back-End DWH Server/s64bit based Linux OS with at least 16 GB RAM and 1 quad core CPU

Video Analytics Module

Connected to Shared Storage (NFS)

Site Admin ServerLinux based OS. No minimal specifications on hardware

Site Admin Module 

Connected to Shared Storage (NFS)

Document Conversion Server/s (optional)Windows server 2008. With at least 2GB RAM. 1 CPUKaltura Document Conversion Module (if applicable) 
Shared Storage Dedicated Server

64bit based Linux OS with at least 4GB RAM and 1 quad core CPU

On average - 3X size of the expected video source files (assuming source should be stored as well)

Storage size to be set according to the expected volume of media assets

Shared Storage

Multiple Data-Centers Site Setup

For enabling full redundancy and better performance for end users, utilization of multiple data centers may be needed. The geographic location of the data center should be chosen according to the geo-location distribution of the end users.  

The synchronization of multiple data centers should be performed on both database and storage. For database synchronization a native MySQL Master-Master replication can be utilized.

For media files synchronization, a batch process can copy media items from one datacenter to the other datacenter, in order to maintain full online redundancy.  Below is a diagram illustrating the architecture of a multi-datacenter setup of the Kaltura Platform.

Self-Streaming Considerations

In most cases, when planning for a new deployment of the Kaltura online video platform, a use of external CDN functionality is recommended. When this is not possible and/or not required, it is recommended to add additional front-end hardware to be dedicated for playback streaming.  

Kaltura recommends the following addition to site setup in such cases:

 Server Recommended Hardware Specs. Operable Components
 Streaming proxy servers2 servers with  64bit based Linux OS, at least 8GB RAM and 1 quad core CPU Media streaming (relevant for self-streaming deployments) 

Additional Scalability Considerations

 

The following table includes estimated sizing calculations that may be useful for determining the required hardware for setting up a new deployment of the Kaltura online video platform:

 Factor Estimated Sizing Information
Storage Resources 

As a general rule of thumb, in order to have multiple flavors generated for each video entry, including mobile flavors, - storage of 3X the size of the expected video source files should be reserved (assuming source should be stored as well).

Example of storage calculation: 

Original video clip at backup storage:

Bit rate = 8000 kbps - good quality camera recording

Storage Size = ~60 Mb for a one minute duration

 

Normal Web Quality Flavor (transcoded files)

Bit rate = 600 kbps

Storage Size = 4-8 MB for a one minute duration = ~ 7.5% of Original

 

High Web Quality Flavor (transcoded files)

Bit rate = 1200 kbps

Storage Size = 8-16 MB for a one minute duration = ~ 15% of Original

Transcoding Resources

Each CPU allows for 360-720 video hours of transcoding per month

One CPU can handle one transcoding task at a time. 

Playback Streaming

The actual streaming volume can be deduced from the single clip storage size and site usage information. 

if CDN is in use - most streaming volume is handled by CDN provider (excluding cases of long tail media type) 

Video Recording Streaming (if applicable)

Each FMS server can hold hundreds of concurrent recording connections

30 days * 24 hours = 720 streaming hours a month per connection 

Web ServicesOne front-end server can support ~75,000 daily unique users (API calls and playback streaming to CDN when CDN is in use) 
Operational Database2 quad core DB Machines running in a master/slave topology can hold tens of millions of media items 
Video Analytics1 quad core DB Machine for storing 6 months of historical data for tens of millions of media items 

 

The following aspects should be taken into account as a basis for a scale-up decision:

 Scale up Reason Scale up Activity
 Back-end server/s CPU’s are repeatedly overloaded due to increase in number of transcoding operationsMove transcoding to a dedicated  server or add a dedicated transcoding server 
Apache/web services are repeatedly overloadedAdd a dedicated front end server (and load balancing hardware if needed)
System is repeatedly slow due to db related operations, with no change after performance tuningMove DB to a dedicated server or add a db server 
System is intolerable slow during daily ETL processes or reporting executionsMove ETL or DWH& ETL to a dedicated server 
Back end server/s CPU is overloaded (no increase in number of transcoding operations)Add a dedicated back end server for batch processes
First Supported Kaltura Version: 
Market Industry: 
All
Category: 

Viewing all articles
Browse latest Browse all 61

Trending Articles