Skip to main content

Azure, Terraform, GitHub and My Last Year

·1034 words·5 mins

I prefer to write posts that are topical, however I haven’t been writing anything in over a year so I don’t think it’s going to be a problem to spend some time writing a personal catch-up post.

Resetting #

Initially when I put this blog together, we had begun early development on an Azure Platform at work, and that provided a good vehicle for written content while I was learning a ton. Unfortunately, the person leading that initiative took an opportunity with another company and our work efforts were set back as the company wanted to revisit the platform foundation and make sure we were doing things “right”.

This put a massive delay on any implementation efforts, and led to an arduous, frustrating period of time where we tried to garner more internal support for the organizational changes we felt were required for a sustainable cloud operating model. We also spent a good amount of time seeking vendor engagements and assistance with building this foundation because “we don’t know what we don’t know”.

It’s difficult to gauge what sort of progress any of these efforts have made, but while this was going on I took the time to finish the Azure Administrator (AZ-104) and Azure Solutions Architect Expert (AZ-305) certifications to get myself ready for the eventual rollout.

Open the Flood Gates #

About 3 months ago, we finally worked through some of the biggest roadblocks and started earnestly working on the platform development again. Based on the fact that we have limited staff, we are attempting to prioritize work efforts that are incredibly impactful and scalable, which has been fun to work through. We are trying to focus on the following things:

  1. Azure Policy

    We want to delegate the provisioning and management of Azure resources to the teams that will be using them. Our vehicle for doing this is to make sure we have policies configured wherever possible to control the elements that are important in order to provide “guard rails” for other teams to manage themselves.

  2. Terraform

    There was a good portion of our platform that was built without Terraform. We know how much of an advantage it is for managing infrastructure that we consider any time investment in bringing resources under IaC management to be well worth it.

    We also want to write and manage our Terraform in a way that enables other teams to easily deploy resources using IaC without needing to learn Terraform. This has led to a deployment style that is a mix of JSON and Terraform and feels more approachable than some of the more standard methods.

  3. GitHub

    Obviously, SDLC platforms are a great resource for any team doing shared code management. But developing re-usable actions that can be shared across teams, along with building workflow standards has been novel and fun. We are also expanding our internal business usage of Github dramatically, so there is an ongoing process of developing training and standards.

  4. Business Processes

    What does it look like for teams to request resources? Or to request the ability to create new resources? Or to integrate new resources with existing systems?

    There’s a lot to think through from a user interface perspective. But we’ve spent a lot of time approaching these questions with a mindset to enable self-service, and to automate provisioning wherever possible.

In addition to the areas listed above, I’ve recently started developing a relationship with a local community college in an attempt to help their Cloud Virtualization program. I’ve been working with some of the students already and am prepping hopefully to teach a class in the spring.

I am excited for that opportunity, and have been realizing that I am motivated by trying to think through what the process of learning involves for someone else. It is challenging to think from the perspective of someone who knows nothing about a subject, and to distill what knowledge is most relevant and most useful.

Whats Coming #

I want to mention first that I am fortunate this week to be able to attend Microsoft Ignite, I am going to be restarting my posts with content from the conference.

I also have a large list of blog post ideas that I would like to write, centered around the first 3 categories above. My work days have been flying by as I’ve been invigorated by the work I’ve been doing lately. I am more excited about work now than I have been in a long time, and it’s a lot of fun.

I am working on developing a personal schedule that allows me to write more. I am also considering what it looks like to have a platform for future students or other people reading this blog to contact me. This may involve a discord server later, as I’ve had a few people reach out to me on LinkedIn with questions but it’s not a great platform for conversations or casual discussions.

I also want to change the look of this site, so I am going to find time to update that soon as well.

Credit Where It’s Due #

I wanted to specifically call out the fact that all of the most useful things we have helped build so far in our company have been based on feedback or insight we’ve gotten from other people. Vendors have not really been that helpful for a number of reasons, but I am incredibly fortunate to have relationships with people who have worked through the same challenges already and are able to provide good advice and feedback about what we are dealing with.

All of the best and most useful things I have been learning and doing recently have come from other people’s recommendations. I find myself thinking a lot recently that my personal relationships are the main reason for the professional success I have. I think it’s important to keep this on the top of my mind, and to look for the opportunity to share the same types of lessons to anyone else who is looking for them.

Wrap #

If you read this, thank you. If you are working on Azure, Terraform, Github, or anything similar I’d love to connect, please reach out on LinkedIn.


Terraform Comparing Count and For_Each
·1068 words·6 mins
When I was looking at building the module that could attach additonal disks to servers in azure I know I needed to support the ability to add and potentially remove data disks without the risk of losing data.
Terraform - Azure Managed Disks with For Each
·1204 words·6 mins
We have a use case with Azure where we want to support the ability to add, remove or resize additional data disks on a VM.
Terraform - Making Different Resource Types Based on Variable Input
·1734 words·9 mins
The biggest challenge I see people have with Terraform is around logic or conditions.