IT Infrastructure Audit: What We Check and Why It Matters
Most companies do not know the real state of their infrastructure. Not because they are negligent, but because infrastructure grows organically. Decisions made under pressure accumulate. The engineer who set up the original architecture left two years ago. Documentation, if it ever existed, is outdated. And everything works — until it does not.
An infrastructure audit is a systematic examination of what you have, how it is configured, and where the risks and opportunities lie. At robto, we have conducted these audits for companies ranging from 20-person startups to enterprises with hundreds of servers. This post explains what we look at, what we commonly find, and how we turn findings into a prioritized roadmap.
graph TD
AUDIT[Infrastructure Audit] --> ARCH[Architecture Review]
AUDIT --> SEC[Security Assessment]
AUDIT --> AUTO[Automation Maturity]
AUDIT --> OBS[Observability Gaps]
AUDIT --> COST[Cost Analysis]
AUDIT --> DR[Disaster Recovery]
ARCH --> REPORT[Audit Report + Roadmap]
SEC --> REPORT
AUTO --> REPORT
OBS --> REPORT
COST --> REPORT
DR --> REPORT
What We Examine
Our audit covers six areas. Each produces a section in the final report with findings rated by severity and effort to remediate.
1. Architecture Review
We start by mapping the actual architecture — not what the diagram from 2022 shows, but what is actually running today.
What we look at:
- Infrastructure topology: servers, VMs, containers, managed services, and how they connect
- Single points of failure: components where one failure takes down the entire system
- Scalability constraints: bottlenecks that will hurt as traffic or data grows
- Data flow: how data moves between services, where it is stored, how it is backed up
Common findings:
- No architecture diagram exists, or the existing one is significantly outdated. We always produce an up-to-date diagram as a deliverable.
- Database is a single point of failure. The application has redundancy, but the database runs on a single instance with no replica. When it goes down, everything goes down.
- Tightly coupled services that should be independent. A failure in a logging pipeline should not cause the main application to back-pressure and slow down.
2. Security Assessment
Security is not a separate concern — it permeates every layer. We assess it across the stack.
What we look at:
- Access control: who can access what, how are credentials managed, is MFA enforced
- Network security: segmentation, firewall rules, exposed services, encryption in transit
- Secrets management: how are API keys, database passwords, and certificates stored and rotated
- Patch management: how quickly are OS and application vulnerabilities remediated
- Kubernetes security: if applicable, we run the full checklist from our Kubernetes security hardening post
Common findings:
- Shared credentials. A single set of database credentials used by every service, sometimes hardcoded in environment variables or checked into version control.
- SSH keys without rotation. The same SSH keys have been in use for three or more years, belonging to engineers who no longer work at the company.
- No network segmentation. Production and staging environments share the same network, or internal services are exposed to the public internet unnecessarily. We covered proper network design in a previous post.
- No WAF or rate limiting in front of public APIs.
3. Automation Maturity
Automation determines how fast and safely you can deliver changes. We assess where the organization sits on the maturity spectrum.
What we look at:
- Infrastructure as Code: is infrastructure defined in Terraform, Pulumi, or CloudFormation, or is it click-ops?
- Configuration management: Ansible, Salt, or manual SSH sessions?
- CI/CD pipelines: how are applications built, tested, and deployed? How long does a deployment take? Can you roll back in under 5 minutes?
- GitOps practices: is the desired state of infrastructure and applications stored in Git?
Maturity levels we use:
| Level | Description |
|---|---|
| 0 — Manual | Infrastructure provisioned by hand, deployments via SSH |
| 1 — Scripted | Bash scripts and runbooks, some Ansible playbooks |
| 2 — IaC | Terraform/Pulumi for provisioning, CI/CD for applications |
| 3 — GitOps | Full declarative state in Git, automated reconciliation (ArgoCD/Flux) |
| 4 — Self-healing | Automated remediation, policy-as-code, progressive delivery |
Most organizations we audit are between Level 1 and Level 2. The goal is not to reach Level 4 overnight — it is to identify the highest-impact improvements for your current stage.
Common findings:
- Partial IaC. Terraform manages compute instances, but networking, DNS, and IAM were configured manually and are not tracked anywhere.
- No deployment rollback mechanism. The team can deploy forward but cannot quickly revert a bad release.
- CI pipelines without tests. The pipeline builds and deploys, but runs zero tests. It automates deploying bugs faster.
4. Observability
You cannot operate what you cannot observe. We evaluate the three pillars: metrics, logs, and traces.
What we look at:
- Metrics collection: Prometheus, Datadog, CloudWatch — what is measured, what is not
- Alerting: are alerts actionable? Is there alert fatigue? Who gets paged and how?
- Logging: centralized or scattered across servers? Structured or unstructured? Retention policy?
- Tracing: for distributed systems, can you follow a request across services?
- Dashboards: do they exist? Are they used? Do they show the right things?
Common findings:
- Metrics exist but nobody looks at them. Prometheus is running, Grafana has dashboards, but no one has opened them in months because there are no alerts configured.
- Alert fatigue. The on-call engineer receives 50+ alerts per day, most of which are noise. Real incidents get lost in the flood.
- No log aggregation. Engineers SSH into individual servers and run
tail -fto debug issues. Logs are lost when containers restart.
5. Cost Analysis
Cloud and infrastructure costs have a way of growing without anyone noticing. We analyze spending to find optimization opportunities.
What we look at:
- Cloud resource utilization: are instances right-sized? Are there idle resources?
- Reserved instance and savings plan coverage
- Storage costs: old snapshots, unused volumes, S3 lifecycle policies
- Egress costs: data transfer is often the hidden budget killer
- License costs: VMware, monitoring tools, CI/CD platforms — are there open-source alternatives?
Common findings:
- Oversized instances running at 5-15% CPU utilization. Right-sizing alone can cut compute costs by 30-50%.
- No reserved instances or savings plans. The company has been running predictable workloads at on-demand pricing for years.
- Orphaned resources. Load balancers, EBS volumes, and elastic IPs from experiments months ago, still accruing charges.
- Expensive managed services where self-hosted alternatives (on Proxmox or bare metal) would cost a fraction. We detailed the cost comparison in our hybrid cloud architecture post.
6. Disaster Recovery
The question is not whether a failure will happen, but when. We evaluate preparedness.
What we look at:
- Backup strategy: what is backed up, how often, where are backups stored, are they tested?
- Recovery Time Objective (RTO): how long would it take to restore service?
- Recovery Point Objective (RPO): how much data would you lose?
- DR runbooks: do they exist? When were they last tested?
- Multi-region or multi-site capability
Common findings:
- Backups exist but have never been tested. The team assumes they work. A restore test reveals they are corrupted or incomplete.
- No documented DR procedure. Recovery depends on tribal knowledge held by one or two engineers.
- RTO is unknown. When asked “how long would it take to rebuild from scratch?”, the honest answer is “we don’t know.”
How We Conduct the Audit
Our audit process takes two to three weeks, depending on the infrastructure size:
Week 1 — Discovery
- Kick-off meeting with engineering and leadership
- Access to infrastructure (read-only), repositories, monitoring, and cloud accounts
- Automated scanning: CIS benchmarks, vulnerability scans, cost analysis tools
- Architecture mapping through config inspection and team interviews
Week 2 — Analysis
- Deep-dive into each of the six areas
- Reproduce and validate findings
- Prioritize by risk and effort
- Draft the report and roadmap
Week 3 — Delivery
- Present findings to engineering team (detailed, technical)
- Present executive summary to leadership (strategic, business-impact focused)
- Deliver the full report with prioritized remediation roadmap
- Q&A and next-steps planning
The Roadmap: From Findings to Action
An audit without a roadmap is just a list of problems. We structure the remediation plan as a phased roadmap:
Phase 1 — Critical (Week 1-2) Items that represent active security risks or single points of failure. Examples: rotating compromised credentials, enabling MFA, fixing exposed services.
Phase 2 — High Priority (Month 1-2) Items that significantly reduce risk or improve operational capability. Examples: implementing backup testing, deploying network policies, setting up centralized logging.
Phase 3 — Strategic (Quarter 1-2) Items that improve maturity and efficiency. Examples: migrating to Infrastructure as Code, implementing GitOps, right-sizing cloud resources, evaluating hybrid cloud options.
Each item includes estimated effort, required skills, and expected outcome. The roadmap is not aspirational — it is a concrete project plan that your team (or we, working alongside you) can execute.
Why It Matters
An infrastructure audit is not about finding fault. It is about reducing risk and creating clarity. After an audit, leadership understands where the real risks are (not the imagined ones), engineering has a prioritized backlog of improvements, and the organization has a shared understanding of the current state.
The companies that benefit most are those in transition: growing fast, acquiring other companies, preparing for compliance certification, or inheriting infrastructure from a previous team. In all these cases, the first step is understanding what you have.
Conclusion
If you have not audited your infrastructure in the past year, there are findings waiting to be discovered — some of them urgent. The cost of an audit is trivial compared to the cost of a preventable outage, a security breach, or years of overspending on cloud resources.
At robto, infrastructure audits are one of our core services. We bring the experience of having seen dozens of environments, the technical depth to understand the details, and the communication skills to present findings in a way that drives action. Reach out if it is time to take an honest look at what is running under the hood.