[kcdc 2022] reduce system fragility with terraform

Speaker: Scott McAllister @stmcallister

For more, see the table of contents

Notes

  • Problem: onboarding same thing dozens of time
  • Infrastructure as code – fast to configure/scale, consistent, reduce errors, self documenting
  • AWS CloudFormation, Azure ARM, Terraform and Pulumi in this space. (Pulumi has been rising and is 2)
  • Terraform is declarative, Pulumi is imperative; use existing programming language

Terraform

  • Declarative
  • Open source – most people use this oer enterprise
  • HCL – Hashicorp configuraton language
  • Manage infrastructure – build, change, version, single source of truth
  • No longer use UI; Terraform will overwrite changes
  • Hashicorp maintains Terraform engine

Providers

  • Hashicorp maintains a few large providers (ex: AWS)
  • Everything else run by community or other companies
  • Doc example https://registry.terraform.io/providers/PagerDuty/pagerduty/latest/docs

Flow

  • Practitioner writes infrastructure as code
  • init – takes definitions in directory, downloads providers
  • plan – want to do this so not billed before confirm
  • apply – changes pushed to environments. Runs plan first. Type ”yes” to confirm or use auto approve flag
  • destroy – wipe out everything have
  • Terraform state has data about config – ex; generated id. In JSON format

Good practices

  • Name service what is providing. Ex: ”Checkout API”
  • Version control system
  • Code review
  • Automated testing
  • Put tokens in environment variable rather than hard coding in script

HCL blocks

  • resource – you are going to manage it, create if not present, etc. Convention: providerName_endpoint. Then unique id – like a variable name within terraform. Ex: resource ”pagerduty_user” ”lisa”, Reference as pageruty_user.lisa.id
  • data – like a query. Get data about something that already exists in system. Reference as data.provider_user.id
  • required_providers – downloads binaries when run tf init. Recommend locking into a version or at least a major version

Data types

  • strings
  • numbers
  • [list, of, data]
  • { a: b, c:d } (complex object)

Can play for free: https://github.com/PagerDuty-Samples/pd-populate-dev-account

Q&A

  • Can find syntax and logic errors in plan. Depends on provider
  • Libraries to convert to HCL. Ex: LDAP to HCL

My take

This served as both a good overview and a good review of the basics. I like that it had a lot of code in it. I’m taking the Terraform cert this month so nice timing for me to attend this talk. I really appreciate the link/API to play for free. Testing on AWS is scary :).

[kcdc 2022] calculating your cloud co2e emissions

Speaker: Joel Lord @joel__lord

For more, see the table of contents

Code impact

  • data centers 2% global electricity demand and 3% greenhouse gasses
  • equivalent to irline ndustry
  • planet has SLO – limit to what we can put in it
  • Car 192g/km
  • Domestic fight 255g/km
  • SMS .014g
  • Email 3g [I googled why high. It can be. .3 to 26 depending on how long to read/write]
  • Tweet .2g
  • Googe search .2g
  • Fart – .2g

Factors

  • CPU/GPU – GPU use more energy, but can perform for consistently – 12.4/38.2
  • RAM – always used so more RAM you have, the more energy used – .3 per GB hour
  • DIsk storage – .002 – per GB hour
  • Network Transfer .027 – per GB
  • Other (cooling, lighting, etc)

Formula includes

  • Time
  • PUE (power usage efficiency) – AWS 1.2, GCP 1.1, Azure (1.125). Only GCP publishes number. Others found somewhere. By contast, average is 1.67 including private data farms
  • CI (carbon intensity) – region specific depending on source of power. NY 200g/kWh, Australlia (lots of coal) 880g/kWH, Quebec 14g/kWh
  • Server tier – CPU, RAM, hard drive
  • Utilization – ex: Atlas CLI/management API
  • M30 on US East 1 for 24 hours – 401g CO2e (72K farts)
  • https://github.com/joellord/atlas-co2

Notes

  • GCP has a carbon footprint dashboard to get bar charts with info for your services
  • Reduce energy using
  • Return only top results
  • Llower default quality
  • Don’t autoplay video
  • Use dark mode – less energy for dark pixels
  • Package size matters – use JAM (JavaScript, APIs and markup) stack
  • Derver rendered pages
  • Reduce complexity – data access together should be stored together
  • Green programming language – C, Rust, C++, Java, C#, JS best. TypeScript, PHP, Ruby, Python worse
  • Migrate to the public cloud – they try to reduce costs by saving energy
  • Serverless or autoscaling
  • Cloud region matters – 80x differences
  • Latency may be ok and then can use smaller nodes
  • Pause servers when not in use – ex: weekend
  • Better monitoring – can go to lower tier if needed
  • Leerage XaaS solutions – (anything as a service)
  • Use right tool – ex: do you need a database

