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

Technical Program Management Art of Keeping Promises with Terraform

Yury Nino
November 19, 2020
120

Technical Program Management Art of Keeping Promises with Terraform

Yury Nino

November 19, 2020
Tweet

Transcript

  1. Technical Program Management Art of Keeping Promises with Terraform Yury

    Niño Roa Jhonnatan Gil Site Reliability Engineers @ADL
  2. Las palabras que desvíen el destino Las palabras son sagradas,

    buen amigo Las palabras me hacen falta Me hacen falta cien millones de palabras Las palabras siempre se las lleva el viento Pero yo las necesito Somos dos viejos amantes Muy chiflados, muy astutos, desafiantes... Sobre el arma con la que me das consuelo El cuchillo que se hunde en mi pellejo La apariencia bien organizada Las palabras son traiciones de alto vuelo Las palabras hacen trampa
  3. Don’t make a promise unless you can keep it, Don’t

    say something unless you mean it, Don’t act out unless it’s needed. Shanghai, China
  4. Jhonnatan Gil Chaves Technical Program Manager ADL Digital Labs Yury

    Niño Roa https://www.yurynino.dev/ @yurynino DevOps Site Reliability Engineer @jthan24
  5. AGENDA • Site Reliability Engineering. • SRE Technical Program Managers.

    • Our mission: make promises. • How can Terraform help to keeping promises? • The future: challenges and next steps.
  6. Site Reliability Engineering [SRE] is what happens when you ask

    a software engineer to design an operations team. Paris, Francia Benjamin Trainor
  7. Technical Program Management Leading complex and software projects using engineering

    expertise. What my mom think I do What my friends think I do What I really do Melbourne, Australia Sao Pablo, Brasil London, England
  8. Technical Program Manager Minimum qualifications: • Bachelor's degree in Computer

    Science or a related field. • Experience in Project Management. • Unix/Linux programming with C, C++, Java, Python, Shell ... • Experience working with code, storage and operating systems. • Domain of SRE framework. Preferred qualifications: • Experience with the design and architecture of software to improve availability, scalability, latency and efficiency. • Ability to take initiative, adapt quickly to changing priorities and work with a high sense of urgency with high attention to detail. Ability to interact with technical and non-technical teams. • Excellent interpersonal, presentation and communication skills. Effective problem-solving skills.
  9. Our Role is about promises What do we do? The

    Technical Program Manager [TPM] role within Site Reliability Engineering [SRE] is at the heart of fulfilling SRE’s mission: making things faster, more reliable, and preparing for the continued growth of infrastructure. https://www.youtube.com/watch?v=BAud1iV1afA
  10. [SRE] Technical Program Manager is about keeping promises using the

    SRE principles and practices Me :) Sardinia, Italy
  11. Our Role is about promises As a Technical Program Managers

    … You ensure that systems and services are carefully planned and deployed, taking into account multiple variables. You will communicate with cross-teams in cross-sites running production meetings. You will be making technical decisions for building tools to automate and scale infrastructure and security!
  12. Keeping promises with Terraform How can Terraform help us? is

    a tool for building, changing, and versioning infrastructure safely and efficiently. It is possible to manage low-level components such as compute instances, storage, and networking, as well as high-level components such as DNS entries, SaaS features, etc. Complex changesets can be applied to your infrastructure with minimal human interaction.
  13. Promise 1: your systems and services are carefully planned and

    deployed, taking into account multiple variables! Sardinia, Italy
  14. Promise 2: You are going to work with different roles

    and different technologies: cross-team, cross-site and cross-cloud-providers! Helsingborg, Sweden
  15. 2. Work with cross-teams & cross-cloud ... CODE EDITOR #

    Configure AWS Provider provider "aws" { region = var.region } resource "aws_vpc" "chaos" { cidr_block = var.vpc_cidr enable_dns_support = var.enable_dns_support enable_dns_hostnames = var.enable_dns_hostnames } ... resource "aws_instance" "_" { ami = var.ami instance_type = var.instance_type user_data = var.user_data subnet_id = var.subnet_id key_name = aws_key_pair._.key_name vpc_security_group_ids = var.vpc_sg } ...
  16. 2. Work with cross-teams & cross-cloud ... CODE EDITOR #

    Configure Azure Provider provider "azurerm" { features {} } resource "azurerm_resource_group" "chaos" { name = var.rg_name location = var.location } module "network" { source = var.source resource_group_name = var.resource_group_name address_space = var.address subnet_names = var.subnet_names_array depends_on = [azurerm_resource_group.chaos] } ...
  17. 2. Work with cross-teams & cross-cloud ... CODE EDITOR #

    Configure GCP Provider provider "google" { project = var.project_id region = var.region } resource "google_compute_network" "chaos" { name = var.network } resource "google_compute_subnetwork" "chaos_net" { name = var.subnet_name ip_cidr_range = var.ip_cidr_range region = var.region network = google_compute_network.chaos.id } ...
  18. Promise 3: Make technical decisions for building tools to automate

    and scale infrastructure and security! Berlin Alemania
  19. CODE EDITOR # Configure the Datadog provider provider "datadog" {

    api_key = var.datadog_api_key app_key = var.datadog_app_key } # Create a new monitor resource "datadog_monitor" "chaos_monitor" { ... } # Create a new timeboard resource "datadog_timeboard" "chaos_board" { ... } 3. Make decisions monitoring: SLOs, SLAS, SLIs
  20. CODE EDITOR 3. Make decisions monitoring: SLOs, SLAS, SLIs #

    Configure the NewRelic provider provider "newrelic" { api_key = var.newrelic_api_key account_id = var.nrerelic_app_key region = "US" } resource "newrelic_alert_policy" "chaos_policy" { name = var.name } resource "newrelic_alert_condition" "chaos_cond" { policy_id = newrelic_alert_policy.chaos.id ... }
  21. Next Steps: Use Terraform for facing new Ops: AIOps, MLOps,

    HugOps, FinOps, SalesOps, ChatOps, ! Rome, Italy
  22. Next Steps: Use Terraform for facing new Ops: AIOps, MLOps,

    HugOps, FinOps, SalesOps, ChatOps, ! Tulp <3