An Infrastructure Review Should Give You a Plan, Not a Dependency

Maksym YemleninovMaksym Yemleninov

6 min read

Why we want the review to be useful even if your own team does all the work afterward. Of course we want to help with the implementation. We are an engineering company. We like solving infrastructure problems, and we want relationships where we can take responsibility for the work over time. So why offer an Infrastructure Review that a client can take back to their own team? Because I want the first engagement to earn its fee on its own, the client should leave with a better understanding of their situation, clear priorities, and a practical next step. They can then decide whether they want us to carry out the changes. That is the principle behind how we are building our Infrastructure Review. It shapes what we agree to investigate, how we explain our findings, and what the client can do with them afterward.

Start with the decision the client needs to make

Something usually prompts the conversation.

The cloud bill keeps growing, and nobody can explain how much of that growth is necessary. Releases take too much coordination. A new brand or customer is coming, and the CTO wants to understand what needs to change before launch.

Those concerns lead to different investigations. Before agreeing on scope, I want us to be clear about the decision the client needs to make.

Take a rising database bill. The immediate question might be whether the current setup is unnecessarily expensive. The team may also be considering a larger instance, a configuration change, or a migration.

Inspecting the infrastructure could uncover dozens of other improvements. But the client still needs an answer to the question that brought them to us.

An agreed scope keeps that question visible. It tells the client what they are paying to understand and gives both sides a way to judge whether the review was useful.

It also establishes the limits. If we have not examined an area, the client should know that it remains outside our conclusions.

Make the reasoning visible.

An expensive database is an observation. On its own, it does not tell us what to change.

The workload may have grown. The team may be paying for capacity it needs only occasionally. A change in application behavior may have increased the work the database performs.

Those possibilities lead to different actions. Recommending a migration before understanding the cause could turn a cost question into a much larger engineering project.

Consider this illustrative finding:

What we found: Database spend increased during the period reviewed.
What remains unknown: How much of the increase came from business growth, resource configuration, or changes in workload.
Next step: Break down the increase and compare it with workload and configuration changes before choosing an optimization.

That is an initial finding, with a clearly stated limit. If cost analysis is the agreed purpose of the review, the investigation needs to go further before we can recommend a change.

The client should be able to follow that progression: what we observed, what we checked, what we ruled out, and why a particular response makes sense.

Their engineers may challenge the conclusion. They may know about an upcoming launch or a requirement that changes the tradeoff. Making our reasoning visible gives them something concrete to evaluate.

It also makes the recommendation useful beyond our involvement. Another engineer can examine the same evidence and decide whether the proposed approach still fits.

Give priorities a reason.

If everything is marked critical, I still have to prioritize myself.

Most teams already have more work than they can comfortably deliver. A review should help the CTO decide where to spend that limited capacity.

An expensive database, a fragile release process, and a recovery gap may all deserve attention. The order depends on what they mean for the business, how urgent they are, how much work they involve, and what else must happen first.

Confidence matters too. A suspected problem may justify a measurement exercise. A confirmed issue may be ready for implementation. A larger architectural change may require design work before the team can estimate it.

The roadmap should make those differences clear.

It should also explain what can wait. An older component may be doing its job adequately. Replacing it would consume engineering time and introduce migration risk, while a smaller change elsewhere might solve a more immediate problem.

Our preference for a different tool does not make that investment worthwhile.

When we explain the priorities, the client can revisit them as circumstances change. If a launch moves or the team loses capacity, the CTO has the reasoning needed to adjust the plan without asking us to reconstruct it.

Leave enough context for another engineer.

Here is the handover test I care about: can a competent engineer who missed the review calls pick up a recommendation and understand what to do next?

They should be able to find the evidence, understand the proposed approach, and see what to check before making a change. They will have questions, but they should not have to repeat the investigation.

That context belongs in materials the client can keep using. Depending on the scope, it may include diagrams, dependencies, evidence references, and criteria for checking the result. A handover discussion gives the team time to question the recommendations and resolve gaps.

A review has limits. It does not automatically come with production code or a complete migration design.

For each recommendation, we should make the starting point clear: ready to plan for implementation, needs validation, or requires further design.

That distinction lets the client assign the next piece of work to the right people and understand what they are taking on.

Let the client choose who carries out the work.

Once the findings and priorities are understood, the implementation conversation becomes more concrete.

The internal team may have the skills and time. The client may want us to handle one difficult change. Or they may need us to take responsibility for the wider work while their engineers focus on the product.

Continuing with us has a practical advantage: we already know the environment and the reasons behind the recommendations. We can carry that context into delivery.

The roadmap should still be usable if the client chooses another route.

Their engineers, or another qualified partner, may prefer a different approach. Clear evidence and recorded assumptions allow them to evaluate our recommendations and make that decision.

And sometimes the client will agree with the plan but have nobody available to execute it. A clear roadmap does not create spare engineering capacity.

That gives us a straightforward discussion about the work, who will own it, and how it fits around the company’s commitments.

The review also gives the client a chance to see how we work: how we investigate, explain tradeoffs, and respond when their team challenges a recommendation. If we continue together, both sides have experience of the working relationship.

I want the client to choose us for implementation knowing what needs to be done and why they want our team doing it.

If their own engineers take the plan forward, the review has still earned its fee.

See how the Infrastructure Review works.

Maksym Yemleninov

Maksym Yemleninov

COO at ITSyndicate. Leads operations and delivery to ensure reliability, SLAs, and client success. Scales teams and processes to achieve consistent, cost‑efficient outcomes in DevOps and cloud.

Your Infrastructure Can Be Expensive Even When Nothing Is Broken

A quiet production environment can still hide rising costs, wasted engineering capacity, and risks that appear only during growth or recovery. A familiar weekly update sounds like this: production is stable, the latest release went out, and there were no serious customer complaints. The cloud bill is higher again, but there is probably a reasonable explanation. One engineer spent half a day helping with the release, another fixed a monitoring issue, and the database may need attention next quarter. Nothing is broken badly enough to become a leadership problem. That is exactly why the underlying problem can survive for so long. I have seen this pattern more than once. Production looks stable, while senior engineers quietly spend much of their time keeping it that way. The platform works, but the company is paying for that stability through cloud spend, manual effort, slower releases, and assumptions about growth or recovery that nobody has tested recently. Infrastructure doesn’t need to cause an outage to become expensive. Outages are obvious. Inefficiency is quieter, and it can keep working for years while charging you for the privilege.

How to Run a Docker Container on Your Local Machine

This article is a quick, hands-on guide to running Docker locally. It walks through essential CLI commands for managing images and containers (build, pull, run, ps, start/stop, rm/rmi) and shows how to automate image creation with a Dockerfile. You’ll build an image, run a container with port mapping, verify it’s running, and learn tips for environment setup - everything you need to spin up and manage local containers efficiently.

A guide how to restart Kubernetes pods with kubectl

Even in well-designed Kubernetes environments, you may occasionally need to restart pods due to factors such as a cluster outage, a pod failure, or configuration changes.

Stay online.
Stay in command.