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

Building up to Infrastructure as Code?

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

Rob Hirschfeld

September 17, 2019
Tweet

More Decks by Rob Hirschfeld

Other Decks in Technology

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

    View full-size slide

  2. @ZEHICLE #IaC
    cat <Preso:
    IaC: YAML
    EOF

    View full-size slide

  3. @ZEHICLE #IaC
    IaC Promise
    IaC Vendors
    IaC Reality
    Infrastructure
    as Code is
    Aspirational

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  6. @ZEHICLE #IaC
    IaC Dev IaC Ops
    vs

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  16. @ZEHICLE #IaC
    So is IaC the right term?
    No.
    What about SDx or SDDC?
    They are co-opted for IaaS.

    View full-size slide

  17. @ZEHICLE #IaC
    Continuously Integrated
    Data Center (CI DC)

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  23. @ZEHICLE #IaC
    Configure
    Reboot
    Image
    Update
    Inventory
    Desired State (#3): Workflow
    Discover
    Boot
    Input Param
    Read Param
    Output Param
    External Data

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  31. @ZEHICLE #IaC
    Thank you!
    Rob Hirschfeld - @zehicle
    https://rebar.digital
    https://rackn.com

    View full-size slide