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

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

Transcript of 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

basho

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

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

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

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

basho

I do devops@basho.

I am not a DBABefore Basho

Tuesday, 12 March 13

basho

This talk is actually about...

Do NoSQL databases fit into a Continuous Delivery World.

(Hint: They do.)

Tuesday, 12 March 13

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

basho

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

Separation of Concerns

Loosely coupled

Tuesday, 12 March 13

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

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

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

basho

Automate

But be able to rollback.

“all automation should be idempotent”

Embrace Suckiness

Tuesday, 12 March 13

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

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

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

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

basho

No Schema = No Schema Migrations!

Schemaless DB = NoSQL DB

Keep business logic out of the DB

Tuesday, 12 March 13

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

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

basho

@simonvc

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

Still totally worth it.

Tuesday, 12 March 13