Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/settorka/myflix
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.
https://github.com/settorka/myflix
Last synced: 9 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/settorka/myflix
- Owner: settorka
- Created: 2024-01-27T03:59:14.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-02-22T08:34:15.000Z (9 months ago)
- Last Synced: 2024-08-02T16:52:24.321Z (3 months ago)
- Homepage:
- Size: 12.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# myflix
Netflix Clone deployed on Google CloudDesign
DevOps Pipeline
https://ibb.co/VwGnSKpMicroservice Architecture
https://ibb.co/4Jx6jY5Implementation
Contains 3 Flask microservices for
- user authentication (https://github.com/settor21/myFlix_userAccess)
- subscriptions (https://github.com/settor21/myFlix_userSubscriptions)
- video streaming (https://github.com/settor21/myFlix_videoCatalogue)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 containerThe 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