Why would you choose Microsoft’s new Bicep DSL over HashiCorp’s Terraform? I would like to give you my perspective, as someone who ditched ARM templates for Terraform in most of my Infrastructure as Code projects. To set the context of this blog post, I’ll be talking about Azure focused customers. Also, I won’t be going over the basics of what Bicep is (that can be found in README here) or comparing it to other IaC solutions like Pulumi or Farmer. If there is interest, I can cover those in another blog post. This will be a direct comparison to Terraform.
Continue reading Reasons to use Bicep over Terraform
Note: Opinions expressed are solely my own and do not express the views or opinions of my employer.
There are two main ways to create re-usable components for Azure Pipelines. I’ll review the pros and cons of each and talk about when it makes sense to use one over the other. Keep in mind that the two are not mutually exclusive, so it may make sense to use a combination of both.
Continue reading Azure Pipelines: YAML Templates VS. Custom Tasks
I’ve worked with quite a few teams who aren’t aware of, or forget about, the Definition of “Done”. In my opinion, this is one of the easiest, low effort, high impact elements of Agile that a team can adopt.
Continue reading The importance of the Definition of “Done”
I’ve been a long time user of Azure Pipelines. It’s a very mature and powerful platform, that integrates really well with other parts of the Azure DevOps suite, to provide end-to-end traceability of the software development lifecycle. However, Microsoft is investing heavily in GitHub which now has some very appealing capabilities: source code security, development insights and analytics, open source and innersource management, etc. As these new capabilities get built out in GitHub, I’d like to explore what is takes to move things over. In this post I’ll be documenting what it takes to port one of my existing Azure Pipelines (YAML) to GitHub Actions.
Continue reading Porting an Azure Pipeline (YAML) to a GitHub Action
The size of your TFS/Azure DevOps Server collection databases will grow over time, and it’s not a trivial task figuring out how to cleanup. This conversation usually begins in preparation for an upgrade or migration to Azure DevOps Services. I have some general steps you can take to begin these efforts.
Continue reading How to reduce the size of your TFS/Azure DevOps Server collection databases
I’ve seen it too many times. It all starts when somebody is given access to a new “production” Azure subscription that’s pay-as-you-go. A new resource is created for the first time on a Friday, running up costs over the weekend, resulting in a surprisingly large bill. The cloud is too expensive!
Continue reading Tips for governing Azure subscriptions
In this post, the two configuration options in Azure Pipelines will go head to head in an epic battle…
Continue reading Azure Pipelines: Classic Editor VS. YAML
Continue reading Associating automated tests with Azure Test Cases
I often get asked, “why can’t I update any of the fields on the Associated Automation tab of a Test Case?”
Governance around CI/CD pipelines can be challenging. As the number of your applications and pipelines grow, it’s tough to make sure everybody is playing by the rules. Pipeline decorators can help us with this by injecting mandatory steps to the beginning and/or end of each pipeline.
Continue reading Azure DevOps Pipeline Decorators
If you’re working with Azure DevOps Pipelines, you should be aware of all your options when it comes to using variables. They make it possible to “Build Once, Deploy Anywhere”, prevent code-reuse, and build scale-able CI/CD pipelines.
Continue reading Azure DevOps Pipelines: Variables, $Variables, __Variables__, $env:Variables, $(Variables), %VARIABLES%