iconik System Architecture

iconik is a globally load-balanced hybrid cloud system comprising of microservices. It is designed to be cloud-vendor independent but utilizes services from multiple different cloud services.

Transcode
Transcode
Clients
Clients
colo / dc /
on-premises third-party integration
colo / dc /...
Cloud Service Provider
Cloud Service Provider
Region 1
Region 1
Zone 1
Zone 1
Kubernetes cluster
Kubernetes cluster
Kubernetes
Kubernetes Engine

Microservice deploy
Kubernet...
Microservices
Compute Engine

Nodes
Microser...
Files
Cloud Storage

Multiple Buckets
Files...
Vision
API
Vision...
Cloud Video
Intelligence API
Cloud Vi...
Cassandra
Compute Engine
Cassandr...
Persistent
Disk
Persiste...
Monitoring
Stackdriver
Monitori...
Global DNS
Cloud DNS
Global D...
Analysis
BigQuery

Usage and stats
Analysis...
Cloud Load
Balancing
Cloud Lo...
Region 2
Region 2
Zone 1
Zone 1
Kubernetes cluster
Kubernetes cluster
Kubernetes
Kubernetes Engine

Microservice deploy
Kubernet...
Microservices
Compute Engine

Nodes
Microser...
Files
Cloud Storage

Multiple Buckets
Files...
Vision
API
Vision...
Cloud Video
Intelligence API
Cloud Vi...
Cassandra
Compute Engine
Cassandr...
Persistent
Disk
Persiste...
Analysis
BigQuery

Usage and stats
Analysis...
Desktop
Desktop
Laptop
Laptop
Phone
Phone
Media Convert
Media Co...
Application
Application
Database
Database
encoding.com
encoding.com
ZencoderAWSElementalTelestreamCloudTelestreamVantage
Authentication
Authentication
Auth0ADFS
Analysis of content
Analysis of content
AWS Rekognition
AWS Rek...
GCS Video
Intelligence
GCS Video...
GCS Vision
API
GCS Visio...
Storage
Storage
AWS S3
AWS S3
GCS Cloud
Storage
GCS Cloud...
Azure Blob
Storage
Azure Blob...
Backblaze B2
Backblaze B2
Google Apps
Google Apps
on-premises
on-premises
iconik
Storage
Gateway

iconik...
Storage
Storage
Transcoders
Transcoders
Viewer does not support full SVG 1.1

Image showing the overview of iconik with third-party integrations

iconik mainly runs on Google Cloud Platform utilising global load balancing with failover support. Google Kubernetes Engine is responsible for managing individual microservices on Google Cloud, so there are always enough running instances of a particular service in a region to handle the current load and any potential failure. These individual services can be scaled up and down as needed, depending on the current load.

The main database is Apache Cassandra, and is running as a cluster within each individual region with replication to other regions to allow for both individual machine failures and region outages.

Other services such as RabbitMQ, Elastic, Transcode and Redis are managed and scaled by Kubernetes in each region.

iconik's application layer is composed of microservices and presented through an application gateway microservice.

Application monitoring

Overall monitoring of the iconik application is separated out to Amazon AWS to not be dependent on the same provider of infrastructure as the main iconik application. This utilizes a serverless architecture using AWS Lambda, AWS CloudFront, AWS CloudWatch, AWS SNS and AWS S3.

A public page for the current status of iconik is available at https://status.iconik.io

More in-depth information

Security is covered by the Security section of this help documentation.