We already have CI. Is that not the same thing?
Continuous integration is one part of it, and it is the part that is easiest to buy. Running tests on a pull request tells you a change compiles and behaves in a laboratory. Being able to release tells you something harder: that a deploy takes minutes rather than an evening, that any engineer on the team can run it, that a bad release can be undone by somebody who did not write it, and that anyone would notice if it went wrong. Most teams who call us have the first and not the second, and the distance between them is rarely a tool. It is flaky tests, a rollback nobody has practised, and one person who is quietly the only one able to do it.
Should we hire a DevOps engineer, or a whole DevOps team?
Hire the engineer if you can find one, and be careful about the team. The word describes a way of working, so a department named after it usually recreates the handover it was invented to remove: developers finish, throw the work over, and the new group becomes the queue for every environment and every deploy. What works at small scale is one or two people whose job is the paved path, while the teams who write services keep the pager for them. At larger scale that becomes a platform team with internal users and a roadmap, which is a genuinely different thing from a group who own production because nobody else is permitted to touch it. The test is whether the team removes queues or becomes one.
Do we need Kubernetes?
Probably not, and we will say so before quoting for it. It solves problems that arrive with scale and variety: many services, several teams shipping independently, packing that genuinely saves money, workloads that have to move between providers. It also brings a standing operational cost in upgrades, networking, permissions and a fresh catalogue of failure modes your team now has to learn at two in the morning. A container service run by your cloud provider, or plain instances behind a load balancer, carries most small and medium workloads perfectly well and can be understood by whoever is awake. The honest test is whether you have the problems it solves. Adopting it because it appears in job adverts buys a second product to operate beside the one that earns money.
Our secrets live in environment variables and a pinned chat message. Is that bad?
It is the normal starting point and it is worth fixing early, because the cost of fixing it does not fall while the cost of exposure keeps rising. The concrete problems are that nobody can say who has seen a given credential, nothing is scoped so one leak reaches everything, and rotation is theoretically possible but has never been done, which means nobody knows what breaks when it happens. We move credentials into a managed store, scope them per environment and per service, give the pipeline short lived identity rather than a permanent key, and then rotate once while everybody is watching. The rehearsal is the point. An untested rotation is a plan rather than a control, and it will be attempted first during an incident.
Our build takes forty minutes. Is that worth spending money on?
Almost always, because the cost is not the forty minutes. It is what the forty minutes does to behaviour. Engineers batch changes to avoid paying the wait twice, so releases grow larger, and larger releases are harder to diagnose when they misbehave. People start something else and lose the thread. A red build gets looked at an hour later with the context gone. Pipelines of that length usually have obvious savings in them: dependencies fetched fresh on every run, tests running one after another that could run at once, an image rebuilt from the first layer when only the application changed, integration tests gating a merge that could run after it. Getting under ten minutes changes how often people are willing to try something, and that is the return.
What should page someone at night, and what should only be recorded?
Page for symptoms a customer would feel and a human can act on immediately: error rates above the level you have agreed, work no longer being processed, a queue growing with no ceiling, a payment path failing. Record nearly everything else. Single machine health, a disk at seventy per cent, one container restarting, anything a monitoring platform enabled for you by default. Those belong on a dashboard and in a weekly review, not on somebody's phone at three in the morning. Our test is blunt: if the response to this alert at three in the morning is to look at it and go back to sleep, it was never an alert. It becomes one after a fortnight of being silently muted by whoever was tired enough.
Will this make our cloud bill smaller?
Usually, though the durable saving is not the clean up. Anybody can find an oversized instance once. What lasts is making spend an engineering number instead of a finance surprise: tagged so cost lands on the team and the service that caused it, reviewed in the same meeting as latency and error rates, with budgets that alert before the invoice arrives. Then the decisions that create cost are made by the people able to undo them. Expect a first pass to turn up environments left running since a demo last year, storage nobody owns, logs retained for a decade because that was the default, and traffic crossing regions for no reason. Expect the second year to be saved by engineers who can see the price of what they are about to build.
We ship once a quarter and nothing breaks. Do we need any of this?
Possibly not, and we would rather say so than sell you a pipeline you will not use. If your cadence genuinely matches your business, your rollback has been tested, and the person who performs the deploy is not the only one who could, you have a working arrangement. The sensible spend then is making it survive their annual leave. What changes the answer is any of the following: a compliance requirement for an audit trail on production changes, a team growing past the size where informal coordination works, a product where a defect has to be fixed in hours rather than at the next window, or the discovery that nobody can rebuild an environment from scratch. At that point this stops being efficiency and starts being what keeps you trading.