From
Proof of Concept 
to Production


Lessons learnt
The Lesson:


PoC != Production
who are we?

Erol
Ziya

Rob
Baines
hi-who?
We were…
(UK)

(USA)

(Spain / Lat AM)
More
recently...
So who
are

Labs?
Where does

fit in?
Promoted 

customer’s numbers

then left

them to it…
What did we
want to change

?
Add value

Get involved in
the calls

Help 

our customers
So we built a PoC...
POC Architecture
They

LOVED
it

!
Let’s use it for

REAL
Keep it simple

Reduce:


features
complexity
Focus on basics
Number purchase
Verification
Call diverts
Then enhance
SMS’s
Blacklisting
Voicemail
Finally
Call Analytics
Customer view
Admin view
Status summary
Etc.
What 

did we use

?
Tools, tools, tools!

?
Prod Architecture
What does this

give us

?
reliability

scalability
uptime

low latency
high 
throughput
Time for the

tips

!
“

Developers just
want to develop
Automate
 yo
ur d
eve
lopm
ent

environment
Automate deployment with

Fabric
http://www.fabfile.org

local-pc$ fab aws_dev deploy_site
twilio 

loves

to talk
to you
Developers

like to
be able to
debug
locally
Companies

don’t like

external services

talking to you
Tunnel your

way out to

freedom!
ngrok
Make the most of your
source code
repository
Branch your feature
Pull Request for feedback
Don’t reinvent the wheel


Joebloggs/super-cool-adapter.git

SuperCrunchAlgorithms

TwimlThumper

VoiceBanger
But don’t get caught out





6 months
later
Joebloggs/super-cool-adapter.git

SuperCrunchAlgorithms

TwimlThumper

VoiceB...
Fork it!


Joebloggs/super-cool-adapter.git

SuperCrunchAlgorithms

TwimlThumper

VoiceBanger

Joebloggs/super-cool-adapte...
“

So many numbers,
so many formats…
0877 237 6120
+44 877 237 6120
08772376120

libphonenumber

server

client


Validate
.
1
6
4
?

Who is using it
Verification
Don’t call
us we’ll
call you…
They spent 

?

HOW MUCH
Subaccounts are
your friend!
master
£

£

£

£

£

£

£

£

£
isolation

separation

partitioning

cost control
accountability
“

We should


NEVER

lose a call
Balance the

load
and deploy
without

downtime
And if the 
whole system
fails…

failover
And what about

reuse

?
Give/it/a/REST
How can we be

it still
works

confident

?
Test 

Test

!
Test
Has the

logic
changed

?
Unit

assert 
yourself
Did we break
our

contract

?
Are you!
HTTP 200?

POST

Functional

GET
Are they

ALL
behaving

?
Browser

Selenium UI
Can we

BREAK it

?
!

Push it to the

limit
!
more
Push it to the

limit
and then some
Load/Perf

API

aws: boto!
Metrics, metrics, metrics!

Response
Codes

Latency
Requests 
per second
and MUCH more
Eat,
sleep,
test,
repeat
Does it

REALLY
make phone
calls

?
receive calls

make calls

It’s
“SIP-simple”

sipsimpleclient.org!
But will it actually

scale

?
Don’t be a
 monolith
Don’t be a
 monolith
mod
 ular
 ise

it
Scale only where you
need it
mod
 ular
 ise

it

mod

it

mod

it

mod
Reduce latency

1 call divert with a whisper

1

2
3
Reduce latency

Static?

CACHE IT!
Reduce latency

Work

smarter
not
harder
Hey big
spender

!
Pricing tips

$

Watch the $$


Reserve & 

Save
Pricing tips

es
Ti
ic
er
ed
 Pr
Just to recap 1
•  Validate and verify numbers
•  Use subaccounts to
partition cost
•  Monitor your servers
performance
• ...
Just to recap 2
•  Automate Everything
•  Use tools like localtunnel for
debugging
•  Branch off features
•  Don't reinven...
Any

questions

?
Thank you
Erol
Ziya
@eazynow

Rob
Baines



@telecoda
Twiliocon Europe 2013: From PoC to Production, Lessons Learnt, by Erol Ziya & Rob Baines (21st Oct)
Upcoming SlideShare
Loading in …5
×

Twiliocon Europe 2013: From PoC to Production, Lessons Learnt, by Erol Ziya & Rob Baines (21st Oct)

846
-1

Published on

