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

Self-service Infrastructure as Code: People, pr...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

Self-service Infrastructure as Code: People, process, product

A reflection of how an automated, repeatable approach drives benefits in both technical and non-technical areas.

Avatar for Juan Herreros

Juan Herreros

February 16, 2023

More Decks by Juan Herreros

Other Decks in Programming

Transcript

  1. THE PAYMENTS BANK FOR THE NEW ECONOMY Self-service IaC: People,

    process, product HashiTalks, Feb. 16th, 2023
  2. A BIT OF HISTORY… ”We need an environment…” ”Talk to

    this guy, he’s the one who knows” “Script does 20%, I have instructions for the rest.” Banking Circle 2 First week at the new job
  3. DEVOPS “DevOps is the union of people, process, and products

    to enable continuous delivery of value to our end users.” Donovan Brown Banking Circle 4
  4. DEV & OPS People Process Product/Tech • Dev. teams wait

    too long • Ops team have too much to do • Communication happens too late • Ops team is a bottleneck • Different solutions to same problem • Environmental drift • Every change is a “big thing” • Requires specific knowledge • Hard to replicate/repeat Banking Circle 6 Dev Ops Dev Dev Dev Dev Dev
  5. Dev Dev Dev Dev Dev DevOps DEV, DEVOPS & OPS

    People Process Product/Tech Banking Circle 7 Dev Ops Dev Dev Dev Dev Dev
  6. Dev Dev Dev Dev Dev DevOps DEV, DEVOPS & OPS

    People Process Product/Tech • Workload falls on DevOps • Big cognitive load on DevOps • Communication with Ops happens too late • More points of communication in the process • Bottleneck partially moved from Ops to DevOps • Different solutions to same problem • Declarative, repeatable • Requires specific knowledge Banking Circle 8 Dev Ops Dev Dev Dev Dev Dev
  7. TEAM TOPOLOGIES Banking Circle 9 Dev DevOps Ops DevOps Ops

    BEFORE AFTER Dev Dev M. Skelton and M. Pais, “Team Topologies: Organizing Business and Technology Teams for Fast Flow”, 2019
  8. TEAM TOPOLOGIES • Shared, re-usable, self-service “building blocks” • Blocks

    are easy-to-use, standard, compliant • DevOps (platform) team provides, maintains and supports those blocks • Dev. (stream-aligned) teams are self-sufficient all along the SDLC, using those blocks Banking Circle 10 Our solution
  9. INFRASTRUCTURE AS CODE • Terraform modules • Collection of resources

    • Azure DevOps pipeline templates • ”Do the same thing in the same way” Banking Circle 11 Shared, re-usable, self-service ”building blocks”
  10. PIPELINE TEMPLATES • Simplify adoption • Standardize: • Operations •

    Validate, plan, apply • Testing and validation • Pipeline agents • State storage • Secrets management • Pipeline flow • Approvals • Environments Banking Circle 15 ”Do the same thing in the same way”
  11. TERRAFORM MODULES “A module is a container for multiple resources

    that are used together. You can use modules to create lightweight abstractions, so that you can describe your infrastructure in terms of its architecture, rather than directly in terms of physical objects.” Banking Circle 16 Collections of resources Hashicorp Developer, “Module Development”, 2023
  12. TERRAFORM MODULES Name What is it? azurerm_storage_account Storage account azurerm_key_vault_secret

    Keyvault secret(s) containing the connection string azurerm_storage_container Blob container(s) azurerm_storage_blob File(s) to be uploaded Banking Circle 17 Example: terraform-azurerm-storage
  13. TERRAFORM MODULES • Deployable examples • Used as reference •

    Used for unit testing • Static code analysis (checkov) Banking Circle 20 Validation
  14. TERRAFORM MODULES • Published modules are already validated • Modules

    are versioned Banking Circle 21 Modules registry
  15. TERRAFORM MODULES • Includes examples • Auto-generated • terraform-docs •

    Mkdocs • Published twice • As README of repository • As a website (including all our modules) Banking Circle 22 Documentation
  16. DEVOPS “DevOps is the union of people, process, and products

    to enable continuous delivery of value to our end users.” Donovan Brown Banking Circle 25
  17. PLATFORM People Process Product/Tech • More engagement • More collaboration

    • More awareness • More control • More reliability • Less ”hard work” • Ease of usage • Idempotency • Repeatability Banking Circle 26 DevOps Ops Dev