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

Seattle NodeJS Intro to RackHD

Joseph Heck
February 04, 2016

Seattle NodeJS Intro to RackHD

Introducing RackHD - a hardware management and orchestration service layer written in NodeJS

Joseph Heck

February 04, 2016
Tweet

More Decks by Joseph Heck

Other Decks in Technology

Transcript

  1. 2 © Copyright 2016 EMC Corporation. All rights reserved. Limited

    mechanisms to automate interactions with hardware •  PXE •  IPMI Existing software focused solely on provisioning HARDWARE MANAGEMENT Razor/Hanlon xCat DHCP TFTP HTTP …some software…
  2. 3 © Copyright 2016 EMC Corporation. All rights reserved. • 

    Software “tap roots”: some software very specific to firmware versions •  Upgrading some firmware requires rebooting in the process •  Want to be API driven, not another mandatory human touch-point PROBLEMS TO OVERCOME DHCP TFTP HTTP …some software… REST API Want to extend with vendor specific tooling Different tasks or goals mean different logic – embedding “know how”
  3. 4 © Copyright 2016 EMC Corporation. All rights reserved. • 

    Asynchronous; many things happening at once •  Possible to common remote failure or intermittent failure •  Multiple network protocols COMMON DISTRIBUTED SYSTEM PROBLEMS
  4. 5 © Copyright 2016 EMC Corporation. All rights reserved. • 

    Some background with javascript, none with Go •  Proved to ourselves we could get stuff done fast •  Prototypes worked fast and well But… WHY
  5. 6 © Copyright 2016 EMC Corporation. All rights reserved. • 

    We didn’t really grok how asynchronous JS was •  Inadvertent bloat –  Memory –  CPU •  Finding solid libraries •  Building and packaging •  “Dynamic ecosystem” and tooling change NOT WITHOUT CHALLENGES
  6. 7 © Copyright 2016 EMC Corporation. All rights reserved. • 

    Hardware Management and Orchestration •  Open Sourced by EMC Dec 2015 •  Screencast Overview –  https://www.youtube.com/watch?v=cCiXtROSt8U HTTPS://GITHUB.COM/RACKHD/RACKHD HTTP://RACKHD.READTHEDOCS.ORG/
  7. 8 © Copyright 2016 EMC Corporation. All rights reserved. • 

    Vendor Agnostic •  Discovery, Cataloging, Telemetry •  Component in Larger Stack •  Hardware Configuration capabilities •  Automation of the lowest layer most stacks –  Provisioning –  Configuration –  Metrics and Events VISION
  8. 9 © Copyright 2016 EMC Corporation. All rights reserved. • 

    Stepping beyond existing provisioning systems –  Declarative Workflow engine –  Working closely with PXE capabilities –  Built to be a component in a larger stack up •  REST API •  Telemetry/Data Feeds •  It’s not a scheduler or reactive system •  Minimal “knowledge” layers above hardware WHAT IT IS AND ISN’T
  9. 10 © Copyright 2016 EMC Corporation. All rights reserved. • 

    iPXE oriented bootloader •  SKU identification based on rules •  PXE based compute server discovery process •  Free-format data catalogs •  Integral monitoring/telemetry with Out of band management •  Multiple Out-of-band management capabilities (via plugin) •  Remote discovery and telemetry support for PDU and switches •  Compute server telemetry available via IPMI and SNMP •  Live structured data feeds with Websockets or AMQP •  Declarative Workflows •  Composed of tasks – in serial or parallel – acyclic graphs •  Custom images easily included and used in workflows •  Leverage templates and profiles (dynamic file & ipxe scripts based on workflow data) CURRENT CAPABILITIES
  10. 11 © Copyright 2016 EMC Corporation. All rights reserved. • 

    SKU packs –  Load templates, profiles, microkernels, and sku definitions for specific hardware or OS personalities •  V2 API –  More solid schema definition, swagger based •  Fault tolerant workflow processing •  Hardware connection topology •  Additional south-bound discovery protocols –  Adding Redfish 1.0 support to IPMI and SNMP •  Additional workflow capabilities –  Secure Erase –  In-band management tasks –  Enhanced workflow programmability UPCOMING CAPABILITIES
  11. 12 © Copyright 2016 EMC Corporation. All rights reserved. Roadmaps/Specs

    •  https://github.com/RackHD/specs Cross Team Dashboard •  http://heckj.github.io/ptclientside/ Public Forums/Mailing List •  https://groups.google.com/d/forum/rackhd •  [email protected] Dedicated Dev Teams •  Gripen –  https://www.pivotaltracker.com/n/ projects/1492890 •  Maglev –  https://www.pivotaltracker.com/n/ projects/1492892 •  Monorail –  https://www.pivotaltracker.com/n/ projects/1492888 •  Stryker –  https://www.pivotaltracker.com/n/ projects/1496834 PUBLIC DEVELOPMENT
  12. 13 © Copyright 2016 EMC Corporation. All rights reserved. Instructions

    •  https://github.com/RackHD/RackHD/ tree/master/example Pre-requisites •  Install vagrant & virtualbox git clone https://github.com/RackHD/RackHD cd RackHD/example cp config/monorail_rack.cfg.example config/ monorail_rack.cfg bin/monorail_rack … open http://localhost:9090/docs SANDBOX DEMO / HANDS ON