My take

A lot of the beginning was about the impacts of climate change. I feel like the audience knew this part and would have liked to get to the part sooner. The comparisons were good and number of farts were fun. I would have liked more examples of the numbers. The end on things you can do was good.

[kcdc 2022] creating a culture of appreciation

Speaker: Ash Banaszek @ashbanaszek

For more, see the table of contents

Tools

  • Interviews
  • Spotcheck with collegaues
  • DoveTail for affinity mapping

What is recognition

  • Exercise: what makes you feel appreciated. Last time and when was. For me, it was yesterday when a manager (not me) acknowledged a milestone our team made on a key project.
  • Poll to see when last felt appreciated. Most recent but some were longer than 6 months ago.
  • For some people, it is only during annual review
  • Making your employees and coworkers feel valued by you and the company
  • Be specific, descriptive and timely
  • Why are you giving it? What was the impact? Be honest.
  • Mono directional – I am recognizing you
  • Within the week is best
  • Email is ok. Doesn’t have to be formal
  • Tailor to the recipient – not everyone wants public attention

Less good examples

  • Think about how makes feel when manager has to pay for thank yous because companies don’t want to
  • HR sent note with pin for 10 years and manager signature. Ritual, not an accomplishment. Not personalized. Form letter.
  • Too late – forget
  • Where is the bar. If you are never appreciated, better than nothing.
  • Checking a box
  • Recognition is not the same as team building.
  • Don’t want to wait 6 months. Less impact the longer you wait.

Formats

  • Gift
  • Money
  • Time off
  • Face time
  • Public praise
  • Personal note
  • What is best varies by person.
  • Exercise: think about what motivates you
  • Less genuine if do same thing for everyone.

Better

  • Be specific. Mention something did. Not just 10 years.
  • “The team did great on X. We are going out bowling to celebrate”. Better if list specific things during the event for specific people

Why helps

  • Feel happy
  • More productive when believe colleagues respect and appreciate them, gratitude from manager

What is worth recognition

  • Save time/effort
  • Make things better
  • Outside job scope
  • Stretching skill set
  • Doing job while under tough circumstances
  • New certification
  • Going to conference and presented
  • Example of learning from failure (before too late)
  • Something cool
  • Recognize for things reinforce

Tips

  • Block calendar – Ash blocks half an hour to think about gratitude, check in on mentees/managers, send out notes
  • Include in project milestones (if x is true, we will do y)
  • Put in performance goals. Makes measurable. I recognized X people.
  • Talk about it with team/leadership
  • Must be visible and supported by the top to be part of the culture. Example: if X, team has lunch with you
  • Tailor recognition – ex: gifts, meals, emails
  • Remember is it s a thank you gift
  • Vary approach for effect
  • Make it easy to give
  • Make it a habit – schedule time
  • Build reputation for gratitude. People want to work with people who appreciate them
  • Reinforce people recognizing others

Who to recognize

  • Not just managers can do
  • Teammates
  • Other work teams
  • People in roles above you
  • Contractors

Traps

  • “But that’s their job anyway; Already get paycheck, that is recognition” – think about what done that special
  • “What if people don’t think it’s fair” – not recognizing anyone because someone might be upset. Need to make it fair. Find out how doing if less visibility.
  • “My folks don’t need to coddled; don’t want to be recognized” – culture failure
  • “We already have a yearly bonuses” – not specific, descriptive or timely
  • “There’s not on my team, someone else can do it” – all working towards same goal
  • “It’s not worth my time” – well worth ROI because others more productive
  • Fear of “watering down” recognition – number vs specific recognition/scope. Needs to be equivalent in nature to what did
  • Inauthentic – can’t just want productivity gain
  • Ignoring standard practices – if everyone else recognizes anniversary, feel ignored
  • Folks feeling isolated/unseen – talk to others to find out how doing
  • Overcompensating – feels like want something when disproportionate.
  • Checking the box
  • If barrier to entry too high, people won’t do. Ex: having to find a paper form

My take

Ash asked everyone in the first two rows to wear a mask. People complied. I was impressed they got compliance. The talk was interesting. The examples were relatable and fun. The “what to consider” was helpful in getting me to reflect. I like the reinforcement of specific, descriptive and timely throughout! They said we’d be asked to talk to each other but that didn’t happen so I was wondering when that was coming. At the end, we wrote down what would have been in the brainstorming groups and shared out loud. Seemed equally effective.