Omegaswift
Solutions

DevOps & Release Engineering

Most teams do not have a deployment problem, they have a deployment ceremony. We take that ceremony apart, put what survives into code, and hand back a release any engineer on the team can run in the middle of a working day.

How We Help

What devops & release engineering looks like as a piece of work.

The Release That Needs A Late Night

Ask a team when they last deployed and you hear about the pipeline. Ask when they last deployed at three on a Friday afternoon and you hear the truth. Releases move after hours because somebody expects them to go wrong and wants the customers gone when they do. Underneath there is usually a fourteen step document, three of those steps living only in one engineer's head, and a rollback nobody has performed outside an incident. The first job is writing that ceremony down exactly as it is practised now, including the undignified parts, then deleting steps until what remains is one command with an audit trail behind it. None of this is an argument for deploying constantly. It is that a release nobody dreads happens more often, and smaller changes are the cheapest risk control anyone has found.

Written Down, Not Clicked

A cloud console is a fine place to learn and a poor place to keep the truth. Anything created by clicking exists in one place only, remembers nothing about why it was made, and cannot be reproduced on the day an account is compromised or a region falls over. So infrastructure goes into code that is reviewed like any other change, and the proposed plan gets read before it is applied rather than explained afterwards. The prize is not elegance. It is that staging and production stop drifting apart, and drift is what produces the sentence every engineer has said out loud: it worked in staging. It worked in staging because staging had a security group somebody widened in March and mentioned to nobody. Credentials are the one deliberate exception and never belong in the repository.

Having CI Is Not The Same As Being Able To Release

Nearly everyone has a pipeline that runs tests on a pull request. Far fewer can put a change in front of customers on a Friday without holding a meeting about it first. The gap is made of ordinary things. A suite where four tests fail at random, so a red build means nothing and everyone presses retry. A twenty five minute build, which sounds tolerable until you count what it does to the number of times a day anybody is willing to try an idea. Production credentials sitting in plain pipeline variables, so nobody dares change the pipeline either. We treat delivery as a product with impatient users: cache what can be cached, parallelise what can run at once, quarantine flaky tests rather than living with them, and measure the wait from push to a usable answer.

Alert On What You Would Wake Someone For

Logs, metrics and traces answer different questions and cost different amounts. Metrics tell you something is wrong, traces tell you where, logs tell you what happened to one particular request, and log retention is the line on the bill nobody thinks about until it is large. The harder discipline is separating what you record from what you alert on. Record generously. Page rarely, and only for symptoms a customer would feel: requests failing above the level you agreed, work not being processed, a queue growing with no ceiling. Alerts on causes, on single machine health, on whatever the platform enabled by default, produce a rota that stops reading them. A muted alert is worse than no alert, because it still counts as coverage on a slide while nobody has looked at it for months.

A DevOps Team Is Usually A New Wall

The word describes how people work together, so a department named after it tends to rebuild the handover it was meant to remove. Developers finish and throw the work over, a small group becomes the queue for every environment and every deploy, and the queue becomes the constraint. What does work is treating the platform as a product with internal users: a paved path that is maintained on purpose, and the team who wrote a service holding the pager for it. That last part is not a punishment, it is the shortest feedback loop available between a decision and its consequences, and it is why teams who carry their own alerts write different code. It only survives if it is humane. A rota with enough people in it, alerts worth answering, and time paid back after a bad night. On-call that burns people leaves when they do.

What we build

The shapes devops & release engineering work actually takes

  • Delivery pipelines

    Build, test and deploy automated end to end, with the manual runbook written down first, so what gets automated is the release you actually perform rather than the one somebody assumes you perform.

  • Infrastructure as code

    Environments defined in reviewed code and applied by the pipeline, so rebuilding one is a command rather than an archaeology project through a console two people clicked in three years ago.

  • Environments and drift

    Staging that resembles production closely enough to count as evidence. Where it genuinely cannot, the differences get written down rather than discovered at the least convenient moment.

  • Secrets and access

    Credentials out of repositories, chat threads and pipeline variables, into a scoped store with rotation and an audit trail. Most engagements begin by finding out where they currently are.

  • Observability and on-call

    Metrics, traces and logs wired up, objectives agreed with the business rather than invented by engineering, and an alert set small enough that a rota still reads it at three in the morning.

  • Cost engineering

    Spend attributed to the team and the service that caused it, budgets that alert before the invoice does, and cost treated as a number engineers own rather than a surprise finance raises.

How we work

How a devops & release engineering engagement runs

  1. 01

    Time the loop

    The boring numbers first: commit to production, build duration, how often a release fails, how long recovery takes. Improving what nobody baselined is how effort disappears with nothing to show for it.

  2. 02

    Write the ceremony down

    Every manual step exactly as performed today, including the ones living in one person's head. You cannot automate a release nobody has described, and describing it usually deletes three steps on its own.

  3. 03

    Move it into code

    Infrastructure, pipeline and configuration into a reviewed repository, applied by the pipeline rather than by a person holding admin rights. Then prove it by rebuilding an environment from nothing.

  4. 04

    Rehearse the rollback

    In daylight, on an ordinary Tuesday, with people watching. A rollback nobody has performed is a hope. One that has been done twice is a decision anybody on the rota is allowed to make.

  5. 05

    Hand back the pager

    We run alongside your engineers and then out of the rota. The measure of this work is that your team deploys and responds without us, not that we stay necessary to it.

Who it is for

You probably need this if

  • Deploys happen after nine at night

    Which tells you the team expects them to go wrong. The hour is only the symptom. The fourteen step document and the untested rollback are the cause.

  • Nobody will release on a Friday

    You have continuous integration without the confidence that should follow it. The gap is usually an unrehearsed rollback, flaky tests, and a build slow enough to discourage trying.

  • It worked in staging

    Two environments that matched on the day they were made and have not since, because one of them can be changed by clicking and nobody writes the click down.

  • Half the alerts are muted

    Somebody enabled every alert the platform offered, the rota stopped reading them, and your coverage now exists on a slide rather than in anyone's actual attention.

FAQ

Questions we get asked

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.

What you get

What is different once the devops & release engineering work is done

  • A deploy any engineer on the team can run at eleven on a Friday morning
  • Every environment rebuildable from the repository, including the one nobody documented
  • Rollback rehearsed in daylight, so it stays a decision rather than an emergency
  • Alerts that fire only for the things worth waking a person up for

Ready to talk about your IT?

We are happy to answer any questions you have and help you work out which of our services fit your needs.