2. twilio is a Cloud Service
for Web Developers to build and scale
Voice Communication Apps
that Make or Receive Phone Calls,
using only Basic Web Development skills
3. Pay Per Call Tracking
Private Calling
Outbound Alerts
Improve Customer Service
Coordinate Employees
Voicemail Boxes
So What Are
Voice Applications?
Reverse 911 Alerts
Intelligent Call Routing
Voice User Generated Content
Company PBX
Information Hot Line
4. uLaw Transcoding
Carriers Integration
PSTN
Channel Capacity
DID Acquisition
SIP Compatibility
Building Voice Applications Used to be
Codecs HARD QOS
Realtime CPU Capacity Planning
DTMF
Realtime Networking
Multiyear Carrier Contracts
5. Telecom Goo HTTP
XML
PSTN MP3, wav, etc.
CLECs
Twilio
SIP
uLaw
GSM
G.711
HARD EASY!
8. Simple, Powerful API
Only Five Building Blocks.
Scales Automatically
10 or 10,000 Simultaneous Calls.
Pay-As-You-Go Pricing
No upfront, no commitment. Pay only for what you use.
9. Powerful
^
Simple API
yP BX
pan
C om
ail
oi cem
V
ou ting
Ca ll R
10. Pa y-As-You-Go
^
Simple Pricing
Calls Phone Numbers
3¢ / min $5 / mo
No Contract
No Shenanigans
14. Ports are for Ships
No Per Port Prices
Let Your Voice Applications Scale
15. Telephony in the Cloud
Cloud Provider & Consumer
Carr
Tele ier
Hard com
ware
Reliable Telecom without Fixed Costs
Pass Flexibility on to Customers
Powered By
17. Twilio + EC2
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
19. Twilio + EC2
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
20. Twilio AMI
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
21. AWS Realms
DEV STAGE PROD
AWS Account X AWS Account Y AWS Account Z
S3 SQS S3 SQS S3 SQS
Privileged and Confidential
22. Twilio + EC2
At Boot Time, Pulls Twilio Code from SVN
(What Code to Pull?)
SVN
AMI
EC2
Privileged and Confidential
24. Twilio Boxconfig
Launches and Destroys Instances
Coordinates Load Balancers
UI + Pubsub + REST
BOXCONFIG
SVN
AMI
EC2
Privileged and Confidential
25. Pulling It All Together
Machine Startup/Shutdown
UI Boxconfig 1. Launch Instances
PUBSUB
REST API System 2. Configure Services per Role
3. Notify Interested Load Balancers
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
Privileged and Confidential
26. Pulling It All Together
Machine Startup/Shutdown
UI Boxconfig 1. Launch Instances
PUBSUB
REST API System 2. Configure Services per Role
3. Notify Interested Load Balancers
1
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 Media Layer
Privileged and Confidential
27. Pulling It All Together
Machine Startup/Shutdown
UI Boxconfig 1. Launch Instances
PUBSUB
REST API System 2. Configure Services per Role
3. Notify Interested Load Balancers
1
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 Media Layer
Privileged and Confidential
2 SVN
28. Pulling It All Together
Machine Startup/Shutdown
UI Boxconfig 1. Launch Instances
PUBSUB
REST API System 2. Configure Services per Role
3. Notify Interested Load Balancers
1
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 Media Layer
Privileged and Confidential
2 SVN
29. Pulling It All Together
Machine Startup/Shutdown
UI Boxconfig 1. Launch Instances
PUBSUB
REST API System 2. Configure Services per Role
3. Notify Interested Load Balancers
1
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 Media Layer
3
Privileged and Confidential
2
30. Pulling It All Together
Machine Startup/Shutdown
Boxconfig 1. Launch Instances
Nagios 4 System
PUBSUB
2. Configure Services per Role
3. Notify Interested Load Balancers
1
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 Media Layer
3
Privileged and Confidential
2
31. Pulling It All Together
Machine Startup/Shutdown
Boxconfig 1. Launch Instances
Nagios 4 System 5 PUBSUB
2. Configure Services per Role
6 3. Notify Interested Load Balancers
1
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 Media Layer
3
Privileged and Confidential
2
32. Pulling It All Together
Machine Startup/Shutdown
Boxconfig 1. Launch Instances
Nagios 4 System 5 PUBSUB
2. Configure Services per Role
6 3. Notify Interested Load Balancers
1
HTTP VoIP
Load Balancer Load Balancer
Web Web API API VoIP VoIP
Load Balancer Load Balancer Load Balancer
7 Load Balancer Load Balancer
7 Load Balancer
Database Database Database Media Layer Media Layer Media Layer
3
Privileged and Confidential
2
33. 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
34. Simplifying Telecom
Simple • Powerful • Pay-As-You-Go
Jeff Lawson
Co-Founder & CEO
twitter: @twilio
jeff@twilio.com
http://www.twilio.com