Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Joyent's Triton: containers, SmartOS, private c...

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →
Avatar for Jon Stuart Jon Stuart
September 12, 2017

Joyent's Triton: containers, SmartOS, private cloud

Buzzwords aside, what is it? This talk is about where Triton came from, what it does and why it's a good fit for modern application architectures.

Avatar for Jon Stuart

Jon Stuart

September 12, 2017

Other Decks in Technology

Transcript

  1. SmartOS — Solaris → OpenSolaris → illumos → SmartOS and

    OmniOS, ... — Fork Yeah! — Solaris RIP September 2017
  2. SmartOS — Zones — ZFS — SMF — DTrace —

    pkgsrc — Crufty UNIX history
  3. SmartOS > Zones — chroot → jails → zones —

    Bryan Cantrill: Jails and Solaris zones
  4. SmartOS > Zones — chroot → jails → zones —

    Bryan Cantrill: Jails and Solaris zones — "thin" virtualization
  5. SmartOS > Zones — chroot → jails → zones —

    Bryan Cantrill: Jails and Solaris zones — "thin" virtualization — network, cpu, memory, io isolation
  6. SmartOS > Zones — chroot → jails → zones —

    Bryan Cantrill: Jails and Solaris zones — "thin" virtualization — network, cpu, memory, io isolation — and, of course, a chrooted fs
  7. SmartOS > Zones — run SmartOS itself with readonly /usr

    shared from "global zone" — run KVM and so anything
  8. SmartOS > Zones — run SmartOS itself with readonly /usr

    shared from "global zone" — run KVM and so anything — also, Linux userland on illumos syscall magic
  9. SmartOS > Zones — run SmartOS itself with readonly /usr

    shared from "global zone" — run KVM and so anything — also, Linux userland on illumos syscall magic — Docker
  10. SmartOS > ZFS — you know, ZFS — each zone

    gets a z-thing — which is a filesystem for regular or LX zones
  11. SmartOS > ZFS — you know, ZFS — each zone

    gets a z-thing — which is a filesystem for regular or LX zones — or a zvol for KVM zones
  12. SmartOS > ZFS — you know, ZFS — each zone

    gets a z-thing — which is a filesystem for regular or LX zones — or a zvol for KVM zones — we can delegate zfs into the zone so it can create further datasets
  13. SmartOS > SMF — "I know, let's replace init" —

    With something that uses XML! — But it's not terrible merely super engineered
  14. SmartOS > DTrace — all the observability tooling I do

    not know how to use properly — dynamic tracing of kernel and userland that's cheap and safe
  15. SmartOS > Cru!y UNIX history — a pleasing mix of

    SysV, BSD and GNU deliciously blended to confuse
  16. SmartOS > Cru!y UNIX history — a pleasing mix of

    SysV, BSD and GNU deliciously blended to confuse — rando synthetic filesystems, doors, $0, LWP / threading, killall
  17. Triton — Formerly "Smart Data Center" — What Joyent built

    to sell hosted SmartOS: "Public cloud"
  18. Triton — Formerly "Smart Data Center" — What Joyent built

    to sell hosted SmartOS: "Public cloud" — Think of it like running your own AWS EC2
  19. Triton — Formerly "Smart Data Center" — What Joyent built

    to sell hosted SmartOS: "Public cloud" — Think of it like running your own AWS EC2 — Almost all open source
  20. Triton — Formerly "Smart Data Center" — What Joyent built

    to sell hosted SmartOS: "Public cloud" — Think of it like running your own AWS EC2 — Almost all open source — Manages the bare metal, provisioning and maintenance of the cluster and zone lifecycle
  21. Triton > Strange — All but one server boots over

    the network from the head node — The head node itself boots off a USB stick
  22. Triton > Strange — Separate network for Triton comms between

    nodes — Runs a bazillion tiny management services and everything has a JSON API cnapi, vmapi, napi, ...
  23. Triton > How do I even? — Admin UI web

    interface — triton and sdc-* CLI
  24. Triton > How do I even? — Admin UI web

    interface — triton and sdc-* CLI — "Users" own zones, networks
  25. Triton > How do I even? — Admin UI web

    interface — triton and sdc-* CLI — "Users" own zones, networks — User portal
  26. Microservices — Lightweight — A proper pid 1 — Managed

    software packaging — Configuration Management
  27. Microservices — Lightweight — A proper pid 1 — Managed

    software packaging — Configuration Management — Regular network
  28. Microservices — Lightweight — A proper pid 1 — Managed

    software packaging — Configuration Management — Regular network — Density and scale
  29. Triton at FastMail — 15 physical servers — 180 zones

    mostly SmartOS, a few LX — 40 service roles — Three customer products
  30. Triton at FastMail — 15 physical servers — 180 zones

    mostly SmartOS, a few LX — 40 service roles — Three customer products including Topicbox