Skip to content

Instantly share code, notes, and snippets.

View mikesparr's full-sized avatar

Mike Sparr mikesparr

  • Montana, USA
View GitHub Profile
@mikesparr
mikesparr / create-redis-vpc-function.sh
Last active November 28, 2023 16:14
Step-by-step setup of Google Cloud function connecting to Redis with Serverless VPC Connector
View create-redis-vpc-function.sh
#!/usr/bin/env bash
# Reference: https://cloud.google.com/memorystore/docs/redis/connect-redis-instance-functions#python
# enable APIs
gcloud services enable redis.googleapis.com
gcloud services enable cloudfunctions.googleapis.com
gcloud services enable vpcaccess.googleapis.com
# set these to your specific environment
@mikesparr
mikesparr / gcp-nextjs-vercel-gcp-migrate.sh
Last active November 23, 2023 21:40
Experiment migrating Vercel hosted NextJS app to Google Cloud Platform atop Cloud Run
View gcp-nextjs-vercel-gcp-migrate.sh
#!/usr/bin/env bash
#####################################################################
# REFERENCES
# - https://nextjs.org/learn/dashboard-app/getting-started
# - https://github.com/vercel/next.js/tree/canary/examples/with-docker
# - https://cloud.google.com/run/docs/quickstarts/build-and-deploy/deploy-nodejs-service
# - https://cloud.google.com/run/docs/configuring/services/environment-variables
# - https://cloud.google.com/run/docs/securing/service-identity
# - https://cloud.google.com/sdk/gcloud/reference/run/deploy
@mikesparr
mikesparr / 01-architecting-solutions.md
Last active November 19, 2023 20:27
Study Guide for GCP Professional Cloud Architect exam (notes from refresher course)
View 01-architecting-solutions.md

Architecting for the cloud

  • Architect solutions to be scalable and reilient
  • Business requirements involve lowering costs / enhancing user experience
  • Keep an eye on technical needs during development and operation

3 Major Questions To Ask

  1. Where is the company coming from
@mikesparr
mikesparr / gcp-k8s-iperf3-networking.sh
Last active November 8, 2023 19:38
Example deploying iperf3 network analysis server and client in Kubernetes cluster pods to test network throughput
View gcp-k8s-iperf3-networking.sh
#!/usr/bin/env bash
#####################################################################
# REFERENCES
# - https://github.com/esnet/iperf
# - https://cloud.google.com/artifact-registry/docs/docker/store-docker-container-images
# - https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/
# - https://kubernetes.io/docs/concepts/workloads/controllers/job/
#####################################################################
@mikesparr
mikesparr / gcp-audit-log-sink-bigquery-gcloud.sh
Last active November 2, 2023 11:41
Example setting up aggregate log sink for Audit Logs on Google Cloud Platform (GCP) shipping to BigQuery
View gcp-audit-log-sink-bigquery-gcloud.sh
#!/usr/bin/env bash
#####################################################################
# REFERENCES
# - https://cloud.google.com/logging/docs/export/aggregated_sinks
# - https://cloud.google.com/bigquery/docs/datasets#bq
# - https://cloud.google.com/bigquery/docs/access-control-basic-roles
#####################################################################
export PROJECT_ID=$(gcloud config get-value project)
@mikesparr
mikesparr / 01-firebase-auth-test.md
Last active October 31, 2023 21:12
Firebase Auth Phone Provider Test
View 01-firebase-auth-test.md

Firebase Setup

  • created Firebase project
  • created Firebase app
  • copied example code
  • setup node enviroment
# install node
brew install node

# setup firebase
@mikesparr
mikesparr / sre-practices.md
Last active October 28, 2023 06:35
SRE best practices
View sre-practices.md

SRE best practices

  • don’t expect a tool to solve
  • cultural change and need “believers” in senior role to advocate within company
  • people need to absorb info within their own mindset

“Reliability is a journey”

  • it is a process that can span 6-9 months in orgs w/ 5000 engineers; nothing happens immediately
  • Step 1: “I want to be reliable when I grow up” (you must believe you have problem first)
  • Step 2: “Read the book!” and watch SRE v DevOps
  • Step 3: “Panic!” (myth: fire team and retrain; not the case and can retrain team in house)
@mikesparr
mikesparr / gcp-nodejs-secret-manager.sh
Last active October 26, 2023 22:19
Experiment setting up a Terraform environment and testing a NodeJS app accessing Google Secret Manager
View gcp-nodejs-secret-manager.sh
#!/usr/bin/env bash
#####################################################################
# REFERENCES
# - https://cloud.google.com/docs/terraform/best-practices-for-terraform
# - https://registry.terraform.io/modules/terraform-google-modules/kubernetes-engine/google/latest/submodules/safer-cluster
# - https://cloud.google.com/kubernetes-engine/docs/how-to/hardening-your-cluster#restrict_self_modify
# - https://ashwin9798.medium.com/nginx-with-docker-and-node-js-a-beginners-guide-434fe1216b6b
# - https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
# - https://webbylab.com/blog/minimal_size_docker_image_for_your_nodejs_app/
@mikesparr
mikesparr / mike-zshrc.sh
Last active October 15, 2023 06:29
Example helpers in zshrc file for Mac computer
View mike-zshrc.sh
# .zshrc
# other stuff already in file
# ------------------------------ my helpers ------------------------------------
# DoiT Shortcuts Help
function shortcuts {
echo "ENV vars:"
echo " - ORGANIZATION ($ORGANIZATION)"
@mikesparr
mikesparr / gcp-sql-postgres-pgvector.sh
Created September 28, 2023 21:49
Experiment testing pgvector extension for Google Cloud SQL Postgres
View gcp-sql-postgres-pgvector.sh
#!/usr/bin/env bash
#####################################################################
# REFERENCES
# - https://cloud.google.com/sql/docs/postgres/create-instance
# - https://cloud.google.com/sql/docs/postgres/create-manage-databases
# - https://cloud.google.com/sql/docs/postgres/users
# - https://cloud.google.com/blog/products/databases/using-pgvector-llms-and-langchain-with-google-cloud-databases
# - https://cloud.google.com/sql/docs/postgres/extensions#miscellaneous-extensions
# - https://github.com/pgvector/pgvector