6 scripts you can use in production today — copy, customize, deploy. In Part 1, we covered the fundamentals of shell scripting. Now it's time to build real scripts that solve real problems.
151 posts tagged with "DevOps"
DevOps practices, CI/CD, and automation
View All TagsMost teams do not start with Terraform on day one. They have existing EC2 instances, S3 buckets, Azure VNets, and GCP projects that were created manually through the console or with scripts. Terraform import lets you bring those resources under Terraform management without recreating them — no downtime, no data loss.
Your monolith is decomposing into microservices. The Order Service needs to tell the Inventory Service, Payment Service, and Notification Service that a new order was placed. You could make three synchronous HTTP calls and hope none of them time out. Or you could use messaging — fire a message and let each service pick it up independently. AWS gives you three ways to do this, and picking the wrong one leads to lost messages, duplicate processing, or an architecture that fights you at every turn.
Your Kubernetes manifests live in a Git repository. Your CI pipeline builds images and updates tags. But who applies those manifests to the cluster? If the answer is "someone runs kubectl apply" or "the CI pipeline has cluster credentials," you have a deployment process that is fragile, hard to audit, and impossible to roll back cleanly. GitOps fixes all of this by making Git the single source of truth for your entire deployment state.
You are building Docker images on your laptop and pushing them to production with docker push. It works until it does not — someone forgets to run tests, pushes a debug build, or tags latest over a stable release. CI/CD pipelines eliminate these human errors by making every build reproducible, tested, and traceable to a specific commit.
Your pod shows Running status, but the app inside crashed five minutes ago. Users get 502 errors while Kubernetes happily reports everything is fine. Without health probes, Kubernetes has no idea whether your application is actually working — it only knows the process is alive.
