SlideShare a Scribd company logo
Platform 3: To Infinity and Beyond January, 2009 Summit XI
Gartner’s Hype Cycle - -
Overview Architecture Video Reporting - -
Architecture:  What’s that? The structures of the system The externally visible parts and the relationships between them - -
Architecture: Goals Performance Every page needs to yield a response within 5 seconds Availability/Reliability Always there! Scalability Dynamically add RAM/CPU Dynamically add more servers Agile/Flexible Can easily be adapted Follow best practices Accuracy No response left behind Quality Assurance - -
Architecture: Performance How do we achieve great performance? Using the right software Ruby on Rails Twitter, LinkedIn, Hulu Good application design Reporting has different needs than Authoring/Runtime Testing / Benchmarking / Tuning Rails has lots of good built-in utilities to make these easy We’re writing test code, right? Dedicating time for maintenance / new features As data grows As more complexity is brought in to application environment As we get smarter - -
Architecture: Performance Good Application Design –  Separation of Concerns Separating databases for Runtime and Reporting is a Good thing! Runtime is OLTP OLTP , refers to a class of systems that facilitate and manage transaction-oriented applications, typically for data entry and retrieval  transaction processing .  It has also been used to refer to processing in which the system responds immediately to user requests.  - Wikipedia Reporting is OLAP OLAP , is an approach to quickly provide answers to analytical queries that are multi-dimensional in nature.  Databases  configured for OLAP employ a  multidimensional data model , allowing for complex analytical and ad-hoc queries with a rapid execution time.  - Wikipedia Analytical processing on Reporting doesn’t impact performance on Runtime (ie Active Surveys in the field) because they are physically different systems. - -
Architecture: Availability/Reliability Co-location  Uptime eApps  99.98% over past 1000 days Colo4Dallas Guarantees 100%, reality? 99%+ Amazon Web Services  99.95% Redundancy Servers have different profiles for different services Databases Web / Application servers Proxy / Load balancing Server profiles are duplicated and online for…  Hardware failures  Load balancing during peak demand - -
Architecture: Scalability Reporting www.eqrtools.com  hosted at eApps   Runs on an $70/month plan (1.2 GB RAM Virtual Private Server) Pre-packaged with Java, Rails, MySQL, mail server, etc. Can upgrade package in minutes and add servers via web interface Cancel anytime Amazon Web Services S3 = Simple Storage Service EC2 = Elastic Cloud Computing CloudFront = Content Delivery Network Authoring/Runtime Hosted at Colo4Dallas n Front End Web/Application servers n Database servers Wowza Streaming Video Service via Amazon EC2 - -
Architecture: Amazon Web Services Simple Storage Service (S3) In use at Equation with JTS for 2+ years Expanding use for storing more stuff Images – plain, rollover, etc. Documents – PDF reports Videos EC2 Machine Images Elastic Cloud Computing (EC2) Provides ability to add servers (Linux/Windows flavors) for specific services i.e. Wowza Video Streaming Grabs content from S3 Can be expanded to other uses – Rails application hosting/database CloudFront Provides Content Delivery Network (CDN) to push to edge Content that we move into S3 Moves content closer to clients reducing network latency - -
Architecture: EC2 Simplified Virtual Machines/Servers Scalability in two dimensions Use as many machines as you need Various machine sizes available High availability High bandwidth - -
Architecture: EC2 Instance Types EC2 supports different  instance types  Small Instance 1.7 GB memory, 32-bit platform, I/O Performance: Moderate 1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit) 160 GB instance storage (150 GB plus 10 GB root partition) Price: $0.10 per instance hour Large Instance 7.5 GB memory, 64-bit platform , I/O Performance: High 4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each) 850 GB instance storage (2 x 420 GB plus 10 GB root partition) Price: $0.40 per instance hour Extra Large Instance 15 GB memory, 64-bit platform, I/O Performance: High 8 EC2 Compute Units (4 virtual cores with 2 EC2 Compute Units each) 1,690 GB instance storage (4 x 420 GB plus 10 GB root partition) Price: $0.80 per instance hour - -
- - CloudFront: Content Delivery Network and how it works…
Amazon – CloudFront CDN Copies of files in S3 bucket are accessed/cached from edge servers around the world. - - Amazon: CloudFront
Architecture:  Amazon Benefits No upfront investments  No contract No hardware to purchase, install/fit, maintain Pay for what we use Offer variety of uses – Content hosting, machine hosting, streaming video  Competitors often charge upfront and monthly fees and don’t offer one-stop-service We can dynamically add/remove machines as we need them Additional applications built on EC2 are also available… Wowza Video Streaming Jungle Disk (backup/recovery) GigaVox Media (Podcast hosting) Morph (Application hosting) RightScale (Application hosting/monitoring) Scalr (Load Balancing/farm) - -
Architecture:  Quality Assurance Code Coverage - -
Architecture: Quality Assurance Example – Question controller - -
Rich Media: Audio, Images and Video - -
Video – The learning curve… grok  as "to understand intuitively or by empathy; to establish rapport with" and "to empathize or communicate sympathetically (with); also, to experience enjoyment.“  (source Old Oxford Dictionary) - -
Serving Video is like… TV Content  (i.e. The Ad) Delivery (i.e. Cable, Satellite, Rabbit ears) Viewer (i.e. – The television box)
The Content:  Preparation There are many source formats to video AVI (early Windows format), Quicktime (.mov), Windows Media, MPEG, Flash Files are large and not optimized for web delivery Encoded for other mediums
Content conversion The Old Way Sorensen Squeeze A desktop tool where we manually took a file and converted into multiple varying bitrate Flash files Uploaded file(s) to third party hosted Flash Video service The New Way File uploader ffmpeg (under the covers) An open source utility that has been wrapped with Ruby packages to provide compression in the P3 Application Media is compressed for optimal playback experience Media is still formatted to flash Most commonly served format on Internet (> 92%) Converted file uploaded to Amazon  File resides in S3 folder Streamed via Wowza server hosted on EC2 instance
Video: ffmpeg Still a bit of magic involved… Reduce this, increase that… - -
Video:  ffmpeg conversion But at least we’ve built tools! - -
Video:  Delivery Progressive Download Copy of video is made on your local temp drive and then buffered back through the player as it downloads Lacks IP protection ESPN Video is sent to player over http from file system on host server Some companies will block content by MIME type video over http on port 80 is the easiest way to get past security Streaming Video is streamed in real time from streaming video server No local copy made Near instantaneous playback Uses rtmp protocol Important to size/compress correctly for intended audience - -
Video: Delivery Factors impacting Client reception Other programs running How much available CPU/RAM does the respondent’s web-enabled device have? Bandwidth DSL, Cable, dialup? Bandwidth varies during a video session (i.e. 30 second Ad) - -
Video: The Player The swf file Hosted on server, embedded in page Skinnable Remove controls Plays either progressive or streaming JW Player is the most ubiquitous - -
P3 Reporting - -
Reporting:  Online Analytical Processing (OLAP) - -
Reporting: The Update Algorithm Scheduled Batch Go update all the surveys every x minutes… Open and recently closed On Demand Update  this  survey now Real-time Asynchronously, grab queued responses from a MQ with updates from the Runtime - -
Reporting: On demand - -
Reporting:  Key features View results by Question Filtering By status Compound filters based on question/choice sets Crosstabs Question v Question crosstabs Filter by status Quotas / Segments View current / total counts Monitor survey progress Total, Last day, Last hour… - -
Reporting:  What’s left? More testing… Report generation PDF Other formats Email notification More slicing/dicing tools Migration to Scalr??? Beta with select clients User feedback Incorporate into future releases - -
Ad

