Just got back from DevOpsNL Hackathon days. It was very a humbling experience, I mean that in a good way! Developers are definitely a different breed! I remember Lee Holmes asking at the PowerShell Summit: “Are you a developer or a scripter? Guess what? You’re more of a developer than you think!” Well after these days, I realize I’m no developer by far!
The DevOpsNL hackathon days objective was to introduce the participants in DevOp practices/tooling, in which they succeeded!. Microsoft did an excellent job in providing nourishment and accommodation for all participants interested! Our DevOps guides were Thiago Almeida and Rasmus Hald. They recently did a DevOps Hackathon in Belgium.
DevOps is definitely a way of working. It’s all about the alignment of People,Processes & Products.
Here’s a a quick rundown of the primary DevOps practices:
- Infrastructure as Code (IaC)
- Continuous Integration
- Automated Testing
- Continuous Deployment
- Release Management
- App Performance Monitoring
- Load Testing & Auto-Scale
After a quick DevOps Presentation, teams were created to work on some creative ideas, using DevOps practices and tools. It’s one thing to know the practices, it’s another thing working that way.
We used Microsoft’s Ecosystem to better understand DevOps practices. Each team got a 100$ Azure pass for the DevOpsNL days.
My team was predominantly operation guys, with one developer. Operations guys are quick to click and ask questions later. One of the DevOps pratice is spending more time on working the idea out, once the idea is crystal, use the KanBan Method to further implement and manage the project. Ideally you would have a project manager to fill this position. Developers are definitely a (bit) more disciplined bunch. They get Automated testing, Continuous Deployment Release management, etc. In hindsight, we should have spend more time here.
Infrastructure as Code (IaC)
Now we’re talking! Infrastructure I get. Here’s a lil’ telltale that will let you know you’re not quite a developer, if Infrastructure still excites you! Developers were like… “meh”. What got the developers going? Azure Application Insight! Having all that information and metrics about their application to better help them understand their application. There where live discussions of having dashboards to represent proper functionality of an app. It was fun to witness their excitement.
Suffice to say IaC caught my attention. Now I have some affinity with Azure, and I’ve dabbled in automating to Azure, but using Azure Resource Manager was new, specifically using VisualStudio to deploy to Azure was new. Want another telltale to let you know you’re not a developer? If you start VisualStudio and your trying to figure out where everything is. I enjoy using PowerShell ISE with ISE-Steroids, but when in comes to ARM, you need VisualStudio if only to better understand Azure Json templates.
Deploying a complete Infrastructure in Azure to support Release management
The IaC we needed was a website (with SQL at the BackEnd) having a development, quality assurance and production environment. Operation guys love deploying stuff! Ask a Ops guy for a website and he’ll probably deploy a VM, install OS & Updates and last but not least install (and if you’re lucky) configure IIS before releasing it for dev/qa/prod. Azure really makes the DevOps Continuous Integration,Continuous Deployment and Release Management a lot easier to implement. Deploying an AzureWebSite is easy, using ARM was a bit more challenging.
For the different environments we were advised to use slots. Thiago gave me a quick run down what the general idea was. You have several options to implement your dev/qa/prod environment:
- Keep it all seperate.
- Use slots to distinguish your enviroment.
- Use slots as a way speed up prelease of your webapp
Deploying the slots was a little bit more than I bargained for, something I definitely will look into in the near future. One of the DevOps practice is knowing what to prioritize, deploying the slots automatically didn’t make the cut.
My take away from the DevOpsNL days
Here’s what I picked up at the DevOpsNL days:
- Develop the mindset of a DevOps. You may think you get it, but really spend some more time better understanding the DevOps mindset. There’s always room for improvement.
- Spend more time on collaboration. It’s easy to dive head first into implementing solutions
- Make sure everyone knows what has priority and what doesn’t.
- Don’t forget to enjoy the journey. I got caught up in IaC and missed out on interacting with the other teams.
For Infrastructure guys:
- There’s more to an Infrastructure than just deploying Servers/VM.
- You need to understand the basics of websites even if you’re not a webdeveloper
- Learn how to deploy to Azure using ARM. At a certain point I was tempted to switch back to ASM. Rasmus said it best: ” That will only be a temporary fix, ARM is the way of the future”
- Json, learn it! Better still, learn by looking at the templates out there. Trying to figure Azure Json Templates from scratch is quite an undertaking! The templates will get you there quicker.
- Get proficient at using Visual Studio more.
- Realize that you’re just one of the cogs in this big wheel we call DevOps!
DevOps is more than just a soundbite, it’s a mindset. I think I can better understand a developer’s dilemma in the future… Hope it’s worth something to you…