DevOps is one of those words that has been stretched so far it barely means anything now. Recruiters use it for sysadmins. Vendors use it for whatever they happen to be selling. So before the practices and the job description, it is worth being clear about what the thing actually is, and what it is not.
What is DevOps? Definitions and Ideas
Strip away the marketing and DevOps is a fairly simple idea. The people who write the software and the people who run it should not be two separate tribes with a ticketing system between them. That split is where most of the pain comes from. Deploys become events. Nobody owns the thing end to end. DevOps is the attempt to close that gap, partly with tooling, but mostly by changing who is responsible for what.
Important Ideas:
- Shared ownership. Developers do not hand code over a wall and walk away. If you wrote it, you help run it. This one is cultural, and it is the hardest to actually land.
- Automation. Anything you do by hand more than twice, and certainly anything you do at 2am, should be a script. Manual steps are where mistakes live.
- Continuous Integration. Everyone merges into the mainline often, and a build plus a test suite runs on every merge. The point is catching the breakage within minutes, not on release day.
- Continuous Delivery. Every build that passes is genuinely deployable. Whether you actually ship it is a separate decision, and usually a business one.
- Infrastructure as Code. Servers, networks and policies defined in files you can review and roll back, rather than assembled by clicking through a console. If your infrastructure only exists in someone’s memory, you do not really have infrastructure.
- Monitoring and feedback. Knowing something is wrong before a customer tells you. Sounds obvious. Plenty of teams still find out from Twitter.
- Reliability and scale. Building things that degrade sensibly under load instead of falling over all at once.
DevOps Methods
- Continuous Integration. Small, frequent merges with automated builds and tests behind them. Long-lived branches are what CI exists to prevent. Merging three weeks of divergent work is not integration, it is archaeology.
- Continuous Delivery and Deployment. These get used interchangeably and should not be. Delivery means every passing build could go out. Deployment means it does, automatically, with no human in the loop. Most teams want the first and think they want the second.
- Infrastructure as Code. Terraform, Ansible, CloudFormation, Pulumi. Pick one and stay with it. Half-migrated infrastructure is worse than either state on its own.
- Automated testing. Unit, integration and end-to-end, running in the pipeline rather than on somebody’s laptop. A suite nobody trusts gets skipped, and a skipped suite may as well not exist.
- Configuration management. Ansible, Puppet, Chef, or increasingly just immutable images you rebuild instead of patching. Configuration drift is the thing you are fighting: two servers that should be identical and quietly are not.
- Monitoring and logging. Prometheus and Grafana for metrics, ELK or Loki for logs. The tooling is the easy part. Deciding what actually deserves to wake someone up is the hard part, and most alerting is far too noisy.
- Security, or DevSecOps if you prefer. Dependency scanning, secrets detection and policy checks running in the pipeline. Security that arrives as a review two days before launch is not security, it is a formality.
What does a DevOps Engineer do?
The honest answer is that it varies enormously. At a small company you are the person who owns everything between a developer’s laptop and production: pipelines, servers, monitoring, the lot. At a larger one you might do nothing but platform work, building the tooling other engineers deploy through. Same job title, very different days.
What stays constant is the direction of the work. Removing the manual, fragile steps between “the code is written” and “the code is running, and we would know if it stopped”.
Typical Responsibilities:
- Building and maintaining CI/CD pipelines, and keeping them fast, because a pipeline that takes forty minutes is one developers start working around.
- Provisioning infrastructure as code, so environments can be rebuilt rather than nursed.
- Setting up monitoring and alerting, then tuning it. Almost nobody gets the thresholds right first time.
- Debugging across environments, usually the ones where it works locally and fails in staging for reasons nobody can immediately explain.
- Working with developers and QA on the boring friction: the slow test, the flaky deploy, the environment that drifts.
- Getting security checks into the pipeline early enough that they are cheap to fix.
- Writing things down. Deeply unglamorous, and the difference between a system somebody else can run and one only you can.
Key Skills:
- Scripting. Bash and Python cover most of it. You do not need to be a software engineer, but you will write more code than people expect.
- A CI/CD tool in real depth. Jenkins, GitLab CI, GitHub Actions, CircleCI. The concepts transfer, so knowing one properly beats knowing four superficially.
- Configuration management and IaC, and enough understanding of state files and drift to avoid destroying something in production.
- At least one cloud platform. AWS, Azure or GCP. Again, depth over breadth. The patterns carry over more than the vendors like to admit.
- Networking and Linux fundamentals. This is the part people skip, and it is the part that decides whether you can debug something at 3am. DNS, TLS, routing, permissions, how processes actually start.
Summary:
- DevOps closes the gap between building software and running it. Less a toolset than a decision about who owns what.
- The practices that make it real: continuous integration, continuous delivery, infrastructure as code, automated testing, and monitoring you actually trust.
- The engineer’s job is to remove the manual steps between written code and running code, and to make sure someone finds out when it breaks.
- The tools change every few years. The fundamentals do not: Linux, networking, and being able to reason about a failure.
References:
- https://about.gitlab.com/topics/devops
- https://aws.amazon.com/devops/what-is-devops
- https://www.atlassian.com/devops
- https://devops.com/devops-onramp
- https://www.techtarget.com/searchitoperations/definition/DevOps
- https://learn.microsoft.com/en-us/devops/what-is-devops


