As a self-proclaimed “Server Hugger”, I have had to undergo a transformation of sorts in order to overcome my apprehension of Cloud technologies and level up my IT Skills. My friend Joey Snow and I did two sessions at TechEd North America talking about “Real World Guide to upgrading your IT Skills” a while back, but I thought I’d share a condensed version of three of the things that stuck with me the most and have helped me bring clarity to the role of the IT Professional in a cloud world.
1) The IT Industry is in a constant state of Change. This is the one thing that won’t change!
We have been facing this as IT Professionals for as long as we’ve have been in the industry. Heck – I got started back when there were “green screen terminals” that connected back into one of the Mainframes. I remember ripping those out in place of PCs with emulator cards (for backwards compatibility) and setting them up to login to a Banyan Vines network. Fast forward to Client – Server applications, x.400 addressing for WAN in order to get inter-office mail working, ISDN connections to this “internet” thing, NT 4, Novell NDS, Active Directory – the list goes on and on. It’s always changing and putting NEW TOOLS into my tool belt, provided I took the time to learn those technologies and how I could use them to light up new opportunities for my users and my companies.
How did I deal with it? I embraced it. You need to as well, instead of being a blocker. Set yourself up to be a lifelong learner. You can to. Go explore things at www.microsoftvirtualacademy.com on a regular basis to learn new things. Check out some of the learning paths to explore new technologies and evaluate some in your lab environments. Follow your curiosity to see where it leads down each path of new technologies. Learn about how to apply them to positively affect your business and your career.
Think of these Technologies as additional tools for your IT toolbox.
2) You have to learn to automate. Period. Full Stop.
I don’t care if it’s PowerShell, Chef, Puppet, Docker – whatever. Being that I am mostly a Windows kind of guy – I lean more towards the PowerShell world. Start with little things that you do on a regular basis via a traditional GUI tool and begin to automate your tasks more often. Yes – it takes time to learn this, but it is time well invested. Why? In a “cloud” world, automation is the norm, not the exception. Knowing how to do it now in your on-premises environment will prep you for when you start to create projects in the public cloud space. If you still have not taken the time to learn PowerShell and need to get started – I HIGHLY recommend Don Jones and Jeffery Hicks book “Learn Windows PowerShell in a Month of Lunches, Second Edition”.
Start small, keep at it – eventually you will find yourself reaching for the PowerShell prompt more instead of the GUI interface.
3) Treat your servers like Cattle, not Pets.
This was a stretch for me. As IT Professionals, we treat our servers individually, each one is unique like a snowflake and therefore would be far to difficult to replace. We need to stop doing this. Here’s an example that hit me recently: I had an issue with a lab environment where I moved some domain controller VMs between clusters. It required an export and import due to networking issues. No matter what I did after the physical move, the VMs would not initialize correctly. To make a long story short – I was hit with a new technology that protects us from having duplicate DCs in a virtual world and it was blocking their initialization (which is by design). I spent hours trying to figure out what was going on, defaulting to my FireFighter troubleshooting mode.
It’s in our nature to sit and bang our heads over troubleshooting an issue in our day to day work. We do this consciously, thinking it’s the fastest way to get something done when the fire is burning – just get it fixed, right? Subconsciously, we’re learning what is going on under the covers so that we can prevent it from happening again. In my above example – if I had only stepped back for a moment and looked at this from a different angle – I would have realized that it would have been faster to “re-create and re-deploy” instead of trying to bash my way through it. Make the systems more generic and document / automate the specialties and configurations so that they can be recreated as required.
In a Cloud world, working with Azure – when I am building new architectures for customers or working on a lab / demo environment that will be used by a number of people – I need to design it in such a way that it’s easiest to wipe it out and re-create it as required instead of troubleshooting it to death. Sure – spend some time to figure out what went wrong, but when it’s “fixed”, document and automate it so that you can blow it away and re-create it without the issue – and move on. I’d never have done that in my on-premises world – it would have taken too long.
By taking these three tips and updating your mindset – I think you will come to realize that it’s really just a continuation of what you have already been doing, with a few tweaks. Your skills are not going to become magically obsolete, provided you keep on refining your skills, embracing change and learning new skill that are complementary. Keep an open mind towards these new technologies and figure out how you can integrate them into your environment – where it makes sense.
P.S: Remember those sessions from TechEd I mentioned at the start? I was asked for the links – so here they are – approximately 75 minutes each including technical demos.
The Real-World Guide to Upgrading Your IT Skills AND Your Infrastructure, Part 1
The Real-World Guide to Upgrading Your IT Skills AND Your Infrastructure, Part 2