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

ADDO - Integrating Infrastructure as Code into a Continuous Delivery Pipeline

Adarsh Shah
November 06, 2019

ADDO - Integrating Infrastructure as Code into a Continuous Delivery Pipeline

Infrastructure as Code (IaC) is the approach that takes proven coding techniques used by software systems and extends them to infrastructure. It is one of the key DevOps practices that enables teams to deliver infrastructure rapidly, reliably and at scale, and thereby also software running on that infrastructure.

The primary goal of Continuous Delivery (CD) is to ensure that the software can be reliably released at any time and integrating IaC as part of the CD pipeline helps in furthering that goal.

Adarsh Shah has helped organizations from various domains adopt IaC & CD. In this presentation, he will talk about benefits & challenges of integrating Infrastructure as Code into a Continuous Delivery pipeline, best practices/patterns to be used & any other aspects to consider.

Adarsh Shah

November 06, 2019
Tweet

More Decks by Adarsh Shah

Other Decks in Technology

Transcript

  1. Integrating Infrastructure as Code into a Continuous Delivery Pipeline Considerations

    & Best Practices Adarsh Shah Technology Leader, Coach, Hands-on Architect Independent Consultant @shahadarsh 
 shahadarsh.com
  2. @shahadarsh shahadarsh.com We are going to cover.. • Infrastructure as

    Code • Continuous Delivery • Considerations & best practices when integrating IaC to CD • Source Control • Testing • Security • Compliance • Patterns for Provisioning • Build and Deploy pipelines • GitOps • People & Process
  3. @shahadarsh shahadarsh.com Infrastructure as Code Infrastructure as Code (IaC) is

    the approach that takes proven coding techniques used by software systems and extends them to infrastructure.
  4. @shahadarsh shahadarsh.com Continuous Delivery Continuous Delivery is the ability to

    get changes of all types—including new features, configuration changes, bug fixes and experiments—into production, or into the hands of users, safely and quickly in a sustainable way. - Jez Humble
  5. @shahadarsh shahadarsh.com Source Control • Everything in source control •

    Code accessibility • Modularize • Version the Modules • Collaboration!! • Code/test as documentation
  6. @shahadarsh shahadarsh.com Infra as Code testing Static Analysis terraform validate,

    TFLint, puppet parser validate Unit bats, chefspec Smoke w/ dummy app Selenium Integration inspec, goss Brittle Cost Maintenance Infra as Code Test Pyramid Duration
  7. @shahadarsh shahadarsh.com Compliance • Finance, Healthcare & other industries •

    SOX, PII, HIPPA, PCI, GDPR • Compliance as Code - Code instead of Paperwork • Chef InSpec, HashiCorp Sentinel (Policy as Code)
  8. @shahadarsh shahadarsh.com Compliance as Code using HashiCorp Sentinel Ensure that

    modification of critical data can only be performed by authorized sysops with valid MFA
  9. @shahadarsh shahadarsh.com Immutable VMs • Infra Module - Multitier App

    • Loosely Coupled • App Image consumed by Infrastructure Module
  10. @shahadarsh shahadarsh.com Immutable VMs Infrastructure Application pull Ephemeral Environment Testing

    & Validation Ephemeral Environment Ephemeral Environment AMI Publish & Deploy AMI pull Security Int. Tests Compliance Continuous Integration Unit Tests Static Analysis Security App Tests Int. Tests
  11. @shahadarsh shahadarsh.com Containerized Services • Infra Module - Container Management

    System • Fully Decoupled from Apps • Apps are deployed with Container Management System specific tools
  12. @shahadarsh shahadarsh.com Containerized Services Infrastructure Application Publish & Deploy pull

    Scan Sign App Tests ECR Testing & Validation Ephemeral Environment Security Compliance Int. Tests Continuous Integration Unit Tests Static Analysis
  13. @shahadarsh shahadarsh.com Base Image & App Pull • Infra Module

    - App Servers • VMs pull app on deploy, or app update • Anti-Pattern: Allowing Long-Lived VMs
  14. @shahadarsh shahadarsh.com Base Image & App Pull Infrastructure Application pull

    pull Publish & Deploy AMI Testing & Validation Ephemeral Environment Security Int. Tests Ephemeral Environment Compliance Ephemeral Environment Security App Tests Continuous Integration Unit Tests Static Analysis
  15. @shahadarsh shahadarsh.com GitOps •Source Control as a System of Record

    •Operations by Pull Request •Repeatable, Predictable, Auditable & Accessible
  16. @shahadarsh shahadarsh.com GitOps Workflow Create Pull Request Trigger Approve Pull

    Request Int Tests Compliance Security Trigger Terraform Apply Terraform Plan Static Analysis
  17. @shahadarsh shahadarsh.com People & Process • Enables teams to interact

    • Infra, Security, Compliance, QA etc teams work together • Improvement in processes • Faster feedback
  18. @shahadarsh shahadarsh.com Summary • Infrastructure as Code • Continuous Delivery

    • Considerations & best practices when integrating IaC to CD • Source Control • Testing • Security • Compliance • Patterns for Provisioning • Build and Deploy pipelines • GitOps • People & Process
  19. Questions on Slack #2019addo-ci-cd Adarsh Shah Technology Leader, Coach, Hands-on

    Architect Independent Consultant @shahadarsh 
 shahadarsh.com