There's definitely a business case for transitioning to DevOps, but the process comes with its hiccups. Tech bloggers like to paint a starry-eyed picture of the method, yet they rarely acknowledge the challenges system administrators, developers and other personnel encounter along the way.
The fact of the matter is, there's always going to be problems when you introduce a new way of doing things. That being said, there are a number of DevOps best practices sysadmins can embrace to ease the transition:
"As cheesy as this may sound, spend a lunch hour with the development team."
1. Ask developers about the bigger picture
Chances are you only speak with the developers when they need you to make a change to the current environment. Maybe they made an adjustment to the test environment and you need to apply the same changes to the production environment. Whatever the case, you only speak to them on an ad-hoc basis.
As cheesy as this may sound, spend a lunch hour with the development team. Ask them what they're trying to achieve from a holistic perspective. Once you hear their "vision" for the application, you'll see how the production environment could accommodate developers' objectives.
2. Document production changes
To you, this may seem like an obvious point. Of course you should document all the changes you make to the infrastructure – it's just common sense. Yet we've all opened a file with vi and found a script someone else wrote. Reading through it, we may be able to figure out what the script does, but we don't know why it's there.
Developers, network administrators – everyone on the team needs to know the how and why behind the production environment, and documentation can provide this context, which is especially helpful in a process that requires frequent communication. Tom Limoncelli, author of "The Practice of System and Network Administration," asserted that documenting actions is one of the first steps DevOps newbies should take.
3. Experiment with infrastructure management technology
If you're working with AWS, Azure or some other public cloud service, spin up a couple of instances and play around with an infrastructure configuration solution. These technologies allow you to make changes to your entire infrastructure by running just a few commands, and can prove pretty handy in DevOps.
Terraform is a good example of an infrastructure management solution. Described as "a tool for building, changing and versioning infrastructure," Terraform allows you to build configuration files that describe how all your infrastructure resources should operate to support an application. If you feel like trying something new, it's definitely worth a look.
4. Team up with a developer
If you're cautiously optimistic about DevOps, find someone on the development team who feels the same way you do. Maybe he or she wants to learn some tricks on Linux or teach you a clever script with Python. The goal is to find common ground with someone on the other side of the tracks, for lack of a better metaphor. If DevOps specifies that you need to work with developers, then you might as well take the initiative.