More Related Content

What's hot (12)

High Availability in the Cloud - Architectural Best Practices
High Availability in the Cloud - Architectural Best PracticesHigh Availability in the Cloud - Architectural Best Practices
High Availability in the Cloud - Architectural Best Practices
RightScale
 
DOTNET 2013 IEEE CLOUDCOMPUTING PROJECT An adaptive cloud downloading service
DOTNET 2013 IEEE CLOUDCOMPUTING PROJECT An adaptive cloud downloading serviceDOTNET 2013 IEEE CLOUDCOMPUTING PROJECT An adaptive cloud downloading service
DOTNET 2013 IEEE CLOUDCOMPUTING PROJECT An adaptive cloud downloading service
IEEEGLOBALSOFTTECHNOLOGIES
 
Cloud Architecture Tutorial - Platform Component Architecture (2of3)
Cloud Architecture Tutorial - Platform Component Architecture (2of3)Cloud Architecture Tutorial - Platform Component Architecture (2of3)
Cloud Architecture Tutorial - Platform Component Architecture (2of3)
Adrian Cockcroft
 
Cloud Services Powered by IBM SoftLayer and NetflixOSS
Cloud Services Powered by IBM SoftLayer and NetflixOSSCloud Services Powered by IBM SoftLayer and NetflixOSS
Cloud Services Powered by IBM SoftLayer and NetflixOSS
aspyker
 
