DevOps is the practice of integrating traditional systems administration with modern development practices. In practice, this means developers learning to test, build, and run their code, while operations engineers learn to write scripts, automate away more annoying tasks, and contribute small code changes.
We’re not going to go deep on operations, because that’s a whole broad topic that only sometimes intersects with development. Networking, security, hardware, data centers: all of these and more are the responsibility of traditional operations engineers, and are worth learning separately if any of them pique your interest.
How to Learn
DevOps tools and practices are best learned by using them. There’s no single article or book you can read that will make you comfortable with everything. At this point you should be comfortable with finding up-to-date material online, so here is a list of some major topics to read about:
- Agile methodology and Scrum
- Automated acceptance and load testing
- Continuous integration, delivery, and deployment (CI/CD/CD)
- Cloud Providers (AWS, GCP, Azure)
- Virtual machines (VMs)
- Containerization (Docker)
- Container orchestration (Kubernetes)
- Infrastructure as Code (Terraform, CloudFormation)
- Telemetry (Monitoring, Logging, Alerting, Observability)
- Database Administration
- Ops vs DevOps vs SRE (Site Reliability Engineering)
Don’t feel daunted by the scope of these topics. If DevOps interests you, you can and probably will learn about all of these eventually. If it doesn’t interest you, there’s no need to go deep on anything in the above list, just being familiar with some of the terminology will already put you ahead of many developers.