For the Linux and open source crowd, Python is a worthwhile language to check out. It is well established and, as such, is used in many different scenarios. Python is a great tool for infrastructure automation. Certain configuration management tools, like Chef, require knowledge of Ruby, so that’s another language to investigate.
Regardless of what you choose, remember this: The languages themselves are semantics. You can eventually pick up any language, but the key is to understand the underlying principles of coding and what code can do. If you're brand-new to coding, I highly recommend starting with "Coding for Dummies." It will introduce you to scripting/coding and give you a leg up once you choose your preferred language (or the language chooses you).
Get in touch with your inner infrastructure coder
But the truth is, ops work today goes well beyond simple scripts. In fact, because IT has invested so much into building virtualized infrastructures and the cloud, infrastructure itself is becoming code.
Think of how you deploy and manage servers today. Perhaps you've set up a few scripts to automate some of the processes, but the scripts themselves have to be kicked off by a human. If so, you're taking much longer to complete your work than you should, and you’re likely fixing numerous mistakes that could have been prevented. In other words, you may be scripting, but you haven’t fully embraced your inner infrastructure coder.
Because of this, it's time to move away from "server thinking" and instead take up a more "services thinking" mind-set, the kind most developers employ when working on their projects. The capability to build, configure, and destroy servers via code is one matter. Evolving an abstraction layer to think more about workloads and services than servers is the key to becoming an infrastructure coder, not an infrastructure administrator. The server is not a unique entity but rather a source of power for a software service. We don't have time to focus our energy on a single server now. It’s all about the bigger picture of servers as services you can control with code.
Rebuild your infrastructure as code
Defining your infrastructure -- compute, storage, and network -- as code is becoming an important concept for admins in managing IT resources today.
At its most basic, “infrastructure as code” means treating your infrastructure as software. The code isn't written for execution on servers; it’s written to build servers. Think of it as taking code down a layer of the stack, from the traditional software perspective. Instead of a software developer adding a new feature to a Web page, a new feature in infrastructure code could be the ability to provision servers in the cloud rather than on premises or perhaps to bring up new virtual machines automatically based on traffic level. It's about defining the state of each of these components and using a tool to ensure it stays that way.
Sign up for CIO Asia eNewsletters.