It worked in staging!

says the dev team.

And the ops team replies: it must be a code issue.

How DevOps managers can learn to trust automation

Developers and ops people sometimes have different perspectives on why a deployment went wrong.

Was it the code?

In the end, its the user that suffers, and that user doesnt care aboutwhyyour product was broken.

They just want it to work, so they can do their work.

Thats why development teams adhere to deployment best practices.

Every member of the team approaches projects with not only best practices, but with the best intentions.

But, as the saying goes, were all only human.

And the code that ran fine in QA falls down in production.

It gets worse when teams meet bottlenecks.

How do we know?

Often management of code and infrastructure configuration are siloed, sometimes driven and managed by separate teams.

How to drive DevOps alignment

Developers are measured by the features they ship.

Ops is measured by uptime and performance.

How do we solve for the users concern and deliver features they want, and reliability they expect?

Trust the machines

When humans are involved, drift happens.

Changes that are made to a production configuration dont always make it back to staging and development environments.

Sometimes its a cost concern, sometimes its a technical one, sometimes its just human error.

But when differences emerge, systems break, and tests are no longer valid.

Automation is the answer.

Replicate all changes made to production environment configurations to your staging and dev, from infrastructure configuration to code.

Oh, and lets not forget about the impact of data.

All of this automation can be difficult and time consuming, not to mention expensive.

Therefore, its uncommon.

So its a challenge just to get access to the systems that need to match.

Get non-linear

System stability is often negatively impacted by human activity.

We humans break rules.

We do things ever-so-slightly differently each time, especially when were tired or stressed or hungry.

When were faced with a demand to ship, under pressure, we may overlook some testing.

Or work around a congested staging environment and commit to prod.

Try and get more predictable

The mantra of a DevOps culture should be automate everything.

Once deployments become sufficiently automated, they become non-events.

You should be able to deploy your system at any time even on a Friday afternoon.

Getting there requires both organizational alignment around the goal of predictabilitywithspeed, as well as the right toolkit.

Also tagged with