Simonvc basho-nosql-in-a-continuous-delivery-world
-
Upload
simon-vans-colina -
Category
Documents
-
view
240 -
download
0
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
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