đ¨ 9 Things I Wish Someone Had Told Me Before Becoming a DevOps Engineer
đ¨ 9 Things I Wish Someone Had Told Me Before Becoming a DevOps Engineer
Learn the tools. Understand the systems. Master the art of troubleshooting.
When youâre starting your DevOps journey, everything looks exciting.
You learn Linux, Docker, Kubernetes, Jenkins, Terraform, AWS, Ansible, Prometheus, Grafana, and dozens of other tools.
You build CI/CD pipelines, deploy applications, write YAML files, and automate infrastructure.
You start feeling confident because you know how to use the tools.
Then production breaks.
An application becomes unavailable. Kubernetes reports healthy Pods, but users cannot access the application. The deployment succeeds, but checkout stops working. CPU utilization looks normal, yet response times suddenly increase.
Thatâs when you realize something important:
Knowing DevOps tools and understanding production systems are two completely different skills.
Here are nine lessons I wish someone had explained to me before I started my DevOps journey.
1. Linux Matters More Than Your 14th DevOps Tool
You can learn another CI/CD tool, another Kubernetes add-on, or another automation framework.
But if you donât understand Linux, troubleshooting will eventually become difficult.
Linux is everywhere in DevOps:
Application servers
Docker containers
Kubernetes nodes
Cloud virtual machines
CI/CD runners
Monitoring systems
Production infrastructure
Imagine a production application suddenly stops responding.
Do you know how to investigate running processes, memory usage, disk utilization, permissions, services, and system logs?
These commands should become second nature:
top
ps aux
free -m
df -h
du -sh *
systemctl status nginx
journalctl -xe
ss -tulnpThe real lesson: Donât just memorize Linux commands. Understand what the operating system is doing when something goes wrong.
2. Networking Will Humble You Eventually
You can deploy an application successfully and still have users unable to access it.
Why?
Because deployment and connectivity are different problems.
A DevOps engineer must understand:
DNS resolution
TCP/IP
HTTP and HTTPS
Ports and protocols
Routing and subnets
Security groups and firewalls
Load balancers
Reverse proxies
Network address translation
Production example:
Your application is running inside Kubernetes, and the Pods are healthy. However, users receive HTTP 502 errors.
Where do you investigate?
Start with the request path:
User â DNS â Load Balancer â Ingress â Kubernetes Service â Pod â Application
Check DNS resolution, backend health, service endpoints, network connectivity, and application logs.
Useful commands:
nslookup example.com
curl -I https://example.com
ss -tulnp
traceroute example.comThe real lesson: A healthy application does not automatically mean a reachable application. Understand the complete network path.
3. Kubernetes Doesnât Eliminate Distributed-Systems Problems
Kubernetes makes container orchestration easier.
It does not magically solve application architecture, network failures, dependency problems, or distributed-systems complexity.
You can have:
Healthy Pods but failing requests.
Running containers but unavailable dependencies.
Successful deployments but broken service communication.
Multiple replicas but a shared database bottleneck.
Autoscaling enabled but insufficient downstream capacity.
Production example:
Your frontend application has five healthy replicas. However, every request depends on a database that is running out of available connections.
Adding more frontend Pods may increase database pressure instead of fixing the issue.
You need to investigate the entire application dependency chain.
Start with:
kubectl get pods -A
kubectl get services -A
kubectl get endpoints -A
kubectl describe pod <pod-name>
kubectl logs <pod-name>
kubectl get events -AThe real lesson: Kubernetes manages workloads. You still need to understand application dependencies, networking, resilience, and failure propagation.
4. Monitoring Isnât Observability
Monitoring tells you whether predefined conditions are healthy or unhealthy.
Observability helps you investigate why a system behaves the way it does.
They are related, but they are not interchangeable.
A production observability strategy commonly combines:
Metrics: What is happening?
Logs: What happened?
Traces: Where did a request spend its time?
For example, Grafana may show that application latency increased from 200 milliseconds to 3 seconds.
Thatâs useful, but it doesnât explain the root cause.
You may need:
Prometheus metrics to identify resource or performance patterns.
Application logs to investigate errors.
Distributed traces to locate slow dependencies.
Dashboards to correlate the evidence.
The real lesson: Donât just create dashboards. Build the ability to investigate system behavior using meaningful telemetry.
5. Automation Can Automate Disasters Too
Automation is one of the biggest advantages of DevOps.
But automation without validation can make mistakes happen faster and across more systems.
Imagine a Terraform pipeline that accidentally removes an important production resource.
Or a cleanup script that deletes files from the wrong directory.
Or a deployment pipeline that pushes an untested image to every environment.
The problem isnât automation itself. The problem is uncontrolled automation.
Build safeguards into your workflows:
Input validation
Code reviews
Automated testing
Terraform plan reviews
Approval gates
Least-privilege permissions
Deployment health checks
Rollback procedures
For Terraform:
terraform fmt -check
terraform validate
terraform plan -out=tfplan
terraform apply tfplanReview the plan before applying changes, especially in production.
The real lesson: Good automation reduces human error. Good engineering ensures automation doesnât multiply the impact of an error.
6. The Database Is Part of Your Infrastructure Problem
DevOps engineers sometimes focus heavily on compute, containers, networking, and deployment pipelines.
But the database is often one of the most critical dependencies in a production system.
Your application may be healthy while the database is struggling.
Common problems include:
Connection pool exhaustion
Slow queries
Lock contention
High database CPU
Storage exhaustion
Replication lag
Backup failures
Connection timeouts
Production example:
An application suddenly becomes slow after a new release.
Kubernetes Pods are healthy. CPU and memory utilization look normal.
After investigating, you discover that a new application feature introduced inefficient database queries.
Restarting Pods wonât solve the underlying problem.
You need to investigate database metrics, query performance, connection pools, and application behavior.
The real lesson: Understand the dependencies behind your applications. Infrastructure reliability includes databases, storage, queues, and external services.
7. A Rollback Strategy Matters More Than a Beautiful Deployment Pipeline
A successful deployment pipeline is important.
But what happens when a deployment succeeds technically and breaks the application?
Can you recover quickly?
Every production deployment should consider:
Previous stable application versions
Image tagging and artifact retention
Database migration compatibility
Configuration rollback
Deployment health checks
Traffic management
Recovery procedures
Production example:
A new application release introduces a serious performance regression.
Your deployment strategy should allow you to return traffic to a previously validated version.
For Kubernetes, a basic Deployment rollback can be performed using:
kubectl rollout history deployment/my-app
kubectl rollout undo deployment/my-app
kubectl rollout status deployment/my-appHowever, rolling back an application does not automatically reverse database schema changes or external infrastructure modifications.
Those require separate recovery planning.
The real lesson: A deployment isnât truly production-ready until you understand how to recover when it goes wrong.
8. The Best Incident Responders Arenât Command Encyclopedias
During production incidents, knowing hundreds of commands is useful.
But knowing which command to run next is even more important.
Strong incident responders reduce the search space faster.
They donât randomly restart services, delete Pods, or change configurations without understanding the evidence.
They follow a structured process:
Understand Impact â Collect Evidence â Form a Hypothesis â Isolate Root Cause â Recover â Verify â Prevent Recurrence
Production example:
Your application starts returning HTTP 503 errors.
Instead of immediately restarting Kubernetes Pods:
Identify the affected application and users.
Check recent deployments and infrastructure changes.
Inspect Pod health and application logs.
Verify Service endpoints and Ingress configuration.
Check load balancer health.
Investigate downstream dependencies.
Apply the safest recovery action.
Confirm that service availability has returned.
The real lesson: Troubleshooting is not about executing more commands. It is about asking better questions and eliminating incorrect assumptions.
9. Nobody Cares How Beautiful Your YAML Is When Checkout Is Down
You can write perfectly structured Kubernetes manifests.
You can create reusable Helm charts.
You can build impressive Jenkins pipelines.
You can automate almost everything.
But if customers cannot complete their purchases, your engineering work has not achieved its most important objective.
Production engineering ultimately comes down to delivering reliable services.
Think about what matters to the business:
Application availability
Successful transactions
Response times
Data integrity
Security
Recovery time
Customer experience
Production example:
Your deployment pipeline reports SUCCESS.
Every Kubernetes Pod is Running.
Grafana dashboards show normal CPU and memory.
But customers cannot complete checkout because a payment service integration is failing.
Technically, the deployment succeeded.
Operationally, the business is experiencing an incident.
This is why DevOps engineers must understand application behavior and business impact, not just infrastructure status.
The real lesson: Infrastructure exists to support applications, and applications exist to deliver value. Never confuse a successful deployment with a successful outcome.
What Should You Focus on Instead?
If youâre building a DevOps career, donât spend all your time collecting tools.
Develop these engineering capabilities:
Master the fundamentals.
Linux, networking, Git, operating systems, scripting, and databases.
Understand the complete architecture.
Learn how applications, infrastructure, networks, storage, and cloud services interact.
Build production-style projects.
Combine Terraform, AWS, Docker, Kubernetes, CI/CD, monitoring, and security.
Practise failure scenarios.
Simulate broken deployments, network failures, resource exhaustion, database issues, and configuration drift.
Develop incident-response skills.
Learn to investigate, communicate, recover, and prevent recurring failures.
Understand business impact.
Know why reliability, performance, security, and availability matter to the people using your systems.
Final Thoughts: Think Beyond YAML
DevOps is not about knowing the maximum number of tools.
Itâs about understanding how systems behave, how failures happen, and how to build reliable solutions.
Linux helps you understand the operating system.
Networking helps you understand connectivity.
Kubernetes helps you orchestrate workloads.
Monitoring and observability help you investigate behavior.
Automation helps you improve consistency.
Databases and distributed systems help you understand application dependencies.
Rollback strategies and incident response help you recover when things go wrong.
Learn the tools. Build the projects. Practise the commands.
But learn why systems fail even harder.
Because the best DevOps engineers arenât the ones who can write the most YAML. Theyâre the ones who can keep production running when everything starts breaking.
Think Beyond YAML. Build Beyond Tutorials. Engineer for Production.
Connect With Me
I share practical insights on DevOps, AWS, Kubernetes, cloud engineering, automation, production troubleshooting, and career development.
LinkedIn: https://www.linkedin.com/in/arvindverma021/
Medium: https://medium.com/@arvindverma021
Substack:
DevOps Learning Resources: https://topmate.io/arvindverma021/
Hashtags
#DevOps #ThinkBeyondYAML #Linux #Networking #Kubernetes #Docker #Terraform #AWS #SRE #Observability #Monitoring #ProductionEngineering #IncidentManagement #CICD #DevSecOps #PlatformEngineering #CloudComputing #Automation #Troubleshooting #DevOpsCareer
Arvind Verma is free today. But if you enjoyed this post, you can tell Arvind Verma that their writing is valuable by pledging a future subscription. You won't be charged unless they enable payments.
Š 2026 Arvind Verma
548 Market Street PMB 72296, San Francisco, CA 94104