Microservices with Terraform, Docker and the Cloud. DevOps Wet 2018
Microservices with Terraform, Docker and the Cloud. DevOps Wet 2018Microservices with Terraform, Docker and the Cloud. DevOps Wet 2018
Microservices with Terraform, Docker and the Cloud. DevOps Wet 2018
Derek Ashmore
 
Cloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudCloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and Cloud
Eberhard Wolff
 
Architecting for the cloud scability-availability
Architecting for the cloud scability-availabilityArchitecting for the cloud scability-availability
Architecting for the cloud scability-availability
Len Bass
 
Double-Take Software
Double-Take SoftwareDouble-Take Software
Double-Take Software
1CloudRoad.com
 
IBM Message Hub service in Bluemix - Apache Kafka in a public cloud
IBM Message Hub service in Bluemix - Apache Kafka in a public cloudIBM Message Hub service in Bluemix - Apache Kafka in a public cloud
IBM Message Hub service in Bluemix - Apache Kafka in a public cloud
Andrew Schofield
 
Content delivery Plone Symposium East 2010
Content delivery Plone Symposium East 2010Content delivery Plone Symposium East 2010
Content delivery Plone Symposium East 2010
alan runyan
 
Training AWS: Module 7 - Route53
Training AWS: Module 7 - Route53Training AWS: Module 7 - Route53
Training AWS: Module 7 - Route53
Bùi Quang Lâm
 
Double-Take for Migrations - thinkASG University Series
Double-Take for Migrations - thinkASG University SeriesDouble-Take for Migrations - thinkASG University Series
Double-Take for Migrations - thinkASG University Series
thinkASG
 
High Availability in the Cloud - Architectural Best Practices
High Availability in the Cloud - Architectural Best PracticesHigh Availability in the Cloud - Architectural Best Practices
High Availability in the Cloud - Architectural Best Practices
RightScale
 
DOTNET 2013 IEEE CLOUDCOMPUTING PROJECT An adaptive cloud downloading service
DOTNET 2013 IEEE CLOUDCOMPUTING PROJECT An adaptive cloud downloading serviceDOTNET 2013 IEEE CLOUDCOMPUTING PROJECT An adaptive cloud downloading service
DOTNET 2013 IEEE CLOUDCOMPUTING PROJECT An adaptive cloud downloading service
IEEEGLOBALSOFTTECHNOLOGIES
 
Cloud Architecture Tutorial - Platform Component Architecture (2of3)
Cloud Architecture Tutorial - Platform Component Architecture (2of3)Cloud Architecture Tutorial - Platform Component Architecture (2of3)
Cloud Architecture Tutorial - Platform Component Architecture (2of3)
Adrian Cockcroft
 
Cloud Services Powered by IBM SoftLayer and NetflixOSS
Cloud Services Powered by IBM SoftLayer and NetflixOSSCloud Services Powered by IBM SoftLayer and NetflixOSS
Cloud Services Powered by IBM SoftLayer and NetflixOSS
aspyker
 
Microservices with Terraform, Docker and the Cloud. DevOps Wet 2018
Microservices with Terraform, Docker and the Cloud. DevOps Wet 2018Microservices with Terraform, Docker and the Cloud. DevOps Wet 2018
Microservices with Terraform, Docker and the Cloud. DevOps Wet 2018
Derek Ashmore
 
Cloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudCloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and Cloud
Eberhard Wolff
 
Architecting for the cloud scability-availability
Architecting for the cloud scability-availabilityArchitecting for the cloud scability-availability
Architecting for the cloud scability-availability
Len Bass
 
