Upgrade to Pro — share decks privately, control downloads, hide ads and more …

design for cloud - jax 2012

design for cloud - jax 2012

4d9dd9bd8d3d4d0ba8af2acc41d14006?s=128

Mathias Meyer

April 18, 2012
Tweet

Transcript

  1. design for cloud mathias meyer, jax 2012

  2. None
  3. Me — infrastructure — code — databases @roidrage www.paperplanes.de

  4. None
  5. the cloud

  6. None
  7. None
  8. None
  9. 10,000 feet

  10. amazon web services

  11. ec2

  12. on-demand computing

  13. api

  14. pay as you go

  15. multiple regions

  16. multiple datacenters

  17. high cpu vs. high memory

  18. elastic block store

  19. more aws products s3 cloudfront cloudformation cloudwatch rds auto scaling

    simpledb route 53 load balancing queue service notification service elastic mapreduce
  20. what’s scalarium?

  21. automates: setup configuration one-click deploy

  22. ...for ec2 ...on ec2

  23. the dream: configure a cluster push a button boom!

  24. None
  25. None
  26. configuration + cookbooks/manifests + chef/puppet = configured cluster

  27. configuration: chef server rightscale json scalarium

  28. None
  29. in the beginning...

  30. Scalarium

  31. None
  32. None
  33. None
  34. ec2 is not a traditional datacenter

  35. None
  36. None
  37. multi-tenant

  38. high chance of failure

  39. faulty instances

  40. datacenter outage

  41. network partition

  42. more instances = higher chance of failure

  43. mtbf

  44. 21/04/2011

  45. None
  46. 7/8/2011

  47. None
  48. don’t fear failure

  49. plan for failure

  50. test failure

  51. None
  52. plan for recovery

  53. mttr

  54. None
  55. disaster recovery plan

  56. multi-datacenter deployments

  57. replication

  58. None
  59. multi-region deployments

  60. $$$

  61. relax consistency requirements

  62. latency

  63. keep data local

  64. None
  65. keep data in memory

  66. cache is king

  67. use raids for ebs

  68. use local storage

  69. use bigger instances

  70. scalarium is ~monolithic

  71. cloud ≠ monolithic

  72. cloud ☠ centralized

  73. small, independent services

  74. self-contained

  75. independently deployable

  76. well defined apis

  77. http/json thrift protocol buffers

  78. sinatra dropwizard spark scalatra

  79. fail fast

  80. retry

  81. internal queues

  82. design for resilience

  83. “think about your software running.” theo schlossnagle, omniti

  84. understand your code’s breaking points

  85. isn’t all that what you do at large scale?

  86. cloud == large scale

  87. scalarium today

  88. scalarium runs on scalarium

  89. None
  90. None
  91. None
  92. lack of visibility

  93. don’t fall for service level agreements

  94. amazon only handles infrastructure

  95. how you build on it is up to you

  96. fun fact

  97. amazon.com is served off ec2

  98. thank you!