:GITYOUR
OWNCLOUDHERE
NYMOTE
Anil Madhavapeddy University of Cambridge @avsm
Richard Mortier University of Nottingham @mor...
INTRODUCING MIRAGE OS 2.0
These slides were written using Mirage on OSX:
They are hosted in a 938kB Xen unikernel written ...
INTRODUCING MIRAGE OS 2.0
LEANINGTOWEROFCLOUD
Numerous pain points:
Complex configuration management.
Duplicated functionality leads to
inefficiency...
COMPLEXITY KILLS YOU
The enemy is complexity:
Applications are deeply intertwined with system APIs, and so
lack portabilit...
DOCKER:CONTAINERISATION
https://flic.kr/p/qSbck
DOCKER:CONTAINERISATION
Docker bundles up all this state making it easy to transport,
install and manage.
CAN WE DO BETTER?
Disentangle applications from the operating system.
Break up operating system functionality into modular...
THE UNIKERNEL APPROACH
Unikernels are specialised virtual machine
images compiled from the full stack of
application code,...
IT'S ALL JUST SOURCE CODE
Capture system dependencies in code and compile them away.
RETARGET BY RECOMPILING
develop application logic using native Unix.
Swap system libraries to target different platforms:
RETARGET BY RECOMPILING
test unikernel using Mirage system libraries.
Swap system libraries to target different platforms:
RETARGET BY RECOMPILING
deploy by specialising unikernel to Xen.
Swap system libraries to target different platforms:
END RESULT?
Unikernels are compact enough to boot and respond to network
traffic in real-time.
Appliance Standard
Build
De...
END RESULT?
Unikernels are compact enough to boot and respond to network
traffic in real-time.
GIT YOUROWN CLOUD
Unikernels are small enough to be tracked in GitHub. For
example, for the :Mirage website
1. Source code...
MIRAGE OS 2.0WORKFLOW
As easy as 1—2—3!
1. Write your OCaml application using the Mirage module types.
Express its configu...
MIRAGE OS 2.0WORKFLOW
As easy as 1—2—3!
1. Write your OCaml application using the Mirage module types.
Express its configu...
MIRAGE OS 2.0WORKFLOW
As easy as 1—2—3!
1. Write your OCaml application using the Mirage module types.
Express its configu...
MODULARIZINGTHE OS
MODULARIZINGTHE OS
MODULARIZINGTHE OS
GIT YOUROWN CLOUD
Unikernels are small enough to be tracked in GitHub. For
example, for the :Mirage website
1. Source code...
IMPLICATIONS
Historical tracking of source code and built binaries in Git(hub).
gittag to link code and binary across repo...
IMPLICATIONS
Historical tracking of source code and built binaries in Git(hub).
Low latency deployment of security updates...
IMPLICATIONS
Historical tracking of source code and built binaries in Git(hub).
Low latency deployment of security updates...
WRAPPINGUP
Mirage OS 2.0 is an important step forward, supporting more, and
more diverse, backends with much greater modul...
WHY? NYMOTE.ORG
We need to claim control over our online lives rather than
abrogate it to The Cloud:
Doing so means we all...
HTTP://OPENMIRAGE.ORG/
Featuring blog posts by: , ,
, , , ,
, , and .
Amir Chaudhry Thomas Gazagnaire
David Kaloper Thomas...
Upcoming SlideShare
Loading in...5
×

OSCON14: Mirage 2.0

16,881

Published on

OSCON14: Mirage 2.0 -- NYMOTE: Git Your Own Cloud Here.
This describes the new features of the Mirage 2.0 release.

Published in: Technology
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total Views
16,881
On Slideshare
0
From Embeds
0
Number of Embeds
20
Actions
Shares
0
Downloads
35
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

