Pro Yearly is on sale from $80 to $50! »

Building up to Infrastructure as Code?

29735ad025a4666578c720c2f44ef0cc?s=47 Rob Hirschfeld
September 17, 2019

Building up to Infrastructure as Code?

Explores the definition of Infrastructure as Code as build behind RackN Digital Rebar archtiecture.

Presented Sept 2019 at Cloud Austin.

Topics covered include: Infrastructure as Code, CI/CD, IaaS, Terraform, Intent Driven Automation, Immutable Infrastructure

Live Presentation: https://youtu.be/oAUWKro093M

29735ad025a4666578c720c2f44ef0cc?s=128

Rob Hirschfeld

September 17, 2019
Tweet

Transcript

  1. @ZEHICLE #IaC But… Infrastructure as Code! Send in our robot

    overlords, my job here is done. WATCH THE VIDEO: https://youtu.be/oAUWKro093M
  2. @ZEHICLE #IaC cat <<EOF Preso: IaC: YAML EOF

  3. @ZEHICLE #IaC IaC Promise IaC Vendors IaC Reality Infrastructure as

    Code is Aspirational
  4. @ZEHICLE #IaC Rob Hirschfeld CEO & Co-Founder RackN & Digital

    Rebar Why do we care about IaC? To fix bare metal automation, we had to accept that every data center is a snowflake. So we needed to make our automation simple, modular and portable. Simply put - we had to build an IaC platform: Digital Rebar
  5. @ZEHICLE #IaC IaC Dev Starts from Application Works Down Relies

    heavily on Infrastructure Platforms IaC Ops Starts from Infrastructure Works Up Drives to Platform as a Service vs
  6. @ZEHICLE #IaC IaC Dev IaC Ops vs

  7. @ZEHICLE #IaC IaC is combines SIX themes 1 Programmatic Config

    Infrastructure as Code YAML!
  8. @ZEHICLE #IaC IaC is combines SIX themes 1 Programmatic Config

    Infrastructure as Code, this is I YAML! 2 Dynamic Infrastructure API driven Infrastructure Cloud, IaaS, Kubernetes
  9. @ZEHICLE #IaC IaC is combines SIX themes 1 Programmatic Config

    Infrastructure as Code, this is YAML! 2 Dynamic Infrastructure API driven Infrastructure Cloud, IaaS, Kubernetes 3 Desired State Engine Platform as a Service Kubernetes, Rebar, Terraform
  10. @ZEHICLE #IaC IaC is combines SIX themes 1 Programmatic Config

    Infrastructure, this is IaC YAML! 2 Dynamic Infrastructure API driven Infrastructure Cloud, IaaS, Kubernetes 3 Desired State Engine Platform as a Service Kubernetes, Rebar, Terraform 4 Deploy from Source Ctrl Immutability GitOps, Dockerfile, Image Deploy
  11. @ZEHICLE #IaC IaC is combines SIX themes 1 Programmatic Config

    Infrastructure, this is IaC YAML! 2 Dynamic Infrastructure API driven Infrastructure Cloud, IaaS, Kubernetes 3 Desired State Engine Platform as a Service Kubernetes, Rebar, Terraform 4 Deploy from Source Ctrl Immutability GitOps, Dockerfile, Image Deploy 5 Composable Automation Modular Building Blocks Ansible Playbooks, Chef Recipes, Puppet Modules
  12. @ZEHICLE #IaC IaC is combines SIX themes 1 Programmatic Config

    Infrastructure, this is IaC YAML! 2 Dynamic Infrastructure API driven Infrastructure Cloud, IaaS, Kubernetes 3 Desired State Engine Platform as a Service Kubernetes, Rebar, Terraform 4 Deploy from Source Ctrl Immutability GitOps, Dockerfile, Image Deploy 5 Composable Automation Modular Building Blocks Ansible Playbooks, Chef Recipes, Puppet Modules 6 CI/CD Pipeline Iterative Dev to Prod Jenkins, Gitlab, Travis
  13. @ZEHICLE #IaC IaC: bottom of the automation hierarchy 1 1

    Programmatic Config 2 2 Dynamic Infrastructure 3 3 Desired State Engine 4 4 Deploy from Source Ctrl 5 5 Composable Automation 6 6 CI/CD Pipeline
  14. @ZEHICLE #IaC Terraform 1 Programmatic Config 2 Dynamic Infrastructure 3

    Desired State Engine 4 Deploy from Source Ctrl 5 Composable Automation 6 CI/CD Pipeline
  15. @ZEHICLE #IaC Digital Rebar 1 Programmatic Config 2 Dynamic Infrastructure

    3 Desired State Engine 4 Deploy from Source Ctrl 5 Composable Automation 6 CI/CD Pipeline
  16. @ZEHICLE #IaC So is IaC the right term? No. What

    about SDx or SDDC? They are co-opted for IaaS.
  17. @ZEHICLE #IaC Continuously Integrated Data Center (CI DC)

  18. @ZEHICLE #IaC CI DC Thinking: Digital Rebar

  19. @ZEHICLE #IaC Programmatic Config (#1): Golang Templates #!/usr/local/bin/env bash #

    Helper to setup DRP tasks for other templates {{ if .ParamExists "rs-debug-enable" }} {{ if eq (.Param "rs-debug-enable") true }} RS_DEBUG_ENABLE="{{.Param "rs-debug-enable"}}" set -x {{ end }} {{ end }} [[ $RS_ENDPOINT ]] || export RS_ENDPOINT="{{.ApiURL}}" [[ $RS_UUID ]] || export RS_UUID="{{.Machine.UUID}}" Scripts, Kickstarts, Configs... Simple Variable Substitution Value Existence Tests Conditional Logic Built in variables
  20. @ZEHICLE #IaC Dynamic Infra (#2): Shared System State Digital Rebar

    Platform State API Machine + Agent Machine + Agent CLI Transitory Connections Persistent Connections Web UX PXE DHCP
  21. @ZEHICLE #IaC Dynamic Infra (#2): Shared System State Digital Rebar

    Platform State API Machine + Agent Machine + Agent CLI Transitory Connections Persistent Connections Web UX Ops Systems • Ansible Tower • BMC / IPMI • DNS • Active Directory • Clouds • CMDB & Terraform Clients PXE DHCP • Ansible • Terraform • K8s Cluster API
  22. @ZEHICLE #IaC Configure Reboot Image Update Inventory Desired State (#3):

    Workflow Discover Boot 1. User Asks for Target Configuration 2. System Builds Task List 3. System Orchestrates Tasks
  23. @ZEHICLE #IaC Configure Reboot Image Update Inventory Desired State (#3):

    Workflow Discover Boot Input Param Read Param Output Param External Data
  24. @ZEHICLE #IaC Composable (#4): Workflow > Stages > Tasks ESX

    Install Stage Discover Task Netboot Task Inventory Task BIOS Update Stage ESX Install Task Weasel Task Net Conf Workflow
  25. @ZEHICLE #IaC Composable (#4): Workflow > Stages > Tasks Task

    Linux RAMdisk Task Inventory Task Weasel Task Net Conf Netboot Golang Runner Redfish Python Runner BIOS Update Task Reboot
  26. @ZEHICLE #IaC Catalog Content Custom Content Composable (#4): Workflow >

    Stages > Tasks Windows CI/CD Stage Discover Task Verify System Task BIOS Update Task SoR Update Stage Image Deploy Task Write Image Task Post Install Workflow
  27. @ZEHICLE #IaC Deploy from Source (#5): Content Packs State API

    Git CLI Bundle Composable Parts Content Pack DRP
  28. @ZEHICLE #IaC Deploy from Source (#5): Content Packs State API

    Git CLI Bundle State API Composable Parts AWS S3 Content Pack Catalog Dev Prod
  29. @ZEHICLE #IaC Pipeline (#6): Cloud APIs & Resource Pools Digital

    Rebar Platform State API Machines Machines PXE DHCP Machines Machines Machines Machines Pool A Pool B CI Pipeline Build Image Run Tests Get Results
  30. @ZEHICLE #IaC CI DC with Digital Rebar 1 Programmatic Config

    2 Dynamic Infrastructure 3 Desired State Engine 4 Deploy from Source Ctrl 5 Composable Automation 6 CI/CD Pipeline
  31. @ZEHICLE #IaC Thank you! Rob Hirschfeld - @zehicle https://rebar.digital https://rackn.com