Unlocked Workshop OSCON 2013 - Part I

1,888 views

Published on

"Butter" Up Your Application Workshop at OSCON 2013

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

No Downloads
Views
Total views
1,888
On SlideShare
0
From Embeds
0
Number of Embeds
604
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Unlocked Workshop OSCON 2013 - Part I

  1. 1. OSCON 23 july 2013 Portland, OR Butter Up your application Tuesday, July 23, 13
  2. 2. welcome & introductions Tuesday, July 23, 13
  3. 3. your unlocked team 3 Wayne A. Walls @waynewalls Alex Brandt @alunduil Hart Hoover @hhoover Tuesday, July 23, 13
  4. 4. get social! 4 @rackspace #unlockedPDX#oscon Tuesday, July 23, 13
  5. 5. 5 Tuesday, July 23, 13
  6. 6. 6 Business Strategy Tuesday, July 23, 13
  7. 7. 7 Cloud Savvy Tuesday, July 23, 13
  8. 8. 8 Cloud Freedom Tuesday, July 23, 13
  9. 9. 9 Application Fit Tuesday, July 23, 13
  10. 10. cost of cloud apps Wayne walls cloud evangelist Tuesday, July 23, 13
  11. 11. 11 Tuesday, July 23, 13
  12. 12. 40%PRIVATE CLOUD 11 Tuesday, July 23, 13
  13. 13. 40%PRIVATE CLOUD 11 50%HOSTED ON-SITE Tuesday, July 23, 13
  14. 14. 90% of Workloads Remain In-House... 40%PRIVATE CLOUD 11 50%HOSTED ON-SITE Tuesday, July 23, 13
  15. 15. Cost Considerations Infrastructure 12 Tuesday, July 23, 13
  16. 16. 13 How many customers can you serve? Tuesday, July 23, 13
  17. 17. 14 How easy would it be to scale? Tuesday, July 23, 13
  18. 18. Innovation 15 Tuesday, July 23, 13
  19. 19. In-house? 16 Tuesday, July 23, 13
  20. 20. Cost Considerations 17 Developers Tuesday, July 23, 13
  21. 21. 18 Developer time translates into $ Tuesday, July 23, 13
  22. 22. 19 Apply effort where it matters Tuesday, July 23, 13
  23. 23. 20 Be realistic about engineering time Tuesday, July 23, 13
  24. 24. 21 Choose tools that scale Tuesday, July 23, 13
  25. 25. everything as code Wayne walls cloud evangelist hart hoover cloud evangelist Tuesday, July 23, 13
  26. 26. Tuesday, July 23, 13
  27. 27. 24 Self-service Tuesday, July 23, 13
  28. 28. 25 On-demand Tuesday, July 23, 13
  29. 29. 26 Metered Tuesday, July 23, 13
  30. 30. 27 Resource pooling Tuesday, July 23, 13
  31. 31. 28 Broad network access Tuesday, July 23, 13
  32. 32. NIST SAys... 29 Tuesday, July 23, 13
  33. 33. NIST says... 30 Tuesday, July 23, 13
  34. 34. NIST says... 31 Tuesday, July 23, 13
  35. 35. multi-cloud 32 Tuesday, July 23, 13
  36. 36. ENTER devops 33 Tuesday, July 23, 13
  37. 37. 34 Culture & Work Methodology Tuesday, July 23, 13
  38. 38. 35 Tooling Tuesday, July 23, 13
  39. 39. 36 Deployment Strategies Tuesday, July 23, 13
  40. 40. 37 Measure All the Things Tuesday, July 23, 13
  41. 41. 38 Automate All the Things Tuesday, July 23, 13
  42. 42. 39 Tuesday, July 23, 13
  43. 43. 40 Tuesday, July 23, 13
  44. 44. 41 Gerrit Tuesday, July 23, 13
  45. 45. 42 Gerrit Tuesday, July 23, 13
  46. 46. 43 Tuesday, July 23, 13
  47. 47. 44 Tuesday, July 23, 13
  48. 48. Infrastructure as code 45 Tuesday, July 23, 13
  49. 49. 46 Same Problems Tuesday, July 23, 13
  50. 50. 47 What version is in production? Tuesday, July 23, 13
  51. 51. 48 Issues are found, fixed & redeployed quickly Tuesday, July 23, 13
  52. 52. 49 Test as you develop Tuesday, July 23, 13
  53. 53. 50 Same Best Practices Tuesday, July 23, 13
  54. 54. 51 Tag, branch & release code that defines infra Tuesday, July 23, 13
  55. 55. 52 Coverage lifecycle over various stages Tuesday, July 23, 13
  56. 56. 53 Continuously Test Tuesday, July 23, 13
  57. 57. 54 Tuesday, July 23, 13
  58. 58. Chef Server Chef Workstation Chef Client knife node Chef Client node environment 55 Tuesday, July 23, 13
  59. 59. •Nodes: Servers •Environments: Groups of nodes (Dev/QA/Prod) •Recipes: Describes the desired state of a node •Cookbooks: Group of Recipes •Roles: Group of Cookbooks (Web) •Attribute: information about the current state of a node 56 Tuesday, July 23, 13
  60. 60. Thinking like a developer 57 Tuesday, July 23, 13
  61. 61. Product Backlog Sprint Backlog Sprint Working increment of the software 58 1. Design 5. QA 2. Build 4. Release 3. Configure Tuesday, July 23, 13
  62. 62. 59 1. Design 5. QA 2. Build 4. Release 3. Configure Tuesday, July 23, 13
  63. 63. Tuesday, July 23, 13
  64. 64. Test Driven Development Tuesday, July 23, 13
  65. 65. Test Driven Development Behavior Driven Development Tuesday, July 23, 13
  66. 66. Test Driven Development Behavior Driven Development Domain Driven Development Tuesday, July 23, 13
  67. 67. Test Driven Development Behavior Driven Development Application Bliss Domain Driven Development Tuesday, July 23, 13
  68. 68. POLYGLOT PERSISTENCE alex brandt sr developer Tuesday, July 23, 13
  69. 69. 62 Tuesday, July 23, 13
  70. 70. 63 Tuesday, July 23, 13
  71. 71. 64 Tuesday, July 23, 13
  72. 72. 65 RDBMS may not be the best fit Tuesday, July 23, 13
  73. 73. 66 Tuesday, July 23, 13
  74. 74. 67 Tuesday, July 23, 13
  75. 75. 68 5 Characteristics Tuesday, July 23, 13
  76. 76. 69 Non-relational Tuesday, July 23, 13
  77. 77. 70 Distributed Tuesday, July 23, 13
  78. 78. 71 Open-source Tuesday, July 23, 13
  79. 79. 72 Horizontally Scalable Tuesday, July 23, 13
  80. 80. 73 Schema-less Tuesday, July 23, 13
  81. 81. orders customers order lines credit cards ID: 1001 line items: customer: Ann 0321293533 0321601912 0131495054 2 1 1 $48 $48 $39 $51 $39 $51 payment details: Card: Amex CC #: 12345 expires: 04/2001 74 Tuesday, July 23, 13
  82. 82. 75 There are several different types of data stores that are considered to be NoSQL Tuesday, July 23, 13
  83. 83. 76 Key/Value Databases Tuesday, July 23, 13
  84. 84. 77 Document Databases Tuesday, July 23, 13
  85. 85. 78 Column-Family Stores Tuesday, July 23, 13
  86. 86. 79 Graph Databases Tuesday, July 23, 13
  87. 87. 80 Types in Detail Tuesday, July 23, 13
  88. 88. Key/Value DatabaseS 81 Tuesday, July 23, 13
  89. 89. Key/Value DatabaseS • Good Use Cases: • Storing Session Information • User Profiles & Preferences • Shopping Cart Data • Bad Use Cases: • Data Relationships •Multi-operation Transactions •Query by Data 82 Tuesday, July 23, 13
  90. 90. Key/Value DatabaseS • Good Use Cases: • Storing Session Information • User Profiles & Preferences • Shopping Cart Data • Bad Use Cases: • Data Relationships •Multi-operation Transactions •Query by Data 83 Tuesday, July 23, 13
  91. 91. document Database 84 Tuesday, July 23, 13
  92. 92. document Databases •Good Use Cases: • Event Logging • Blogging Platforms • Real-time Analytics • Article storage • Bad Use Cases: • Complex Transactions •Queries against Varying Aggregate Structures 85 Tuesday, July 23, 13
  93. 93. document Databases •Good Use Cases: • Event Logging • Blogging Platforms • Real-time Analytics • Article storage • Bad Use Cases: • Complex Transactions •Queries against Varying Aggregate Structures 86 Tuesday, July 23, 13
  94. 94. COLUMN FAMILY 87 Tuesday, July 23, 13
  95. 95. 88 Tuesday, July 23, 13
  96. 96. COLUMN-FAMILY datastores •Good Use Cases: • Event Logging • Blogging Platforms • Counters (page visits) • Expiring Usage • Bad Use Cases: • ACID transactions required • Early prototype applications 89 Tuesday, July 23, 13
  97. 97. graph database 90 Tuesday, July 23, 13
  98. 98. Amanda KNOWS KNOWS KNOWS Robert Gerry Lamar KNOWS App 1 BUILT BUILT KNOWS App 2 USES BUILT Christie KNOWS Destiny Jessica KNOWS App 3 BUILT USES USES USES KNOWS graph database 91 Tuesday, July 23, 13
  99. 99. graph databases •Good Use Cases: • Connected Data • Location-based services • Recommendation engines • Bad Use Cases: • Ability to update specific aggregates 92 Tuesday, July 23, 13
  100. 100. Companies using nosql 93 DATABASE COMPANIES Tuesday, July 23, 13
  101. 101. THE FUTURE IS POLYGLOT 94 Neo4J database Cassandra database Couch database MongoDB database RELATIONAL DATABASE Graph-structured domain rules Columnar data access with decentralization Document structures Document structures with offline processing (Actors) (Actors) (Actors)(Actors) Asynchronous message passing MODULE 1 MODULE 2 MODULE 3 MODULE 4 IEEE Software Sept/October 2010 - Debasish Ghosh / Twitter @debasishg Tuesday, July 23, 13
  102. 102. 95 POLYGLOT PATTERN: cache ORDER TAKING RESTAURANT MANAGEMENT REDIS CACHE MYSQL DATABASE SECONDFIRST CONSUMER RESTAURANT OWNER Credit: @crichardson Tuesday, July 23, 13
  103. 103. 96 POLYGLOT PATTERN: write to sql and NOSQL NEW TWEET INSERT LPUSHX LTRIM MySQL TWEETS FOLLOWS FOLLOWERS Redis: Timeline FOLLOWER 1 FOLLOWER 2 FOLLOWER 3 Avoid expensive MySQL joins Credit: @crichardson Tuesday, July 23, 13
  104. 104. 97 POLYGLOT PATTERN: REPLICATE FROM MYsql to NOSQL QUERY SERVICE UPDATE SERVICE REDIS MYSQL DATABASE SYSTEM OF RECORD MATERIALIZED VIEW READER WRITER replicate and denormalize query() update() Credit: @crichardson Tuesday, July 23, 13
  105. 105. 98 Atomic Consistent Isolated Durable ACID to base Basically Available Soft state Eventually consistent Tuesday, July 23, 13

×