Skip to content

Microservice-based video streaming platform developed with Flask. Dockerized and deployed via Jenkins pipeline to GCP VM clusters. Postgresql for auth data, MongoDB for subscriptions and telemetry.

Notifications You must be signed in to change notification settings

settorka/myflix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 

Repository files navigation

myflix

Netflix Clone deployed on Google Cloud

Design DevOps Pipeline https://ibb.co/VwGnSKp

Microservice Architecture https://ibb.co/4Jx6jY5

Implementation Contains 3 Flask microservices for

Was deployed on Google Cloud VM instances running Ubuntu (20GB). Jenkins was used to load the coad from Github and dockerize it in the remote server.

An VM instance running NGINX was setup to

  • use the domain name myflix.world for https access and SSL certification.
  • Perform load balancing across multiple instances of the production server running the 3 dockerized microservices or the 2 dockerized DB services

Another VM instance was created to setup databases for use in the applications (MongoDB and Postgresql). (https://github.com/settor21/myFlix_authDB)

  • For polyglot persistence
  • Postgresql for user and session info (salted using bcrypt) - /postgresql branch
  • MongoDB for Metadata (User clicks, user plays) - /mongoDB branch
  • Dockerized versions were deployed to handle requests. A 100GB disk was mounted to ensure persistence of data irrespective of the container

The metadata was then processed by Neo4J, with additional hooks to Tensorflow and the results sent back to mongoDB (https://github.com/settor21/myflix_recommendedVideos/ )

Stripe payment test page was used during signup to allow users to pay £5 monthly.

The movies were uploaded with metadata to GCP bucket using a movie upload microservice, running locally to optimse processing of large movie files (4K, 1080p @ 1GB+) (https://github.com/settor21/myFlix_movieUpload)

SonarQube and Trivy were implemented on all VMs for security and AppArmor on production for docker container security

About

Microservice-based video streaming platform developed with Flask. Dockerized and deployed via Jenkins pipeline to GCP VM clusters. Postgresql for auth data, MongoDB for subscriptions and telemetry.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published