unlocked workshop oscon 2013 - part i

Post on 06-May-2015

1.493 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

"Butter" Up Your Application Workshop at OSCON 2013

TRANSCRIPT

OSCON

23 july 2013

Portland, ORButter Up your application

Tuesday, July 23, 13

welcome & introductions

Tuesday, July 23, 13

your unlocked team

3

Wayne A. Walls@waynewalls

Alex Brandt@alunduil

Hart Hoover@hhoover

Tuesday, July 23, 13

get social!

4

@rackspace #unlockedPDX#oscon

Tuesday, July 23, 13

5

Tuesday, July 23, 13

6

Business Strategy

Tuesday, July 23, 13

7

Cloud Savvy

Tuesday, July 23, 13

8

Cloud Freedom

Tuesday, July 23, 13

9

Application Fit

Tuesday, July 23, 13

cost of cloud apps

Wayne wallscloud evangelist

Tuesday, July 23, 13

11

Tuesday, July 23, 13

40%PRIVATE CLOUD

11

Tuesday, July 23, 13

40%PRIVATE CLOUD

11

50%HOSTED ON-SITE

Tuesday, July 23, 13

90% of Workloads Remain In-House...

40%PRIVATE CLOUD

11

50%HOSTED ON-SITE

Tuesday, July 23, 13

Cost Considerations

Infrastructure

12

Tuesday, July 23, 13

13

How many customers can you serve?

Tuesday, July 23, 13

14

How easy would it be to scale?

Tuesday, July 23, 13

Innovation

15

Tuesday, July 23, 13

In-house?

16

Tuesday, July 23, 13

Cost Considerations

17

Developers

Tuesday, July 23, 13

18

Developer time translates into $

Tuesday, July 23, 13

19

Apply effort where it matters

Tuesday, July 23, 13

20

Be realistic about engineering time

Tuesday, July 23, 13

21

Choose tools that scale

Tuesday, July 23, 13

everything as code

Wayne wallscloud evangelist

hart hoovercloud evangelist

Tuesday, July 23, 13

Tuesday, July 23, 13

24

Self-service

Tuesday, July 23, 13

25

On-demand

Tuesday, July 23, 13

26

Metered

Tuesday, July 23, 13

27

Resource pooling

Tuesday, July 23, 13

28

Broad network access

Tuesday, July 23, 13

NIST SAys...

29

Tuesday, July 23, 13

NIST says...

30

Tuesday, July 23, 13

NIST says...

31

Tuesday, July 23, 13

multi-cloud

32

Tuesday, July 23, 13

ENTER devops

33

Tuesday, July 23, 13

34

Culture & Work Methodology

Tuesday, July 23, 13

35

Tooling

Tuesday, July 23, 13

36

Deployment Strategies

Tuesday, July 23, 13

37

Measure All the Things

Tuesday, July 23, 13

38

Automate All the Things

Tuesday, July 23, 13

39

Tuesday, July 23, 13

40

Tuesday, July 23, 13

41

Gerrit

Tuesday, July 23, 13

42

Gerrit

Tuesday, July 23, 13

43

Tuesday, July 23, 13

44

Tuesday, July 23, 13

Infrastructure as code

45

Tuesday, July 23, 13

46

Same Problems

Tuesday, July 23, 13

47

What version is in production?

Tuesday, July 23, 13

48

Issues are found, fixed & redeployed quickly

Tuesday, July 23, 13

49

Test as you develop

Tuesday, July 23, 13

50

Same Best Practices

Tuesday, July 23, 13

51

Tag, branch & release code that defines infra

Tuesday, July 23, 13

52

Coverage lifecycle over various stages

Tuesday, July 23, 13

53

Continuously Test

Tuesday, July 23, 13

54

Tuesday, July 23, 13

Chef Server

Chef Workstation

Chef Client

knife

node

Chef Client

node

environment

55

Tuesday, July 23, 13

•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

Thinking like a developer57

Tuesday, July 23, 13

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

59

1. Design

5. QA 2. Build

4. Release 3. Configure

Tuesday, July 23, 13

Tuesday, July 23, 13

Test Driven Development

Tuesday, July 23, 13

Test Driven Development

Behavior Driven Development

Tuesday, July 23, 13

Test Driven Development

Behavior Driven Development Domain Driven Development

Tuesday, July 23, 13

Test Driven Development

Behavior Driven Development

Application Bliss

Domain Driven Development

Tuesday, July 23, 13

POLYGLOT PERSISTENCE

alex brandtsr developer

Tuesday, July 23, 13

62

Tuesday, July 23, 13

63

Tuesday, July 23, 13

64

Tuesday, July 23, 13

65

RDBMS may not be the best fit

Tuesday, July 23, 13

66

Tuesday, July 23, 13

67

Tuesday, July 23, 13

68

5 Characteristics

Tuesday, July 23, 13

69

Non-relational

Tuesday, July 23, 13

70

Distributed

Tuesday, July 23, 13

71

Open-source

Tuesday, July 23, 13

72

Horizontally Scalable

Tuesday, July 23, 13

73

Schema-less

Tuesday, July 23, 13

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

75

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

be NoSQL

Tuesday, July 23, 13

76

Key/Value Databases

Tuesday, July 23, 13

77

Document Databases

Tuesday, July 23, 13

78

Column-Family Stores

Tuesday, July 23, 13

79

Graph Databases

Tuesday, July 23, 13

80

Types in Detail

Tuesday, July 23, 13

Key/Value DatabaseS

81

Tuesday, July 23, 13

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

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

document Database

84

Tuesday, July 23, 13

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

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

COLUMN FAMILY

87

Tuesday, July 23, 13

88

Tuesday, July 23, 13

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

graph database

90

Tuesday, July 23, 13

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

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

Companies using nosql

93

DATABASE COMPANIES

Tuesday, July 23, 13

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

95

POLYGLOT PATTERN: cache

ORDERTAKING

RESTAURANTMANAGEMENT

REDISCACHE

MYSQL DATABASE SECONDFIRST

CONSUMERRESTAURANT

OWNER

Credit: @crichardson

Tuesday, July 23, 13

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

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

98

Atomic

Consistent

Isolated

Durable

ACID to base

Basically Available

Soft state

Eventually consistent

Tuesday, July 23, 13

top related