unlocked workshop oscon 2013 - part i

105
OSCON 23 july 2013 Portland, OR Butter Up your application Tuesday, July 23, 13

Upload: wayne-walls

Post on 06-May-2015

1.492 views

Category:

Technology


1 download

DESCRIPTION

"Butter" Up Your Application Workshop at OSCON 2013

TRANSCRIPT

Page 1: Unlocked Workshop OSCON 2013 - Part I

OSCON

23 july 2013

Portland, ORButter Up your application

Tuesday, July 23, 13

Page 2: Unlocked Workshop OSCON 2013 - Part I

welcome & introductions

Tuesday, July 23, 13

Page 3: Unlocked Workshop OSCON 2013 - Part I

your unlocked team

3

Wayne A. Walls@waynewalls

Alex Brandt@alunduil

Hart Hoover@hhoover

Tuesday, July 23, 13

Page 4: Unlocked Workshop OSCON 2013 - Part I

get social!

4

@rackspace #unlockedPDX#oscon

Tuesday, July 23, 13

Page 5: Unlocked Workshop OSCON 2013 - Part I

5

Tuesday, July 23, 13

Page 6: Unlocked Workshop OSCON 2013 - Part I

6

Business Strategy

Tuesday, July 23, 13

Page 7: Unlocked Workshop OSCON 2013 - Part I

7

Cloud Savvy

Tuesday, July 23, 13

Page 8: Unlocked Workshop OSCON 2013 - Part I

8

Cloud Freedom

Tuesday, July 23, 13

Page 9: Unlocked Workshop OSCON 2013 - Part I

9

Application Fit

Tuesday, July 23, 13

Page 10: Unlocked Workshop OSCON 2013 - Part I

cost of cloud apps

Wayne wallscloud evangelist

Tuesday, July 23, 13

Page 11: Unlocked Workshop OSCON 2013 - Part I

11

Tuesday, July 23, 13

Page 12: Unlocked Workshop OSCON 2013 - Part I

40%PRIVATE CLOUD

11

Tuesday, July 23, 13

Page 13: Unlocked Workshop OSCON 2013 - Part I

40%PRIVATE CLOUD

11

50%HOSTED ON-SITE

Tuesday, July 23, 13

Page 14: Unlocked Workshop OSCON 2013 - Part I

90% of Workloads Remain In-House...

40%PRIVATE CLOUD

11

50%HOSTED ON-SITE

Tuesday, July 23, 13

Page 15: Unlocked Workshop OSCON 2013 - Part I

Cost Considerations

Infrastructure

12

Tuesday, July 23, 13

Page 16: Unlocked Workshop OSCON 2013 - Part I

13

How many customers can you serve?

Tuesday, July 23, 13

Page 17: Unlocked Workshop OSCON 2013 - Part I

14

How easy would it be to scale?

Tuesday, July 23, 13

Page 18: Unlocked Workshop OSCON 2013 - Part I

Innovation

15

Tuesday, July 23, 13

Page 19: Unlocked Workshop OSCON 2013 - Part I

In-house?

16

Tuesday, July 23, 13

Page 20: Unlocked Workshop OSCON 2013 - Part I

Cost Considerations

17

Developers

Tuesday, July 23, 13

Page 21: Unlocked Workshop OSCON 2013 - Part I

18

Developer time translates into $

Tuesday, July 23, 13

Page 22: Unlocked Workshop OSCON 2013 - Part I

19

Apply effort where it matters

Tuesday, July 23, 13

Page 23: Unlocked Workshop OSCON 2013 - Part I

20

Be realistic about engineering time

Tuesday, July 23, 13

Page 24: Unlocked Workshop OSCON 2013 - Part I

21

Choose tools that scale

Tuesday, July 23, 13

Page 25: Unlocked Workshop OSCON 2013 - Part I

everything as code

Wayne wallscloud evangelist

hart hoovercloud evangelist

Tuesday, July 23, 13

Page 26: Unlocked Workshop OSCON 2013 - Part I

Tuesday, July 23, 13

Page 27: Unlocked Workshop OSCON 2013 - Part I

24

Self-service

Tuesday, July 23, 13

Page 28: Unlocked Workshop OSCON 2013 - Part I

25

On-demand

Tuesday, July 23, 13

Page 29: Unlocked Workshop OSCON 2013 - Part I

26

Metered

Tuesday, July 23, 13

Page 30: Unlocked Workshop OSCON 2013 - Part I

27

Resource pooling

Tuesday, July 23, 13

Page 31: Unlocked Workshop OSCON 2013 - Part I

28

Broad network access

Tuesday, July 23, 13

Page 32: Unlocked Workshop OSCON 2013 - Part I

NIST SAys...

29

Tuesday, July 23, 13

Page 33: Unlocked Workshop OSCON 2013 - Part I

NIST says...

30

Tuesday, July 23, 13

Page 34: Unlocked Workshop OSCON 2013 - Part I

NIST says...

31

Tuesday, July 23, 13

Page 35: Unlocked Workshop OSCON 2013 - Part I

