DevOps Development Plan

It has been around 9 months since I started in my new role as a Cloud Solution Architect (where does the time go?!) and I have been busy getting myself a good general understanding of the platform as a whole, as well as going deep in a few areas.

I found myself leaning into the Application Solution Architect track more and more, as I find getting my hands dirty and writing some code to solve a customer problem is what I have enjoyed the most. Alongside this, I have been really interested in DevOps, both as a culture and the tools and processes involved in building out DevOps capabilities. Some of my most enjoyable work recently has been DevOps focused, and I have found myself able to share some of my learning with developers, which is always exciting!

So! What is the point of this post?

Well, I have been looking for a general direction for Cloudamentals since I started it. Originally, my plan was to document the process of going from being zero technical (okay, maybe a 1 or a 2!) to full on technical wizard (aspirations are important..!). I think that is still the case, but I believe I will focus more and more on my desire to specialise in DevOps solutions.

With that said, I am sharing with you my development plan to get me there.

Azure

Okay, that’s a given - I work for Microsoft! I am pretty comfortable with App Services - they play really nicely with VSTS, and it is really easy to get a website up and running with a CI/CD pipeline in minutes (check out DevOps Projects below). Some of my focus areas:

Source Code

I use VSTS quite a lot for my own projects, and whilst this has been great to learn the platform, adding GitHub to my strengths will enable me to give back more to the community. Getting over that initial barrier of “but what if I break something!?” is key for me.

  • Git (GitHub and VSTS)

Continuous Integration & Continuous Deployment

Jenkins is completely new to me and I am much more comfortable in setting up build and release pipelines in VSTS (although I have room to go much deeper). My plan is to deploy a Jenkins VM in Azure and go from there.

  • VSTS
  • Jenkins

Infrastructure Automation & Scripting

Aside from ARM templates (I love Quickstart Templates!) and the Azure CLI, much of the below is new to me. I recognise learning all of the below in depth may not be feasible, but my goal is become at least familiar with everything, and deep in one. My colleagues are quite excited about Terraform on Azure, so that might be what I go for.

Testing

Not coming from a coding background, testing is all new to me. My plan is to learn more about unit testing and some of the open source tools out there to help cut down on technical debt.

  • SonarQube

Containers and Container Orchestration

Containers were absolutely new to me a few months ago. Recently, I have been a lot more hands on with docker images and Kubernetes and so I would like to develop some more muscle here. I deployed a Wordpress blog to Azure Container Service (AKS) recently, although I did decide to go with a Hexo generated static blog in the end (I’ll blog on this soon!).

  • Docker
  • Kubernetes

Security in DevOps

This is essential. So far, my focus has been on learning tools and deploying things quickly, without giving much thought to security so far. We have an excellent project, the Secure DevOps Kit for Azure, which is basically a bunch of scripts, tools and guidance to enhance the security of DevOps workflows. Early days with this, but I’ll also be blogging about it soon.

  • Secure DevOps Kit for Azure
  • Key Vault - VSTS integration

.NET

I started out learning to code in C#, and I’m getting more and more comfortable creating applications targeting .NET Core. I’ll continue to build out my abilities here as well as picking up another language - Go, perhaps!

That’s it, for now. This plan will change over the next few months as I get more experience in these areas, tools and processes. Looking forward to it!