I co-built a highly successful Kubernetes + AWS Hosting Platform for all 30 WordPress sites in the portfolio. The consistent and standardized workflow significantly reduced wasted Development time, increased productivity, decreased Developer frustration, and reduced website downtime to zero.
CI/CD
- Pull Requests would auto-run validity checks using GitHub Workflows, and PRs required semver prefixes.
- When a PR was merged, I built a workflow that tagged the branch based on the semver increment, ran a Docker Build and Publish using the new tag version, and then dispatch a workflow to update the Image version in the "Staging" Environment's Helm Chart
- ArgoCD would then trigger a rollout for the new version
- I built a "Deploy" workflow that would update the Production Environment's Helm to match the version that was deployed out to "Staging", that way you weren't building a new version that might be slightly different than what was already tested and approved on "Staging". What was on Staging is exactly what would be deployed to Production. You could also pass it a specific version if you needed to rollback a bad release.
Local Developer Environment
- Sites were version controlled in GitHub
- Each site's environment had variables stored in AWS Secrets Manager, so I built a script that would retrieve the secrets and do a search-and-replace in a gitignored config YAML
- Using the config YAML values, wrote dozens of custom scripts so Developers can always use the same agnostic commands, such as
get-db
or uploads:sync
- I used Lando to configure all the containers and created a Dockerfile for remote environments using the same Container Images
- Each website would spin up under its own URL Proxy so you could have multiple local environments running without conflicting ports
Remote Environments
- Fastly for caching, image optimization, and passing log info to DataDog
- AWS S3 for Uploads and copies of database backups, AWS EKS for scalability, AWS RDS MySQL8.0, and AWS Route53 for DNS.
- Used Terraform to create new site environments for migration
- ArgoCD would scale the amount of pods based on traffic
- Used Fastly WAF to block offending IPs and control traffic spikes
the vibes
Star Wars
LEGO
Concerts, mostly metalcore and punk
Needlecrafts: knitting, sewing, embroidery, darning, mending, nalbinding
My husband and dog
Gin
Dr. Mario
Puzzles
Puppet History
Craft beer
I am always pushing myself to be better, learn more, and take on new challenges. I'm passionate about making software that is scalable and stable, and working collaboratively with both engineers and end-users.