• Save
Twilio Voice Applications with Amazon AWS S3 and EC2
Upcoming SlideShare
Loading in...5
×
 

Twilio Voice Applications with Amazon AWS S3 and EC2

on

  • 19,957 views

 

Statistics

Views

Total Views
19,957
Views on SlideShare
19,587
Embed Views
370

Actions

Likes
45
Downloads
4
Comments
1

24 Embeds 370

http://technbiz.blogspot.com 239
http://www.slideshare.net 51
http://technbiz.blogspot.in 22
http://technbiz.blogspot.ca 15
http://technbiz.blogspot.co.uk 8
https://twitter.com 7
http://ideathon.tumblr.com 4
http://technbiz.blogspot.com.au 3
http://technbiz.blogspot.fr 2
http://technbiz.blogspot.de 2
http://translate.googleusercontent.com 2
http://technbiz.blogspot.be 2
http://espagnestage.com 2
http://technbiz.blogspot.com.br 1
http://technbiz.blogspot.com.es 1
http://technbiz.blogspot.sg 1
http://www.agglom.com 1
http://technbiz.blogspot.co.nz 1
https://si0.twimg.com 1
http://technbiz.blogspot.nl 1
http://technbiz.blogspot.mx 1
http://nakula.typepad.com 1
http://pullingthingsapart.com 1
http://technbiz.blogspot.co.at 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • The use of imagery in this slideshow is really efficient. You've done a fantastic job here friend.
    Sharika
    http://financeadded.com http://traveltreble.com
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Twilio Voice Applications with Amazon AWS S3 and EC2 Twilio Voice Applications with Amazon AWS S3 and EC2 Presentation Transcript

  • Copyright 2008 Twilio
  • Empower Web Developers To build Voice Communication Apps that Make or Receive Phone Calls, using only Basic Web Development skills
  • Simple API Only Five Building Blocks. Powerful API Build Advanced, Useful Applications Pay-As-You-Go Pricing No upfront, no commitment. Pay only for what you use.
  • Voice Communications (we use every day) Sales Automation Order Inquiry Customer Relations Management Intelligent Call Distribution Emergency Notification Appointment Reminders Voicemail Typically Costly and Difficult to Build
  • Costly to Build Telecom Engineers Tiny Workforce Specialized Skill Set Only Thousands of Qualified People Voice Applications (Cisco Certified, etc.) 2 $20B Market 1 Complex Open Source Options Steep Learning Curve
  • Commoditize the Skills Telecom Engineers (thousands) Voice Communications Web Developers Largest engineering workforce! $20B Market Millions of Skilled Workers Processes Agile Development Commodity Hosting Existing Infrastructure Investment Twilio
  • Telecom Goo HTTP XML MP3, wav, etc. Twilio HARD EASY!
  • Simple API <Say> <Play> <Say>Thank you for calling XYZ Corp.</Say> <Play>http://mycompany.com/greeting.mp3</Play> <Record> <Record action=’http://mycompany.com/handler.php’/> <Gather> <Gather numDigits=’1’ action=’http://mycompany.com/handler.php’ /> <Dial> <Dial>415-867-5309</Dial> Just 5 Building Blocks
  • Example: Example: Example:
  • Next Grand Central In 15 Lines of PHP!
  • Pay-As-You-Go Pricing 3¢ / minute 5¢ / minute toll free $5 / month per phone number No Contract, No Shenanigans Free Trial with 1000 Minutes Privileged and Confidential
  • Twilio + AWS S3 Storage of Voice Recordings SQS Decouples Telecom Infrastructure from Billing EC2 Lots of CPU Intensive Services Handle 9-5 Peaks, Minimize Costs Off-Peak Pass Savings on to Customers! Privileged and Confidential
  • Twilio + AWS HTTP VoIP Load Balancer Load Balancer Web Web API API VoIP VoIP Load Balancer Load Balancer Load Balancer Load Balancer Load Balancer Load Balancer Database Database Database EC2 Privileged and Confidential
  • Twilio + AWS Realtime Transcoding <Play>http://myserver.com/foo.mp3</Play> 256kbps stereo MP3 ➜ 11khz 8bit mono ulaw <Record/> http://api.twilio.com/..../Recordings/RE12345 http://api.twilio.com/..../Recordings/RE12345.mp3 11khz 8bit mono wav ➜ MP3 EC2 Privileged and Confidential
  • Twilio + AWS HTTP VoIP Load Balancer Load Balancer Web Web API API VoIP VoIP Load Balancer Load Balancer Load Balancer Load Balancer Load Balancer Load Balancer Database Database Database Media Layer Media Layer EC2 Privileged and Confidential
  • Twilio + AWS Cent5 3rd Party Software for All Machines (Apache, MySql, HaProxy, etc.) Automated Build Process (out of SVN) Rev’d Infrequently (Every couple months or so) AMI EC2 Privileged and Confidential
  • Twilio + AWS At Boot Time, Pulls Twilio Code from SVN (What Code to Pull?) SVN AMI EC2 Privileged and Confidential
  • Twilio + AWS Realms: At Boot Time, Pulls Twilio Code from SVN Dev, Stage, Prod (What Code Accounts Separate AWS to Pull?) Completely Firewalled Off Credentials Access Controlled SVN AMI EC2 Privileged and Confidential
  • Twilio + AWS SVN Externals Each Realm has a “rootfs” in SVN Is overlaid on the AMI filesystem @ boottime svnroot/realm-config/dev/rootfs svnroot/realm-config/stage/rootfs svnroot/realm-config/prod/rootfs Each “rootfs” has SVN Externals Point to various Twilio code-bases @REV Bump versions independently in each realm Bump different code bases independently svnroot/realm-config/dev/rootfs: svnroot/some-codebase ➜ ./usr/local/some-codebase @HEAD svnroot/come-config-files ➜ ./etc/some-config-files @HEAD svnroot/realm-config/prod/rootfs: svnroot/some-codebase ➜ ./usr/local/some-codebase @12345 svnroot/come-config-files ➜ ./etc/some-config-files @12000 (Could also use branching / tagging just as easily.) Privileged and Confidential
  • Twilio + AWS At Boot Time, Pulls Twilio Code from SVN (What Code to Pull?) svn export realm-config/$MYREALM/rootfs Pulls all code targeted at this realm, dropped correctly in the filesystem! SVN AMI EC2 Privileged and Confidential
  • Twilio + AWS Launches and Destroys Instances Coordinates Load Balancers UI + Pubsub + REST BOXCONFIG SVN AMI EC2 Privileged and Confidential
  • Twilio + AWS Each Instance Serves One Or More “Roles” Purpose of the Instance (VoIP, web, API, transcoding, etc.) Set of Init scripts EC2 Security Group Nagios Settings At Boot, Boxconfig: Starts Correct Services Notifies All Load Balancers Updates Nagios Privileged and Confidential
  • Twilio + AWS Machine Startup/Shutdown Boxconfig 1. Launch Instances System 3 PUBSUB 2. Configure Services per Role 3 3. Notify Interested Load Balancers 1 HTTP VoIP Load Balancer Load Balancer Web Web API API VoIP VoIP Load Balancer Load Balancer Load Balancer 3 Load Balancer Load Balancer 3 Load Balancer Database Database Database Media Layer Media Layer Media Laye 2 Privileged and Confidential
  • EC2 Learnings Test “Roles” on Instance Sizes Find optimal cost / performance tradeoff Great for Load Testing Spin up a test cluster, fire traffic, spin down... Total cost: $5-10! Great for Failure Testing Hrm, what happens if I shoot this database... terminateInstances() Privileged and Confidential
  • Jeff Lawson jeff@twilio.com http://www.twilio.com Twitter: @twilio Privileged and Confidential