multi-cloud

32

Tuesday, July 23, 13

Page 36: Unlocked Workshop OSCON 2013 - Part I

ENTER devops

33

Tuesday, July 23, 13

Page 37: Unlocked Workshop OSCON 2013 - Part I

34

Culture & Work Methodology

Tuesday, July 23, 13

Page 38: Unlocked Workshop OSCON 2013 - Part I

35

Tooling

Tuesday, July 23, 13

Page 39: Unlocked Workshop OSCON 2013 - Part I

36

Deployment Strategies

Tuesday, July 23, 13

Page 40: Unlocked Workshop OSCON 2013 - Part I

37

Measure All the Things

Tuesday, July 23, 13

Page 41: Unlocked Workshop OSCON 2013 - Part I

38

Automate All the Things

Tuesday, July 23, 13

Page 42: Unlocked Workshop OSCON 2013 - Part I

39

Tuesday, July 23, 13

Page 43: Unlocked Workshop OSCON 2013 - Part I

40

Tuesday, July 23, 13

Page 44: Unlocked Workshop OSCON 2013 - Part I

41

Gerrit

Tuesday, July 23, 13

Page 45: Unlocked Workshop OSCON 2013 - Part I

42

Gerrit

Tuesday, July 23, 13

Page 46: Unlocked Workshop OSCON 2013 - Part I

43

Tuesday, July 23, 13

Page 47: Unlocked Workshop OSCON 2013 - Part I

44

Tuesday, July 23, 13

Page 48: Unlocked Workshop OSCON 2013 - Part I

Infrastructure as code

45

Tuesday, July 23, 13

Page 49: Unlocked Workshop OSCON 2013 - Part I

46

Same Problems

Tuesday, July 23, 13

Page 50: Unlocked Workshop OSCON 2013 - Part I

47

What version is in production?

Tuesday, July 23, 13

Page 51: Unlocked Workshop OSCON 2013 - Part I

48

Issues are found, fixed & redeployed quickly

Tuesday, July 23, 13

Page 52: Unlocked Workshop OSCON 2013 - Part I

49

Test as you develop

Tuesday, July 23, 13

Page 53: Unlocked Workshop OSCON 2013 - Part I

50

Same Best Practices

Tuesday, July 23, 13

Page 54: Unlocked Workshop OSCON 2013 - Part I

51

Tag, branch & release code that defines infra

Tuesday, July 23, 13

Page 55: Unlocked Workshop OSCON 2013 - Part I

52

Coverage lifecycle over various stages

Tuesday, July 23, 13

Page 56: Unlocked Workshop OSCON 2013 - Part I

53

Continuously Test

Tuesday, July 23, 13

Page 57: Unlocked Workshop OSCON 2013 - Part I

54

Tuesday, July 23, 13

Page 58: Unlocked Workshop OSCON 2013 - Part I

Chef Server

Chef Workstation

Chef Client

knife

node

Chef Client

node

environment

55

Tuesday, July 23, 13

Page 59: Unlocked Workshop OSCON 2013 - Part I

•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

Page 60: Unlocked Workshop OSCON 2013 - Part I

Thinking like a developer57

Tuesday, July 23, 13

Page 61: Unlocked Workshop OSCON 2013 - Part I

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

Page 62: Unlocked Workshop OSCON 2013 - Part I

59

1. Design

5. QA 2. Build

4. Release 3. Configure

Tuesday, July 23, 13

Page 63: Unlocked Workshop OSCON 2013 - Part I

Tuesday, July 23, 13

Page 64: Unlocked Workshop OSCON 2013 - Part I

Test Driven Development

Tuesday, July 23, 13

Page 65: Unlocked Workshop OSCON 2013 - Part I

Test Driven Development

Behavior Driven Development

Tuesday, July 23, 13

Page 66: Unlocked Workshop OSCON 2013 - Part I

Test Driven Development

Behavior Driven Development Domain Driven Development

Tuesday, July 23, 13

Page 67: Unlocked Workshop OSCON 2013 - Part I

Test Driven Development

Behavior Driven Development

Application Bliss

Domain Driven Development

Tuesday, July 23, 13

Page 68: Unlocked Workshop OSCON 2013 - Part I

POLYGLOT PERSISTENCE

alex brandtsr developer

Tuesday, July 23, 13

Page 69: Unlocked Workshop OSCON 2013 - Part I

62

Tuesday, July 23, 13

Page 70: Unlocked Workshop OSCON 2013 - Part I

63

Tuesday, July 23, 13

Page 71: Unlocked Workshop OSCON 2013 - Part I

64

Tuesday, July 23, 13

Page 72: Unlocked Workshop OSCON 2013 - Part I

65

RDBMS may not be the best fit

Tuesday, July 23, 13

Page 73: Unlocked Workshop OSCON 2013 - Part I

66

Tuesday, July 23, 13

Page 74: Unlocked Workshop OSCON 2013 - Part I

67

Tuesday, July 23, 13

Page 75: Unlocked Workshop OSCON 2013 - Part I

68

5 Characteristics

