A minimal CDN for load balance studies purposes.
- simple-video-cdn_origin_1: ingest/packager/origin
- simple-video-cdn_cache_N: cache server N
- simple-video-cdn_lb_1: load balancer
- simple-video-cdn_healthchecker_1: go application that do the health check
- simple-video-cdn_redis_1: redis db that stores the health and load data
Delivery HLS and Dash video (two cache instances):
make run
- Ingest video from ffmpeg filter:
make ingest
Or ingest another video to http://0.0.0.0:8080/ingest/signal-1.
- Consume the HLS playlist:
curl -s http://0.0.0.0:80/live/hls/signal-1/index.m3u8
- Consume the Dash play list:
curl -s http://0.0.0.0:80/live/dash/signal-1/index.mpd
- ffmpeg - audio/video handler
- nginx - HTTP server and reverse proxy
- nginx-ts-module - receives MPEG-TS and serves HLS and DASH over HTTP
- nginx-module-vts - fetch host traffic status
- Golang - compiled language
- Lua - script language
- Redis - in-memory database
Ana Carolina Castro - Initial work - Globo.com
This is not a resilient architecture.