- A developer (programmer) creates applications.
- Ops deploys, manages, monitors applications.
- DevOps creates applications AND deploys/manages/monitors them.
DevOps was really made possible because of the cloud and the tools/platforms that exist that make deployment and management easy. For instance, the developers at github can deploy their code simply by typing a command into their Campfire chat room. And with newer platforms like Heroku, AppFog, etc, it keeps getting easier and easier.
Add to that the higher level services that don’t even require deployment or management like hosted databases (Mongolab, Xeround, RDS), worker/background processing systems (IronWorker), message queues (IronMQ) and logging (Papertrail, Loggly, Exceptional), etc. and the need for dedicated operations people is nearly gone.
Both software engineers and DevOps engineers have the same goal — software development, but their responsibilities differ. In easy words, they focus on different stages of software development. Software engineer’s main role is to create computer programs and permanently ensure it matches business clients needs and, if needed, solve customers problems. As for DevOps engineers, their field relates to the operational part of business. They have a wider focus and aim to track how these computer programs have been deployed and provide operational support through the cloud while the program constantly functionates. DevOps engineers are mostly concentrated on solving their team’s software engineering problems.
To sum up, software engineer responsibilities are:
- Enhancing software performance based on consumer’s reviews;
- Investigating clients’ security needs;
- Documenting development and program functioning for reference during upgrades;
- Developing a software that meets customer needs;
- Testing new software and fixing bugs;
- Arranging correct software installation into customer’s computer system.
DevOps engineer responsibilities:
- Operations monitoring to avoid performance vulnerabilities;
- Maintaining security controls and compliance validation;
- Efficiency assessment of automation tools for development, installation and appropriate operation of computer systems.
I used to call DevOps a bridge between development and operation. It’s a vast and periodically updated subject, so I recommend you checking Agile software development to get more understanding on this topic, cause several DevOps aspects came from Agile methodology.
Happy reading ツ