4 ms·
My second job in large-scale software was at Google, which used the "DevOps model" since before DevOps was named. I have no need to read a blog on it. You want
by jmillikin 4y ago
My second job in large-scale software was at Google, which used the "DevOps model" since before DevOps was named. I have no need to read a blog on it.
You want the person who designs the car to know what a car is, and to be able to diagnose basic issues like "the fuel gauge says 'empty' and engine won't start". And there's no analogy to an Indy car driver in software, every distributed system is self-driving.
The most popular alternative to "DevOps" is a team of developers who do not run the software, and may not even have the skills or capabilities needed to boot up the server process. They do their development in an IDE, run unit tests to verify functionality, and do not have permission to log in to the production environment.
Meanwhile the "ops" side consists of people who may know basic shell scripting, or some Python if they're a go-getter, but are unable to read stack traces or diagnose performance excursions.
- deleted 4y ago[deleted]
- jmillikin 4y agothrowaway787544 deleted their reply to this post. My response was as follows: --- > So you're familiar with Six Sigma then? Value stream mapping? TPS? > W.E. Deming? Martin Fowler? There's more to DevOps than deployments > and CI/CD. None of those have any relationship to DevOps. > I haven't worked at Google, but I expect somebody gave you some tools > and some access to cloud infra and said "good luck". I was on Borg-SRE. My job was to build the tools and maintain the cloud infra. > If you're lucky there was a small army of ops people behind the > scenes keeping things running for you The point of having an SRE team is to avoid having a "small army" of ops people. Manual operation of compute infrastructure is uneconomical at scale. > if you weren't lucky you were expected to know how to correctly build > and run complex systems at scale by yourself Google does expect its developers to understand basic principles of distributed systems, yes. > > every distributed system is self-driving > > I didn't know Google was in the bridge selling business. What I mean is that when your service runs 24/7 and downtime is reported in the New York Times, there is no room for manual action during normal operation. The system must have the capacity to maintain itself and self-recover.
- epivosism 4y agoResponding to the inlined kubectl command mentioned above: As an outsider, that command looks really easy to mess up. * shell interactions with quotes * double quotes * interpolating into image namespace with no autocomplete * easy to forget an argument * do you get autocomplete against the deployment name? Comparison: C# declaration of a complex type - it's less complex than the `kubectl` command above, but IDEs offer way more support to get it right. * var x = new List<Dictionary<CustomType,int?>>() This will light up warnings if you get anything wrong; You get: * go to definition of `CustomType` * autocomplete on classnames * highlighting on type mismatches * warnings about unused vars. * if you initialize the var, the IDE will try hard to not let you do it wrong So structurally, 1) in the code realm, for doing minor work we have really strong guarantees, 2) in deployment realm, even though it's likely going to hit customers harder, the guarantees are weaker. I think this is behind the feeling that the k8s system is not ready yet.
- vajrabum 4y agoNormally you're never going to run a kubectl command in prod that changes anything except for kubectl apply -f. The yaml file may or may not be script or template generated but it's likely. In a lot of shops they're just going to write to a wrapper around the kubernetes API in whatever language the shop uses whether it be python, go or whatever. And there are plenty of linters for the yaml and ways to test without impacting prod.
- volume 4y ago> So you're familiar with Six Sigma then? Value stream mapping? TPS? > W.E. Deming? Martin Fowler? There's more to DevOps than deployments > and CI/CD. >> None of those have any relationship to DevOps. Deming. I think you mean maybe that Deming has less of a relationship to SRE (Google style). The DevOps Cafe guy wears a Deming t-shirt and talks about Deming all the time. Maybe he has denounced Deming for some reason? Value stream mapping. This has been brought up in at least one talk at DevOps Days. Six Sigma. There's some obvious overlaps if you look it up.
- 4y ago
- dijit 4y ago> My second job in large-scale software was at Google, which used the "DevOps model" since before DevOps was named. I have no need to read a blog on it. Cool, you probably know my old colleague Hugo, he was one of the first SRE's at Google in a team of like 20 or so. (I wasn't there, could be mistaken). Anyway, what "Production" was, is different than what devops is. DevOps is different things to different people. In the beginning it was "What happens when systems administrators do Agile". (Genuinely), Confusion came about because of the "100 deploys a day" talk and the conference being called "dev ops days" (to include developers). The two things got conflated and now everyone thinks devops are.. well, build engineers or sysadmins or developers who learned a bit of bash and terraform.
- volume 4y ago> build engineers or sysadmins or developers who learned a bit of bash and terraform. From what I have seen, it's also getting familiar with the inner workings and process of the company, as well as current and past runtime tendencies for performance and uptime.
- dijit 4y ago> it's also getting familiar with the inner workings and process of the company, as well as current and past runtime tendencies for performance and uptime. That sounds like sysadmins.
- volume 4y agolet's say there's 5+ leading definitions of DevOps. I'll add this which I think is quite unpopular but true: DevOps is how Engineering respects the work of sysadmins.
- bostonsre 4y ago> And there's no analogy to an Indy car driver in software, every distributed system is self-driving. You typically build systems to sell a product. The driver is the customer that uses the app. You build the app to be as simple as possible to effectively operate while providing the best possible outcome for that customer. The driver doesn't care or need to know how the engine or the rest of the car works, just that the engine and car works well.
- turkey99 4y agoDid Google really use the “DevOps model”? Observing from the outside it looked like SRE was their alternative