Top Banner
Ironfan: Principle-Driven Scalable Ops Tools http://github.com/infochimps-labs/ironfan
53

Ironfan: Principle-Driven Scalable Ops Tools

Aug 20, 2015

Download

Technology

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: Ironfan:  Principle-Driven Scalable Ops Tools

Ironfan: Principle-DrivenScalable Ops Tools

http://github.com/infochimps-labs/ironfan

Page 2: Ironfan:  Principle-Driven Scalable Ops Tools

Ironfan

• Open-source core (Apache) with enterprise features

• http://github.com/infochimps-labs/ironfan

• Based on Chef (http://www.opscode.com/chef)

Page 3: Ironfan:  Principle-Driven Scalable Ops Tools

Principles

• Progressive - match what you’d whiteboard

• Declaratory - show all (and only) what’s interesting

• Coherent - full state is versioned as a whole

• Decoupled - minimize shared knowledge

• Helpful - common things are simple

• Inevitable - declarations imply actions

Page 4: Ironfan:  Principle-Driven Scalable Ops Tools

Ironfan:your system diagram

made real

Page 5: Ironfan:  Principle-Driven Scalable Ops Tools
Page 6: Ironfan:  Principle-Driven Scalable Ops Tools
Page 7: Ironfan:  Principle-Driven Scalable Ops Tools
Page 8: Ironfan:  Principle-Driven Scalable Ops Tools

Declaratory:simple stories, simply told

Page 9: Ironfan:  Principle-Driven Scalable Ops Tools

• HBase Master• HBase RegionServers

Simple, right?

HBase Cluster

Page 10: Ironfan:  Principle-Driven Scalable Ops Tools

• one-ish:• HBase master• HBase secondary master• Hadoop Namenode• Hadoop 2NN• Hadoop Jobtracker• Zookeeper Quorum x3

• many:• HBase RegionServer• HBase Stargate• HBase Thrift• Hadoop Datanode• Hadoop Tasktracker

HBase Cluster

Page 11: Ironfan:  Principle-Driven Scalable Ops Tools
Page 12: Ironfan:  Principle-Driven Scalable Ops Tools
Page 13: Ironfan:  Principle-Driven Scalable Ops Tools
Page 14: Ironfan:  Principle-Driven Scalable Ops Tools

Powerful Black Boxes

Beautiful Glue

Decouple

Page 15: Ironfan:  Principle-Driven Scalable Ops Tools

• HBase

• ElasticSearch

• Cassandra

• TokyoTyrant

• SimpleDB

• MongoDB

• MySQL

• Redis

• sqlite

• whisper (graphite)

• file system

• S3

Data Stores in Production

Page 16: Ironfan:  Principle-Driven Scalable Ops Tools

• Emacs

• Keynote

• Preview

• Chrome

• ruby (pry)

• Skitch

• finder

• flickr.com

• google image search

• ssh

Programs Used for This Talk

Page 17: Ironfan:  Principle-Driven Scalable Ops Tools

A Database is just a Bucket

Page 18: Ironfan:  Principle-Driven Scalable Ops Tools

Service Discovery:game recognize game

Page 19: Ironfan:  Principle-Driven Scalable Ops Tools
Page 20: Ironfan:  Principle-Driven Scalable Ops Tools

gibbon-nnjt-0

gibbon-worker-0

gibbon-hadoop-namenodegibbon-hadoop-jobtracker

¿dónde está mi namenode?

gibbon-nnjt-0

ack ack ack

Page 21: Ironfan:  Principle-Driven Scalable Ops Tools

gibbon-nnjt-0

gibbon-worker-0

¿dónde está mi namenode?

gibbon-nnjt-0

¿dónde está mi jobtracker?

gibbon-nnjt-0

gibbon-hadoop-namenodegibbon-hadoop-jobtracker

ack ack ack

Page 22: Ironfan:  Principle-Driven Scalable Ops Tools

gibbon-nn-0

gibbon-worker-0

¿dónde está mi namenode?

gibbon-nn-0

¿dónde está mi jobtracker?

gibbon-jt-0

ack ack ack

gibbon-jt-0

gibbon-hadoop-namenode

gibbon-hadoop-jobtracker

Page 23: Ironfan:  Principle-Driven Scalable Ops Tools
Page 24: Ironfan:  Principle-Driven Scalable Ops Tools

declaratory + decoupled =Recapitulation

ex: DB Migrationsthe Ironfan Way

Page 25: Ironfan:  Principle-Driven Scalable Ops Tools
Page 26: Ironfan:  Principle-Driven Scalable Ops Tools

• HBase Master• HBase RegionServers

alice

alice

bob

alice

bob

bob

Page 27: Ironfan:  Principle-Driven Scalable Ops Tools

Aspects:Cross-cutting Concerns

Page 28: Ironfan:  Principle-Driven Scalable Ops Tools

Amenities

• Logs

• Ports

• Daemons

• Dashboards

• Libs / Executables

Page 29: Ironfan:  Principle-Driven Scalable Ops Tools

Amenities:It’s good to be king

Page 30: Ironfan:  Principle-Driven Scalable Ops Tools

Amenities

• Logs: rotation, archiving

• Ports: remote monitoring (on and off)

• Daemons: process monitoring

• Dashboards: Dashboard dashboard

• Libs / Executables: Decoupled imports

• Versions: Shims, Discovery

Page 31: Ironfan:  Principle-Driven Scalable Ops Tools

Inevitability:born this way

Page 32: Ironfan:  Principle-Driven Scalable Ops Tools

Ironfan:

Chef:

Page 33: Ironfan:  Principle-Driven Scalable Ops Tools

10 lines

Page 34: Ironfan:  Principle-Driven Scalable Ops Tools

10 lines, 5 flaws

can you spot all 5?

Page 35: Ironfan:  Principle-Driven Scalable Ops Tools

hard coded

fails on bsd

not DRY

SECURITY HOLEdaemon-writeable

conf dir

10 lines, 5 flaws

‘0755’ not 755

Page 36: Ironfan:  Principle-Driven Scalable Ops Tools

Ironfan

Page 37: Ironfan:  Principle-Driven Scalable Ops Tools

Inevitabilitymust do this:

to get a log dir

gibbon-hadoop-namenode

so when you announce,

AWESOMENESS IS INEVITABLE

Page 38: Ironfan:  Principle-Driven Scalable Ops Tools

Contract:word is bond yo

Page 39: Ironfan:  Principle-Driven Scalable Ops Tools
Page 40: Ironfan:  Principle-Driven Scalable Ops Tools

Resource Sharing:can’t we all just get along?

Page 41: Ironfan:  Principle-Driven Scalable Ops Tools

• Region Server (dominate)• TaskTracker + Children (wussy)• DataNode (moderate)

• DataNode (moderate)• TaskTracker + Children (dominate)

HBase

Hadoop

Page 42: Ironfan:  Principle-Driven Scalable Ops Tools

Rails Apps > 5k LOCconsidered Harmful

one big app many apps tax

Page 43: Ironfan:  Principle-Driven Scalable Ops Tools

Resource Sharing:can’t we all just get along?

Page 44: Ironfan:  Principle-Driven Scalable Ops Tools
Page 45: Ironfan:  Principle-Driven Scalable Ops Tools

Monolithic Software

means Meetings

Page 46: Ironfan:  Principle-Driven Scalable Ops Tools

Meetings

are Death

Page 47: Ironfan:  Principle-Driven Scalable Ops Tools

Decentralize. Decouple.

Page 48: Ironfan:  Principle-Driven Scalable Ops Tools

Fast

Resilient

Simple

It’s not about Performance

Page 50: Ironfan:  Principle-Driven Scalable Ops Tools

...

Page 51: Ironfan:  Principle-Driven Scalable Ops Tools
Page 52: Ironfan:  Principle-Driven Scalable Ops Tools

• System Diagram made real• Decoupled Components connect• Components Announce their capabilities• Announcements enable Service Discovery• Components announce cross-cutting Aspects• Aspects enable zero-conf Amenities• Announcement as Contract• Contracts enable zero-conf specification testing• Specs + monitoring enable zero-conf integration

testing• Systems Bind to provisioned resources• Resource Sharing

Page 53: Ironfan:  Principle-Driven Scalable Ops Tools