C* Summit 2013: Stepping Through the Lifecycle of a Service Offering with Cassandra by Chris McEniry and Igor von Nyssen

1,222 views
1,122 views

Published on

It's a fine line to walk for incorporating new technologies in an organization with 15+ years of legacy software. In this presentation, we'll look at the lifecycle and adoption of Cassandra from a skunkworks project to a full fledged service in a legacy organization.

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,222
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
14
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • We has a lot of momentum/inertia Means it takes a while to get something changed Have to work within some limitations and around some limitations Separation of Duties Be ready to move - in a slow chnaging org, anytime you have a window, you have to move it push for the window
  • Can we beat the speed of light?
  • C* Summit 2013: Stepping Through the Lifecycle of a Service Offering with Cassandra by Chris McEniry and Igor von Nyssen

    1. 1. Stepping Through the Lifecycleof a Service Offering with CassandraChris McEniry, Igor von Nyssen | Sr. Systems Architect, Sr. Software Architect | Sony Network Entertainment
    2. 2. *  aka Ops guy*  Bs EECS MIT*  15 years ops experience*  Python, Perl, C, LISP,Ruby, JS, some English*  C* 0.6*  cmceniry@mit.eduChris “Mac” McEniry Igor von Nyssen*  aka Dev guy*  MS CS TU Chemnitz*  MBA USC*  15 years dev experience*  Java, Ruby, English,German*  C* 1.0*  igor@vonnyssen.com
    3. 3. *  Preconception – Solution looking for a problem*  In utero – Connect and talk about it*  Infant – Initial Development*  Kid – Production rollout for an insignificant item*  Teenager – Start real maturing*  Adult – Take over the worldWhat we’re talking about: Lifecycle
    4. 4. *  Large entertainment ecommerce application*  100s of Millions of customers*  Billions of transactions per year*  Worldwide operations: 59 countries, 21 languages and dialects*  Peaks above 10,000 tpsWhat does SNEI look like?
    5. 5. *  Global start-up that has tocomply with any three letterrequirement know to man.*  Pressure to innovate*  Pressure to make moneyWhat does SNEI feel like?
    6. 6. Pre-Conception
    7. 7. Recognize Concerns/Motivations
    8. 8. Concerns
    9. 9. In-Utero
    10. 10. What’s the Real Problem?
    11. 11. Our Problem
    12. 12. Speed of Light Problem
    13. 13. Need to provide a service that−  Provides  user  authen0ca0on  −  Is  Always-­‐On  −  Has  low  latency  for  every  customer  Our Problem: Latency and Availability
    14. 14. Can I beat the speed of Light?
    15. 15. Infant
    16. 16. Find Allies
    17. 17. Be willing to be uncomfortable
    18. 18. Strategically decide who you’re not going to involveThe New RACI ChartRole   Responsible   Avoided   Circumvented   Ignored  You   X  Friend   X  Frenemy   X   X   X  
    19. 19. Child
    20. 20. Learn on a Small Scale
    21. 21. What’s your Minimally Viable Product?
    22. 22. Teenager
    23. 23. Spread the Word
    24. 24. Embody the Mantra
    25. 25. Adult
    26. 26. Adult
    27. 27. Where are we now?
    28. 28. THANK YOU
    29. 29. Slideshare
    30. 30. Stepping Through the Lifecycleof a Service Offering with CassandraChris McEniry, Igor von Nyssen | Sr. Systems Architect, Sr. Software Architect | Sony Network Entertainment
    31. 31. *  aka Ops guy*  Bs EECS MIT*  15 years ops experience*  Python, Perl, C, LISP,Ruby, JS, some English*  C* 0.6*  cmceniry@mit.eduChris “Mac” McEniry Igor von Nyssen*  aka Dev guy*  MS CS TU Chemnitz*  MBA USC*  15 years dev experience*  Java, Ruby, English,German*  C* 1.0*  igor@vonnyssen.com
    32. 32. *  Preconception – Solution looking for a problem*  In utero – Connect and talk about it*  Infant – Initial Development*  Kid – Production rollout for an insignificant item*  Teenager – Start real maturing*  Adult – Take over the worldWhat we’re talking about now: Lifecycle
    33. 33. *  Large entertainment ecommerce application*  100s of Millions of customers*  9 figure revenue per year*  Billions of transactions per year*  Worldwide operations: 59 countries, 21 languages and dialects*  Peaks above 10,000 tpsWhat does SNEI look like?
    34. 34. *  Global start-up that has tocomply with any three letterrequirement know to man.*  Pressure to innovate*  Pressure to make moneyWhat does SNEI feel like?
    35. 35. Pre-Conception
    36. 36. Recognize Concerns/Motivations
    37. 37. *  Curiosity*  Personal Growth*  Less pain*  The Hype – Exploit itPersonal
    38. 38. Ops Concerns
    39. 39. *  How do we keep it from blowing up?*  How do we keep it cared for for its lifetime?*  How do we keep from being a bottleneck?*  How do we keep from being woken up at 4AM?*  How do we keep up with “gimme!gimme!gimme?"Ops Concerns
    40. 40. *  Marketing features vs. real features−  What is on the outside of the box?−  What does actually work?*  C* is young−  our understanding of it is young*  Does it solve our problem adequately?−  POCPOCPOC−  We analyzed lots of in-memory data grids-­‐  Some had marketing feature problems-­‐  Some were too young-­‐  Some were too expensive-­‐  None of them addressed partitioning very well-­‐  If for nothing else, the cold startup time is a killer*  Adoption−  Can we implement C* in our organization?Dev Concerns
    41. 41. *  Dev – youre not running production.*  Ops – you’re not writing the code.*  Work with someone−  Who  sees  the  same  problem  −  Is  excited  about  the  technology  −  Agrees  on  the  direc0on  −  Does  not  have  an  inherent  conflict  of  interest  Can’t do it by yourself
    42. 42. In-Utero
    43. 43. What’s the Real Problem?
    44. 44. *  Be ready to move once you find a suitable problem−  anytime you have a window, you have to move*  Create the window*  But, be sure that you want it*  Be sure it’s the right problemYou Have a Solution Looking for a Problem
    45. 45. Our Problem
    46. 46. SF viewed from the World
    47. 47. Need to provide a service that−  Provides  user  authen0ca0on  −  Is  Always-­‐On  −  Has  low  latency  for  every  customer  Our Problem: Latency and Availability
    48. 48. Can I beat the speed of Light?
    49. 49. *  Not a problem that can be solved by slapping a cache in front ofexisting technology*  Need distributed storage*  Global distribution helps with both latency and disaster recovery−  Data  replica0on  and  synchroniza0on  are  built-­‐in  −  Par00on  events  are  handled  out  of  the  box  *  Continuous delivery is part of the C* philosophyWhy Does C* Fit Here?
    50. 50. Infant
    51. 51. Find Allies
    52. 52. *  Good Ally – Someone who−  Sees the same problem−  Is excited about the same technology−  Agrees on the direction*  Bad Ally – Someone who−  Will have an inherent conflict of interestGood Allies, Bad Allies
    53. 53. *  Develop your elevator pitch for the problem*  Proof it with your allies*  Keep it simpleLatency, Latency, LatencyCoin the Mantra
    54. 54. Be willing to be uncomfortable
    55. 55. Strategically decide who you’re not going to involveThe New RACI ChartRole   Responsible   Avoided   Circumvented   Ignored  You   X  Friend   X  Frenemy   X   X   X  
    56. 56. *  Its new technology, so youre outside your comfort zone*  Youre evangelizing, so the proof is on you*  Account for different adoption speeds by different people*  Stay positiveRemember: Shiny, But Unknown and Unproven
    57. 57. *  Ops−  Service-­‐  Central-­‐  Embedded−  Support-­‐  Formal-­‐  Community-­‐  On-your-own−  Schema definition ownershipFigure Out Your Models*  Dev−  How many nodes?−  How many copies?−  How many data centers?
    58. 58. *  No budget approvals*  Easy to get startedOnce you have an idea of what youre talking about, then start to askthe better questions.Cassandra Is Open Source – Use That Fact
    59. 59. Child
    60. 60. Learn on a Small Scale
    61. 61. What’s your Minimally Viable Product?
    62. 62. *  operational tasks−  Setup-­‐  roll everything in rpms-­‐  theres a bit of a manual setup - cluster join/remove−  Backup−  infrastructure changes (node additions, etc.)-­‐  theres a bit of a manual setup - cluster join/remove−  Monitoring-­‐  jolokia to tie into existing systems, but have to re-invent all of the metric metadata-­‐  Availability−  incident response-­‐  training and see monitoring/visibility−  handling regular tasks-­‐  nodetool repair-­‐  add keyspaces-­‐  updating keyspaces for infrastructure changes*  have a clear service description*  end user support−  self-help community−  email list (subscription), chat roomMinimum Viable (Go Live) Product
    63. 63. *  Store some data−  start with transient data−  TTLs help here−  If it’s lost, it’s an acceptable loss*  Select which client you will use−  Hector, Astyanax, or Datastax*  Figure out how clients connect to the server*  Understand how C* stores data−  Data model−  Serializers−  Comparators*  Free your mind−  Learn to love primary-key-only indexing−  Start de-normalizing−  Give up on transactions – they are evil to begin withMinimum Viable (Go Live) Product
    64. 64. Teenager
    65. 65. *  Take daddy’s credit card*  Get serious about other data classes*  Start putting something that you need to preserve in there*  Data life cycle management*  Security concerns*  Acknowledge gaps – where either the technology or you or yourimplementation of the technology are just not ready*  Revisit your assumptionsTeenager
    66. 66. Spread the Word
    67. 67. *  Allies−  Security−  RDMS zeal^Wusers*  Problems−  Adjacent problems – things that are close to what you’ve alreadysolved, but bigger and more complicated*  Key to success−  It is still early enough to be their idea−  But it is established enough that people take it seriouslyGather More
    68. 68. *  More visibility à More battles*  Continue to choose wisely−  Decide where not to focus?−  What not to try?−  What to be compliant with?*  Remember: Proof is on you−  Other groups will closely watch your success or failure−  Auditors will ask you the questions. There is no vendor certification (yet).Teenage Angst
    69. 69. *  If you really must do large multipart transactions, choose a differentproduct.*  Or just don’t. Change your mental model−  From: transactions and conflict prevention−  To: conflict detection and remediation*  Read this: http://www.eaipatterns.com/ramblings/18_starbucks.html*  Avoid sequences that attempt to centralize countingTeenage Angst
    70. 70. *  Search (DSE)*  Solidify your backup*  Solidify your deployment model*  Solidify your support*  Solidify your security−  Audit−  Authentication and Authorization−  EncryptionGrowth Spurts
    71. 71. Embody the MantraLatency, Latency, Latency
    72. 72. *  You can ask better questions.*  You have to ask the better questions.Now you have experience
    73. 73. Adult
    74. 74. Adult
    75. 75. Where are we now?
    76. 76. *  In terms of−  Data  −  Applicable  context  −  Ability  to  adopt  and  adapt  *  Less inertia*  Moving faster*  Less energy for the same distance : “More efficient”Underlying Problem: Critical Mass
    77. 77. Summarize*  Preconception – Explore it*  In utero – Start small*  Infant – Be comfortably uncomfortable*  Kid – Grow*  Teenager – Get help*  Adult – Profit
    78. 78. THANK YOU

    ×