I recently read a blog post by Daniel McLoughlin (@CloudDevDan on Twitter) titled What is an Azure Developer? After reading it, I automatically felt overjoyed thinking to myself Yeah, Azure Developer resonates with me. We hear a ton of titles that are popular right now, like DevOps Engineer for example, but Azure Developer really breaks it down into perspective for me. Are you an Azure Developer? Let's find out.
What Is an Azure Developer?
An Azure Developer is someone who, essentially, spends most of their time in Azure working on services more on the Dev/DevOps side like Azure Container Instances, Serverless, Azure Kubernetes Services, PowerShell, Azure CLI, Azure DevOps, Python, etc.. The list goes on and on, but you see where I'm heading.
An Azure Developer, by nature, will focus on services and applications in Azure that aren't too much on the general IT side. For example, an Azure Developer should know how to get around Azure Active Directory for things like app registrations and service principals, but you typically wouldn't see them managing users and groups for an organization.
Does This Mean You Have to Build Complex Applications?
Nope! I consider myself a developer, but more on the automation side. I work a ton with PowerShell, Python, HCL, and .NET, but I don't write complex applications (although I do build small APIs in Python, but that's for testing/lab purposes). Where I spend most of my time is automating application deployments and solutions.
The automation can be anything from PowerShell or Python scripts to create resources, Terraform or another Infrastructure-As-Code language to create and manage resources, or a Continuous Integration and Continuous Delivery pipeline to deploy an application.
What I personally recommend is:
- Two solid scripting/programming languages. The two best, in my opinion, are PowerShell and Python.
- One Infrastructure-As-Code language, like HCL for Terraform
- YAML as a ton of tools, including Docker and Kubernetes, use YAML.
Do You Only Work in Azure?
This is a question that I think will come up a lot and the answer is no. Sure, Azure will definitely be your primary focus, but there are a ton of other platforms that integrate extremely well with Azure. For example, you can use GitLab CI to deploy a serverless application into Azure.
Putting all eggs in one basket can be a gift and a curse. Azure is amazing, but there are a ton of other services out there as well in the cloud space. To understand all of Azure, you need to understand services that can tie into Azure (no, this doesn't mean you need to learn everything right now. Just never stop learning is all).
One of the biggest parts about being a developer in the Azure space is having the ability and knowledge to utilize continuous integration and continuous delivery. Deploying the code you are writing is crucial because at that point you can work on the entire lifecycle. You don't have to hand off the automation code you wrote for an Azure Function to someone else to build a pipeline for deployment. Instead, you can do that part as well as all of the other components that go into building a pipeline which includes testing, security, and staged deployments (dev, uat, and prod).
Architecture and Understand the Why
Writing code is one thing, but anybody can be taught how to write a
for loop or an
if statement. Although you absolutely do need to know how to write logic, writing code isn't all of it. You need to understand the why, as in what is the code for and what is the greater good?
Before writing code, or planning to write code, you need to have a plan. As an Azure Developer, you are responsible for what the Azure environment will be defined as from a development perspective. There have been plenty of times that we read stories regarding developers writing a bunch of code then having to scrap it because it wasn't the need. Although sometimes this just happens because priorities change, you can do the best you can to mitigate that.
Plan why you are writing the code, then write it.
Education will really depend on the individual, but there is a certification dedicated to Developers in Azure. The certification is the AZ-204 which you can find here.
The objectives are the following domains:
- Develop Azure compute solutions (25-30%)
- Develop for Azure storage (10-15%)
- Implement Azure security (15-20%)
- Monitor, troubleshoot, and optimize Azure solutions (10-15%)
- Connect to and consume Azure services and third-party services (20-25%)
Although I'm definitely not saying you need to get the AZ-204 certification to be an Azure developer, I recommend going through the study material. It's really good stuff and helps out a ton.
This is my opinion of what makes up an Azure Developer and is subject to change. What are your thoughts? Let me know!