Asking for help is something everyone does. But when you ask for help, someone else is giving you their time and attention, a finite resource. If you put yourself in the shoes of the person helping you and make it as easy as possible for them, you’ll get better help faster. This post is geared towards getting help with problems in software development and operations, but most of the advice applies…
Whether you’re new to AWS and just learning or you’re a seasoned veteran, working with AWS usually involves extensive experimentation. That means constantly creating, reading, updating, and deleting resources as you experiment. However, sometimes you forget to delete something or AWS automatically creates associated resources that you might not even be aware of that don’t get automatically…
There are numerous diagramming tools in the market and they all do a very good job of diagramming. However, almost all of them suffer from a fundamental problem that makes the diagrams they produce much less valuable. They make it impossible to share a rendered version of the diagram (e.g. png or jpg) that is conveniently editable. drawio.com has solved that problem brilliantly. Edit a Diagram…
A curated list of learning resources I’ve used to evolve my own understanding of the principles and practices of DevOps. Articles CALMS Framework I’m actually quite partial to the CALMS framework for DevOps. Products Over Projects Treating software as a product is a fundamental shift required for DevOps. What I Talk About When I Talk About Platforms Technology platforms are crucial to the…
Versioning is fundamental to reasoning about software development and deployment. It’s not just the software that you release that needs to be versioned. All of the supporting components need to be versioned too, such as database schemas, message formats, protocols, APIs, dependencies, etc. If you don’t version all of these components, you’re at a severe disadvantage when it comes to understanding…
I recently did an ignite talk at DevOpsDays Auckland 2019 about GitOps. While doing the deck for the talk, I had a chance to really reflect on question “What is GitOps?”. Definition Use Cases Tooling Barriers Benefits Coda Definition GitOps is reconciling a desired state in Git with a runtime environment. “But this is what we’ve always done!” you say. You’re right, application code in Git is…
Our industry is determined to deliver value ever more rapidly, safely, and securely across software development lifecycle environments. One way to achieve this is through GitOps. In broad terms, GitOps is about applying the Git feature workflow to operations. I took this idea and narrowed it down to exactly one use case, using Git to drive deployments on OpenShift. This is a walk-through of the…
Face to face communication is essential. It’s a necessary and irreplaceable form of communication. Chat also has numerous benefits. However, it’s best to establish some norms around the use of chat to realise those benefits and avoid some of the pitfalls. Overview Norms Teams and Channels Tips ‘n Tricks General Threads Message Formatting Notifications Getting Help Coda Overview Here is a high…
A curated list of learning resources I’ve used as I’ve climbed the learning curve on OpenShift. Experiment Get your hands dirty in a safe environment by using installing and using MiniShift . Or you can skip localhost and use the Starter plan for OpenShift online . These are good for developers but not as good for learning how to admin an OpenShift cluster. If you want to get great idea of what’s…
Providing configuration to applications via environment variables (env vars) is one of the principles of twelve-factor apps. If that configuration contains sensitive information like credentials, the best way to do that is using Secrets in Kubernetes. There are a lot of different ways to manage env vars and Secrets in Kubernetes. Here are a few things I do to make working with them more…