DevOps Bulletin #87: Testing AWS Infrastructure
Tags: aws, devops, cloud, kubernetes
Published: 2023-01-27 20:20:29

This week, we’ll take a look at some common Git commands that you probably don’t need. Next, we’ll dive into the world of Kubernetes with a compilation of failure stories. We’ll also explore some practical tips and tricks to help you preview your Argo CD changes, upgrade your Kubernetes cluster, and test your AWS infrastructure changes with Localstack and Terraform. Plus, learn how to automate these processes within your CI/CD pipeline for even greater efficiency.

We’ll also cover some important best practices for choosing a Postgres primary key, migrating to the cloud while staying cost-effective, and deploying any front-end web to the cloud with minimal configuration.

We’ll also show you how to analyze your Lambda log stream, learn Rust with a hands-on book, and how to implement DORA metrics in your organization to optimize your DevOps performance.

That’s just the tip of the iceberg! So make sure to read through this issue thoroughly and don’t miss out on any valuable insights and tips to improve your DevOps workflows.

I hope you enjoy this week’s newsletter! Share it with a friend or colleague if you find it helpful, [drop me an email](mailto:contact@devopsbulletin.com?subject=DevOps%20Bulletin%20topic%20suggestion) or send me a DM on [Twitter](https://twitter.com/mlabouardy) about topics you’d like to hear about in future editions.

## Headline Tutorials:

![ArgoCD diff changes](https://miro.medium.com/max/1400/0*alvbbsywFmsYTeI0.png)

💡 “[Git commands you probably do not need](https://myme.no/posts/2023-01-22-git-commands-you-do-not-need.html?utm_source=newsletter&utm_medium=email&utm_campaign=devopsbulletin&utm_content=devopsbulletin)” — Since its very inception git has been notorious for its often unfriendly, inconsistent, and occasionally hostile command line interface.

🚨 “[Kubernetes failure stories](https://k8s.af/?utm_source=newsletter&utm_medium=email&utm_campaign=devopsbulletin&utm_content=devopsbulletin)” — Discover the real-world lessons learned from Kubernetes failures: A must-see compilation of public failure stories.

👀 “[How to preview and diff Argo CD deployments](https://codefresh.io/blog/argo-cd-preview-diff/?utm_source=newsletter&utm_medium=email&utm_campaign=devopsbulletin&utm_content=devopsbulletin)” — Learn how to preview your Argo CD changes before syncing them in the target Kubernetes cluster and how to use enhanced diffs.

⭐️ “[Upgrading Kubernetes: a practical guide](https://matduggan.com/upgrading-kubernetes-safely/?utm_source=newsletter&utm_medium=email&utm_campaign=devopsbulletin&utm_content=devopsbulletin)” — K8s moves very quickly in terms of versions. Upgrading can’t be treated like switching to a new Linux distro LTS release, you need to plan to do it all the time.

🧪 “[Testing AWS infrastructure locally](https://medium.com/@hdavidrosa/testing-aws-infrastructure-locally-880b1c05aaa6?utm_source=newsletter&utm_medium=email&utm_campaign=devopsbulletin&utm_content=devopsbulletin)” — Learn how to create an integration test suite for AWS services with [LocalStack](https://www.linkedin.com/company/localstack-cloud/) and have it part of your CI/CD pipeline.

📦 “[Choosing a Postgres primary key](https://supabase.com/blog/choosing-a-postgres-primary-key?utm_source=newsletter&utm_medium=email&utm_campaign=devopsbulletin&utm_content=devopsbulletin)” — The job of a database is to archive and recall data and you’re going to have a hard time finding data without a good primary key or a good index.

🤔 “[Why CrashLoopBackOff is a good thing?](https://whyk8s.substack.com/p/why-crashloopbackoff-is-a-good-thing?utm_source=newsletter&utm_medium=email&utm_campaign=devopsbulletin&utm_content=devopsbulletin)” — K8s “BackOff” feature is beneficial as it reduces the amount of unnecessary stress on the system and prevents it from overheating.

🚀 “[Moving to cloud: how to do migrations the wrong way](https://engineering.mercari.com/en/blog/entry/20221218-migrations-the-wrong-way/?utm_source=newsletter&utm_medium=email&utm_campaign=devopsbulletin&utm_content=devopsbulletin)” — Long story short: trust nobody not even your own SQL code.

## Latest open source projects

### Runlike

![Runlike](https://miro.medium.com/max/800/0*4HdnXRBgEuoamWRw.png)

Given an existing docker container, prints the command line necessary to run a copy of it. This is what [_runlike_](https://github.com/lavie/runlike?utm_source=newsletter&utm_medium=email&utm_campaign=devopsbulletin&utm_content=devopsbulletin) does. You give it a docker container, it outputs the command line necessary to run another one just like it, along with all those pesky options (ports, links, volumes, …)

### Anyfront

![Anyfront](https://miro.medium.com/max/1400/0*za5NlM9trIVUHA0X.png)

[Anyfront](https://github.com/Plenituz/anyfront?utm_source=newsletter&utm_medium=email&utm_campaign=devopsbulletin&utm_content=devopsbulletin) is an open-source tool that deploy any front-end web application on any cloud platform with minimal configuration. It orchestrates tools like Terraform, Docker and other CLIs to simplify deploying your React/Next/Svelte/Vue/etc application on any cloud platform.

### Nimbus

![Nimbus](https://miro.medium.com/max/1400/0*RezrBmhI396A1EDa.gif)

[Nimbus](https://github.com/oslabs-beta/nimbus?utm_source=newsletter&utm_medium=email&utm_campaign=devopsbulletin&utm_content=devopsbulletin) is a tool for monitoring, but it also has a number of features that make your AWS development experience better. For example, Nimbus lets developers observe and analyze the logstream that each Lambda function invocation creates.

### CloudWatch Dashboard Builder

![CloudWatch](https://miro.medium.com/max/1400/0*I_XSK6hIroJG37dK.png)

[CloudWatch Dashboard Builder](https://github.com/hseera/cloudwatch-dashboard-builder?utm_source=newsletter&utm_medium=email&utm_campaign=devopsbulletin&utm_content=devopsbulletin) is an open source that helps you in building a Cloudwatch Dashboard from Cloudwatch metrics. This includes SQL expressions as Cloudwatch metrics.

### Kernel Wasm

![Wasm](https://miro.medium.com/max/1400/0*WUblOmwdDlJUxnWq.png)

Safely run [WebAssembly](https://github.com/wasmerio/kernel-wasm?utm_source=newsletter&utm_medium=email&utm_campaign=devopsbulletin&utm_content=devopsbulletin) in the Linux kernel, with faster-than-native performance.

### terraform-repl

![Terraform](https://miro.medium.com/max/1400/0*B_S1a8RBk8_R5xzh.png)

[terraform-repl](https://github.com/paololazzari/terraform-repl?utm_source=newsletter&utm_medium=email&utm_campaign=devopsbulletin&utm_content=devopsbulletin) is a terraform console wrapper that aims at providing a better interactive console for evaluating Terraform language expressions.

## Question of the week

![Question of the week](https://miro.medium.com/max/1400/0*I8-TPaqBLC9mqXiN.png)

## Meme of the week

![Meme of the week](https://miro.medium.com/max/1298/0*PGKIqvE2IFRk-fRO.png)

I hope this summary has been useful. Remember to [subscribe to the newsletter](https://www.devopsbulletin.com/) to receive the latest DevOps trends in your inbox every week 🔥