MIRC-UofSC / xsede-development

0 stars 0 forks source link

Test using object store on Jetstream #1

Open zonca opened 3 years ago

zonca commented 3 years ago

@junzhoum

Here is what I need to get started on this:

Then I'll upload the video to object store and try to adapt your example to stream from object store while still maintaining your security requirements.

zonca commented 3 years ago

ok, so sources are mp4 files and we want to prevent users from downloading them. If we are deploying on Jetstream, then we do not have anything similar to Cloudfront streaming. We need to deploy a webRTC server in a Jetstream virtual machine.

The idea would be to have the server retrieve the MP4 from Jetstream object store (very similar to S3) and then stream it piecewise to the user.

I have done a bit of research and found 2 options:

Have you considered any of those in the past? what is your opinion?

junzhoum commented 3 years ago

So, for this approach. We will need:

  1. Create another VM as webRTC server. This server should not co-exist with current web server. Is it easy to retrieve MP4 files and m3u8 files from object store? We had quite some problem with AWS.
  2. Ngnix should be a better option as it support HLS.

Jun

zonca commented 3 years ago

So I can spin up my own VM and check if I can make this work or not.

junzhoum commented 3 years ago

Andrea,

Thank you very much! I’ll forward you the error logs we have in the next email. It is fine you can use that mp4 file for testing.

Jun

zonca commented 3 years ago

ok, I have a first version which seems to be working,

Please take a look and send me some feedback, I will work again on this in a couple of weeks.

junzhoum commented 3 years ago

Wow, this is wonderful! I am so impressed. Thank you very much!

So our website VM only need to integrate this player in the webpage?

Jun

zonca commented 3 years ago

correct, however this VM is under the ECSS account, and also it is better if you set it up yourself and make sure you can maintain it.

But for now let's make some testing with this VM. Then if we decide this is the way to go, you can set it up yourself.

Of course this is a lot more risky than Cloudfront, here we are maintaining and managing the streaming server, which seems quite complex, best way is to test it for a few weeks and see how it goes.

Whenever I do development that is of generic interest, I write a tutorial, which is useful for documentation:

https://zonca.dev/2021/03/video-streaming-jetstream.html

junzhoum commented 3 years ago

You are right. I’ll setup my own VM and object container to give it a test. I guess VM on horizon should work as atmosphere is dying.

Thank you.

Jun

zonca commented 3 years ago

I think it would be better if we first do testing on my instance, before deploying another one, I can give you ssh root access to my instance if you email me your SSH public key.

zonca commented 3 years ago

please let me know if you wish to:

junzhoum commented 3 years ago

Hi Andrea,

Thanks for your email. I was contacting our student developer, but did not get his reply. I would like to include video samples in our website from your VM. Then we will see if more videos can be there. We are still evaluating AWS vs object storage.

Sorry for slow response. I’ll contact you when I have the update.

Thank you.

zonca commented 3 years ago

unless you plan to test the setup soon, I'll deactivate the VM next week to save resources.

zonca commented 3 years ago

ok, I shelved the image, so it doesn't burn through the ECSS allocation (not MIRC's allocation). I can restore it later on if you want to test it.