Collaborative Application and Infrastructure workflow using GitHub Actions and HashiCorp Terraform

Collaborative Application and Infrastructure workflow using GitHub Actions and HashiCorp Terraform

Speed is an important success metric for modern development teams. As enterprises start to scale in multi-cloud environments, the Continuous Integration/Continuous Deployment (CI/CD) process is no longer just a developer specific workflow, but a DevOps workflow where both development and operations coordinate their tasks to move forward rapidly. GitHub and HashiCorp are working closely to build an end-to-end DevOps workflow encompassing the entire application development lifecycle. Together we help provide a powerful CI/CD solution that prevents developers and operators from having to wait for their respective tasks to be completed, accelerating delivery. Join this session to learn and see how an updated GitHub Actions and HashiCorp Terraform workflow can simplify collaboration and increase your development team’s velocity through infrastructure automation and applications both delivered as code and on-demand.

GitHub Satellite 2020: https://githubsatellite.com/schedule/#collaborative-application-and-infrastructure-workflow-using-github-actions-and-hashicorp-terraform

26896287bc831a13e768cea7efe29632?s=128

Anubhav Mishra

May 06, 2020
Tweet

Transcript

  1. Copyright © 2019 HashiCorp Collaborative Application and Infrastructure workflow using

    GitHub Actions and HashiCorp Terraform Anubhav Mishra Technical Advisor of the CTO, HashiCorp
  2. Anubhav Mishra Technical Advisor to the CTO, HashiCorp @build1point0 |

    anubhavmishra
  3. Anubhav Mishra Technical Advisor to the CTO, HashiCorp @build1point0 |

    anubhavmishra Atlan&s
  4. About HashiCorp Leading Cloud Infrastructure Automation Our software stack enables

    the provisioning, securing, connecting and running of apps and the infrastructure to support them. We unlock the cloud operating model for every business Founded 2012 Employees 900+ Funding 349M
  5. ⁄ The Transition 
 to DevOps

  6. The Technology Transition Traditional Datacenter “Static” Dedicated
 Infrastructure Modern Datacenter

    “Dynamic” AWS Azure GCP + + + Private Cloud +
  7. The Process Transition Traditional Datacenter “Static” Dedicated
 Infrastructure Modern Datacenter

    “Dynamic” AWS Azure GCP + + + Private Cloud + ITIL / ITSM TICKET DRIVEN SERVICE DEVOPS API DRIVEN SELF-SERVICE
  8. Why?

  9. Increasing Developer Velocity OPERATIONS 
 TEAM PLATFORM
 TEAM SECURITY TEAM

    DEVELOPER 
 TEAM TIME TO VALUE
  10. DevOps Process OPERATIONS
 TEAM PLATFORM TEAM SECURITY TEAM API API

    API DEVELOPER TEAM
  11. None
  12. HashiCorp Terraform Goal Provide a Unified Workflow Using Infrastructure as

    Code to Iterate Over Infrastructure Safely that is Capable of Provisioning Anything Anywhere.
  13. Cloud Provisioning with Terraform Core + Provider Model ▪ Expose

    the unique services of each infrastructure platform, but provide a consistent workflow

  14. Cloud Provisioning with Terraform Core + Provider Model ▪ Expose

    the unique services of each infrastructure platform, but provide a consistent workflow ▪ 200+ Providers exist for any infrastructure or application element – Enabled by the open source model of 1200+ contributors

  15. Managing Github with Terraform CODE EDITOR resource "github_membership" "membership_for_some_user" {

    username = "admin" role = "owner" } resource "github_repository" "example" { name = "example" description = "My awesome codebase" private = true template { owner = "github" repository = "terraform-module-template" } }
  16. Terraform Workflow DEVELOPER/ OPERATOR

  17. Terraform Workflow DEVELOPER/ OPERATOR

  18. Terraform Workflow DEVELOPER/ OPERATOR TERRAFORM PLAN

  19. Terraform Workflow DEVELOPER/ OPERATOR TERRAFORM PLAN $ terraform plan +

    resource "github_repository" “example” ….. 
 Plan: 1 to add, 0 to change, 0 to destroy.
  20. Terraform Workflow DEVELOPER/ OPERATOR TERRAFORM PLAN $ terraform plan +

    resource "github_repository" “example” ….. 
 Plan: 1 to add, 0 to change, 0 to destroy.
  21. Terraform Workflow DEVELOPER/ OPERATOR TERRAFORM PLAN TERRAFORM APPLY $ terraform

    plan + resource "github_repository" “example” ….. 
 Plan: 1 to add, 0 to change, 0 to destroy.
  22. Terraform Workflow DEVELOPER/ OPERATOR TERRAFORM PLAN TERRAFORM APPLY $ terraform

    plan + resource "github_repository" “example” ….. 
 Plan: 1 to add, 0 to change, 0 to destroy. $ terraform apply ….. 
 Apply complete!
  23. Terraform Workflow DEVELOPER/ OPERATOR TERRAFORM PLAN TERRAFORM APPLY $ terraform

    plan + resource "github_repository" “example” ….. 
 Plan: 1 to add, 0 to change, 0 to destroy. $ terraform apply ….. 
 Apply complete!
  24. Terraform Workflow DEVELOPER/ OPERATOR TERRAFORM PLAN TERRAFORM APPLY $ terraform

    plan + resource "github_repository" “example” ….. 
 Plan: 1 to add, 0 to change, 0 to destroy. $ terraform apply ….. 
 Apply complete!
  25. Terraform Workflow DEVELOPER/ OPERATOR TERRAFORM PLAN TERRAFORM APPLY $ terraform

    plan + resource "github_repository" “example” ….. 
 Plan: 1 to add, 0 to change, 0 to destroy. $ terraform apply ….. 
 Apply complete!
  26. Terraform Workflow DEVELOPER/ OPERATOR TERRAFORM PLAN API/GUI TERRAFORM APPLY $

    terraform plan + resource "github_repository" “example” ….. 
 Plan: 1 to add, 0 to change, 0 to destroy. $ terraform apply ….. 
 Apply complete!
  27. Collaborating with Terraform DEVELOPERS

  28. Collaborating with Terraform DEVELOPERS resource "github_membership" "membership_for_some_user" { username =

    "admin" role = "owner" }
  29. Collaborating with Terraform DEVELOPERS resource "github_membership" "membership_for_some_user" { username =

    "admin" role = "owner" }
  30. Collaborating with Terraform GITHUB ACCESS DEVELOPERS resource "github_membership" "membership_for_some_user" {

    username = "admin" role = "owner" }
  31. Collaborating with Terraform GITHUB ACCESS DEVELOPERS OPERATIONS TEAM resource "github_membership"

    "membership_for_some_user" { username = "admin" role = "owner" }
  32. Collaborating with Terraform GITHUB ACCESS DEVELOPERS OPERATIONS TEAM resource "github_membership"

    "membership_for_some_user" { username = "admin" role = "owner" }
  33. Collaborating with Terraform GITHUB ACCESS DEVELOPERS OPERATIONS TEAM resource "github_membership"

    "membership_for_some_user" { username = "admin" role = "owner" }
  34. Collaborating with Terraform GITHUB ACCESS DEVELOPERS OPERATIONS TEAM resource "github_membership"

    "membership_for_some_user" { username = "admin" role = "owner" }
  35. Collaborating with Terraform GITHUB ACCESS DEVELOPERS OPERATIONS TEAM resource "github_membership"

    "membership_for_some_user" { username = "admin" role = "owner" }
  36. Terraform Workflow DEVELOPER/ OPERATOR TERRAFORM PLAN API/GUI TERRAFORM APPLY

  37. Terraform and GitHub Manage Infrastructure and Application Lifecycles DEVELOPER/ OPERATOR

  38. Terraform and GitHub Manage Infrastructure and Application Lifecycles DEVELOPER/ OPERATOR

  39. Terraform and GitHub Manage Infrastructure and Application Lifecycles DEVELOPER/ OPERATOR

    TERRAFORM CLOUD INFRASTRUCTURE AS CODE
  40. Terraform and GitHub Manage Infrastructure and Application Lifecycles DEVELOPER/ OPERATOR

    TERRAFORM CLOUD INFRASTRUCTURE AS CODE TERRAFORM PLAN REVIEW
  41. Terraform and GitHub Manage Infrastructure and Application Lifecycles DEVELOPER/ OPERATOR

    TERRAFORM CLOUD INFRASTRUCTURE AS CODE TERRAFORM PLAN REVIEW
  42. Terraform and GitHub Manage Infrastructure and Application Lifecycles DEVELOPER/ OPERATOR

    TERRAFORM CLOUD INFRASTRUCTURE AS CODE TERRAFORM PLAN REVIEW
  43. Terraform and GitHub Manage Infrastructure and Application Lifecycles DEVELOPER/ OPERATOR

    TERRAFORM CLOUD INFRASTRUCTURE AS CODE TERRAFORM PLAN REVIEW TERRAFORM CLOUD
  44. Terraform and GitHub Manage Infrastructure and Application Lifecycles DEVELOPER/ OPERATOR

    TERRAFORM CLOUD INFRASTRUCTURE AS CODE TERRAFORM PLAN REVIEW TERRAFORM CLOUD
  45. Terraform and GitHub Manage Infrastructure and Application Lifecycles DEVELOPER/ OPERATOR

    TERRAFORM CLOUD INFRASTRUCTURE AS CODE TERRAFORM PLAN REVIEW TERRAFORM CLOUD
  46. Terraform and GitHub Manage Infrastructure and Application Lifecycles DEVELOPER/ OPERATOR

    TERRAFORM CLOUD INFRASTRUCTURE AS CODE TERRAFORM PLAN REVIEW TERRAFORM CLOUD
  47. Terraform and GitHub Manage Infrastructure and Application Lifecycles DEVELOPER/ OPERATOR

    TERRAFORM CLOUD INFRASTRUCTURE AS CODE TERRAFORM PLAN REVIEW CLOUD TERRAFORM CLOUD
  48. None
  49. Announcing Terraform GitHub Actions 1.0

  50. Announcing Terraform GitHub Actions 1.0

  51. Demo

  52. None
  53. None
  54. None
  55. None
  56. None
  57. Highlights Terraform Github Actions Available in the Github Marketplace https://git.io/terraform-github-actions

    Demo code https://git.io/terraform-github-satellite-demo
  58. None
  59. None
  60. Thank You hello@hashicorp.com www.hashicorp.com Ask me anything @build1point0