defects • So=ware QA can go much deeper – All the code is available to inves3gate – Architecture is open – Responsibili3es for components well defined • A roadmap to learn never hurts… And that is what this deck includes...
Look for the natural boundaries in the system • Implies you need to know how it is built, how it interacts – Reasoning about components • But what if you don’t know? – Or can’t remember?
– The docs lie, programmers make mistakes, and there’s always unintended consequences • Scien3fic Method Process – Ask a ques3on – Do the background research – Construct a hypothesis – Test you hypothesis – Analyze your data, draw a conclusion – Communicate your results
it is, how it works • hRps://en.m.wikipedia.org/wiki/Preboot_Execu3on_Environment The PXE Spec: • hRp://download.intel.com/design/archives/wfm/downloads/pxespec.pdf DHCP • hRps://en.wikipedia.org/wiki/Dynamic_Host_Configura3on_Protocol DHCP Proxy • hRp://www.juniper.net/documenta3on/en_US/junos13.3/topics/concept/dhcp- extended-dhcp-relay-proxy-overview.html
Response: • Don’t know the node: Discover it • Known node, no Workflow: No-op or default response • Known node, workflow: response from workflow client system RackHD hRp://rackhd.readthedocs.org/en/latest/devguide/index.html#rackhd-debugging-guide
Task Job Job Task Job Graph • JSON document • Describes flow of execu3on • Wrapper for Shared op3ons and context values Task • JSON Data only • 1:1 ra3o of tasks to jobs • Can have 0-n tasks as run dependencies in a graph • Target nodes or arbitrary code execu3on Job • NodeJS code backing the Task declara3on • Simply a class with a run func3on • Configura3on comes from Task JSON
hRps://github.com/RackHD/on-hRp/blob/master/lib/api/1.1/southbound/templates.js iPXE bootloader Any “southward” ini3ated HTTP request Profile == iPXE Script Template == Any generalized template hRps://github.com/RackHD/on-hRp/tree/master/data/profiles hRps://github.com/RackHD/on-hRp/tree/master/data/templates Rendered as EJS template with context from ac3ve workflow related to the node