Hello All,
Recently I was going through some job offer and title of the positions "DevOps". It seems more like a backend developer but why people title these positions as "DevOps" not "Backend Developer". Are there specific skill set a "DevOps" should have? If you are working as a DevOps, please share responsibility of the role and if you have idea, please share it.
Some "DevOps" are "SysAdmin with a little development" while others are "Development with a little SysAdmin."
But for either you need to likely be comfortable setting up a WAMP or LAMP environment (and similar popular software, Nginx, IIS, postgresql, Cassandra, memcached, etc). along with decent familiarisation in scripting both (e.g. bash + PowerShell) and a good solid grasp in whatever languages they use (e.g. Java, Python, etc).
Overall most DevOps positions are unpaid for the qualifications they require and expect unreasonable levels of knowledge. There are people who could do DevOps but they have enough experience now so that they'd never take the salaries offered for the majority of DevOps roles (i.e. you rarely see medium-large companies after DevOps, they prefer two specialists and pay each more).
I'd definitely be careful with DevOps, unless it is a sub-10 person business they're likely just trying to cheap out on either development or systems support. In either case it speaks badly of a company.
I am a devops engineer and there are lots of things I do at my work.
Manage a Cloud infrastructure from creating, destroying and provisioning instances using tools like Ansible and in the past Puppet and chef.
The environments where I have worked are so large that doing things manually does not scale and you have to automate all these processes. I have to work with developers to help them setup their dev enviroments using Vagrant and have them mirror production.
Also, I have to make sure the code the developers work with is managed and deployed to our instance using automated tools like Jenkins or Travis CI. Help the developers troubleshooting networking, DNS , SSL issues once we detect bugs on production on sandbox and help them get access to logs, automate alerts using New Relic, Elastic Search .
I work with environments where I have to know and understand the whole stack. Hadoop, kafka, Django, Postgres , MySql, Mongodb and be able to pin point where our bottle neck might be when we have production problems. A lot of developers just work on one part of the system so they come to me when they need help understanding the whole stack.
My work involves helping making the developers and the business work with operations and work as a team. hence the term DevOps .
DevOps is not a backend developer. When I personally think of DevOps and what we view it as with my team is a person that is not purely a developer or purely traditional IT. Instead it is the person that can bridge those two roles and thinks differently about them both. A Good DevOps person should be able to interact with the dev team at all levels and provide insight to deployment options, strategies and structures, including code level details that might cause issues for deployment. At the same time that person must be well versed in the hardware, networking and automation tasks that will handle the raw deployment.
I can see a job description where many of the traits of a traditional backend developer are listed in the DevOps role, but they are not one in the same. That said, small teams will many times use a backend developer that has solid networking, hardware and automation skills to fill the DevOps role as well as his/her developer duties. We do that because we don't have the revenue yet to afford to separate those two positions.
I have worked a lot with DevOps people in general. The best ones had following :
- Amazing shell scripting and linux command weaponry.
- They keep up with the latest tools like docker, new relic or puppet
- They over monitor stuff using tools like ganglia, zabbix, logstash(splunk), datadog, etc.
- They have flexible mindset (to do quick hacks) to buy time for dev team.
- They have flexible time schedule. (act to an alert at 3 AM)
- They consider themselves to be part of Dev team, admin team, DB team and are clear in communicating their ideas.
That means a "DevOps" should have all the experience to work in different teams. For example he may start his career as dev then move to some sys admin jobs. Meanwhile after working for couple of years with both Dev and sys admin team he could call himself "DevOps".
Some "DevOps" are "SysAdmin with a little development" while others are "Development with a little SysAdmin."
But for either you need to likely be comfortable setting up a WAMP or LAMP environment (and similar popular software, Nginx, IIS, postgresql, Cassandra, memcached, etc). along with decent familiarisation in scripting both (e.g. bash + PowerShell) and a good solid grasp in whatever languages they use (e.g. Java, Python, etc).
Overall most DevOps positions are unpaid for the qualifications they require and expect unreasonable levels of knowledge. There are people who could do DevOps but they have enough experience now so that they'd never take the salaries offered for the majority of DevOps roles (i.e. you rarely see medium-large companies after DevOps, they prefer two specialists and pay each more).
I'd definitely be careful with DevOps, unless it is a sub-10 person business they're likely just trying to cheap out on either development or systems support. In either case it speaks badly of a company.