Live data from Hacker News

DevOps didn’t exist when I started as a developer

circleci.com

41–50 of 176 posts

Re: DevOps didn’t exist when I started as a developer

#41

DevOps is the intersection of three things. 1. Developers learning that running code is not the same thing as reliable code. Certain things must be put in at design time to allow for operations. 2. Operations people supporting development by formalizing/streamlining the deployment process to have changes occur faster, safer, and more often. 3. Aligning goals and attitudes in such a way that prevents conflict between…

DevOps is blue collar work. Software Engineering used to be white collar work. Think boiler room vs drafting room.

How is Devops "blue collar work"?

Provisioning servers, databases, load balancers, etc and other resources use to involve someone driving down to the colo and installing hardware. Often now, it's a yaml file you run through Cloud Formation.

Devops is just as much development and software engineering when you are working in a cloud environment -- it's an API call.

Re: DevOps didn’t exist when I started as a developer

#42

DevOps is the intersection of three things. 1. Developers learning that running code is not the same thing as reliable code. Certain things must be put in at design time to allow for operations. 2. Operations people supporting development by formalizing/streamlining the deployment process to have changes occur faster, safer, and more often. 3. Aligning goals and attitudes in such a way that prevents conflict between…

DevOps is blue collar work. Software Engineering used to be white collar work. Think boiler room vs drafting room.

Imagine gatekeeping the type of work people do towards the guys who actually make your stuff work.

Re: DevOps didn’t exist when I started as a developer

#43

Earlier quoted context omitted.

DevOps is blue collar work. Software Engineering used to be white collar work. Think boiler room vs drafting room.

How is Devops "blue collar work"? Provisioning servers, databases, load balancers, etc and other resources use to involve someone driving down to the colo and installing hardware. Often now, it's a yaml file you run through Cloud Formation. Devops is just as much development and software engineering when you are working in a cloud environment -- it's an API call.

That's exactly the reason. Software engineering is about writing code, devops is about writing yaml files and keying into functionality that was implemented by software engineers.

Re: DevOps didn’t exist when I started as a developer

#44
I like to comment DevOps from a security perspective, a trend I noticed in my day job.

Windows is/was often bashed for being insecure. Lots of that stems from the decades of development related to centralized management solutions. A default windows workstation in a domain setting will open a bunch of ports, a bunch of which can be used for command execution. The attack surface for this system includes, but is not limited to:

- Remote access with local admin users via tools such as SMBExec, wmiExec, DCOM, Psexec, Powershell remoting

- Remote access domain admin users access via the same

- Local/domain admin access via RDP

- Remote domain admin access via group policy

All these have had their own associated vulnerabilities over the years. Examples are SMB relay attacks, which enabled an attacker to abuse flaws in NetNTLM and obtain access to machines by relaying other people's credentials. And then we're not even talking about the 'real' exploits, Eternal Blue, Eternal Romance, Blue Keep, MS14-068, MS08-067, and on and on.

Pentesters, researchers and Microsoft have been hammering away the kinks for years now. The 'fixes' and root causes for each individual issue are well understood and each new domain functional level increases the security of a default windows Domain by leaps and bounds.

When you look at the Unix/Linux side you'd see that no such attack surface ever existed. You manage your systems over SSH, and this can still be bad, an easily guessable root password shared between Dev, testing and production is still a death sentence. But by default there were no tier0 systems in your network, apart from those of sysadmins.

But now with DevOps things are changing on that side. With Ansible, Puppet, Terraform, your various container management systems, the CI pipeline, jenkins and numerous development teams able to push both to infra repositories and your actual products this has changed:

You use an automated CI pipeline? Any system in the chain is a tier0 system.

Your developers are maintainer status or higher in your source repositories? Then they are domain admin or equivalent. They can disable protected branches, push a backdoor, and watch their attack propagate through the pipeline.

Did you make it inconvenient for your developers to access various build systems? Then they are sharing credentials to these systems over your company chat.

It seems, from what I've seen so far, that while the 'architecture' of modern mass centralized IT management and development is more secure. You can't relay an SSH key for example, like you can in NetNTLM. But the institutional knowledge isn't there yet. New attack surface has opened up, and infosec people have not yet completely caught up with the new 'eggs' in the basket, even if they are aware.