IBM Message Hub service in Bluemix - Apache Kafka in a public cloud
IBM Message Hub service in Bluemix - Apache Kafka in a public cloudIBM Message Hub service in Bluemix - Apache Kafka in a public cloud
IBM Message Hub service in Bluemix - Apache Kafka in a public cloud
Andrew Schofield
 
Content delivery Plone Symposium East 2010
Content delivery Plone Symposium East 2010Content delivery Plone Symposium East 2010
Content delivery Plone Symposium East 2010
alan runyan
 
Training AWS: Module 7 - Route53
Training AWS: Module 7 - Route53Training AWS: Module 7 - Route53
Training AWS: Module 7 - Route53
Bùi Quang Lâm
 
Double-Take for Migrations - thinkASG University Series
Double-Take for Migrations - thinkASG University SeriesDouble-Take for Migrations - thinkASG University Series
Double-Take for Migrations - thinkASG University Series
thinkASG
 

Viewers also liked (13)

Streaming from the cloud
Streaming from the cloudStreaming from the cloud
Streaming from the cloud
dmulford
 
Video Streaming
Video StreamingVideo Streaming
Video Streaming
webcastinglive
 
Spark support company-brochure
Spark support company-brochureSpark support company-brochure
Spark support company-brochure
SparkSupport Infotech Pvt Ltd
 
openUC & Virtualization
openUC & VirtualizationopenUC & Virtualization
openUC & Virtualization
Christina Inge
 
WebRTC Israel Meet-Up
WebRTC Israel Meet-UpWebRTC Israel Meet-Up
WebRTC Israel Meet-Up
Alan Quayle
 
Dynamite Video Streaming
Dynamite Video StreamingDynamite Video Streaming
Dynamite Video Streaming
University of Salford
 
2010 06-10 aws overview - capgenimi sap
2010 06-10 aws overview - capgenimi sap2010 06-10 aws overview - capgenimi sap
2010 06-10 aws overview - capgenimi sap
mabuhr
 
Live streaming
Live streamingLive streaming
Live streaming
James VanDyke
 
Cloud Transcoding with Amazon Web Services
Cloud Transcoding with Amazon Web ServicesCloud Transcoding with Amazon Web Services
Cloud Transcoding with Amazon Web Services
Paolo latella
 
Wowza Media Scheduling Sloution - 와우자 방송편성 솔루션
Wowza Media Scheduling Sloution - 와우자 방송편성 솔루션Wowza Media Scheduling Sloution - 와우자 방송편성 솔루션
Wowza Media Scheduling Sloution - 와우자 방송편성 솔루션
대근 윤
 
Online storage for the masses and the case of pithos
Online storage for the masses and the case of pithosOnline storage for the masses and the case of pithos
Online storage for the masses and the case of pithos
nkoziris
 
Netflix Entering the Video on Demand Through Providing Streaming Movies
Netflix Entering the Video on Demand Through Providing Streaming MoviesNetflix Entering the Video on Demand Through Providing Streaming Movies
Netflix Entering the Video on Demand Through Providing Streaming Movies
Hulla Girl
 
Using Oracle Database with Amazon Web Services
Using Oracle Database with Amazon Web ServicesUsing Oracle Database with Amazon Web Services
Using Oracle Database with Amazon Web Services
guest484c12
 
Streaming from the cloud
Streaming from the cloudStreaming from the cloud
Streaming from the cloud
dmulford
 
openUC & Virtualization
openUC & VirtualizationopenUC & Virtualization
openUC & Virtualization
Christina Inge
 
WebRTC Israel Meet-Up
WebRTC Israel Meet-UpWebRTC Israel Meet-Up
WebRTC Israel Meet-Up
Alan Quayle
 
2010 06-10 aws overview - capgenimi sap
2010 06-10 aws overview - capgenimi sap2010 06-10 aws overview - capgenimi sap
2010 06-10 aws overview - capgenimi sap
mabuhr
 
Cloud Transcoding with Amazon Web Services
Cloud Transcoding with Amazon Web ServicesCloud Transcoding with Amazon Web Services
Cloud Transcoding with Amazon Web Services
Paolo latella
 
Wowza Media Scheduling Sloution - 와우자 방송편성 솔루션
Wowza Media Scheduling Sloution - 와우자 방송편성 솔루션Wowza Media Scheduling Sloution - 와우자 방송편성 솔루션
Wowza Media Scheduling Sloution - 와우자 방송편성 솔루션
대근 윤
 
