Improving .NET code quality with NDepend in Visual Studio and Azure DevOps

What is NDepend? When developing software it’s important to focus on fullfilling customer requirements, providing best possible user experience, performance, security, availability and many other -ilities to ensure success of the software you’re building, as well as keep your current users loyal and happy about your product. It’s equally important to keep the code base maintainable and clean, minimize complexity, dependencies and technical debt, ensure that the new code follows the same quality and design standards as the rest of the code base. This is something that’s extremely difficult to achieve manually, especially when you have a bigger application with tens of developers working on it. Fortunately for us there are many tools in the industry that may help us with this. Recently I got an opportunity to explore and experiment with a tool called NDepend and I would like to share some of the possibilities this tool provides in this blog post. ...

March 17, 2022 · 22 min · Kristina D.

Kris's Quick Cup of K8s #1

Starting a totally new Tech Tips subsection feels great - especially when it’s going to be purely dedicated to Kubernetes utilizing Azure Kubernetes Service (AKS) for demo purposes! :-) In this first edition I would like to demonstrate 4 helpful commands that can make your life easier when working with Kubernetes. AKS will be my Kubernetes distribution of choice. #1 - Live streaming of Pod logs Sometimes it can be really useful to monitor application’s logs, for instance when there are errors happening during application’s start-up or while it’s up and running. If you use kubectl logs <pod_name> -n <namespace> you will only get what’s been logged until the execution of command. In order to stream logs and follow them in real-time you will need to use -f flag (“f” for “follow”) with kubectl logs command, i.e. kubectl logs <pod_name> -n <namespace> -f. ...

March 4, 2022 · 3 min · Kristina Devochko

Cleaning up secrets in Azure DevOps and GitHub repositories with BFG Repo-Cleaner

Why should you care about secrets management? There are very few applications out there that don’t require a secret, an API key or a password of some kind. Secrets and sensitive values are a natural part of a software developer’s life and are tightly incorporated into software development process. With the vast and diverse amount of cybersecurity threats in the modern world proper secrets management hasn’t been as crucial and important as it is now. ...

February 22, 2022 · 13 min · Kristina Devochko

Power of --query in Azure CLI

Have you ever heard of or used query parameter when running Azure CLI commands? If not, I do recommend you checking it out because this is a pretty powerful parameter that can help you with much faster and efficient data retrieval and filtering! Let's use DNS records retrieval as an example: I need to update DNS records pointing to a specific IP, f.ex. 192.0.2.146. So, in order to retrieve all DNS records in respective DNS zone pointing to 192.0.2.146 with Azure CLI I could either: ...

February 13, 2022 · 3 min · Kristina Devochko

How to upgrade NGINX Ingress Controller with zero downtime in production

Introduction to the needs for upgrading Ingress Controller In some scenarios you may need to perform maintenance work on the Ingress Controller which can potentially result in downtime - in my case the time has come to move away from NGINX Ingress Controller for Kubernetes Helm chart located in stable repo and fully embrace the new Helm chart located in ingress-nginx repository. The reason for that is related to higher maintenance costs for the Helm repositories' maintainers which has become significantly more challenging with release of Helm 3. Therefore EOL timeline has been officially announced by CNCF and Helm back in 2020. You can read the official announcement as well as the reasoning behind deprecation of Helm repositories here: Important Helm Repo Changes & v2 End of Support in November. ...

January 14, 2022 · 16 min · Kristina Devochko