Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

On demand video_streaming_apps_and_its_server_side_cloud_infrastructure_at_aws

802 views

Published on

Cloud Enabled Secure Light Weight iPhone/Android On Demand Video Streaming Apps And Its Server-Side Infrastructure

Published in: Technology
  • Be the first to comment

On demand video_streaming_apps_and_its_server_side_cloud_infrastructure_at_aws

  1. 1. A Sample System Design Of Cloud Enabled Secure Light Weight iPhone/Android On Demand Video Streaming Apps And Its Server Side Cloud Infrastructure At AWS Abstract View Sumit Arora | sumit1234@gmail.com A Big Picture
  2. 2. Sumit Arora | sumit1234@gmail.com 2 Limit of Liability/Disclaimer of Warranty: Overall explanation presented on this ppts ,are based on my views, my learning, and my language it may differ from your understanding, as my learning curve still rolling. The author makes no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifically disclaims all warranties, including without limitation warranties of fitness for a particular purpose. The fact that an organization or web site is referred to in this work as a citation and/or a potential source of further information does not mean that the author endorses the information the organization or web site may provide or the recommendations it may make. Furthermore, readers should be aware that Internet web sites listed in this work may have changed or disappeared between when this work was written and when it is read. So feel free write me your comments to make this better if any : sumit1234@gmail.com A Sample System Design Of Cloud Enabled Secure Light Weight iPhone/Android On Demand Video Streaming Apps And Its Server Side Cloud Infrastructure At AWS
  3. 3. Abstract The objective of this document to write an abstract view of technology, architecture and implementation for ‘Cloud Enabled Secure Light weight iPhone/Android On Demand Video Streaming Apps and its server-side infrastructure’. These apps are light weight in terms of their X. They are usually less than ~X unit. X depends on the actual definition of light weight, it may contain various parameters e.g. environment (e.g. availability, scalability, heterogeneity) performance (e.g. storage, battery life and bandwidth) security (e.g. privacy and reliability). It provides an integrated client/server view of most of the technical components expected to be used in a full fledge cloud enabled client apps and backend cloud infrastructure for on demand video streaming. Backend infrastructure would be deployed in public cloud Amazon AWS Or on hybrid cloud e.g. dedicated servers and public cloud. Sumit Arora | sumit1234@gmail.com 3
  4. 4. Limitation This documents assumes the cloud enabled android/iphone apps performs the functions e.g. login to servers, authorize itself, based on the access type it fetches the list of contents, based on the choice of video it fetches that specific video from the server, appropriate and smart user interfaced are available to user, all connectivity with cloud uses Transport level security(SSL). It provide an abstract view like complete system is in flow e.g. It has proper clients apps in place and they SSLed with backend infrastructure. The backend infrastructure functioning present an abstract view with most needed server side components with its servers (e.g. Media Engine Server, MongoDB for Metadata, Elastic Search for Search, Transcoder, REST APIs). This document doesn’t talk about the performance, specific design patterns, data models, actual implementation flow, progressive download technologies, different video resolutions, different wireless limits, multiple bit rates, converting input files to multiple formats, multiple screen sizes, file level segmentation, security , availability, privacy and several other relevant terms, application level monitoring , server side monitoring. Sumit Arora | sumit1234@gmail.com 4
  5. 5. Server Side Infrastructure Server side equipped with various server components (not limited to)  Apache Tomcat Server connected with Elastic Search and Mongo DB. REST API are called from the client apps, or monitoring apps to CRUD the relevant Meta Data.  Appropriate Video Storage technologies would be used e.g. Amazon S3  Appropriate Transcoding technologies would be used e.g. Amazon Transcoder provided by Amazon AWS  Appropriate technologies would be used for connection pooling, concurrent connection and various other relevant purposes e.g. Netty (Async Network I/O)  Authentication server perform all authentication related work e.g. SSO, OpenID,Standard  Appropriate CDN would be used to deliver/cache the content e.g. Cloud Front, Akamai, Limelight. Appropriate technology would be implemented around this e.g. Transparent Caching  Appropriate Media engine server and protocol would be used e.g. Adobe Media Server with Real Time Messaging Protocol Tunneled/Encrypted.  Appropriate server side monitoring technologies would be used e.g. Hyperic HQ or Nagios Sumit Arora | sumit1234@gmail.com 5
  6. 6. Client Apps Technology Stack Client Apps uses layered stack e.g. • Top Layer equipped with native OS’s user interface components, multimedia framework components. • Middle Layer is a in-house native C++ library with set of APIs accessed by the User Applications Layer. Middle Layer Library portable to both OS Platforms. • Native OS provides native OS level functionality e.g. threading, socket to the middle layer Native OS means : Android or iPhone Sumit Arora | sumit1234@gmail.com 6
  7. 7. Tomcat Server Amazon EC2 Instance Meta Data MongoDB Amazon EC2 Instance Elastic Search Server Amazon EC2 Instance Adobe Flash Media Server RTMPE/RTMPTE Amazon Elastic Transcoder Authentication Server Login/Password OAuth2.0/SSO/OpenID Amazon S3 Video File StorageRoute-53 DNS Load Balancers Netty (Connection Pooling) Async Network I/O iOS Android iPhone User Interfaces iOS UIKit Framework OpenSSL Secure Socket Layer Android User Interfaces Android Multimedia Framework Java.X.Net.SSL Java Security Framework REST APIs (Create, Update, Retrieve, Delete) Monitoring Nagios or Hyeric HQ Monitoring Nagios or Hyeric HQ CDN Akamai, Limelight, Level-3 Monitoring Nagios or Hyeric HQ Transparent Caching Abstract View Of Architecture And Technologies Monitoring Nagios or Hyeric HQ Monitoring Nagios or Hyeric HQ C++ Streaming APIs, Cloud Connectivity APIs, Authentication APIs, MetaData APIs, Create APIs, Delete APIs, Retrieve APIs, Update APIs. Portable C++ library for iOS, Android, Platform Sumit Arora | sumit1234@gmail.com 7
  8. 8. Appendix Sumit Arora | sumit1234@gmail.com 8
  9. 9. Streaming • ‘Streaming’ describes the act of playing media on one device when the media is saved on another. As this technique does not require actual video to be stored on mobile device for playing, in the proposed model it is not required that the video being played should be stored on mobile device. Sumit Arora | sumit1234@gmail.com 9
  10. 10. Challenges Some of the challenges e.g. • Creating a distributed system in order not to overload the main hosting servers of the videos. • Transcoding videos into,Different ratio aspects for different devices. Video quality per resolution size, some video can't be turned into HD due to low quality. • When a content delivery network or lets say a content distribution network is used widely, security concerns comes up. • Authenticating users through some authentication system, perhaps a public private key would be ideal in a quick process. • Speed of the distribution VS limitation of bandwidth, if the content is on demand rather than just one time video to be pushed to the CDN. Sumit Arora | sumit1234@gmail.com 10
  11. 11. Step-1 :Using Amazon S3 for storing videos. Create bucket #1 for original files Create bucket #2 for transcoded files Step-2 : Store old files on a service like Amazon Glacier if you wanted to archive them. Step-3: Create a Pipeline inside the Amazon Elastic Transcoder. Feed the Amazon S3 bucket #1 to this pipeline Let AWS Elastic To do the magic. Output videos transcoded back to Amazon S3 bucket #2 Step-4 :Now! it's distribution time: Connect both bucket #1 and #2 to Amazon CloudFront. Determine edges and limit your distribution otherwise the cost is going to be $$$. Add regulations and filters to avoid denial attacks and theft of the content by non authorized access holders. Amazon S3/Transcoding Sumit Arora | sumit1234@gmail.com 11
  12. 12. Thanks Sumit Arora sumit1234@gmail.com Sumit Arora | sumit1234@gmail.com 12

×