Online storage for the masses and the case of pithos
Online storage for the masses and the case of pithosOnline storage for the masses and the case of pithos
Online storage for the masses and the case of pithos
nkoziris
 
Netflix Entering the Video on Demand Through Providing Streaming Movies
Netflix Entering the Video on Demand Through Providing Streaming MoviesNetflix Entering the Video on Demand Through Providing Streaming Movies
Netflix Entering the Video on Demand Through Providing Streaming Movies
Hulla Girl
 
Using Oracle Database with Amazon Web Services
Using Oracle Database with Amazon Web ServicesUsing Oracle Database with Amazon Web Services
Using Oracle Database with Amazon Web Services
guest484c12
 
Ad

Similar to EQR Reporting: Rails + Amazon EC2 (20)

Cloud Computing Primer: Using cloud computing tools in your museum
Cloud Computing Primer: Using cloud computing tools in your museumCloud Computing Primer: Using cloud computing tools in your museum
Cloud Computing Primer: Using cloud computing tools in your museum
Robert J. Stein
 
Cloud Computing Workshop
Cloud Computing WorkshopCloud Computing Workshop
Cloud Computing Workshop
Charlie Moad
 
Windows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressWindows Azure & How to Deploy Wordress
Windows Azure & How to Deploy Wordress
George Kanellopoulos
 
Real-time Code Sharing Service for one-to-many coding classes
Real-time Code Sharing Service for one-to-many coding classesReal-time Code Sharing Service for one-to-many coding classes
Real-time Code Sharing Service for one-to-many coding classes
a2tt
 
CMG2013 Workshop: Netflix Cloud Native, Capacity, Performance and Cost Optimi...
CMG2013 Workshop: Netflix Cloud Native, Capacity, Performance and Cost Optimi...CMG2013 Workshop: Netflix Cloud Native, Capacity, Performance and Cost Optimi...
CMG2013 Workshop: Netflix Cloud Native, Capacity, Performance and Cost Optimi...
Adrian Cockcroft
 
Amazon CloudFront Complete with Blazeclan's Media Solution Stack
Amazon CloudFront Complete with Blazeclan's Media Solution StackAmazon CloudFront Complete with Blazeclan's Media Solution Stack
Amazon CloudFront Complete with Blazeclan's Media Solution Stack
Blazeclan Technologies Private Limited
 
Amazon Webservice & Cloud Computing
Amazon Webservice & Cloud ComputingAmazon Webservice & Cloud Computing
Amazon Webservice & Cloud Computing
Jack Smith
 
Dimension data cloud for the enterprise architect
Dimension data cloud for the enterprise architectDimension data cloud for the enterprise architect
Dimension data cloud for the enterprise architect
David Sawatzke
 
India Webinar
India WebinarIndia Webinar
India Webinar
Ganesh Raja
 
Dev ops 2016 dockerizing the it
Dev ops 2016 dockerizing the itDev ops 2016 dockerizing the it
Dev ops 2016 dockerizing the it
Deveo
 
Leveraging The Cloud In 2009
Leveraging The Cloud In 2009Leveraging The Cloud In 2009
Leveraging The Cloud In 2009
Ed Laczynski
 
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Bhupesh Bansal
 
Hadoop and Voldemort @ LinkedIn
Hadoop and Voldemort @ LinkedInHadoop and Voldemort @ LinkedIn
Hadoop and Voldemort @ LinkedIn
Hadoop User Group
 
Reducing latency on the web with the Azure CDN - DevSum - SWAG
Reducing latency on the web with the Azure CDN - DevSum - SWAGReducing latency on the web with the Azure CDN - DevSum - SWAG
Reducing latency on the web with the Azure CDN - DevSum - SWAG
Maarten Balliauw
 
Scaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, GoalsScaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, Goals
kamaelian
 
The Application-Centric Cloud: Why the Network Still Matters
The Application-Centric Cloud:  Why the Network Still MattersThe Application-Centric Cloud:  Why the Network Still Matters
The Application-Centric Cloud: Why the Network Still Matters
Cisco Canada
 
