Top Banner
basho Not a talk about installing Riak. Thats too easy s/easy/boring/g What is this talk about. Tuesday, 12 March 13
20

Simonvc basho-nosql-in-a-continuous-delivery-world

Aug 04, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Simonvc basho-nosql-in-a-continuous-delivery-world

basho

Not a talk about installing Riak.

Thats too easy

s/easy/boring/g

What is this talk about.

Tuesday, 12 March 13

Page 2: Simonvc basho-nosql-in-a-continuous-delivery-world

basho

Not a talk about doing continuous delivery to my robot.Also

Come talk to me after :-)Tuesday, 12 March 13

Page 3: Simonvc basho-nosql-in-a-continuous-delivery-world

basho

PuppetChefRakeFabricCuisineAnsible

etc..But we have those, talk to me after if you want to talk about

that stuff.

Also Not About

Tuesday, 12 March 13

Page 4: Simonvc basho-nosql-in-a-continuous-delivery-world

basho

I’d love to debate you guys about:

Imperative tools (Fabric) vs Declarative tools (Puppet/Chef) and what they mean when dealing with non-idempotent stuff

like databases.

Come talk to me afterwards.

Aside:

Tuesday, 12 March 13

Page 5: Simonvc basho-nosql-in-a-continuous-delivery-world

basho

I do devops@basho.

I am not a DBABefore Basho

Tuesday, 12 March 13

Page 6: Simonvc basho-nosql-in-a-continuous-delivery-world

basho

This talk is actually about...

Do NoSQL databases fit into a Continuous Delivery World.

(Hint: They do.)

Tuesday, 12 March 13

Page 7: Simonvc basho-nosql-in-a-continuous-delivery-world

basho

Schemas are the layout of the data: its ShapeAs well as the relationship between parts of the dataAnd the constraints about the content of that data.

NoSQL should really be called Schema-less.

Schemas are really a type of “business logic”

Tuesday, 12 March 13

Page 8: Simonvc basho-nosql-in-a-continuous-delivery-world

basho

Edsger W. DijkstraThings that don't need to be connected, shouldn’t be.

Separation of Concerns

Loosely coupled

Tuesday, 12 March 13

Page 9: Simonvc basho-nosql-in-a-continuous-delivery-world

basho

Sure, but Storing the data and manipulating the data are different concerns, surely?

Databases.System of Record?

Single Point of Truth?Authoritative Source?

Tuesday, 12 March 13

Page 10: Simonvc basho-nosql-in-a-continuous-delivery-world

basho

The code has to change. (probably)The shape changes.

Sometimes you’re changing the organization of the data to speed up access (de-normalization).

Does reality change?

What does it really mean to “change a schema?”

Tuesday, 12 March 13

Page 11: Simonvc basho-nosql-in-a-continuous-delivery-world

basho

Embrace Suckiness (automation.)If it hurts, do it more often.

“DevOPS is like violence, if its not working you’re not using enough of it.”

Or

Avoid Suckiness

Schema migrations suck.Options:

Tuesday, 12 March 13

Page 12: Simonvc basho-nosql-in-a-continuous-delivery-world

basho

Automate

But be able to rollback.

“all automation should be idempotent”

Embrace Suckiness

Tuesday, 12 March 13

Page 13: Simonvc basho-nosql-in-a-continuous-delivery-world

basho

This means:Roll Forward

Roll BackRoll Forward again.

Every time.

(congratulations you’re now in the software business)

Idempotent Automation

Tuesday, 12 March 13

Page 14: Simonvc basho-nosql-in-a-continuous-delivery-world

basho

DBDeployActive Record

LiquidibasePerconas online schema change toolkit

Hire expensive good DBA’s who like working nights

Tools. We love Tools right?!

Tuesday, 12 March 13

Page 15: Simonvc basho-nosql-in-a-continuous-delivery-world

basho

A/B testing is hard when you’ve got a tight coupling between code and schema.

Apparently ‘materialized views’ is the answer.

Just roll those in, and out, and in again just like your schema.

Still going to suck.

Tuesday, 12 March 13

Page 16: Simonvc basho-nosql-in-a-continuous-delivery-world

basho

Dramatic 15 second pause while we consider whether ignite format is actually an improvement or just a compensation for

people raised in the MTV generation.

OR

Tuesday, 12 March 13

Page 17: Simonvc basho-nosql-in-a-continuous-delivery-world

basho

No Schema = No Schema Migrations!

Schemaless DB = NoSQL DB

Keep business logic out of the DB

Tuesday, 12 March 13

Page 18: Simonvc basho-nosql-in-a-continuous-delivery-world

basho

Looser coupling between code and data.

We have better tools for code changes:GIT

Jar/War filesRsync

Change confined to Code

Tuesday, 12 March 13

Page 19: Simonvc basho-nosql-in-a-continuous-delivery-world

basho

Giving up Referential integrity.No nice SQL language for re-organizing data.

Eventual consistency != ACID

Not every organization can/will be able to do this.

Scary Stuff

Tuesday, 12 March 13

Page 20: Simonvc basho-nosql-in-a-continuous-delivery-world

basho

@simonvc

Come chat at the @basho booth.We’re hiring devops people.

Still totally worth it.

Tuesday, 12 March 13