Tuesday, July 23, 13

Page 76: Unlocked Workshop OSCON 2013 - Part I

69

Non-relational

Tuesday, July 23, 13

Page 77: Unlocked Workshop OSCON 2013 - Part I

70

Distributed

Tuesday, July 23, 13

Page 78: Unlocked Workshop OSCON 2013 - Part I

71

Open-source

Tuesday, July 23, 13

Page 79: Unlocked Workshop OSCON 2013 - Part I

72

Horizontally Scalable

Tuesday, July 23, 13

Page 80: Unlocked Workshop OSCON 2013 - Part I

73

Schema-less

Tuesday, July 23, 13

Page 81: Unlocked Workshop OSCON 2013 - Part I

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: AmexCC #: 12345expires: 04/2001

74

Tuesday, July 23, 13

Page 82: Unlocked Workshop OSCON 2013 - Part I

75

There are several different types of data stores that are considered to

be NoSQL

Tuesday, July 23, 13

Page 83: Unlocked Workshop OSCON 2013 - Part I

76

Key/Value Databases

Tuesday, July 23, 13

Page 84: Unlocked Workshop OSCON 2013 - Part I

77

Document Databases

Tuesday, July 23, 13

Page 85: Unlocked Workshop OSCON 2013 - Part I

78

Column-Family Stores

Tuesday, July 23, 13

Page 86: Unlocked Workshop OSCON 2013 - Part I

79

Graph Databases

Tuesday, July 23, 13

Page 87: Unlocked Workshop OSCON 2013 - Part I

80

Types in Detail

Tuesday, July 23, 13

Page 88: Unlocked Workshop OSCON 2013 - Part I

Key/Value DatabaseS

81

Tuesday, July 23, 13

Page 89: Unlocked Workshop OSCON 2013 - Part I

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

Page 90: Unlocked Workshop OSCON 2013 - Part I

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

Page 91: Unlocked Workshop OSCON 2013 - Part I

document Database

84

Tuesday, July 23, 13

Page 92: Unlocked Workshop OSCON 2013 - Part I

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

Page 93: Unlocked Workshop OSCON 2013 - Part I

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

Page 94: Unlocked Workshop OSCON 2013 - Part I

COLUMN FAMILY

87

Tuesday, July 23, 13

Page 95: Unlocked Workshop OSCON 2013 - Part I

88

Tuesday, July 23, 13

Page 96: Unlocked Workshop OSCON 2013 - Part I

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

Page 97: Unlocked Workshop OSCON 2013 - Part I

graph database

90

Tuesday, July 23, 13

Page 98: Unlocked Workshop OSCON 2013 - Part I

Amanda

KNOWS

KNOWS

KNOWS

Robert

Gerry

Lamar

KNOWS

App 1

BUILTBUILT

KNOWS

App 2

USES

BUILT

Christie

KNOWS

Destiny

Jessica

KNOWS

App 3

BUILT

USES

USES

USES

KNOWS

graph database

91

Tuesday, July 23, 13

Page 99: Unlocked Workshop OSCON 2013 - Part I

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

Page 100: Unlocked Workshop OSCON 2013 - Part I

Companies using nosql

93

DATABASE COMPANIES

Tuesday, July 23, 13

Page 101: Unlocked Workshop OSCON 2013 - Part I

THE FUTURE IS POLYGLOT

94

Neo4Jdatabase

Cassandradatabase

Couchdatabase

MongoDBdatabase

RELATIONALDATABASE

Graph-structureddomain rules

Columnar dataaccess with

decentralization

Documentstructures

Document structureswith offlineprocessing

(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

Page 102: Unlocked Workshop OSCON 2013 - Part I

95

POLYGLOT PATTERN: cache

ORDERTAKING

RESTAURANTMANAGEMENT

REDISCACHE

MYSQL DATABASE SECONDFIRST

CONSUMERRESTAURANT

OWNER

Credit: @crichardson

Tuesday, July 23, 13

Page 103: Unlocked Workshop OSCON 2013 - Part I

96

POLYGLOT PATTERN: write to sql and NOSQL

NEWTWEET

INSERT

LPUSHXLTRIM

MySQL

TWEETS

FOLLOWS

FOLLOWERS

Redis: Timeline

FOLLOWER 1

FOLLOWER 2

FOLLOWER 3

Avoidexpensive

MySQL joins

Credit: @crichardson

Tuesday, July 23, 13

Page 104: Unlocked Workshop OSCON 2013 - Part I

97

POLYGLOT PATTERN: REPLICATE FROM MYsql to NOSQL

QUERYSERVICE

UPDATESERVICE

REDISMYSQL

DATABASE

SYSTEMOF RECORD

MATERIALIZED VIEW

READER WRITER

replicate and

denormalize

query() update()

Credit: @crichardson

Tuesday, July 23, 13

Page 105: Unlocked Workshop OSCON 2013 - Part I

98

Atomic

Consistent

Isolated

Durable

ACID to base

Basically Available

Soft state

Eventually consistent

Tuesday, July 23, 13