Here are the slides for the talk that myself (Erol Ziya - @eazynow) and Rob Baines (@telecoda) gave at the first Twiliocon Europe, providing tips for when moving from PoC to production based on our experiences in hibu labs. #twiliocon

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • You can find the video also at http://bit.ly/1kJwrdy
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total Views
846
On Slideshare
0
From Embeds
0
Number of Embeds
29
Actions
Shares
0
Downloads
4
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Twiliocon Europe 2013: From PoC to Production, Lessons Learnt, by Erol Ziya & Rob Baines (21st Oct)

  1. 1. From Proof of Concept to Production Lessons learnt
  2. 2. The Lesson: PoC != Production
  3. 3. who are we? Erol Ziya Rob Baines
  4. 4. hi-who?
  5. 5. We were… (UK) (USA) (Spain / Lat AM)
  6. 6. More recently...
  7. 7. So who are Labs?
  8. 8. Where does fit in?
  9. 9. Promoted customer’s numbers then left them to it…
  10. 10. What did we want to change ?
  11. 11. Add value Get involved in the calls Help our customers
  12. 12. So we built a PoC...
  13. 13. POC Architecture
  14. 14. They LOVED it !
  15. 15. Let’s use it for REAL
  16. 16. Keep it simple Reduce: features complexity
  17. 17. Focus on basics Number purchase Verification Call diverts
  18. 18. Then enhance SMS’s Blacklisting Voicemail
  19. 19. Finally Call Analytics Customer view Admin view Status summary Etc.
  20. 20. What did we use ?
  21. 21. Tools, tools, tools! ?
  22. 22. Prod Architecture
  23. 23. What does this give us ?
  24. 24. reliability scalability uptime low latency high throughput
  25. 25. Time for the tips !
  26. 26. “ Developers just want to develop
  27. 27. Automate yo ur d eve lopm ent environment
  28. 28. Automate deployment with Fabric http://www.fabfile.org local-pc$ fab aws_dev deploy_site
  29. 29. twilio loves to talk to you
  30. 30. Developers like to be able to debug locally
  31. 31. Companies don’t like external services talking to you
  32. 32. Tunnel your way out to freedom! ngrok
  33. 33. Make the most of your source code repository Branch your feature Pull Request for feedback
  34. 34. Don’t reinvent the wheel Joebloggs/super-cool-adapter.git SuperCrunchAlgorithms TwimlThumper VoiceBanger
  35. 35. But don’t get caught out 6 months later Joebloggs/super-cool-adapter.git SuperCrunchAlgorithms TwimlThumper VoiceBanger Joebloggs/super-cool-adapter.git
  36. 36. Fork it! Joebloggs/super-cool-adapter.git SuperCrunchAlgorithms TwimlThumper VoiceBanger Joebloggs/super-cool-adapter.git J hibulabs/super-cool-adapter.git
  37. 37. “ So many numbers, so many formats…
  38. 38. 0877 237 6120 +44 877 237 6120 08772376120 libphonenumber server client Validate . 1 6 4
  39. 39. ? Who is using it
  40. 40. Verification Don’t call us we’ll call you…
  41. 41. They spent ? HOW MUCH
  42. 42. Subaccounts are your friend! master £ £ £ £ £ £ £ £ £
  43. 43. isolation separation partitioning cost control accountability
  44. 44. “ We should NEVER lose a call
  45. 45. Balance the load and deploy without downtime
  46. 46. And if the whole system fails… failover
  47. 47. And what about reuse ?
  48. 48. Give/it/a/REST
  49. 49. How can we be it still works confident ?
  50. 50. Test Test ! Test
  51. 51. Has the logic changed ?
  52. 52. Unit assert yourself
  53. 53. Did we break our contract ?
  54. 54. Are you! HTTP 200? POST Functional GET
  55. 55. Are they ALL behaving ?
  56. 56. Browser Selenium UI
  57. 57. Can we BREAK it ?
  58. 58. ! Push it to the limit
  59. 59. ! more Push it to the limit and then some
  60. 60. Load/Perf API aws: boto!
  61. 61. Metrics, metrics, metrics! Response Codes Latency Requests per second and MUCH more
  62. 62. Eat, sleep, test, repeat
  63. 63. Does it REALLY make phone calls ?
  64. 64. receive calls make calls It’s “SIP-simple” sipsimpleclient.org!
  65. 65. But will it actually scale ?
  66. 66. Don’t be a monolith
  67. 67. Don’t be a monolith mod ular ise it
  68. 68. Scale only where you need it mod ular ise it mod it mod it mod
  69. 69. Reduce latency 1 call divert with a whisper 1 2 3
  70. 70. Reduce latency Static? CACHE IT!
  71. 71. Reduce latency Work smarter not harder
  72. 72. Hey big spender !
  73. 73. Pricing tips $ Watch the $$ Reserve & Save
  74. 74. Pricing tips es Ti ic er ed Pr
  75. 75. Just to recap 1 •  Validate and verify numbers •  Use subaccounts to partition cost •  Monitor your servers performance •  Test it, and test it some more •  Make the most of tiered pricing
  76. 76. Just to recap 2 •  Automate Everything •  Use tools like localtunnel for debugging •  Branch off features •  Don't reinvent the wheel •  Deploy without downtime •  Have a failover plan in place •  Make it RESTful •  Modularise your code •  Minimise the latency on a call
  77. 77. Any questions ?
  78. 78. Thank you Erol Ziya @eazynow Rob Baines @telecoda
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×