Your SlideShare is downloading. ×
0
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Project FiFo introduction
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Project FiFo introduction

1,349

Published on

In introduction to Project FiFo

In introduction to Project FiFo

Published in: Technology, News & Politics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,349
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
26
Comments
0
Likes
1
Embeds 0
No embeds

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

×