CONTINUOUS DELIVERY TO AKS WITH AZURE DEVOPS ENVIRONMENTS - PART 1

What is an Azure DevOps Environment? Introduction Benefits of using ADO Environments (IMHO) Resource Grouping Tips One Environment representing all development/staging/production clusters One Environment representing one development/staging/production cluster One Environment representing one application deployed in development/staging/production cluster Next Steps In the first part of this blog series I would like to talk about Azure DevOps Environments, benefits of using it for deployment of applications to AKS or any other Kubernetes distribution (or even a VM), and provide a few tips and tricks for how ADO environments and resources can be created.

Read more

IMPROVING .NET CODE QUALITY WITH NDEPEND IN VISUAL STUDIO AND AZURE DEVOPS

What is NDepend? Improving and enforcing source code quality with NDepend Azure DevOps extension Adding NDepend Build Task NDepend build output and Azure DevOps Dashboard Adding code coverage to NDepend analysis Adding code coverage from external location to NDepend analysis Trends section in NDepend Dashboard in Azure DevOps Enabling NDepend quality gate checks in build pipeline Quality gate and rule management with NDepend VS Extension Running initial NDepend analysis in Visual Studio Modifying default quality gate Deactivate, Suppress and Resolve quality gate issues Adding custom rule and connecting it to existing quality gate Additional resources What is NDepend?

Read more

CLEANING UP SECRETS IN AZURE DEVOPS AND GITHUB REPOSITORIES WITH BFG REPO-CLEANER

Why should you care about secrets management? I’ve committed a secret - now what? o.O Cleaning up secrets in Azure DevOps and GitHub repos (or any other Git repo) with BFG Repo-Cleaner Step-by-step walkthrough Final note on permissions in Azure DevOps repos Additional resources Why should you care about secrets management?

Read more

HOW TO UPGRADE NGINX INGRESS CONTROLLER WITH ZERO DOWNTIME IN PRODUCTION

Introduction to the needs for upgrading Ingress Controller Walkthrough of the process for upgrading NGINX Ingress Controller with zero downtime Preparations Create temporary Ingress Controller Re-route traffic to temporary Ingress Controller Upgrade original Ingress Controller and re-route traffic from temporary IC Final test and cleanup Additional resources 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.

Read more

HOW TO INCLUDE NEW KUBERNETES RESOURCE INTO EXISTING HELM RELEASE

What is Helm? How to let existing Helm release “adopt” a new Kubernetes resource and why it’s important? Additional resources Helm is extremely useful and efficient when it comes to distributing, installing and upgrading applications hosted in Kubernetes. But sometimes you may have a need to patch an existing release and there is a quick way to do that which I would like to share with you today.

Read more

USING KUBERNETES SERVICE FOR PROXYING TO EXTERNAL SERVICES

Why would proxying to external services from Kubernetes cluster be relevant? What is Kubernetes Service and what kinds of Kubernetes Service can be created? Implementation description and preparation Proxy to external services with Service without Selectors Proxy to external services with ExternalName Service Additional resources So, recently I’ve faced a scenario where I got a chance to dig more into different Kubernetes Service types and experiment with those.

Read more

HOW TO PERFORM STATIC CODE ANALYSIS OF .NET CODE WITH SECURITY CODE SCAN

What is static code analysis and why do I need it? How to install and use Security Code Scan tool? Installation in CI/CD pipeline Local installation How to view and read result report? Additional resources What is static code analysis and why do I need it?

Read more

COULD NOT LOAD FILE OR ASSEMBLY...OH MY! HOW I WENT THROUGH FIVE STAGES OF GRIEF AND MASTERED ASSEMBLY VERSION CONFLICT DEBUGGING WITH .NET CLI, ILSPY AND FUSION LOG

Why is dll hell created in the first place? Tools that helped me survive The Hell of DLL Fusion Log ILSpy dotnet list package –include-transitive How to resolve assembly version conflicts To sign or not to sign - the future of strong-named assemblies If you’re a .

Read more

HOW TO DISTRIBUTE CONSOLE APPLICATIONS EASILY WITH .NET TOOLS

What is a .NET Tool and how do I create one? How to install, use and uninstall a .NET Tool? Additional resources There are probably no developers out there (or at least very few) who have never created a console application - use cases where such apps are a first choice are hundreds, if not thousands.

Read more

SECURITY SCANNING OF THIRD-PARTY DEPENDENCIES WITH OWASP DEPENDENCY CHECK

Why should you care about security of third-party dependencies What is OWASP Dependency Check (ODC) Adding OWASP Dependency Check to build pipeline How to analyze and fix build errors triggered by OWASP Dependency Check Why should you care about security of third-party dependencies No matter how small the application you’re developing is, at some point you’ll end up using code that has been developed by someone else, i.

Read more