On demand video_streaming_apps_and_its_server_side_cloud_infrastructure_at_aws
On demand video_streaming_apps_and_its_server_side_cloud_infrastructure_at_awsOn demand video_streaming_apps_and_its_server_side_cloud_infrastructure_at_aws
On demand video_streaming_apps_and_its_server_side_cloud_infrastructure_at_aws
Sumit Arora
 
Serhiy Kalinets "Embracing architectural challenges in the modern .NET world"
Serhiy Kalinets "Embracing architectural challenges in the modern .NET world"Serhiy Kalinets "Embracing architectural challenges in the modern .NET world"
Serhiy Kalinets "Embracing architectural challenges in the modern .NET world"
Fwdays
 
Introduction To Cloud Computing
Introduction To Cloud ComputingIntroduction To Cloud Computing
Introduction To Cloud Computing
Rinat Shagisultanov
 
Amazon Elastic Map Reduce - Ian Meyers
Amazon Elastic Map Reduce - Ian MeyersAmazon Elastic Map Reduce - Ian Meyers
Amazon Elastic Map Reduce - Ian Meyers
huguk
 
Cloud Computing Primer: Using cloud computing tools in your museum
Cloud Computing Primer: Using cloud computing tools in your museumCloud Computing Primer: Using cloud computing tools in your museum
Cloud Computing Primer: Using cloud computing tools in your museum
Robert J. Stein
 
Cloud Computing Workshop
Cloud Computing WorkshopCloud Computing Workshop
Cloud Computing Workshop
Charlie Moad
 
Windows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressWindows Azure & How to Deploy Wordress
Windows Azure & How to Deploy Wordress
George Kanellopoulos
 
Real-time Code Sharing Service for one-to-many coding classes
Real-time Code Sharing Service for one-to-many coding classesReal-time Code Sharing Service for one-to-many coding classes
Real-time Code Sharing Service for one-to-many coding classes
a2tt
 
CMG2013 Workshop: Netflix Cloud Native, Capacity, Performance and Cost Optimi...
CMG2013 Workshop: Netflix Cloud Native, Capacity, Performance and Cost Optimi...CMG2013 Workshop: Netflix Cloud Native, Capacity, Performance and Cost Optimi...
CMG2013 Workshop: Netflix Cloud Native, Capacity, Performance and Cost Optimi...
Adrian Cockcroft
 
Amazon Webservice & Cloud Computing
Amazon Webservice & Cloud ComputingAmazon Webservice & Cloud Computing
Amazon Webservice & Cloud Computing
Jack Smith
 
Dimension data cloud for the enterprise architect
Dimension data cloud for the enterprise architectDimension data cloud for the enterprise architect
Dimension data cloud for the enterprise architect
David Sawatzke
 
Dev ops 2016 dockerizing the it
Dev ops 2016 dockerizing the itDev ops 2016 dockerizing the it
Dev ops 2016 dockerizing the it
Deveo
 
Leveraging The Cloud In 2009
Leveraging The Cloud In 2009Leveraging The Cloud In 2009
Leveraging The Cloud In 2009
Ed Laczynski
 
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Bhupesh Bansal
 
Hadoop and Voldemort @ LinkedIn
Hadoop and Voldemort @ LinkedInHadoop and Voldemort @ LinkedIn
Hadoop and Voldemort @ LinkedIn
Hadoop User Group
 
Reducing latency on the web with the Azure CDN - DevSum - SWAG
Reducing latency on the web with the Azure CDN - DevSum - SWAGReducing latency on the web with the Azure CDN - DevSum - SWAG
Reducing latency on the web with the Azure CDN - DevSum - SWAG
Maarten Balliauw
 
Scaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, GoalsScaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, Goals
kamaelian
 
The Application-Centric Cloud: Why the Network Still Matters
The Application-Centric Cloud:  Why the Network Still MattersThe Application-Centric Cloud:  Why the Network Still Matters
The Application-Centric Cloud: Why the Network Still Matters
Cisco Canada
 
On demand video_streaming_apps_and_its_server_side_cloud_infrastructure_at_aws
On demand video_streaming_apps_and_its_server_side_cloud_infrastructure_at_awsOn demand video_streaming_apps_and_its_server_side_cloud_infrastructure_at_aws
On demand video_streaming_apps_and_its_server_side_cloud_infrastructure_at_aws
Sumit Arora
 
