By Greg Greenlee
Hey, wassup all my fellow techies. Here we are once again to talk about tech, tech and more tech. In this blog post, I want to talk about DevOps and how it is causing the job function and skill level of today's system administrator to change.
I recently read an article about how employers are now looking at GitHub (the online versioning control application) as a tool to help them evaluate and hire engineers. Their reasoning behind this is that if you are a serious engineer (software, systems, and network) then you should be using GitHub to store the code that you use for your own projects OR code that you submit to other projects. This practice allows the potential employers to screen and evaluate the code that the potential candidate has submitted to GitHub. This eliminates some of the resume fluff and in some instances, outright lies that employers run up against. If you have a good code it will be evident. As Scott Hanselman would phrase it, "Show me the code."
After I read the article, I began thinking about how systems guys really need to begin stepping up their game in order to comp. All of this leads up to our dig into DevOps (Development and Operations) and how it is changing the way systems administrators think about operations management.
What is DevOps?
DevOps is not a specific job or job title; it's more of a mindset. It is a collection of methodologies, practices and principles derived from software development methodologies, like Agile and Scrum, tools on how to operate effectively, with IT alignment and business agility being the driving forces behind it. Quite frankly, DevOps is a merging of code meets operations or better yet, development meets systems administration.
Although not a new concept, DevOps has seen resurgence, especially with the advent of cloud and large scale computing. The ability to scale your infrastructure rapidly, when demand calls for it, can be the difference between a company's services being up or down. DevOps helps with this process by taking the Agile development methods, practices and principles, and combining them with operations. This brings about more collaboration between the operations and development teams so that software is deployed more rapidly and efficiently.
So Why DevOps in the first place?
Before DevOps, development teams would write code for a new application and at completion toss it to the operations team who was charged with deploying it. The lack of communication, processes and procedures surrounding this effort made launching a new application a nightmare. Operations would be tasked with making sure it "worked" in production even if the infrastructure didn't quite meet the requirements of the software. This could easily result in terrible performance or the application just downright crashing. Operations on the other hand points the finger at the development team. The Dev team exclaims that their code works correctly, and the blame game quickly engulfs both teams and everyone begins hating everyone. With DevOps more cooperation and collaboration, more processes and procedures, and lastly, better tools are used to mitigate this cross departmental crisis.
Infrastructure as Code
DevOps has also spurred this idea of Infrastructure as Code. It is a practice of managing and automating your physical and virtual environment in a more dynamic way using code. Tools, such as Puppet, Chef and cfengine, configuration management software help to alleviate system configuration nightmares by allowing you to automate the entire system configuration process. This virtually eliminates configuration disparity between systems that should be configured identically. Scripts written using the Python language, along with modules such as Boto allow you to interact directly with Amazon Web Services, Open Stack and other cloud services so that you are able to auto-scale out into their cloud infrastructure.
So what does this mean to Systems Admins?
This means that system administrators have to step their games up. They will have to adapt and change the way they think about managing their infrastructure. Continuous improvement, processes and automation are key in building today's rapid pace environments. Systems administrators will need to know more about the entire stack. Meaning, not only will they need to know about administering the operating systems they deploy the developers code on to, but they will also need to know the rest of the stack as well which includes storage, networking, virtualizing and coding.
There is a lot more to the DevOps world, I would need a lot more time and space to mention it all, but remember, DevOps is here to stay and a lot of large scale web companies are using its practices and principles to stay on the cutting edge of innovation. The application of DevOps has been proven and as more companies become successful by adhering to it, you'll see even more companies adopting it. That means they will need admins and engineers that have the mind set and the skill set to keep up. Do you have what it takes to step your game up?
Greg Greenlee is the Owner and Founder of the Blacks In Technology community site. Blacks In Technology is a free online social platform focused on creating a community like atmosphere where knowledge, experience, and information can be shared among Blacks in the Technology field. He is also a Systems Engineer for a datacenter company specializing in colocation and managed services in Cincinnati, OH. He has over 12 years of experience in the I.T. field. Learn more at http://www.blacksintechnology.net or on twitter @blkintechnology