Re: DevOps didn’t exist when I started as a developer

#45
The goal of DevOps is to get code as developed to testing, staging, production. The deeper objective should be transfer of context- what is being deployed? do we know how? does it work as tested? and the who. As much DRY to reduce surprises and increase precision all through dev to deploy cycle.

Some of the best open source projects have CI included- thats the right approach to DevOps -- its not an alien, bolt-on after the fact practice, its code that takes care of code.

Re: DevOps didn’t exist when I started as a developer

#46

Personally I think DevOps is like religion. It means whatever someone wants it to mean. Some companies think DevOps means having an automated pipeline for building, testing, and shipping code. Other companies think it means micro-services. Others think it means making developers do DBA / SysAdmin work. All of these things are fine for companies to do. How you run your org is on you. But I wish companies would go deep…

People can’t agree what devops is, sure. But I feel like it’s extremely easy to tell what devops isn’t. If you don’t have any confidence in your releases before you’ve done extensive ad-hoc manual probing you aren’t doing devops. If your using oracle and Delphi even though none of the developers would chose it because “that’s what management decided” you are not doing devops.

The rest of the story is just about the tooling and management decisions that support getting out of those pits. You use micro services because it allows developers to use whichever tools they want as long as they solve the task. You use automated tests and deployment pipelines so the team and organizational procedure to be confident in releases shifts from becoming “talk to Tom and get his blessing after he’s spend a week probing everything” to “well if it passed all tests and deployed then it’s a go.

It’s not like the technical issues suddenly disappear. You need to set up your tests to a level where you are confident in the pipeline. You still need to spend the time and resources making sure your microservice infrastructure is working.

But at the end of it you’ve removed the power of the gits who where previously controlling the techs allowed and the releases, and your letting teams move forwards through proving their work rather than constant audiences with individuals who are gatekeepers because they spend 20 years in the same organization and feel that everything invented in the last decade is scary.

Re: DevOps didn’t exist when I started as a developer

#47
post #43

Earlier quoted context omitted.

How is Devops "blue collar work"? Provisioning servers, databases, load balancers, etc and other resources use to involve someone driving down to the colo and installing hardware. Often now, it's a yaml file you run through Cloud Formation. Devops is just as much development and software engineering when you are working in a cloud environment -- it's an API call.

That's exactly the reason. Software engineering is about writing code, devops is about writing yaml files and keying into functionality that was implemented by software engineers.

Describing ops as “writing yaml files” is like describing software engineering as “typing.”

Re: DevOps didn’t exist when I started as a developer

#48
post #43

Earlier quoted context omitted.

How is Devops "blue collar work"? Provisioning servers, databases, load balancers, etc and other resources use to involve someone driving down to the colo and installing hardware. Often now, it's a yaml file you run through Cloud Formation. Devops is just as much development and software engineering when you are working in a cloud environment -- it's an API call.

That's exactly the reason. Software engineering is about writing code, devops is about writing yaml files and keying into functionality that was implemented by software engineers.

So would you consider it more “software engineering” using AWS’s Cloud Development Kit and writing code to generate cloud formation files “software engineering”?

I use to think that all “true” developers needed to know the ins and outs of assembly because every time I went to a new platform that’s the first thing that I did - learn assembly language (65C02, 68K, x86), but then I grew up.....

CloudFormation takes a text file and generates API calls much like any code compiled down to assembly.

Re: DevOps didn’t exist when I started as a developer

#49
post #17

> DevOps is NOT… a job title or role In which case DevOps as it exists in the real world is roughly on a par with 'agile' practices in the real world. Nothing like they were originally conceived, and nothing like the wildly optimistic descriptions of them that are shared amongst practitioners.

Agile: We don't have a formalized process of developing software, just wing it.

DevOps: We don't have admins, so you are reponsible to run the systems you develop.

This is at least how I perceive it. But the second point is not the worst thing that could have happened. I hate to write configs as much as anyone, but it has given me a better perspective on how to design systems that actually... you know... run.

Post reply on HN