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

Oh No! The Robots Have Taken Over

Oh No! The Robots Have Taken Over

As part of his work, Chris and his team at Google are responsible for managing libraries for 150 APIs across 7 languages. This results in a crushing amount of toil, making it hard at times to both make forward progress and maintain what has been created.

When you own over 70 node repositories you have to get creative. So the team decided to make an army of sorts. An army of screaming, free roaming robots.

Bots can have a freeing effect on your engineering team. Come to hear how embracing automation has let a team of engineers do what they do best and let the toil fall to the machines.

Presented at Node+JS Interactive 2019: https://sched.co/T5HD

Christopher Wilcox

December 11, 2019
Tweet

More Decks by Christopher Wilcox

Other Decks in Technology

Transcript

  1. @chriswilcox47 https://chriswilcox.dev Oh No! The Robots Have Taken Over! Chris

    Wilcox Engineer, Google Cloud @chriswilcox47 https://chriswilcox.dev
  2. @chriswilcox47 https://chriswilcox.dev Level Description Execution Monitoring Fallback System Capabilities 1

    Tooling, Basic Automation Human System Human Humam Scoped 2 Human monitored automation. System Human Human Scoped 3 System monitored automation with human fallback System System Human Scoped 4 System handles fallback within a scope System System System Scoped 5 System handles work with nebulous scope System System System Unscoped @chriswilcox47 https://chriswilcox.dev
  3. @chriswilcox47 https://chriswilcox.dev Level 1 - Automate portions of workflow -

    Problem: Releasing a package takes multiple actions and it is easy to forget a bit. - Bot: Run script that tags main branch and publishes to package manager. The Simpsons, 20th Century Fox
  4. @chriswilcox47 https://chriswilcox.dev Level 2: Automate, but supervise - Problem: The

    script we authored to publish releases is easy to forget to run after we have a PR to update our version. - Bot: Automatically publish when a release PR is merged. Futurama, 20th Century Fox
  5. @chriswilcox47 https://chriswilcox.dev Level 3: Automate with limited supervision - Problem:

    We have issues go stale in our repository. - Bot: Reassign issues to other contributors when issues go stale. Boston Dynamics
  6. @chriswilcox47 https://chriswilcox.dev Level 4: Automate with *no* supervision - Problem:

    Sometimes branches other than master lie around after merges. - Bot: Delete stale branches from the repository. Matt Unsworth / YouTube
  7. @chriswilcox47 https://chriswilcox.dev Google Cloud Storage + Google Cloud KMS Key

    Management Service maintains secrets so they aren’t hard coded in Google Cloud Function.
  8. @chriswilcox47 https://chriswilcox.dev Building npm install npm run compile mkdir -p

    "target" cp -r build "target" cp package.json "target/package.json"
  9. @chriswilcox47 https://chriswilcox.dev Publishing functionname="function_name" gcloud functions deploy "$functionname" --trigger-http \

    --runtime nodejs10 \ --region "$FUNCTION_REGION" \ --set-env-vars DRIFT_PRO_BUCKET="$BUCKET",KEY_LOCATION="$KEY_LOCATION",KEY_ RING="$KEY_RING",GCF_SHORT_FUNCTION_NAME="$functionname",PRO JECT_ID="$PROJECT_ID"
  10. @chriswilcox47 https://chriswilcox.dev Thanks to the Googlers that contributed! And others...

    Benjamin Coe bcoe BenjaminCoe Jeff Ching chingor13 Colin Nelson orthros orthros_ Justin Beckwith justinbeckwith JustinBeckwith Chris Wilcox crwilcox chriswilcox47 Alexander Fenster alexander-fenster Sofia Leon sofisl https://github.com/googleapis/repo-automation-bots