Top Banner
25

Project FiFo introduction

May 21, 2015

Download

Technology

Licenser

In introduction to Project FiFo
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: 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