Deployment is harder than coding
Noobmaster

Noobmaster

Dec 29, 2022

Deployment is harder than coding

Writing working code is only part of the battle.

Somehow, that code needs to get to live servers. The pipelines, integration checks, and failover mechanisms are a huge part of the application.

Have you ever experienced the challenges of trying to deploy something?

Have you seen what deployment looks like at scale?

It’s an entire job. From my perspective, the work that goes into deployment is just as hard, if not harder, than writing the code.

Appreciating DevOps

Software developers need a healthy respect for the team that owns deployment. At most companies, that’s a group of DevOps engineers who specialize in this sort of thing.

Their job is a challenging tightrope:

-- Orchestrate complex restarts for all the application architecture when a deploy runs

-- Do those restarts with little to no downtime for users, so that the company can deploy many times per day

-- Make the tools easy for developers to use, so that the details are abstracted away when the average software engineer merges code

Need to know about everything

One of the major challenges for the DevOps team is they need to know a little bit about everything that’s happening at the company.

Team A needs DevOps to bump their webserver count to handle more load.

Team B wants to add asynchronous tasks and needs a message broker plus new worker servers.

Team C is having trouble with the CI jobs that run their test suite.

Team D needs to store secrets securely somewhere they can pull down.

Team E wants to set up a new subdomain that points to different resources for users.

In all these cases, the DevOps team is involved to help sort out the requests. They make sure the needs are legitimate and well thought through. Then, they assist with implementation to orchestrate the changes.

Infrastructure as Code

On large engineering teams, the DevOps deployment pipeline quickly moves toward infrastructure as code.

Gone are the days of manually running servers, installing new server racks for increased load, and monitoring that everything is healthy. Engineers of yesteryear might have needed physical networking skills. Today, DevOps is all about provisioning cloud resources.

To do so, teams can use a UI interface. But more likely, they’re implementing infrastructure-as-code.

If you’re a software with no idea how your code gets to production, listen up!

Infrastructure as code is incredibly powerful. It allows us to standardize the deployment and resource allocation process.

But it’s also easy to get wrong. Setting up such a system takes tons of time, skill, and heartache. Debugging infrastructure problems can be incredibly tedious.

Great power, great responsibility

DevOps is essential to getting code to production.

When something goes wrong with the deploy pipeline, work is blocked for all the engineering teams in the organization.

More often than not, DevOps gets pulled into production incident response as well. Even if they didn’t cause the problem, they’ll know about the resources at play and can help with the hotfix.

As such, they’re constantly on-call. Changes from other teams can lead to DevOps getting paged to help clean up the mess.

But in my experience, DevOps engineers are the kindest, calmest, and most easy-going among all of us. While everyone else is freaking out about some problem, they’re quietly fixing it.

Thank you, DevOps!

If you’re a DevOps engineer reading this, thank you for your work!

I’m convinced that it’s way harder than writing application code. There are all kinds of complexities in integration, testing, building, deploying, and rollbacks.

It boggles my mind every time I get to see a great DevOps engineer at work.

More resources

I write something new for software developers every day. Get on the daily list to receive updates.

  • My code crashed production. Here’s how to respond like a senior engineer.
  • Often your “user” is other developers. That work is critical!
  • Noobmaster

    Noobmaster

    A Wise Programmer | Amateur Developer | Athlete | Dreamer | Geek | Humorous | Writing Lover | Reader of Science Fiction | Sleepy Nut | Everything Enthusiast | Building From Scratch Enjoyer| He/Him.

    Leave a Reply

    0 Comments

    Related Posts

    Categories

    side photo
    Made with ❤️ by Noobmaster