OSCON14: Mirage 2.0

  1. 1. :GITYOUR OWNCLOUDHERE NYMOTE Anil Madhavapeddy University of Cambridge @avsm Richard Mortier University of Nottingham @mort___ http://openmirage.org/ http://nymote.org/ http://decks.openmirage.org/oscon14/ Press <esc> to view the slide index, and the <arrow> keys to navigate.
  2. 2. INTRODUCING MIRAGE OS 2.0 These slides were written using Mirage on OSX: They are hosted in a 938kB Xen unikernel written in statically type-safe OCaml, including device drivers and network stack. Their application logic is just a couple of source files, written independently of any OS dependencies. Running on an ARM CubieBoard2, and hosted on the cloud. Binaries small enough to track the entire deployment in Git!
  3. 3. INTRODUCING MIRAGE OS 2.0
  4. 4. LEANINGTOWEROFCLOUD Numerous pain points: Complex configuration management. Duplicated functionality leads to inefficiency. VM image size leads to long boot times. Lots of code means a large attack surface. https://flic.kr/p/8N1hWh
  5. 5. COMPLEXITY KILLS YOU The enemy is complexity: Applications are deeply intertwined with system APIs, and so lack portability. Modern operating systems offer dynamic support for many users to run multiple applications simultaneously. Almost unbounded scope for uncontrolled interaction! Choices of distribution and version. Ad hoc application configuration under /etc/ Platform configuration details, e.g., firewalls.
  6. 6. DOCKER:CONTAINERISATION https://flic.kr/p/qSbck
  7. 7. DOCKER:CONTAINERISATION Docker bundles up all this state making it easy to transport, install and manage.
  8. 8. CAN WE DO BETTER? Disentangle applications from the operating system. Break up operating system functionality into modular libraries. Link only the system functionality your app needs. Target alternative platforms from a single codebase.
  9. 9. THE UNIKERNEL APPROACH Unikernels are specialised virtual machine images compiled from the full stack of application code, system libraries and config This means they realise several benefits: Contained, simplifying deployment and management. Compact, reducing attack surface and boot times. Efficient, able to fit 10,000s onto a single host.
  10. 10. IT'S ALL JUST SOURCE CODE Capture system dependencies in code and compile them away.
  11. 11. RETARGET BY RECOMPILING develop application logic using native Unix. Swap system libraries to target different platforms:
  12. 12. RETARGET BY RECOMPILING test unikernel using Mirage system libraries. Swap system libraries to target different platforms:
  13. 13. RETARGET BY RECOMPILING deploy by specialising unikernel to Xen. Swap system libraries to target different platforms:
  14. 14. END RESULT? Unikernels are compact enough to boot and respond to network traffic in real-time. Appliance Standard Build Dead Code Elimination DNS 0.449 MB 0.184 MB Web Server 0.674 MB 0.172 MB Openflow learning switch 0.393 MB 0.164 MB Openflow controller 0.392 MB 0.168 MB
  15. 15. END RESULT? Unikernels are compact enough to boot and respond to network traffic in real-time.
  16. 16. GIT YOUROWN CLOUD Unikernels are small enough to be tracked in GitHub. For example, for the :Mirage website 1. Source code updates are merged to ; 2. Repository is continuously rebuilt by ; if successful: 3. Unikernel pushed to ; and 4. Our cloud toolstack spawns VMs based on pushes there. mirage/mirage-www Travis CI mirage/mirage-www-deployment Our entire cloud-facing deployment is version-controlled from the source code up!
  17. 17. MIRAGE OS 2.0WORKFLOW As easy as 1—2—3! 1. Write your OCaml application using the Mirage module types. Express its configuration as OCaml code too! $mirageconfigureapp/config.ml--unix
  18. 18. MIRAGE OS 2.0WORKFLOW As easy as 1—2—3! 1. Write your OCaml application using the Mirage module types. Express its configuration as OCaml code too! 2. Compile it and debug under Unix using the mirage tool. $cdapp $makedepend#installlibrarydependencies $makebuild #buildtheunikernel
  19. 19. MIRAGE OS 2.0WORKFLOW As easy as 1—2—3! 1. Write your OCaml application using the Mirage module types. Express its configuration as OCaml code too! 2. Compile it and debug under Unix using the mirage tool. 3. Once debugged, simply retarget it to Xen, and rebuild! All the magic happens via the OCaml module system. $mirageconfigureapp/config.ml--xen $cdapp&&makedepend&&makebuild
  20. 20. MODULARIZINGTHE OS
  21. 21. MODULARIZINGTHE OS
  22. 22. MODULARIZINGTHE OS
  23. 23. GIT YOUROWN CLOUD Unikernels are small enough to be tracked in GitHub. For example, for the :Mirage website 1. Source code updates are merged to ; 2. Repository is continuously rebuilt by ; if successful: 3. Unikernel pushed to ; and our 4. Cloud toolstack spawns VMs based on pushes there. mirage/mirage-www Travis CI mirage/mirage-www-deployment Our entire cloud-facing deployment is version-controlled from the source code up!
  24. 24. IMPLICATIONS Historical tracking of source code and built binaries in Git(hub). gittag to link code and binary across repositories. gitlog to view deployment changelog. gitpull to deploy new version. gitcheckout to go back in time to any point. gitbisect to pin down deployment failures.
  25. 25. IMPLICATIONS Historical tracking of source code and built binaries in Git(hub). Low latency deployment of security updates. No need for Linux distro to pick up and build the new version. Updated binary automatically built and pushed. Pick up latest binary directly from repository. Statically type-checked language prevents classes of attack.
  26. 26. IMPLICATIONS Historical tracking of source code and built binaries in Git(hub). Low latency deployment of security updates. Unified development for cloud and embedded environments. Write application code once. Recompile to swap in different versions of system libraries. Use compiler optimisations for exotic environments.
  27. 27. WRAPPINGUP Mirage OS 2.0 is an important step forward, supporting more, and more diverse, backends with much greater modularity. For information about the many components we could not cover here, see :openmirage.org , Git-like distributed branchable storage. , a from-scratch native OCaml TLS stack. , for low-latency inter-VM communication. , modular C foreign function bindings. Irmin OCaml-TLS Vchan Ctypes
  28. 28. WHY? NYMOTE.ORG We need to claim control over our online lives rather than abrogate it to The Cloud: Doing so means we all need to be able to run our own infrastructure. Without having to become (Linux) sysadmins! How can we achieve this? Mirage is the foundation for building personal clouds, securely interconnecting and synchronising data between our devices.
  29. 29. HTTP://OPENMIRAGE.ORG/ Featuring blog posts by: , , , , , , , , and . Amir Chaudhry Thomas Gazagnaire David Kaloper Thomas Leonard Jon Ludlam Hannes Mehnert Mindy Preston Dave Scott Jeremy Yallop Thanks for listening! Questions? (and please rate the talk!)
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×