Project FiFo introduction
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,569
On Slideshare
1,477
From Embeds
92
Number of Embeds
1

Actions

Shares
Downloads
20
Comments
0
Likes
1

Embeds 92

https://twitter.com 92

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Background ‣ SmartOS is great ‣ zones ‣ dtrace ‣ zfs ‣ crossbow ‣ kvm
  • 2. Background ‣ ... not so great ‣ single user ‣ one system ‣ root access ‣ direct access ‣ SmartOS is great ‣ zones ‣ dtrace ‣ zfs ‣ crossbow ‣ kvm
  • 3. SAD!
  • 4. FiFo to the Rescue! Seems like there is no solution...
  • 5. FiFo to the Rescue! ... Oh! You still want one?
  • 6. FiFo to the Rescue! Guess you have to find one yourself!
  • 7. Users ‣ central management ‣ SSH keys ‣ permissions (treeish) ‣ roles/groups
  • 8. Virtual machines ‣ create / edit / destroy ‣ noVNC / Console ‣ SSH access (for zones) ‣ snapshots ‣ some metrics
  • 9. Hypervisors ‣ pick the best ‣ metrics ‣ warnings
  • 10. Cool Stuff ‣ distributed dtrace ‣ and visualization ‣ dataset creation ‣ distributed (riak_core ;) ‣ CRDT‘s ‣ 100% open source and free!
  • 11. HAPPY!
  • 12. Things learned...
  • 13. build modular ‣ ‘small‘ applications that work together ‣ specializing codebase ‣ well defined interfaces ‣ makes things reusable ‣ abstract in libraries
  • 14. the mDNS trick ‣ auto discover services ‣ failure auto decays ‣ auto recovery ‣ kind of extending OTP over the network
  • 15. 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
  • 16. Erlang - the good ‣ fault tolerance / ‘self healing‘ ‣ distributed architecture ‣ yadda yadda yadda - you know it!
  • 17. mindset and culture
  • 18. Erlang - the bad ‣ unix processes (ports) ‣ working as part of (SFM) ‣ unix pipes ‣ missing libraries ‣ sloppy versioning of libs
  • 19. DEEP DIVE
  • 20. snarl ‣ right management ‣ users ‣ groups / roles ‣ organizations ‣ stand alone / totally reusable! ‣ client library
  • 21. Distributed over riak_core
  • 22. 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
  • 23. 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 RanchTCPServer/mDNSbroadcastRanchTCPServer/mDNSbroadcastRanchTCPServer/mDNSbroadcastRanchTCPServer/mDNSbroadcast pooler+gen_tcp/mdnslistenerpooler+gen_tcp/mdnslistenerpooler+gen_tcp/mdnslistenerpooler+gen_tcp/mdnslistener