Introducing RackHD - a hardware management and orchestration service layer written in NodeJS
1© Copyright 2016 EMC Corporation. All rights reserved.RACKHDINTRODUCTION – JAN 2016
View Slide
2© Copyright 2016 EMC Corporation. All rights reserved.Limited mechanisms toautomate interactions withhardware• PXE• IPMIExisting software focusedsolely on provisioningHARDWARE MANAGEMENTRazor/HanlonxCatDHCP TFTP HTTP…some software…
3© Copyright 2016 EMC Corporation. All rights reserved.• Software “tap roots”: somesoftware very specific tofirmware versions• Upgrading some firmwarerequires rebooting in theprocess• Want to be API driven, notanother mandatory humantouch-pointPROBLEMS TO OVERCOMEDHCP TFTP HTTP…some software…REST APIWant to extendwith vendorspecific toolingDifferent tasks or goalsmean different logic –embedding “know how”
4© Copyright 2016 EMC Corporation. All rights reserved.• Asynchronous; many things happening at once• Possible to common remote failure or intermittentfailure• Multiple network protocolsCOMMON DISTRIBUTED SYSTEM PROBLEMS
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 wellBut…WHY
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 changeNOT WITHOUT CHALLENGES
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=cCiXtROSt8UHTTPS://GITHUB.COM/RACKHD/RACKHDHTTP://RACKHD.READTHEDOCS.ORG/
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 EventsVISION
9© Copyright 2016 EMC Corporation. All rights reserved.• Stepping beyondexisting provisioningsystems– Declarative Workflowengine– Working closely with PXEcapabilities– Built to be a componentin a larger stack up• REST API• Telemetry/Data Feeds• It’s not a scheduler orreactive system• Minimal “knowledge”layers above hardwareWHAT IT IS AND ISN’T
10© Copyright 2016 EMC Corporation. All rights reserved.• iPXE oriented bootloader• SKU identification based on rules• PXE based compute server discoveryprocess• Free-format data catalogs• Integral monitoring/telemetry withOut of band management• Multiple Out-of-band managementcapabilities (via plugin)• Remote discovery and telemetrysupport for PDU and switches• Compute server telemetry availablevia IPMI and SNMP• Live structured data feeds withWebsockets or AMQP• Declarative Workflows• Composed of tasks – in serial orparallel – acyclic graphs• Custom images easily included andused in workflows• Leverage templates and profiles(dynamic file & ipxe scripts based onworkflow data)CURRENT CAPABILITIES
11© Copyright 2016 EMC Corporation. All rights reserved.• SKU packs– Load templates, profiles,microkernels, and skudefinitions for specific hardwareor OS personalities• V2 API– More solid schema definition,swagger based• Fault tolerant workflowprocessing• Hardware connectiontopology• Additional south-bounddiscovery protocols– Adding Redfish 1.0 support toIPMI and SNMP• Additional workflowcapabilities– Secure Erase– In-band management tasks– Enhanced workflowprogrammabilityUPCOMING CAPABILITIES
12© Copyright 2016 EMC Corporation. All rights reserved.Roadmaps/Specs• https://github.com/RackHD/specsCross 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/1496834PUBLIC DEVELOPMENT
13© Copyright 2016 EMC Corporation. All rights reserved.Instructions• https://github.com/RackHD/RackHD/tree/master/examplePre-requisites• Install vagrant & virtualboxgit clone https://github.com/RackHD/RackHDcd RackHD/examplecp config/monorail_rack.cfg.example config/monorail_rack.cfgbin/monorail_rack…open http://localhost:9090/docsSANDBOX DEMO / HANDS ON