The Developer’s Struggle for Control
GitLab sponsored this podcast.
The developer experience today certainly offers software engineers the freedom to create applications at scale across often highly distributed microservices environments. But with this degree of freedom, developers are under pressure to deliver faster cadences.
In this The New Stack Makers podcast, correspondent B. Cameron Gain, speaks with Christopher Lefelhocz, vice president of development at GitLab and Ben Sigelman, CEO and co-founder of Lightstep, about how developers can leverage elasticity and other processes and tools to ensure software remains resilient and secure from the time the code is uploaded to GitLab’s repository and throughout the entire deployment and usage cycle.
The perennial challenge for DevOps teams — including developers and operations folks — is how to keep pace with daily deployments and updates while maintaining security and ensuring things just do not break. Added to these presses are the need to maintain reliability and to remain constantly available, Lefelhocz explained.
“We’re seeing a lot of pressure to be innovative and move quickly,” said Lefelhocz. “We found that balancing those two efforts is super important to achieve a good DevOps experience and what we’ve found is that consistency is super important in that situation.”
When there are problems with the code — which as DevOps teams know all too well happens a lot — the developers can typically take the blame and must figure out how to make fixes often buried in several layers of the stack.
“I think being a developer is so stressful because the definition of stress is having responsibility without having control,” said Sigelman. “And developers today have a huge amount of responsibility — it’s not just their services, but everything underneath them — which is oftentimes a huge fraction of the overall system, especially if you’re at the top of the stack.”
Developers are thus “responsible for all that stuff,” said Sigelman. “If it breaks, you’re going to get paged,” he said.
“The whole point of microservices and DevOps was to have independent control of each piece, so you don’t control these things you depend on, but you are responsible for them,” said Sigelman. “That’s why I think extremely good hygiene across the CI/CD is not just a sort of best practice, but it’s the only way to help developers maintain sanity, in this sort of environment where your responsibility is way, way, larger than the one service that you actually have control over.”
Meanwhile, rolling back a configuration or a feature deployment will resolve most incidents — but not in all cases. “When it really gets hairy and there’s some kind of interference effect or a downstream cloud dependency that’s broken or something like that, I, unfortunately, think that we’re still in the world in which you do need the brilliant people who’ve been at the company for five-plus years,” said Sigelman. “They can help diagnose and remediate these things, which is not a situation we want to be in — but I think that’s where we’re at.”
Lightstep is a sponsor of The New Stack.