Unlocked Workshop OSCON 2013 - Part I

  • 1,335 views
Uploaded on

"Butter" Up Your Application Workshop at OSCON 2013

"Butter" Up Your Application Workshop at OSCON 2013

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,335
On Slideshare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
5
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. OSCON 23 july 2013 Portland, OR Butter Up your application Tuesday, July 23, 13
  • 2. welcome & introductions Tuesday, July 23, 13
  • 3. your unlocked team 3 Wayne A. Walls @waynewalls Alex Brandt @alunduil Hart Hoover @hhoover Tuesday, July 23, 13
  • 4. get social! 4 @rackspace #unlockedPDX#oscon Tuesday, July 23, 13
  • 5. 5 Tuesday, July 23, 13
  • 6. 6 Business Strategy Tuesday, July 23, 13
  • 7. 7 Cloud Savvy Tuesday, July 23, 13
  • 8. 8 Cloud Freedom Tuesday, July 23, 13
  • 9. 9 Application Fit Tuesday, July 23, 13
  • 10. cost of cloud apps Wayne walls cloud evangelist Tuesday, July 23, 13
  • 11. 11 Tuesday, July 23, 13
  • 12. 40%PRIVATE CLOUD 11 Tuesday, July 23, 13
  • 13. 40%PRIVATE CLOUD 11 50%HOSTED ON-SITE Tuesday, July 23, 13
  • 14. 90% of Workloads Remain In-House... 40%PRIVATE CLOUD 11 50%HOSTED ON-SITE Tuesday, July 23, 13
  • 15. Cost Considerations Infrastructure 12 Tuesday, July 23, 13
  • 16. 13 How many customers can you serve? Tuesday, July 23, 13
  • 17. 14 How easy would it be to scale? Tuesday, July 23, 13
  • 18. Innovation 15 Tuesday, July 23, 13
  • 19. In-house? 16 Tuesday, July 23, 13
  • 20. Cost Considerations 17 Developers Tuesday, July 23, 13
  • 21. 18 Developer time translates into $ Tuesday, July 23, 13
  • 22. 19 Apply effort where it matters Tuesday, July 23, 13
  • 23. 20 Be realistic about engineering time Tuesday, July 23, 13
  • 24. 21 Choose tools that scale Tuesday, July 23, 13
  • 25. everything as code Wayne walls cloud evangelist hart hoover cloud evangelist Tuesday, July 23, 13
  • 26. Tuesday, July 23, 13
  • 27. 24 Self-service Tuesday, July 23, 13
  • 28. 25 On-demand Tuesday, July 23, 13
  • 29. 26 Metered Tuesday, July 23, 13
  • 30. 27 Resource pooling Tuesday, July 23, 13
  • 31. 28 Broad network access Tuesday, July 23, 13
  • 32. NIST SAys... 29 Tuesday, July 23, 13
  • 33. NIST says... 30 Tuesday, July 23, 13
  • 34. NIST says... 31 Tuesday, July 23, 13
  • 35. multi-cloud 32 Tuesday, July 23, 13
  • 36. ENTER devops 33 Tuesday, July 23, 13
  • 37. 34 Culture & Work Methodology Tuesday, July 23, 13
  • 38. 35 Tooling Tuesday, July 23, 13
  • 39. 36 Deployment Strategies Tuesday, July 23, 13
  • 40. 37 Measure All the Things Tuesday, July 23, 13
  • 41. 38 Automate All the Things Tuesday, July 23, 13
  • 42. 39 Tuesday, July 23, 13
  • 43. 40 Tuesday, July 23, 13
  • 44. 41 Gerrit Tuesday, July 23, 13
  • 45. 42 Gerrit Tuesday, July 23, 13
  • 46. 43 Tuesday, July 23, 13
  • 47. 44 Tuesday, July 23, 13
  • 48. Infrastructure as code 45 Tuesday, July 23, 13
  • 49. 46 Same Problems Tuesday, July 23, 13
  • 50. 47 What version is in production? Tuesday, July 23, 13
  • 51. 48 Issues are found, fixed & redeployed quickly Tuesday, July 23, 13
  • 52. 49 Test as you develop Tuesday, July 23, 13
  • 53. 50 Same Best Practices Tuesday, July 23, 13
  • 54. 51 Tag, branch & release code that defines infra Tuesday, July 23, 13
  • 55. 52 Coverage lifecycle over various stages Tuesday, July 23, 13
  • 56. 53 Continuously Test Tuesday, July 23, 13
  • 57. 54 Tuesday, July 23, 13
  • 58. Chef Server Chef Workstation Chef Client knife node Chef Client node environment 55 Tuesday, July 23, 13
  • 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. Thinking like a developer 57 Tuesday, July 23, 13
  • 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. 59 1. Design 5. QA 2. Build 4. Release 3. Configure Tuesday, July 23, 13
  • 63. Tuesday, July 23, 13
  • 64. Test Driven Development Tuesday, July 23, 13
  • 65. Test Driven Development Behavior Driven Development Tuesday, July 23, 13
  • 66. Test Driven Development Behavior Driven Development Domain Driven Development Tuesday, July 23, 13
  • 67. Test Driven Development Behavior Driven Development Application Bliss Domain Driven Development Tuesday, July 23, 13
  • 68. POLYGLOT PERSISTENCE alex brandt sr developer Tuesday, July 23, 13
  • 69. 62 Tuesday, July 23, 13
  • 70. 63 Tuesday, July 23, 13
  • 71. 64 Tuesday, July 23, 13
  • 72. 65 RDBMS may not be the best fit Tuesday, July 23, 13
  • 73. 66 Tuesday, July 23, 13
  • 74. 67 Tuesday, July 23, 13
  • 75. 68 5 Characteristics Tuesday, July 23, 13
  • 76. 69 Non-relational Tuesday, July 23, 13
  • 77. 70 Distributed Tuesday, July 23, 13
  • 78. 71 Open-source Tuesday, July 23, 13
  • 79. 72 Horizontally Scalable Tuesday, July 23, 13
  • 80. 73 Schema-less Tuesday, July 23, 13
  • 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. 75 There are several different types of data stores that are considered to be NoSQL Tuesday, July 23, 13
  • 83. 76 Key/Value Databases Tuesday, July 23, 13
  • 84. 77 Document Databases Tuesday, July 23, 13
  • 85. 78 Column-Family Stores Tuesday, July 23, 13
  • 86. 79 Graph Databases Tuesday, July 23, 13
  • 87. 80 Types in Detail Tuesday, July 23, 13
  • 88. Key/Value DatabaseS 81 Tuesday, July 23, 13
  • 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. 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. document Database 84 Tuesday, July 23, 13
  • 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. 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. COLUMN FAMILY 87 Tuesday, July 23, 13
  • 95. 88 Tuesday, July 23, 13
  • 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. graph database 90 Tuesday, July 23, 13
  • 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. 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. Companies using nosql 93 DATABASE COMPANIES Tuesday, July 23, 13
  • 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. 95 POLYGLOT PATTERN: cache ORDER TAKING RESTAURANT MANAGEMENT REDIS CACHE MYSQL DATABASE SECONDFIRST CONSUMER RESTAURANT OWNER Credit: @crichardson Tuesday, July 23, 13
  • 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. 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. 98 Atomic Consistent Isolated Durable ACID to base Basically Available Soft state Eventually consistent Tuesday, July 23, 13