Are you a dev looking to shift towards a DevOps model? Maybe you’re a classically trained Ops engineer and would like to feel out this whole DevOps thing. Either way, this article is for you!
DevOps is an oft-misunderstood but fast-growing culture within the world of IT. Even if you don’t intend to shift your focus to it specifically, it pays to know what it’s all about. That’s where we come in.
What follows is a primer on DevOps: what it is and the first steps you can take to learn it.
A quick definition
Traditionally, those who create software (developers) and those who run software (operations) had vastly different incentives. Developers are paid to create as many new features as possible but for operations, each of these new features is a risk because all change is. DevOps is essentially a way of marrying these differing incentives.
The idea is simple: a culture in which one group shares the responsibility of creating, deploying, and generating revenue from customer-facing software.
A DevOps engineer is someone who understands the software development lifecycle and is able to use that knowledge to bring software engineering tools and processes to solve operations challenges.
Now you know what DevOps is, let’s look at how you can shift your career towards becoming a DevOps guru.
Brush up your programming
Software development is evolving but one constant remains: code. If you’re going to succeed as a DevOps engineer you have to have at least one programming language under your belt.
Languages like Python, Ruby, or Java are great options. If you’re reading this you likely have knowledge of at least one of these languages already. Even so, do your due diligence and brush up on those skills. Your career will thank you.
Learn how to manage servers
If programming is the Dev side, then managing servers is the Ops. One of the main tasks of a DevOps engineer is server management so you can’t skimp on this knowledge.
You should have a thorough understanding of the hardware (CPU, architecture, memory, etc) and be able to master operating systems – especially Linux!
Master networking and security
Networking and security may seem like the purview of network and security engineers, but this isn’t the case when it comes to DevOps. In order to deploy software safely, you have to have a thorough understanding of networking and security.
At the very least, you should know:
• How HTTP, DNS, FTP, and other protocols work
• How to secure your deployed software
• How to anticipate security flaws in your code
• How to configure your infrastructure network
Learn to script
There are a growing number of tools for automating the scripting process but none of them stand up to the knowledge of doing things from scratch. Scripting is a must-know for all DevOps engineers.
Bash is a classic choice while Python is a great option for quick, economic code. Whatever scripting language you choose, ensure you master it.
Middlewares middlewares middlewares
Middleware is essentially software glue. It acts as a bridge between a database or operating system and applications, especially on a network.
Apache and Nginx are the most used middleware in the DevOps arena. You should know how to install and configure everything from virtual hosts to reverse proxies to domain names. Brushing up on this knowledge will ensure that your DevOps career is a successful one.
Learn how to deploy software
Software deployment includes all the processes and activities required to make a software system or update available to its intended users.
There’s very little use in developing software if you don’t know how to deploy it effectively. Brush up on the three stages of software deployment:
GIT is the IT industry’s leading software versioning tool. It’s used to track changes in a set of files and is the tool of choice for programmers collaboratively developing source code during software development.
You don’t have to be a GIT master to be a DevOps engineer but odds are you will have to use it at some point simply by virtue of it being the industry standard.
DevOps is the future
DevOps is the future of software development and operations. To have a thorough understanding of it is to put yourself in a better position to get the most out of your IT career.
Now you know a little more about DevOps: what it is and how you can get started in it.