We had a service that compiles a dataset once per quarter. The total size is ~30gb. We were starting a container, storing it on an EFS volume, and mounting like any other disk.
Every time a pod started it would need to read this data into memory so we would get quick initial start-up time but the time to be ready for traffic still took a while.
Since we didn’t need to update it very often, we decided to just package the compiled dataset into the container and skip the EFS volume. We updated the image pull policy to ifNotPresent so it cut egress traffic pricing from EFS to zero. Now there is a cost to pull the image from ECR but that’s only if the pod is being scheduled onto a node it hasn’t been run on before. There was no noticable change in behavior or performance and we saved a bunch on cost.
Sometimes the big, dumb option is the right choice.
Why don’t you find something that fits well, from a large, established company, and just buy the same thing again when it wears out?
Literally everything I own comes from American Eagle (jeans only), Uniqlo, or Muji. When I need something new, I just buy it online because I know neither their sizes nor my ass has changed significantly enough that I would be required to try something on.
If you are being a minimalist about things, you could break down your entire wardrobe to 2-3 pants, 10 shirts, 2-3 shorts, socks and underwear. If you can replace them all at the same time, all of the shopping you would do in 12-18 months can be finished in 10 minutes.
I’ve been doing this personally for something like 15 years.
Very much so. There are limitless things you can do with a computer. Installing a new OS for me falls squarely in the annoying and tedious categories… There are so many more interesting things to put effort into.
Thing is, I had a reachable goal which made it easier for me to learn and feel good as I had a tangible result.
IMO, this exact thing is what separates the people who succeed and those who give up. If you are only approaching the code as some abstract concept then it will never work. Anyone learning this stuff needs to understand that the code is more like a hammer to a carpenter than anything else… It’s a very physical tool used for doing a real job. If you don’t have any nails to hit, you’re not going to get anything done.
We focus a lot more on production than the average developer. It’s our job to make sure whatever devs build is run quickly, efficiently, safely, and scalably.
You will work with a lot of kubernetes, Argo, terraform, Prometheus, grafana. You’ll design build pipelines and software rollout strategies. You plan for zero downtime migrations and upgrades, database maintenance… You’ll have your hands in everything from capacity planning to security to cost optimization to developer support… User permissions, infrastructure, networking, observability… You will write RFCs and setup POCs for new tools. You define and track error budgets and figure out how to keep your org under those projections. When there is an outage you will be involved in writing post mortems.
The days are so varied and unpredictable that it keeps things interesting. The landscape changes so often you’re never really stuck doing the same thing over and over.
I genuinely love it.
EDIT: The SRE Podcast from Google is actually really great for learning about this world. The first season talks about what you’ll be doing and why (based around the SRE O’Riley book). The second season talks about what to expect in different stages of your career progression.
I have long loooooong ago given up on distro hopping because, at the end of the day, most distros are close enough to each other that it doesn’t really matter which one you choose at the end of the day. These new immutable ones though… They seem cool as hell. I need to give one a go someday.