@michaelneale         www.CloudBees.comMonday, 13 June 2011
Hosted build-time to Runtime - the full cycleMonday, 13 June 2011
Monday, 13 June 2011
Tasty dog food          - we practice continuous deployment          - carefully...          (especially after that one ti...
Monday, 13 June 2011
CI in the cloud         - git push --> run tests, promote         - bees app:deploy         - BYO repo or use ours (even S...
Anyway... you can use it free         - signup www.cloudbees.com         - free FOSS Jenkins CI hosting         - free gen...
Why a PaaS ?         - System administration challenged         - Make it someone else’s problem         - why not? just P...
My experience         - fell in love with GAE, force.com         - terrified of any and all lock in at the time         - h...
Heaven to use         Hell to build **         Purgatory to manage **         ** Not Your Problem.Monday, 13 June 2011
Some things we use to get it done:         - scala (back end apps)         - ruby (chef, rails, proxymachine, lots)       ...
But what I really want to talk quickly about ...Monday, 13 June 2011
Exceptions. Errors.         What The Hell Is That Process Doing?         and how it relates to..Monday, 13 June 2011
Keeping things running without falling into a         weeping trembling mess in the corner every time         you hear an ...
Exception handling is wrong...Monday, 13 June 2011
But it seems harmless...Monday, 13 June 2011
Monday, 13 June 2011
Monday, 13 June 2011
Erlang says no no no...Monday, 13 June 2011
Question: a process on server not responding         Answer:         1) panic         2) take time thinking about underlyi...
FACT: Answer#3 will often work so well, you         often don’t really spend time to think about #2**         ** FibreErro...
Imagine a programming environment:          - unlimited process spawning          - concurrency someone else’s problem    ...
Erlang         Built for stability, and not bothering me.         Anything else is gravy.Monday, 13 June 2011
Process isolation         - it works so well         - nothing shared         - has worked so well for so long with OSes  ...
nginx    Example: My Host OS                       haproxy             Erlang process                                     ...
Erlang processes, like OS processes            - Can only send messages to each other            - Can fail independently ...
Better            - Tiny overhead (can have 100K+ of them !)            - perfect for supervisory agents            - dist...
We use them for           - Supervisory agents - controllers           - Autoscaling services (realtime data analytics)   ...
Supervisor configuration           - Declare rules for restarting, failure           - So you don’t have to intervene !    ...
Restart just busted processMonday, 13 June 2011
Anyway, that is why we use Erlang, also...         - RabbitMQ         - Riak (nosql DB)         - CouchDB (nosql DB)      ...
Thank youMonday, 13 June 2011
Upcoming SlideShare
Loading in...5
×

Errors and handling them. YOW nights Sydney 2011

873

Published on

Talk about error handling, erlang, cloud, recovery and more. Was presented in Sydney, Shelbourne Hotel 2011.

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

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

No notes for slide

Transcript of "Errors and handling them. YOW nights Sydney 2011"

  1. 1. @michaelneale www.CloudBees.comMonday, 13 June 2011
  2. 2. Hosted build-time to Runtime - the full cycleMonday, 13 June 2011
  3. 3. Monday, 13 June 2011
  4. 4. Tasty dog food - we practice continuous deployment - carefully... (especially after that one time I...) - bootstrapping !Monday, 13 June 2011
  5. 5. Monday, 13 June 2011
  6. 6. CI in the cloud - git push --> run tests, promote - bees app:deploy - BYO repo or use ours (even SVN ??)Monday, 13 June 2011
  7. 7. Anyway... you can use it free - signup www.cloudbees.com - free FOSS Jenkins CI hosting - free general Apps hosting - “public cloud” or private edition (hybrid?) - thousands of apps hosted alreadyMonday, 13 June 2011
  8. 8. Why a PaaS ? - System administration challenged - Make it someone else’s problem - why not? just PLEASE think about lock inMonday, 13 June 2011
  9. 9. My experience - fell in love with GAE, force.com - terrified of any and all lock in at the time - had nothing better to do ... so cloudbees...Monday, 13 June 2011
  10. 10. Heaven to use Hell to build ** Purgatory to manage ** ** Not Your Problem.Monday, 13 June 2011
  11. 11. Some things we use to get it done: - scala (back end apps) - ruby (chef, rails, proxymachine, lots) - java (jenkins and plugins) - erlang (“agents” and lots more..)Monday, 13 June 2011
  12. 12. But what I really want to talk quickly about ...Monday, 13 June 2011
  13. 13. Exceptions. Errors. What The Hell Is That Process Doing? and how it relates to..Monday, 13 June 2011
  14. 14. Keeping things running without falling into a weeping trembling mess in the corner every time you hear an SMS sound or a phone ring or an email chime etc etc etc.....Monday, 13 June 2011
  15. 15. Exception handling is wrong...Monday, 13 June 2011
  16. 16. But it seems harmless...Monday, 13 June 2011
  17. 17. Monday, 13 June 2011
  18. 18. Monday, 13 June 2011
  19. 19. Erlang says no no no...Monday, 13 June 2011
  20. 20. Question: a process on server not responding Answer: 1) panic 2) take time thinking about underlying cause 3) bounce the bastard and pray **Monday, 13 June 2011
  21. 21. FACT: Answer#3 will often work so well, you often don’t really spend time to think about #2** ** FibreError?Monday, 13 June 2011
  22. 22. Imagine a programming environment: - unlimited process spawning - concurrency someone else’s problem - don’t try to handle errors - let it failMonday, 13 June 2011
  23. 23. Erlang Built for stability, and not bothering me. Anything else is gravy.Monday, 13 June 2011
  24. 24. Process isolation - it works so well - nothing shared - has worked so well for so long with OSes - in erlang - each ‘process’ is like a process !Monday, 13 June 2011
  25. 25. nginx Example: My Host OS haproxy Erlang process supervisor ... p1 p999 Each: own heap, garbage collectorMonday, 13 June 2011
  26. 26. Erlang processes, like OS processes - Can only send messages to each other - Can fail independently - Can be restarted, safely - Easy to write apps for - Old School !Monday, 13 June 2011
  27. 27. Better - Tiny overhead (can have 100K+ of them !) - perfect for supervisory agents - distribute: run on every box if you like ! - lots of processes == lots of concurrency - if you need to block, block !Monday, 13 June 2011
  28. 28. We use them for - Supervisory agents - controllers - Autoscaling services (realtime data analytics) - misc backend systems - fun command line tools !Monday, 13 June 2011
  29. 29. Supervisor configuration - Declare rules for restarting, failure - So you don’t have to intervene ! - can hot reload changes - can have dependent processesMonday, 13 June 2011
  30. 30. Restart just busted processMonday, 13 June 2011
  31. 31. Anyway, that is why we use Erlang, also... - RabbitMQ - Riak (nosql DB) - CouchDB (nosql DB) - Probably your telephone exchangeMonday, 13 June 2011
  32. 32. Thank youMonday, 13 June 2011

×