YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: Project FiFo introduction
Page 2: Project FiFo introduction

Background

‣ SmartOS is great

‣ zones‣ dtrace‣ zfs‣ crossbow‣ kvm

Page 3: Project FiFo introduction

Background

‣ ... not so great

‣ single user‣ one system‣ root access‣ direct access

‣ SmartOS is great

‣ zones‣ dtrace‣ zfs‣ crossbow‣ kvm

Page 4: Project FiFo introduction

SAD!

Page 5: Project FiFo introduction

FiFo to the Rescue!

Seems like there is no solution...

Page 6: Project FiFo introduction

FiFo to the Rescue!

... Oh! You still want one?

Page 7: Project FiFo introduction

FiFo to the Rescue!

Guess you have to find one yourself!

Page 8: Project FiFo introduction

Users

‣ central management‣ SSH keys‣ permissions (treeish)‣ roles/groups

Page 9: Project FiFo introduction

Virtual machines

‣ create / edit / destroy‣ noVNC / Console‣ SSH access (for zones)‣ snapshots‣ some metrics

Page 10: Project FiFo introduction

Hypervisors

‣ pick the best‣ metrics‣ warnings

Page 11: Project FiFo introduction

Cool Stuff‣ distributed dtrace‣ and visualization‣ dataset creation‣ distributed (riak_core ;)‣ CRDT‘s‣ 100% open source and free!

Page 12: Project FiFo introduction

HAPPY!

Page 13: Project FiFo introduction

Things learned...

Page 14: Project FiFo introduction

build modular‣ ‘small‘ applications that work together‣ specializing codebase‣ well defined interfaces‣ makes things reusable‣ abstract in libraries

Page 15: Project FiFo introduction

the mDNS trick

‣ auto discover services‣ failure auto decays‣ auto recovery‣ kind of extending OTP over the network

Page 16: Project FiFo introduction

don‘t model for representation

‣ JSON is nice for an API‣ BUT! don‘t structure your data to match you representation‣ nice at the borders‣ a mess in the center

Page 17: Project FiFo introduction

Erlang - the good

‣ fault tolerance / ‘self healing‘‣ distributed architecture‣ yadda yadda yadda - you know it!

Page 18: Project FiFo introduction

mindset and culture

Page 19: Project FiFo introduction

Erlang - the bad

‣ unix processes (ports)‣ working as part of (SFM)‣ unix pipes‣ missing libraries‣ sloppy versioning of libs

Page 20: Project FiFo introduction

DEEP DIVE

Page 21: Project FiFo introduction

snarl‣ right management‣ users‣ groups / roles‣ organizations‣ stand alone / totally reusable!‣ client library

Page 22: Project FiFo introduction
Page 23: Project FiFo introduction

Distributed over riak_core

Page 24: Project FiFo introduction

Distributed over riak_core

LWW RegisterLWW Register----------------------------------------------------

--namename----------------------------------------------------

--hashhash----------------------------------------------------

--active_orgactive_org======================

======ORSets (GC’ed)ORSets (GC’ed)

------------------------------------------------------

permissionspermissions----------------------------------------------------

--groupsgroups----------------------------------------------------

--organizationsorganizations======================

======StateboxStatebox

------------------------------------------------------

metadatametadata

LWW RegisterLWW Register----------------------------------------------------

--namename----------------------------------------------------

--hashhash----------------------------------------------------

--active_orgactive_org======================

======ORSets (GC’ed)ORSets (GC’ed)

------------------------------------------------------

permissionspermissions----------------------------------------------------

--groupsgroups----------------------------------------------------

--organizationsorganizations======================

======StateboxStatebox

------------------------------------------------------

metadatametadata

User

Page 25: Project FiFo introduction

Distributed over riak_core

LWW RegisterLWW Register--------------------------------------------

----------namename--------------------------------------------

----------hashhash--------------------------------------------

----------active_orgactive_org==================

==========ORSets (GC’ed)ORSets (GC’ed)--------------------------------------------

----------permissionspermissions--------------------------------------------

----------groupsgroups--------------------------------------------

----------organizationsorganizations==================

==========StateboxStatebox

------------------------------------------------------

metadatametadata

LWW RegisterLWW Register--------------------------------------------

----------namename--------------------------------------------

----------hashhash--------------------------------------------

----------active_orgactive_org==================

==========ORSets (GC’ed)ORSets (GC’ed)--------------------------------------------

----------permissionspermissions--------------------------------------------

----------groupsgroups--------------------------------------------

----------organizationsorganizations==================

==========StateboxStatebox

------------------------------------------------------

metadatametadata

User

Ran

ch

TC

P S

erv

er

/ m

DN

S

Ran

ch

TC

P S

erv

er

/ m

DN

S

bro

ad

cast

bro

ad

cast

Ran

ch

TC

P S

erv

er

/ m

DN

S

Ran

ch

TC

P S

erv

er

/ m

DN

S

bro

ad

cast

bro

ad

cast

poole

r +

gen

_tcp

/ m

dn

s lis

ten

er

poole

r +

gen

_tcp

/ m

dn

s lis

ten

er

poole

r +

gen

_tcp

/ m

dn

s lis

ten

er

poole

r +

gen

_tcp

/ m

dn

s lis

ten

er


Related Documents