Live data from Hacker News

DevOps didn’t exist when I started as a developer

circleci.com

61–70 of 176 posts

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

#61

[The (or any) Internet didn't exist when I started as a developer] DevOps is about how CTO organizes engineering. Is there an Infra team that supports everyone, maybe a separate Ops/security/etc teams that supports everyone. Then a bunch of App/Service dev teams. This is not devops. Or is there only* a bunch App/Service teams, each wholly self-supporting and independent. Each doing their own infra, dev, ops. Maybe so…

> [The (or any) Internet didn't exist when I started as a developer]

Internet is widely considered to have started in 1969. Although I'd consider something between 1982-1986 as the years when it truly became an international network.

I've been in this business only for less than 25 years, you make me feel so young. :-)

During that time, internet has just always existed. Ah, those loong boolean logic web search (hxxp://altavista.digital.com/) queries during my early years.

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

#62
post #14

Earlier quoted context omitted.

You might want to look into Terraform [1], which works across multiple cloud vendors, with pluggable open-source "providers" facilitating the communication with the backend cloud platform. [1]: https://www.terraform.io/

Terraform is great but if you want to change to a different cloud provider you pretty much have to rewrite everything

Yeah? If you build on top of popular open infra that is hosted by a variety of providers, it shouldn't be too hard. You can build on top of K8s, Postgres, and S3-alike APIs, then use Terraform to move across AWS, GoogleCloud and DO without having to rewrite a thing.

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

#63
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.

Where does code begin and end - I do work that could be described as devops, and I'm often writing python or bash to do something work related - according GP (and by extension, you.), I'm just a blue collar grunt

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

#64

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.

I guess the python, and bash I write doesnt count as code. I guess the architect work I do to do design implementations doesnt count either.

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

#65
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.

I work in devops (and did so before it was called that), I write code in turing complete languages. Just code that manages infrastructure and software rather then interacts directly with end users. I template configuration files rather then user interfaces. I have to consider race conditions in complex systems, consider the robustness and security implications of anything I do, verify my input (that's you, you hotshot "software engineer") and fail gracefully if needed.

Tell me that is not software engineering, the only difference is that my ability to test before deployment is much more costly and limited, I have to get it right the first time around..

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

#66
post #12
post #7

Sidebar: does anyone else get the feeling that infrastructure as code is just cloud vendor lock-in by another name? Especially since the output of the code ends up being wild unstructured JSON/YAML files with no spec or discernible schema. My favorite is how in the Microsoft toolchain you can build a CI pipeline in a visual UI on the right that automatically updates the YAML file on the left. “We know you don’t want…

I tried Terraform this weekend and it was awesome to use. Spinning up a new ec2 instance was very quick. Almost just as quick when you spin up multiple instances. It supports "providers", which are interfaces to the different vendors (aws, foogle cloud, etc), and "provisioners", which are frameworks for configuring a running instance (chef? Docker? Zookeeper?)

Plausibly, if what I want is "start a kubernetes cluster with an ingress and a database", that's portable to every cloud provider. However, with terraform, you have to write platform-specific code to do this that isn't portable between providers.

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

#67

All that’s really happened is that developers have learned or taken on the responsibility to build and deploy to production, and also be knowledgeable and responsible for the development stack, hence “full stack developer”. Unfortunately, it’s incredibly dangerous if everyone involved doesn’t know what they’re doing. Then kubernites and docker turn up. To make things easy? No. They’re making the infrastructure more d…

If you want a database that is arbitrarily horizontally scalable, there aren't really good open source options.

As a former employee it isn't clear to me that Monzo couldn't have used boring stuff for a while and switched to C* or some equivalent later when it was genuinely needed, but it's worked well enough for them that I'm not inclined to critique the decision post hoc.

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

#68
post #65
post #43

Earlier quoted context omitted.

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.

I work in devops (and did so before it was called that), I write code in turing complete languages. Just code that manages infrastructure and software rather then interacts directly with end users. I template configuration files rather then user interfaces. I have to consider race conditions in complex systems, consider the robustness and security implications of anything I do, verify my input (that's you, you hotsho…

I agree. Even when writing cloud formation templates you have to sometimes create what basically consisted of locks to ensure that one resource doesn’t get created before another one and ensure that certain resources don’t get created in parallel to avoid throttling (parameter store).

And if that’s not “real programming” sometimes you actually do end up writing custom resources in a “real programming language” that get called from CF to create resources.

I’m very much up and down the stack any given week going from the front end, middleware, databases and infrastructure not to mention building out CI/CD pipelines.

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

#69
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.

I pivoted a couple of years ago from SE to DevOps, and the latter has been far more complex in my experience.

Probably most importantly, my experience on DevOps has been a bit like hurried product management and software engineering work--I have to identify problems and opportunities to improve software development efficiency, uptime, etc and find/build technologies that solve those problems, and all of these technology choices are really complicated because they are interdependent. How you structure your CI/CD pipeline depends a lot on your orchestration platform (and vice versa). It also depends on whether you use micro services or a monolith, and whether your platform is mono/bi-lingual or fully multilingual. And unlike product management or software engineering, you have to deliver value in a much tighter timeframe (you don't get to spend a year building out a solution with budget and resources for user testing, QA, etc). Further, if you think the frontend web stack is changing fast, the DevOps world will make your head spin!

Regarding YAML, it's just the (currently popular) interface; it doesn't say anything about the amount of complexity. It was originally YAML/JSON because everyone thought it would be super simple configuration, but virtually every infrastructure-as-code (IaC) tool is moving away from YAML to something more powerful.

AWS has CloudFormation which began as JSON/YAML with features hacked on to support things like referencing other nodes in the document, defining and calling functions and macros, evaluating conditionals, looking up values in maps, etc. Now they're building the Cloud Development Kit (CDK) to let developers write IaC in languages like Python and TypeScript, because even the extensions to CloudFormation are insufficient (no ability to pass around parameters, pass structured data, perform computations, etc).

I don't use Terraform, but I understand HCL started out a lot like YAML but is also becoming increasingly powerful with each release.

Helm also started with YAML but is adding in Lua.

The argument that DevOps is easier than SE because it's just using tools created by SEs is silly on its face. First of all, those tools were _implemented_ by SEs but created by much larger teams, including product managers. Secondly, "SEs" are also just using tools created by SEs--compilers, interpreters, VMs, build tools, etc. Not to mention all of the tools and processes built and/or assembled by DevOps engineers.

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

#70

Nailed it. I also got a chance to work in such an organization in the 00's, where dev and ops closely aligned with each other's work to produce truly reliable, repeatable, fast, quality products, often. It was fantastic. Nobody would say "oh but you can't do that, that's not Infrastructure as Code!" They would say, "what can we all do to make this better?"

In the 90's and 00's I was responsible for maybe 20-30 servers, now I am responsible for somewhere around the 2000 mark.. While "oh but you can't do that, that's not Infrastructure as Code!" sounds lame, and your co-worker should learn to be a better communicator, things need to be reproducible when working with more complex systems and that calls for more rigorous review practices. Please consider this: It's our pagers that go off at 3am when your code fails..
Post reply on HN