Below you will find pages that utilize the tag “SDLC”
Base App Infrastructure
In my previous post, I had figured out how to inject Vault secrets into Kubernetes Secrets using the Vault Secrets Operator. My runthrough of the walkthrough worked, but I swiftly ran into namespacing issues when trying to use it “in production”.
Project Management and Async Functions
In my greatest display yet of over-engineering and procrastinating-with-tooling, I’ve started self-hosting OpenProject to track the tasks I want to carry out on my homelab (and their dependencies).
Backups and Updates and Dependencies and Resiliency
This post is going to be a bit of a meander. It starts with the description of a bug (and appropriate fix, in the hopes of helping a fellow unfortunate), continues on through a re-consideration of software engineering practice, and ends with a bit of pretentious terminological philosophy. Strap in, let’s go!
Automatic Merging
When working on my personal projects, I typically just push straight to main
- opening a PR just to approve it seems entirely pointless, as if I had been able to find any issues in my own work, I wouldn’t wait to do it in a PR! However, this does mean that, if I forget to run any quality checkers (linters, tests, etc.), I won’t find out about it until on: push
GitHub Action runs, and even then I might not see the failure until several commits later.
2023 Wrap Up - Articles
Stand-outs among articles I read this year - abandoning the table layout from last year in favour of readability.
Pre-Pipeline Verification, and the Push-And-Pray Problem
It’s fairly uncontroversial that, for a good service-deployment pipeline, there should be:
- at least one pre-production stage
- automated tests running on that stage
- a promotion blocker if those tests fail
The purpose of this testing is clear: it asserts ("verifies") certain correctness properties of the service version being deployed, such that any version which lacks those properties - which “is incorrect” - should not be deployed to customers. This allows promotion to be automated, reducing human toil and allowing developers to focus their efforts on development of new features rather than on confirmation of the correctness of new deployments.
CI/CD/CD, Oh My!
Since leaving Amazon ~4 months ago and dedicating more time to my own personal projects (and actually trying to ship things instead of getting distracted a few days in by the next shiny project!), I’ve learned a lot more about the Open Source tools that are available to software engineers; which, in turn, has highlighted a few areas of ignorance about CI/CD Pipelines. Emulating Julia Evans, I’m writing this blog both to help lead others who might have similar questions, and to rubber-duck my own process of answering the questions.