Serhiy Kalinets "Embracing architectural challenges in the modern .NET world"
Serhiy Kalinets "Embracing architectural challenges in the modern .NET world"Serhiy Kalinets "Embracing architectural challenges in the modern .NET world"
Serhiy Kalinets "Embracing architectural challenges in the modern .NET world"
Fwdays
 
Amazon Elastic Map Reduce - Ian Meyers
Amazon Elastic Map Reduce - Ian MeyersAmazon Elastic Map Reduce - Ian Meyers
Amazon Elastic Map Reduce - Ian Meyers
huguk
 
Ad

EQR Reporting: Rails + Amazon EC2

  • 1. Platform 3: To Infinity and Beyond January, 2009 Summit XI
  • 4. Architecture: What’s that? The structures of the system The externally visible parts and the relationships between them - -
  • 5. Architecture: Goals Performance Every page needs to yield a response within 5 seconds Availability/Reliability Always there! Scalability Dynamically add RAM/CPU Dynamically add more servers Agile/Flexible Can easily be adapted Follow best practices Accuracy No response left behind Quality Assurance - -
  • 6. Architecture: Performance How do we achieve great performance? Using the right software Ruby on Rails Twitter, LinkedIn, Hulu Good application design Reporting has different needs than Authoring/Runtime Testing / Benchmarking / Tuning Rails has lots of good built-in utilities to make these easy We’re writing test code, right? Dedicating time for maintenance / new features As data grows As more complexity is brought in to application environment As we get smarter - -
  • 7. Architecture: Performance Good Application Design – Separation of Concerns Separating databases for Runtime and Reporting is a Good thing! Runtime is OLTP OLTP , refers to a class of systems that facilitate and manage transaction-oriented applications, typically for data entry and retrieval transaction processing . It has also been used to refer to processing in which the system responds immediately to user requests. - Wikipedia Reporting is OLAP OLAP , is an approach to quickly provide answers to analytical queries that are multi-dimensional in nature. Databases configured for OLAP employ a multidimensional data model , allowing for complex analytical and ad-hoc queries with a rapid execution time. - Wikipedia Analytical processing on Reporting doesn’t impact performance on Runtime (ie Active Surveys in the field) because they are physically different systems. - -
  • 8. Architecture: Availability/Reliability Co-location Uptime eApps 99.98% over past 1000 days Colo4Dallas Guarantees 100%, reality? 99%+ Amazon Web Services 99.95% Redundancy Servers have different profiles for different services Databases Web / Application servers Proxy / Load balancing Server profiles are duplicated and online for… Hardware failures Load balancing during peak demand - -
  • 9. Architecture: Scalability Reporting www.eqrtools.com hosted at eApps Runs on an $70/month plan (1.2 GB RAM Virtual Private Server) Pre-packaged with Java, Rails, MySQL, mail server, etc. Can upgrade package in minutes and add servers via web interface Cancel anytime Amazon Web Services S3 = Simple Storage Service EC2 = Elastic Cloud Computing CloudFront = Content Delivery Network Authoring/Runtime Hosted at Colo4Dallas n Front End Web/Application servers n Database servers Wowza Streaming Video Service via Amazon EC2 - -
  • 10. Architecture: Amazon Web Services Simple Storage Service (S3) In use at Equation with JTS for 2+ years Expanding use for storing more stuff Images – plain, rollover, etc. Documents – PDF reports Videos EC2 Machine Images Elastic Cloud Computing (EC2) Provides ability to add servers (Linux/Windows flavors) for specific services i.e. Wowza Video Streaming Grabs content from S3 Can be expanded to other uses – Rails application hosting/database CloudFront Provides Content Delivery Network (CDN) to push to edge Content that we move into S3 Moves content closer to clients reducing network latency - -
  • 11. Architecture: EC2 Simplified Virtual Machines/Servers Scalability in two dimensions Use as many machines as you need Various machine sizes available High availability High bandwidth - -
  • 12. Architecture: EC2 Instance Types EC2 supports different instance types Small Instance 1.7 GB memory, 32-bit platform, I/O Performance: Moderate 1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit) 160 GB instance storage (150 GB plus 10 GB root partition) Price: $0.10 per instance hour Large Instance 7.5 GB memory, 64-bit platform , I/O Performance: High 4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each) 850 GB instance storage (2 x 420 GB plus 10 GB root partition) Price: $0.40 per instance hour Extra Large Instance 15 GB memory, 64-bit platform, I/O Performance: High 8 EC2 Compute Units (4 virtual cores with 2 EC2 Compute Units each) 1,690 GB instance storage (4 x 420 GB plus 10 GB root partition) Price: $0.80 per instance hour - -
  • 13. - - CloudFront: Content Delivery Network and how it works…
  • 14. Amazon – CloudFront CDN Copies of files in S3 bucket are accessed/cached from edge servers around the world. - - Amazon: CloudFront
  • 15. Architecture: Amazon Benefits No upfront investments No contract No hardware to purchase, install/fit, maintain Pay for what we use Offer variety of uses – Content hosting, machine hosting, streaming video Competitors often charge upfront and monthly fees and don’t offer one-stop-service We can dynamically add/remove machines as we need them Additional applications built on EC2 are also available… Wowza Video Streaming Jungle Disk (backup/recovery) GigaVox Media (Podcast hosting) Morph (Application hosting) RightScale (Application hosting/monitoring) Scalr (Load Balancing/farm) - -
  • 16. Architecture: Quality Assurance Code Coverage - -
  • 17. Architecture: Quality Assurance Example – Question controller - -
  • 18. Rich Media: Audio, Images and Video - -
  • 19. Video – The learning curve… grok as "to understand intuitively or by empathy; to establish rapport with" and "to empathize or communicate sympathetically (with); also, to experience enjoyment.“ (source Old Oxford Dictionary) - -
  • 20. Serving Video is like… TV Content (i.e. The Ad) Delivery (i.e. Cable, Satellite, Rabbit ears) Viewer (i.e. – The television box)
  • 21. The Content: Preparation There are many source formats to video AVI (early Windows format), Quicktime (.mov), Windows Media, MPEG, Flash Files are large and not optimized for web delivery Encoded for other mediums
  • 22. Content conversion The Old Way Sorensen Squeeze A desktop tool where we manually took a file and converted into multiple varying bitrate Flash files Uploaded file(s) to third party hosted Flash Video service The New Way File uploader ffmpeg (under the covers) An open source utility that has been wrapped with Ruby packages to provide compression in the P3 Application Media is compressed for optimal playback experience Media is still formatted to flash Most commonly served format on Internet (> 92%) Converted file uploaded to Amazon File resides in S3 folder Streamed via Wowza server hosted on EC2 instance
  • 23. Video: ffmpeg Still a bit of magic involved… Reduce this, increase that… - -
  • 24. Video: ffmpeg conversion But at least we’ve built tools! - -
  • 25. Video: Delivery Progressive Download Copy of video is made on your local temp drive and then buffered back through the player as it downloads Lacks IP protection ESPN Video is sent to player over http from file system on host server Some companies will block content by MIME type video over http on port 80 is the easiest way to get past security Streaming Video is streamed in real time from streaming video server No local copy made Near instantaneous playback Uses rtmp protocol Important to size/compress correctly for intended audience - -
  • 26. Video: Delivery Factors impacting Client reception Other programs running How much available CPU/RAM does the respondent’s web-enabled device have? Bandwidth DSL, Cable, dialup? Bandwidth varies during a video session (i.e. 30 second Ad) - -
  • 27. Video: The Player The swf file Hosted on server, embedded in page Skinnable Remove controls Plays either progressive or streaming JW Player is the most ubiquitous - -
  • 29. Reporting: Online Analytical Processing (OLAP) - -
  • 30. Reporting: The Update Algorithm Scheduled Batch Go update all the surveys every x minutes… Open and recently closed On Demand Update this survey now Real-time Asynchronously, grab queued responses from a MQ with updates from the Runtime - -
  • 32. Reporting: Key features View results by Question Filtering By status Compound filters based on question/choice sets Crosstabs Question v Question crosstabs Filter by status Quotas / Segments View current / total counts Monitor survey progress Total, Last day, Last hour… - -
  • 33. Reporting: What’s left? More testing… Report generation PDF Other formats Email notification More slicing/dicing tools Migration to Scalr??? Beta with select clients User feedback Incorporate into future releases - -