22 ms·
DevOps is broken
- f1shy 4y ago> The problem is most engineers don’t want to do operations work. I was convinced this was exactly what devops wanted to address and solve.
- giantg2 4y ago"DevOps Is Bullshit" Wait until you meet DevSecOps...
- arvindamirtaa 4y agoI LOLd for this one.
- charles_f 4y agoOh, yes, the big shift of "everything's the responsibility of devs". Wait till we also need to do product analysis and we finally get to it. ProAnalDevSecOps
- PubliusMI 4y agoOr Dev ML Ops...
- WolfOliver 4y agosee: "The Big DevOps Misunderstanding" [01] https://linkedrecords.com/the-big-devops-misunderstanding-8435a910a5fd https://linkedrecords.com/the-big-devops-misunderstanding-84...
- counttheforks 4y ago> The problem is most engineers don’t want to do operations work. There's your problem. You have people who build stuff without caring where and how it runs. Recipe for disaster.
- mandelbrotwurst 4y agoEqually common I think are engineers who care where and how things run, but are either disincentivized from or even disallowed from working on those aspects of systems.
- hden 4y agoSounds like a cultural problem and/or hiring problem.
- dunno7456 4y ago> There's your problem. You have people who build stuff without caring where and how it runs. Recipe for disaster. Spot on, but not only that, also decisions made based on number of hands in a room.
- lucasyvas 4y agoIt is more nuanced. I care, but my skillset demands I spend more time on the Development side, so Operations must take the backseat in my mind because of this incentive structure. Asking one person to do two (actually three) job functions is a scam. Most developers have to do Frontend, Backend, and Ops. These have wildly different mindsets and feedback loops and not enough time exists. Don't hate the player, hate the game. The orgs are fucked, not the workers.
- makestuff 4y agoIt is like your doctor being the anesthesiologist, the recovery room nurse, and the surgeon all at once.
- hbarka 4y agoBad analogy. How about your mom asking you to help wash the dishes and take out the garbage?
- wruza 4y agoShe doesn't impose multiple business-critical schedules on that, so you can just wash them, pick your nose for a while, take out the garbage and go play games. There is nothing wrong with doing related jobs solo when situation allows, but this example is also far from learning and using "modern" full-stack of stacks or doing surgeries.
- jollyllama 4y agoSo a symbol i.e. "DevOps" gets corrupted. What do you do? Make a new symbol, like the author is suggesting? Or try to reclaim the term? This happens time and again and I find the question fascinating. FWIW, "Platform Engineering" used to be something different than what the author is suggesting.
- AlgorithmicTime 4y ago
- bradhe 4y agoI have a hard time trusting someone who calls something "production-grade."
- davydog187 4y agoI too have a hard time trusting people who use words
- dijit 4y agoI’ve long held this opinion but I consistently get drowned out. DevOps has different meaning depending on who you’re talking to, even some definitions that appear similar are different in nuanced but important ways. All “devops” as a job title has done has muddy responsibilities and given many folks the wrong impression of what an operations discipline should be. There is also a lot of rewriting of history that gets thrown in, similar to how when people talk about cloud then the only alternative is to start making CPUs by hand and begin building your own nuclear reactors. It’s the idea of what came before, not the reality, that people seem to be defensive of. It’s honestly exhausting to discuss. So instead I became CTO so I can solve this mess properly, I don’t hire devops, I hire infra engineers, build engineers, release engineers and: backend engineers. Roles so simple that you already have a clue what they do, which is sort of the point of job titles.
- deleted 4y ago[deleted]
- duxup 4y agoAgreed, anytime I talk with someone about DevOps ... we end up having to hash out the entire process to really know what either of us are actually talking about. Otherwise you have these situations "Yea the DevOps guy messed up the widget and nobody notic---" "Wait, what is the DevOps guy doing even touching that widget.... what is even DevOps to you?" "Bro that widget IS DevOps." -silence- Same applies to the topic of "micro-services".
- boppo1 4y ago>microservices I never miss an opportunity to share my favorite piece of comedy this decade: https://youtu.be/y8OnoxKotPQ https://youtu.be/y8OnoxKotPQ
- dijit 4y agoit's too close to reality. There is a good talk that is also comedic as it comes from the perspective of someone who wants to fail at doing microservices. https://www.youtube.com/watch?v=GWgRw5jiYy0 https://www.youtube.com/watch?v=GWgRw5jiYy0
- make_me_rich 4y agoHow fucking annoying that stupid Newsletter Button is on mobile!
- davydog187 4y agoAgreed! Its gonna get turned off in a moment
- jacquesc 4y agoAgreed, it covers up the article text. Complete BS Reader mode on Safari is a savior in these cases.
- justin_oaks 4y agoI'm not sure if having two teams is always going to be better than having one DevOps team, but my experience in having two teams is that it's rare to have the incentives aligned. The author of the post pointed out that dev teams will cut corners and throw broken applications over the wall to ops to deal with. When ops gets woken up at 2am because someone in dev cut corners, what happens? Does dev feel the pain? Almost never. The same thing happens when outside contractors develop code. They often provide a buggy and undocumented mess, and then no longer work on the project. They never feel the pain, so they're not incentivized to provide good code. Until we find ways to align incentives, we're going to keep getting crap whenever more than one team is involved.
- yihtserns 4y agoReminds me of that time when my team was called into a meeting where the CTO "advised" us that "code does not have to be perfect", when all we wanted to do was review the code for a PoC that we were ordered to "own" and deploy to production (even the creator said he cannot guarantee the code he copied from Stack Overflow for the PoC is production-ready). In the same meeting, the CTO was ranting about the instability of a service (which was also a PoC that was pushed to production before we were _also_ made to "own" it, yet never given the budget to even get acquainted to the codebase), claiming the reason for that because we devs are lazy and unprofessional. I highly doubt making people who _responds_ to the incentives to "feel the pain" will fix much. I suspect things are more likely to get fixed if the people who _creates_ the incentives are the one "feeling the pain". As they say in Hunger Games, "remember who the real enemy is".
- atom_arranger 4y agoOn the other side, the ops team sets up a system of slow and complicated deployments, but they don’t have to deliver features with it, they don’t feel the pain of working with it as much as the feature devs.
- mjr00 4y ago> If the “DevOps” team ships a Postgres RDS instance it will run fine forever, that is until an application starts using it. All of a sudden a cascade of N+1s hit, the CPU spikes, and queries grind to a halt. Who is woken up? And why does this always happen at 2 AM? In this scenario, there is nothing for operations personnel to do, yet here they are. This is definitely a symptom of a broken model and not what I would call devops. IMO the most important tenant of devops is "if you build it, you run it," meaning the appdev team that decided to use Postgres RDS is the one getting woken up at 2am. It's also, in my experience, one of the best ways to reduce masturbatory engineering decisions and get people to focus on picking boring technology that works. Coding up a serverless application in Rust that's using a CockroachDB backend at a Python/MySQL shop would get a lot of engineers excited, but those people would be less excited knowing they're going to be the ones paged at 2am when this new and exciting architecture falls over in an unfamiliar way (as opposed to Python/MySQL, where a wealth of operational knowledge at the org has already been built up). Similarly, it naturally reduces architecturally complexity. Younger senior engineers love drawing boxes of queues, multiple microservices, event buses, etc to show off their skill in creating the ultimate engineering fantasy, but once you throw enough late night operational incidents at a senior engineer, suddenly the preferred architecture becomes "an executable running on a box that I can SSH into when things go wrong."
- Spivak 4y ago> This is definitely a symptom of a broken model and not what I would call devops. I'm I the crazy one here? This kind of work is my bread and butter as a "devops" person. PagerDuty fires, I find the bad query, match it up with the most recent PRs to find where the n+1 got introduced and either patch it right there at 2AM with the on-call manager's approval or roll it back. Then we have a postmorterm in the morning with the team. I'm the person positioned the best to do this work because I'm god in my little ops domain, have the most visibility and the biggest toolbox of potential fixes.
- mjr00 4y agoThis sounds like what I mean with building it and running it being devops, yeah -- the fact that you have access to make pull requests or code patches, or even know where the code repository exists in the first place, shows that you're at least somewhat involved in building the application. Contrast this to what was traditionally ops and is now "SRE"; in those roles, applications are usually black boxes where an ops person doesn't know/care how they're developed, because they're responsible for the overall health of the system, which could be managing 100 applications made by 50 development teams.
- ny711 4y agoDevOps is outdated; in fact, most stuff nowadays in engineering is starting to get outdated due to how fast technology is evolving
- agtorre 4y agoIt also seems like we cycle through ideas, so what was outdated a few years ago becomes interesting again due to a new perspective on modern technology as well as new developers entering unfamiliar spaces.
- imaurer 4y agoI feel like I need some definitions to understand this article and discussion. What is dev? What is ops? What is devops? What is system administration? What is sysadmin? I'm 47 and what is described seems like the old problems that I thought devops solved.
- travisgriggs 4y agoDevOps is a way of creating a specialization label so that people can differentiate each other and create more roles to fill at a staffing level. Since you’re 47 (I’m 52), it’s the equivalent of hiring an “AutoConf engineer” in the late 90s.
- thealienthing 4y agoI’m also confused by this article. Perhaps this is more applicable to companies that develop software that is very tightly coupled with the web and cloud services. I work in the embedded industry and from my understanding (as naive as it may be), DevOps has simply meant the automation of building, testing and releasing our products to a customer accessible endpoint and is something that is life changing. It massively cuts back on manual human interaction getting our software to our customers. Perhaps since our product is not nearly as monolithic as most products that really hook into DevOps processes that can match the actual product in terms of its scale and complexity, DevOps is something wonderful that I would never define as ‘bullshit’.
- deleted 4y ago[deleted]
- cies 4y agoDevOps to me is: * Infra as code * Infra code sits in a repo * Infra code is managed by the (senior) devs * No separate ops team, or ops role, is needed: it's a responsibility of the devs now. * Monitoring production: also by the devs -- if an issue arises "we" take turns in solving them as devs. DevOps is no longer managing your own hardware, but using hardware-behind-an-API in the cloud.
- Lutger 4y agoDevOps is bullshit in the same way that Agile is bullshit. So, it's actually not at all, but just has become so fashionable that the term is sufficiently abused to become almost useless.
- g051051 4y ago100% agreement. Agile and devops have done more to wreck software development than anything I've seen in more than 30 years in the industry.
- mikebenfield 4y agoI think you misunderstood your parent post’s point.
- g051051 4y agoRereading it a few times, I think you're right.
- jbverschoor 4y agoBigdata?
- drewcoo 4y agoAgree. Both devops and agile were about empowering developers, the ones who actually make the products people use. And then managers and management consultants got hold of the terms and mutated the ideas and they ossified into "best practices" that get in everyone's way.
- qzx_pierri 4y agoOP that newsletter button on my mobile browser is covering up words in the article. What the fuck.
- davydog187 4y agoThanks for the heads up! Its gonna get turned off in a moment
- mschuster91 4y agoOne thing I miss: Most developers have no fucking clue how Linux, networking, storage or whatever works under the hood. They know how to develop whatever stack you're at, but stuff like latency, packet loss, redundancy factors, backup policies, monitoring or other classic ops topics are completely beyond the comprehension of 99% of developers. "DevOps" usually means some C-level execs say "fire the expensive neckbeards that have the time to properly understand a system" followed by them saying one of - "oh fuck, someone managed to compromise a service and because no one knows what the fuck firewalls are / Kubernetes doesn't come with ones OOTB the hacker got complete control of everything" - "oh fuck, production is down because someone fat-fingered in Elastic Beanstalk which recreated the environment, dropped the RDS database and there were no backups" (I've been personally bitten in the arse by their definition of "recreate" - all I wanted it to do was to replace the damn EC2 instance) - "oh fuck, we're seeing insane AWS bills because someone DDoS'd us and no one created a cost limit or a sensible limit for autoscale or a simple dumb monitor that alerts someone" - "oh fuck, we're seeing an insane AWS bill because someone got his AWS access credentials stolen and some shithead spun up a ton of g3.xlarge instances to mine shitcoins" Other C-level execs see constant issues between "ops and dev teams" because their team leads are friends of the silo model and decide that instead of getting rid of the dumbass managers they're getting rid of the ops team because "cloud", with the exact same result.
- travisgriggs 4y agoI have bewilderingly tried to discern why software development continues to grow more and more complex. It wasn’t always like this. There was a time when we talked about languages and OSes and libraries as if they made a difference on how much you could get done with as little people and cognitive load as possible (the claims were very much overrated, but the point was we acted like it mattered). And then it started ballooning. It seems to me that much of that coincides with a lot of new money being dumped into the economy, and software moving past the necessary-evil-so-how-do-I-drive-down-my-costs and on to the gold rush of you must have a web app for your service that rivals a video game in complexity and visual finesse. It seems to me that as long as their is so much free money sloshing around venture capital funding, that it was inevitable that the process of making software would complexify to soak up the extra cash. After all, you can only add so many levels and varieties of managers to add value. After that comes the variegation in roles of software development. That’s my working theory anyway.
- user3939382 4y agoMy theory is a variation on that, which is that the money has placed so many more people in the space you inevitably end up with more people working in different directions, the JS ecosystem especially comes to mind here.
- debacle 4y agoBecause you have, in 90 (99?) percent of instances a smart person (probably IQ 120+) doing a stupid menial job that requires a level of competence that only someone smart can provide. So to prevent themselves from ending it all, they invent things to do to keep themselves sane while they churn out CRUD apps all day long for decades. Sometimes you get truly amazing software, but most of the times it's just reinventing the wheel, but worse. Even worse, some of them become infatuated with doing things "Like Google," and errant CTOs enable them, leading to a 6 person team supporting a piece of software that could be replaced with WordPress, to the betterment of the primary stakeholder. I've been consulting for over a decade now. The number of times a potential client has told me they've spent into the six figures (or eight) for something that free software does out of the box but better is depressing. The worst part? I usually can't convince that person they've been absolutely swindled, and so I have to let them keep on their merry way.
- arpa 4y agoWell, to be fair, most of the engineering is bullshit.
- gtirloni 4y agoTL;DR; s/DevOps/Platform/
- vasco 4y agoThere must be some a rite of passage or initiation ritual that I haven't been good enough for yet where you need to write an opinion piece about the term DevOps, because otherwise I'm not sure why in 2022 we're still having to read these articles. Whoever wrote the first one has trolled an entire generation of engineers.
- dsr_ 4y agoBecause, like Agile, it was seized on as a label for "whatever reorg I want to introduce in my three year term at this company before I leave for the next one".
- ndneighbor 4y agoI had a very weird sensation while reading this where I was shaking my head disapprovingly at this article. Specifically when they were talking about the commoditization of DevOps. Speaking personally, I used to work on a Platform Engineering team for a major multinational that rhymes with ay-do-bay. And their requirements for the workloads that we needed to be built and hosted where very unique because you have teams running completely different languages and toolchains, esp. from acquisitions. I can argue there that the template K8s setups wouldn't work. In the author's case, the only reason why they feel the way they do is because we finally have some sense of standardization on what Infra looks like for most companies. It's no longer a question for most folks if they should adopt Docker, we have accepted images into our lives. Same for K8s (after a certain point of scale). So uh... yea. Catchy blog title to sell some thin layer on top of K8s in which it doesn't solve the root issue that they are talking about.
- thundergolfer 4y agoIt seems like “rhymes with ba-do-bay” is meant to be obvious but I have no idea what company that is
- ndneighbor 4y agoadobe, but I live my life in perpetual fear of lawyers. Fun times back then.
- deleted 4y ago[deleted]
- shadowgovt 4y agoThis echoes the philosophy of Google Site Reliability Engineering, which (this is key) is an engineering discipline. The job of DevOps is not to close tickets. That'd be like driving a car by shouting directions at someone lying on the floorboards holding a wrench to the steering pinion. The job of DevOps is to build a steering wheel (and ideally, teach SWEs how to drive... at least enough that they understand what a "road" is and why it's a pleasant experience for everyone if you stay on it. If the road doesn't go where they need to be, then it's time to file a ticket, but that ticket had better be "Build a new road," not "Offroad this one car to the cabin in the woods and call it a job well done"). The raw hardware of an enterprise deployment is so flexible it solves nobody's problem. DevOps is in the business of writing the operating system for a mega-computer physically represented by hundreds to possibly millions of heterogeneous computers. It's a process of continuous growth to make that work.
- tootie 4y agoWell they explicitly use the term SRE and not DevOps and I think that's very intentional and related the gist of the article. DevOps was never meant to be a role played by a person or a team. It's meant to reflect aligned incentives of dev and ops. Whether you have an SRE team or a platform team or a bunch of kitchen sink teams.
- Cthulhu_ 4y agoI much prefer the SRE distinction, it gives more focus and especially combined with the book and other materials, a much more professional workspace. You want us to run and manage your software? Sure, here's a checklist of what it has to conform to. Oh it's unstable? We will no longer run it for you, here's the pager back.
- rubyist5eva 4y ago"devops" is just when developers do operations, and most developers generally don't want to because they are more interesting in writing software. If your job is just to manage infrastructure and you use terraform, you're still just a sysadmin. It's a "boring" job but someone has to do it.
- g051051 4y ago> The problem is most engineers don’t want to do operations work. Glad to finally see someone else saying this.
- turtlebits 4y agoI like doing "devops"/operations work. Getting a service out the door with well thought out infrastructure, plus observability/alerting/runbooks to be handed off to an Ops/SOC team is a great feeling. Then you work on the next service. If you don't have some sort of Devops team (yes, the term is too broad) to push back on infrastructure complexity and ensure that logging/metrics/alerting/documentation is done, developers just won't do it.
- roboben 4y ago> When was the last time you saw a product manager high-five the ops person and say, ‘fast fucking autoscaler!’? That's me. I did that.
- Spivak 4y agoAnd I know it's somewhat exaggerated but if the product people don't have visibility into your wins as an ops person then you need to make a more conscious effort to talk about them. Once you peel away the jargon, and tbf doing this is a skill that requires practice, non-techies do think ops work is cool.
- roboben 4y agoDisclaimer: I am an Ops engineer turned product manager. But I don’t like this rift. There are many ops people having a good understanding of product and vice versa. It’s just the stereotype which gets reproduced all the time, including in this blog post. Sure, if management doesn’t get that there is value (and cost!) in proper ops work and having product management attached to it, then all is turned to “DevOps” anyways
- Coryodaniel 4y agoYou're my kinda PM.
- CraigJPerry 4y agoHard disagree but Mandy Rice-Davies applies. Some interpretation of DevOps may be BS, e.g. >> Need a database? File a ticket with DevOps. That does seem like a bit short of the mark. E.g. that should be automated provisioning in 2018, never mind in 2022. Counter points as to why DevOps is not BS: Today there's just an acceptance that you version your code in VCS, it wasn't always that way. "Hey, this doesn't look right, i know you said you based your change on gui-app.latest-final2.zip but was that Steve or Laura's version of latest-final2?". If you didn't work through this period you'll struggle to believe how common it was for shipping products not to be fully up to date in VCS or not to have VCS at all. DevOps changed this. Continuous integration? No there were people hired as "merge masters" or "build managers", i promise i am not making this up. DevOps changed this, the idea that you wouldn't do at least CI or perhaps CD is unexpected today. Deployment automation? Sure, you email it to the ops team, send a few more emails with attachments late on Friday with ammendments and hope that they deploy the right one. Automated deployment as far as the developer was concerned. The ops person on the other end? Sure they had a batman's belt full of hand crafted tools and scripts but it was definitely pets not the cattle DevOps has made us strive for. Testing automation? The testers sit on level 3 not next to dev on level 4, there's about 4 banks of desks over by the cupboards, that's all the testers. They have lotus notes databases with checkboxes to confirm when they test something. If they find an issue a regression report will arrive with the dev team in under a week. I could go on an on. Platform teams are great when used correctly. You can say something similar about DevOps.
- mikkergp 4y ago>> Need a database? File a ticket with DevOps. > That does seem like a bit short of the mark. E.g. that should be automated provisioning in 2018, never mind in 2022. Serious question, as I think this has been part of my thought process in the challenges of platform engineering: what does it mean to automatically provision a database? I can think of lots of different examples that are insufficient in one way or another (I think I'm mostly talking UX here, and how many questions the user has to answer in one way or another / infrastructure as code, not should the user have to apt-get install postgres, which should I think rather obviously be automated.) But if infrastructure as code is defined as automation, this can conflict with the developers who don't want to learn terraform and thus still leads to "file a ticket with devops"
- nimbius 4y ago>platform engineering and enabling developer self-service. in any sufficiently large company platforms arent engineered, they are acquired or purchased/licensed based on their viability as an "enterprise grade" asset that drives business success and reduces cost through identifiable if not meaningless KPI and record keeping. In any sufficiently large company self-service is supplanted by rigid controls, authorizations, approvals, and annual reviews. this is done in the service of jira and the need to make-pretend work by an ever growing cavalcade of pseudoworkers who recognize self-service as the killing stroke of their career. it can then be said, grudgingly and with scorn, that devops seems designed by its very definition to operate as an antipattern to some of the worlds largest, most successful corporations.
- breakalot 4y agoThe problem is that devs simply can't accept that ops exist. We spoiled devs way too much. Software are still being thrown over the wall and ops takes all the blame. The problem is that many devs can get away with spawning servers and doing the easy parts of ops, when it requires rules and discipline, then we all know what happens, over engineering and security holes.
- omginternets 4y agoRe-posting a comment I made in a different thread, because I think the friction in devops is primarily a socio-cultural issue whose origins lie outside of tech orgs. === A colleague of mine once shared his lay sociological theory about dev vs ops, and if taken for what it is -- an essentialization -- it's an interesting perspective. The idea is that ops people have inherited a blue-collar culture, whereas devs have inherited an office-worker/academic culture. Ops people conceive of their work as fundamentally operational: progress is measured in terms of actions taken, and while automation is greatly valued, there is nothing inherently "messy" with one-off fixes; the objective is to get things working now. The pathological case for this mindset is that of constantly being on the back-foot, responding to incidents with one-off fixes without recognizing that many of them share a common cause that could be addressed. Dev people conceive of their work as fundamentally intellectual: progress is attained when the problem is correctly conceived, at which point the solution follows naturally. While writing code is greatly valued, most effort should be spent understanding the problem; the objective is to solve it correctly, once and for all. The pathological case for this mindset is that of over-engineering by an ivory-tower idealist, disconnected from the messiness of real-world praxis. In nearly all orgs I've seen, the proportion of first-generation college grads is greater in ops teams than in dev teams. So too is the proportion of people who come from blue-collar families, or are mechanically inclined (ex: look around and see who tinkers with cars). Likewise, the proportion of people holding graduate degrees is greater in the dev crowd (ex: look around and see who's into math). It should hopefully be clear that neither is superior to the other. The point is rather that the divide between dev and ops is partly sociological, which means it is largely based on values. Ops will tend to over-value "honest hard work" and dev will tend to over-value "clear articulate thought". There is also some latent, historical tension between these sociological groups, which has a funny way of masquerading as a technical problem. It is helpful to view arguments about "just ship it" vs "design it the right way" through this lens. Far from being a cute "just so" story, it's been my experience that this dynamic is very important for two reasons: (1) it's harder than you might expect to foster the sense of common destiny required for real "devops"-style collaboration, and (2) each side of the dev-ops divide has a lot to gain from learning when the other side's mindset is helpful, and how to cultivate it in themselves.
- bob1029 4y agoI don't understand why we can't take more ownership of our work. Even if you are not immediately and directly compensated for every inch that you go above and beyond, you are still in a position to make yourself irreplaceable in terms the business cannot ignore. Think about the long play. You join a startup with a broken, hot-potato-style "devops" process. Instead of saying "not my problem" all day, you can take some ownership of the items slightly outside your space and try to arrive at a better solution. If you do this often enough and with enough persistence, the end customer will eventually see benefit. At some point, management will likely notice the correlation as well. Even if they don't, you have gained far more experience than you would have otherwise and can maybe go start your own damn company, realizing up to 100% of the value of your labor. This is why I try hard, even if someone doesn't make me.
- dinosaurdynasty 4y agoWe can't take more ownership of our work because we do not in fact own it, and the business will never let you actually own it. All I've gotten from trying hard is burnout and sickness. At this point I can say the only reason I work for others is because I need money to live.
- bob1029 4y ago> and the business will never let you actually own it. This is not true in many startup environments. You'd have a hell of a time getting me to work on a new project without some sort of equity arrangement.
- dinosaurdynasty 4y agoDoes the equity come with voting rights? Can you fire the C-suite? Can you legally leave and fork the project? Without stuff like this it's hard not to see equity as simply a different way of getting paid.
- bob1029 4y ago> Does the equity come with voting rights? It does in my case. I started out as a junior developer. I am now in the C-suite. Equity is also not a replacement for salary, which we clearly just take for granted these days. Taking an adversarial stance in business is the fastest way to wind up nowhere. Being able to "fire the c-suite" is not a good thing. If you have to do that, you likely don't have a viable business in the first place.
- insane_dreamer 4y agoI think of DevOps as "deploying and maintaining infrastructure on which applications run", vs SW Engs as "building applications". Not sure if that's the "accepted" definition or not, but works for us. YMMV.
- deleted 4y ago[deleted]
- AcerbicZero 4y agoI was semi salty reading this....but they are spot on in a lot of ways. There are times where my code looks like a bad 4 year old wrote it, but 10 minutes later I'm in a conversation where I have to explain basic security concepts, like not leaving everything wide open to the internet, to some random Sr Software Dev. For every operations person without software development skills, there are FORTY engineers without cloud operations skills. If you are going to build an internal platform, you’ll need experts with overlapping experience in both fields working together. I guess I just need to find a role with more inter-team collaboration; Being able to mostly self teach is great, until you have no one to learn from anymore.
- kris-nova 4y agoPlatform Engineering is the future.
- Jtsummers 4y agoDevOps has suffered the same fate as Agile. In particular there is one thing that both had in common that got lost somewhere in most implementations: cross-functional teams [0]. Agile teams were supposed to be composed of not just devs doing everything (quickly, because agile is about raw speed, right?) but people competent in the various aspects of the system development, potentially deployment, customer needs, etc. working together as multidisciplinary teams to meet a particular objective. The purpose of this was to break the silo that is common because it feels natural to many managers (the same sort, I presume, who don't like when their mashed potatoes touch their fried chicken on the plate). Silos impede communication and promote the "throw it over the wall" approach to product/system development. A system engineer (or team of) made the design after sales (and possibly only sales) talked to the users. Throw that design over the wall and let the devs build it. Devs throw it over the wall to test, maybe there's a volley. Eventually it's tossed to ops. A goat is sacrificed and maybe it works. Multidisciplinary teams are able to communicate across those boundaries because instead of the role-silo the roles are all in the same team, working (more clearly) towards one common objective. But then businesses managed to fuck it up. They got rid of test, devs do all testing now. Devs do all the database logic. There are no UI/UX experts anymore, it's all full-stack, and on and on. DevOps was supposed to be the same. It was supposed to take that Agile cross-functional team and add in the sysadmin/operators (among other things). The critical problem being solved was the two (really more, but at the limit) silos of dev and ops failing to communicate. A Friday release with Ops spending the weekend rolling things back because Dev wasn't there and didn't even know the system wouldn't work as intended. Maybe their test environment was too different from the operational environment, the reasons matter a bit but there are too many to enumerate. Instead, businesses did what they do best, they fucked it up. Again. They said, "Take the sysadmins and teach them to code. If they can't, dump them in the woods. The devs will takeover the world." Then they started making "devops" job listings and full-stack grew to encompass a new set of skills. [0] https://en.wikipedia.org/wiki/Cross-functional_team https://en.wikipedia.org/wiki/Cross-functional_team
- mherdeg 4y agoHow many companies are there where a Dev team writes code and "throws it over the wall" for Ops to deploy and maintain? I hear people talking about this as an anti-pattern all the time, but I haven't been in enough workplaces to see what this looks like when it happens recently.
- lovehashbrowns 4y agoWe had this pattern in a previous role. Essentially, there was a repo with yaml config files in it. A dev team would write their code they wanted to deploy, configure the yaml files, and infrastructure would be deployed in AWS. That infrastructure was owned by the operations team. This caused as many disasters as you’d expect. For example, when something breaks (like ECS, or a bad AMI is deployed), the dev team is stuck waiting on the operations team to fix it because the infrastructure is owned by the ops team. I was part of transitioning to a different model where the same general concept applies; a bunch of yaml leads to infrastructure being deployed. But that infrastructure was fully owned by the dev team that deployed the code. It only made things generally easier, because then if the deployment code broke (i.e. the code responsible for converting the yaml files to infrastructure, like terraform modules), we’d have to fix it. Ultimately it was just a fancier and more guided version of Kubernetes.
- dsr_ 4y agoOver the last ten years, the market has tried to kill off the hardware, systems, network and security people, and mostly succeeded. As a result, it's relatively easy to find someone who advertises as "full stack devops" who has never actually operated any infrastructure more complex than a LAMP webserver cluster. And it's hard to find a senior sysadmin who has enough years of experience to understand and troubleshoot all of your infrastructure from layer 0 up. People with that experience have moved into management or consulting or retirement, and there are no jobs for new folks.
- Melatonic 4y agoIt cracks me up everytime I talk to some very competent and senior devs who have zero knowledge of hardware - cloud has spoiled us! Also the amount of devs who have had to work in shops with really crappy on prem infrastructure setups is also amazing - I guess I have just been lucky to work at places with solid infra
- vigeek 4y agoBased on my own experiences, one of the most disappointing elements of devops is their lack of understanding how things work. They run to GitHub and pull other peoples recipes to build out certain environments. Even when they build automation from scratch, they miss tons of core OS level tunables and rather than adjusting those, they'll just add more servers to the mix. I worked at a place that had an elastic search cluster with 30 nodes, because they kept hitting open file limits, when 8 servers could easily handle the traffic with basic tuning.
- Corrado 4y agoYou could replace "devops" in your first paragraph with "developers" and it would still make sense. Everybody is out there grabbing stuff from GitHub and shoving it into their projects. Most technical folks today don't really know how a computer works, they poke at it until it does what they want and call it a day. And I would say that your specific example is a failing of that team, not "DevOps" as a whole.
- kazen44 4y ago
- dathinab 4y agoPaaS is grate, sure it doesn't fully eliminated oprations but it makes it much easier for you to do what the article described. Like most things it comes at a cost (for a good PaaS mainly the running cost). But I increasingly come to believe that for small startups which fundamentally don't have the resources to do what the article describes or anything close to it using PaaS and keeping operational complexity as low as possible is the way to go.
- zwilliamson 4y agoIt takes really good engineering leadership to build a platform team. With the wherewithal to follow through on migrations and marketing of the platform. Also, sourcing the right people internally and elevating them. These engineers become true full stack (the whole OSI model) engineers and their work most definitely shouldn’t be thankless or taken for granted by product leaders. I’ve seen efforts like this fall apart in very ugly ways due to a lack of leadership.
- hintymad 4y ago> Congrats, that’s not DevOps. I’d wager most of what they are doing is using Terraform and YAML to do menial tasks for the engineering team. > Need a database? File a ticket with DevOps. Shouldn't the "DevOps" team build APIs and consoles so eng teams can provision their resources without knowing TFE/YAML from a mile away? Really, this is year 2202. Please, learn from AWS and Netflix. Do software development. Get rid of the god damn ticketing process. Friends don't let friends touch TFE/YAML or whatever configuration files.
- taylodl 4y agoI disagree. DevOps was intended to break the organizational mindset of having this group of people here doing this set of activities and this other group of people over there doing that set of activities when in reality both groups of people are needed to work together and deploy software. It was about breaking down those organizational silos. Anybody creating a dedicated "DevOps" team was way off the mark, unless that team was a coaching team whose job it was to help other teams become self-sufficient. Unfortunately the fact that an engineering team had responsibility for their software from implementation, to deployment, to operations was a news flash to large organizations having traditional IT staff. The DevOps mindset has led to much better operational excellence. The DevOps mindset has also led to the Internal Developer Platform this article discusses. Honestly, I don't see how traditional IT organizations are going to easily arrive at such a platform without having adopted the DevOps mindset first. So DevOps isn't bullshit, but it's not the end goal either. It's a necessary step needed on your journey for getting somewhere better.
- ozim 4y agoI think that was not mentality. Maybe after years of working that way it turned out into mentality. That was employee utilization approach where you hire 1 DBA and he runs all DB stuff because hiring DBA for each team does not make financially sense as there is not enough day to day work for DBA specialist on a project/product. Other stuff is that DBA/SysAdmins have to have access to customer - company data so you still need separation of duties (no devs access on prod systems) and it is easier to make guy part of "OpsTeam" and give him access across all systems than get "Ops" person configured per project\product. So why "DevOps" if you get operational overhead and you cannot "utilize employee 100%"? Because in most companies delivering new features is more important than making Joe Dbaer closing tickets like in factory because we learned it actually is not efficient when "important feature X" is delayed because Joe was doing his job fine but feature X was in queue.
- taylodl 4y agoGood things happen when developers are involved in Ops. Most developers would prefer to develop and not focus so much on Ops, and so they take the steps to automate the Ops as much as possible and essentially make the problem go away. Dedicated Ops staff won't do that because that would put them out of work.
- henning 4y ago> In production, we are running in containers, but developing in the container is too slow, so the team leans towards asdf and a README full of stuff to copy, paste, and pray. During a sprint, an engineer adds convert (ImageMagick) to the mix to support manipulating images and forgets to update the Dockerfile, and then production goes down. Wow, it's like you can prove anything with a contrived example!
- erulabs 4y agoCall the person or the team or the practice whatever you'd like: DevOps is the merger of development and business operations. It is not developer + sysadmin. Companies with no "devops" (people/team/practice) build big sticky balls of mud. If they're lucky, they hit product-market-fit before the mud dries - if not, well, this is why most software companies die and why most large organizations cannot make progress. DevOps simply plots the trajectory of our drying ball of mud, and attempts to keep it moist for as long as possible. I don't care if I'm by myself, if I have a team, if I have a devops title - all I want is to prevent the existential death-by-garbage-fire that eventually consumes all technology. If you're a developer and you're not aware that you're marching slowly towards a complexity-cliff, that's fine - we just have different jobs. If you're a developer and you're aware commits aren't by default equivalent to progress, congrats, you're an SRE/DevOps/Senior Engineer/Platform/whatever.
- AzzieElbab 4y agoDevOps is like everything else. It is what you make out of it
- manv1 4y agoI've worked with a "devops" team that spend hundreds of thousands of dollars on puppet consultants and never got it working. Another team spent it's time badmouthing various technology choices, but then didn't realize that our customer's onsite deployment dictated the technology choices and chose the wrong tech. The real reason devops exists (what used to be called Application Engineering) is because development is pretty clueless about the customer's runtime environment. They don't really understand the tuning necessary to create a production system. Example: very few developers understand how big your DB connection pool should be, because they tend to only test one connection scenarios. That's assuming they're actually know enough to use a connection pool. And they almost never handle failover scenarios. DevOps should be the purview of the senior engineers. If you're building without an understanding of your deployment environment then you're screwed. And more importantly, you're not taking advantage of platform features. As an example, deploying to SSDs (which everyone should be doing) means your database performance has just gotten an order of magnitude better for free. You need to retest and get rid of a lot of those performance-related changes. Let's put it this way: one monolithic Java/spring application I worked on was basically a SOAP server with a UI that took up gigs of RAM. It was that big because the scaffolding required to handle all that was, well, huge. But really, it was essentially a web server that served pages to connected clients. All that other shit was overhead...so on AWS it got transformed into a few lambda functions and REST apis. Without an understanding of the deployment environment (and the possibilities associated with that) it would never have happened. TL;DR: senior engineers should be the devops people, because how and where you deploy software should determine how you should make software.
- pkrumins 4y agoI identify as a sysadmin.
- irrational 4y agoI hate devops. We used to have a dedicated systems team. Now programmers are expected to both write code and manage their own cloud infrastructure. These are two entirely different skill sets.
- ChrisMarshallNY 4y agoWhen I ran a fairly small team of engineers, I created what I called an "Infrastructure Engineer." I staffed it with a fairly junior, but still brilliant, engineer. He rapidly became the most popular member of my team. His job was to commoditize configuration management, and strip away as much of the overhead from the coders, as possible. He didn't do release management, and we didn't really work automatic testing into our release workflow. This was because Japan did not trust auto-testing, so each engineer did their own unit and harness testing. Japan also wanted each engineer to make their own "official" release, as opposed to having a CD system spit it out. There were reasons. I didn't necessarily find them that compelling, but they were the boss, so I gave them what they wanted. Japan liked him, as it gave them one single person to talk to, and he also helped them to streamline their own infrastructure. In fact, he is the only employee that I ever had (including myself), that traveled to Japan before being there a year. For myself, I find using things like Fastlane, JIRA, and Jenkins, aren't actually helpful, for a one-man shop. I tend to do a lot of stuff by hand.
- fHr 4y agoWell sure I would like to do DevOps as well as a software engineer but I'm getting drowned in agile ceremonies already, meanwhile the devops guys has like 10 hours a week more time as he doesn't have all the agile re-/pre-/postrefinement/retro/intro/outro/daily/weekly etc. They do like bidaily devops meet or 1on1 calls and care for their infra.
- shinzui 4y agoDevOps (the term), like Agile, made sense when it was introduced but lost its meaning as the industry evolved.
- nikolay 4y agoVery shortsighted article ignoring a lot of responsibilities developers don't want to assume and want somebody else to be on the hook for costs, secruity, breaches, on-call rotations, SOC-2 compliance - you name it. With freedom comes responsibility!
- projektfu 4y agoFunny, I thought DevOps was introduced as a way of having the specialists be part of the same team, so that the dev side would keep ops in mind and the ops side would be getting dev help in automating. Creating a separate DevOps team seems like a manager reading an article and implementing without understanding. The problem in a lot of orgs is having various priesthoods that have their own goals that aren't aligned with other teams/the business. For example: - hardware purchase - software purchase - DBA - ops/infra - networking (firewalls esp) - security - HR/recruiting - business analysis - front end/design/ux/dev - back end dev - technical documentation All of these are roles and they can have specialists, but you probably want them aligned and rewarded for keeping the business running, not serving specific measurement goals like uptime, to the detriment of selling product. These priesthoods often have their own religious virtues that they espouse, like 3rd normal form or low TCO, that they pursue in absence of directions and understanding of their role in the business. It's easy to see the problem but wicked hard to prevent it or fix it. I have a small organization and it's difficult to get people really on board with a vision.
- Spivak 4y ago> Creating a separate DevOps team seems like a manager reading an article and implementing without understanding. You need more than one specialist because they need to be allowed to get sick and take vacation. And once you have multiple dev teams it’s not economical to staff each team with multiple expensive specialists. So you put them on their own team and structure it organizationally so the devops team is an extension of every team. The devops team keeps up with all the work every team is doing and reacts accordingly as well as being a resource each team can tap. Crucially, you don’t put any kind of ticketing system or similar in between.
- deleted 4y ago[deleted]
- bvrmn 4y ago> The problem is most engineers don’t want to do operations work. My experience tell that most engineers don't want to do any work and it's ok.
- lucidguppy 4y agoCertain articles need a list of "required reading" before reading the article. You should at least read the "dev ops handbook" before reading this article. The article should then talk through its points using the book as a reference.
- papito 4y agoPart of why I am fed up with this industry is that I no longer know what my role is. It seems that I have to: * Develop new features * Fix bugs * Sit in standup, "alignment" meetings, and any meeting created by a Zoom-promiscuous engineer (let's hop on a call!) * Reply to dozens of Slack messages per day * Write documentation * Develop and maintain the CI/CD pipeline * Be an expert on Observability (aka Debugging in Production) * Have Galaxy Brain level knowledge on the entire cloud setup in all environments And now I am thinking, if being an engineer involves all that, why not just find a gig with pure DevOps and not worry about product development?
- 0xbadcafebee 4y agoDevOps is still a great idea, just like Lean and Agile are a great idea. But a great idea isn't enough. A million people have "great ideas" for businesses all the time. How many of those succeed? You can't just have a great idea, you have to execute really well on the great idea. Most people don't know what DevOps is. Of the very very few that do know what it is, they are powerless to get other people onboard with the idea, because people are lazy and don't want to learn things or change how they work. Even if DevOps is great, if the executives in your company don't force it down everyone's throat with business policies, training, etc, nobody will ever actually do it, because nobody really wants to. Platform engineering is not gonna solve what DevOps is failing to solve. It's just another silo. "Let's empower developers" sounds great. But developers still lack most of the knowledge to maintain a complex system. Give them a million super-powered tools and they will still screw things up. Most developers I meet today don't even understand the concept of DNS. That's not exaggeration - they literally don't understand how hostnames work, record types, zone delegation, authoritative records, ttls, much less propagation or transfers. And you want to, what, give them a fancy tool to change the system that they don't understand? You still need operations, in any business, not just tech. Somebody has to be paid to care about the boring shit that keeps the business working. There is no way to automate away that responsibility, in any complex system in the world. A platform eng team is just adding another team on top of the Ops team you will always need. What would actually solve a lot of this - and nobody is going to like this - is boring-ass business management best practice from the 50s. W.E. Deming. Lean. Six Sigma. The stupid shit that MBAs nerd out over? That stuff works. High-performing businesses that don't just pay it lip service, but actually do PDSA, actually train their workforce, actually continuously improve their process, and make better business outcomes. But who among the tech nerds wants to listen to that? They just want to play with their toys and have no responsibility. "Build me a platform so I don't have to use my brain." People have been studying businesses for the better part of a century. There is no easy way out of the morass. No single team or tool or paradigm will make things better. Until you consider everything, holistically, and put into place a barrage of different solutions, and actually teach people to do their jobs better, the actual outcomes of the work won't improve.
- errantmind 4y agoWhy was the title changed from the original?
- gitpusher 4y agoI'm not sure I agree with author. Sounds like they have worked at shitty places that are using the word "DevOps" but really they are doing things the old way. My company practices "DevOps" and it feels great: - Infra team build self-service tools (build, deploy, scale, observe) - Infra team write good documentation for these tools - Dev use tools to build, deploy, and monitor their apps - Dev not use use words like: AWS, k8, Envoy. These are abstracted by tools. - if problem with app (very common) Dev fix it using the tools - if problem with tool (very rare) Infra fix it We have no build engineers, release engineers, etc. However we do have a rotation (similar to on-call) whereby Dev is responsible for releasing code that week. Sure there are sometimes problems, frustrations, etc. No system is perfect. But you are getting paid lots of $$$ so shush with your whining & instead help improve the system. For context my company is mid-size ~150 engineers
- chasd00 4y ago"The growing zeitgeist is that “platform engineering is the future.”[1][2] And given that I co-founded a product in the space, I sure hope so! " oh, now i understand this blog post..
- tomrod 4y agoThe article was interesting. It seems like it misses that the complaints of why DevOps is dead is a culture problem, which I've found are hard to solve by throwing new tech at the problem.
- at_a_remove 4y agoAt this one place of employment, I had been struggling to divest myself of system administration duties for some time. I can do them, but I don't particularly like them. I have a few things I'm good at in that area (troubleshooting, being paranoid), but I really despise middle of the night calls, early morning patching, and so on. I had finally gotten to a good place. And then someone newly promoted decided to rewrite everyone's job titles and I was suddenly DevOps, sucked back in.
- znpy 4y ago> The problem is most engineers don’t want to do operations work. Nah, the problem is that most (software) engineers don't have the skills to do operations work. Let's not fool ourselves: software development is 95% development (writing code/docs/test etc) and 5% system administration (getting your local mysql or whatever up and running etc) whereas operations is usually 95% screaming at the machines (various linux tasks, writing glue scripts, infrastructure, networking etc) and 5% development (the aforementioned glue scripts, writing internal docs). The fields do overlap, but very little. They require two different skill sets. They require two different mindsets, too: a software engineer is usually optimistic (works on my machine, will work in prod too) whereas a sysadmin/operations person is usually pessimistic (what's our disaster recovery strategy?).
- kazen44 4y agoi wouldn't say the operations view is pessimistic perse. Its a different frame of mind, mainly because its the place where the rubber meets the road so to speak. Once things are production, you cannot revoke or redesign your product/system because people are directly reliant on it.
- hnthrowaway0315 4y agoI think DevOps team maintains infra and monitor ops so that other teams can "plug-in" their applications. For example DevOps team sets up Terraform but dev teams plug-in their own repos and configurations to use that private enterprise Terraform "cluster". Another example: DevOps team sets up Airflow clusters but Data engineer teams use them. At least this is how the role works in my company.
- zoomzoom 4y agoCouldn't agree more top-level. The other thing that this misses is that the deployments to the cloud are only half the battle. CI/CD pipelines, Dev environments, and other SDLC phases like planning and testing are just as important as terraform. Making the infra as code better and more reusable is a great step in the right direction but only part of the puzzle to making software development workflows better in the big picture.
- GiorgioG 4y agoManaging complexity should be job 1 for technical leadership. We've failed utterly when it comes to DevOps. The model should be Heroku-like deploys for 99% of apps/companies. Instead we have an army of DevOps experts for k8s, helm, terraform, etc. Changing an environment variable now requires a DevOps person and/or a PR in your GitOps setup. The feedback loop for troubleshooting issues in these environments is too long. This is me right now: https://i.kym-cdn.com/entries/icons/original/000/019/304/old.jpg https://i.kym-cdn.com/entries/icons/original/000/019/304/old...
- cosmiccatnap 4y ago"DevOps is broken" Said the 4th article on the subject this month.
- notabee 4y agoWe're building up to the next buzzword. Give it a year or two.
- deleted 4y ago[deleted]
- pronik 4y agoDevOps is an education and communication position. You won't get the devs to do ops, since they are good at development and don't know much about ops and the same applies to ops in reverse. You need people (ideally, on each product team) who understand enough of both sides to efficiently communicate problems and facilitate solutions. Before you make your devs write provisioning scripts for databases (which they can do, but probably won't get the trade-offs of different parameters), you might want to explain the difference between running database migration scripts on application server startup on a single-instance dev laptop and on a distributed master-master replicated database with multiple application server instances. You increase awareness, you provide platforms, you communicate. That's what DevOps and especially DevOps teams do. They are glue between people of different competence areas. The alternative is Peter's principle applied to both sides.
- outworlder 4y ago> You’ve got a DevOps team. Yeap. Largest red flag there is.
- jamisteven 4y agoThis is one of those things that just drives people out of tech and leaves the ones still in it super frustrated. So many buzzwords and PR non-sense from non-tech mgmt.
- javier_e06 4y agoThe name meant something a while ago: Something along the lines of: "Turning the carnival bumping cars into a ferry's wheel or maybe the teacups" Today's Dev-Ops is a Teacher's Lounge Room with a big suggestion box by the door. One more shortcoming in the long list of modern needs.
- smcleod 4y agoCo-opted, branded and misinterpreted by the enterprise - "#DevOps" is not DevOps as it was intended. Pretty spot on.
- smcleod 4y agoTo clarify - what companies are now calling "DevOps" is not DevOps, it's not rooted in bringing about cultural change in part by bringing software development and operations closer together / de-siloing. It's just another label / title thrown on people/teams that have become another silo.
- jimcavel888 4y ago
- fleddr 4y ago"From full stack engineering to DevOps practitioner, our industry loves to pretend everyone can do everything." To me, this gets to the heart of the matter. As example, I present the required skillset for a front-end engineer: https://frontendmasters.com/guides/front-end-handbook/2018/ https://frontendmasters.com/guides/front-end-handbook/2018/ See the index on the left. Do you need to know everything about all of these things for every single project? No. But as you grow into a senior, you'll be touching almost everything in that list. It's an absolute explosion in complexity. Web development once was barely considered engineering, now it's one of the most complicated roles in the industry. Consider also that almost everything on that list is constantly evolving, this list being 4 years old. Has all this added cognitive load and complexity resulted in massive productivity wins and dramatically better outcomes (UX, quality)? I'd say no, or at least it's questionable. My point being is that this is already too much. I work in teams with a distribution like this: senior (20%), medior (50%), junior (30%). So the vast majority of them are median. And the median programmer is severely lacking against our ever growing demands. It's crude, but the typical programmer really sucks at programming. So if next you're going to add even more to this pile with all sorts of devops and funky cloud tooling, the issue becomes clear: we're over-asking. We over-value flexibility and scaling but ignore its dramatic costs. "Devops" is just a made up word.
- tootie 4y agoA lot of this rings very true but I think it's missing the actual nobel intent of DevOps that is still true even if it's been hopelessly corrupted. He touches on a lot of the counter examples that lead to the rise of DevOps. Things like ops/admin teams making themselves a gatekeeper or bottleneck to delivery. That's a classic problem in traditional IT departments. Dev is incentived to ship features, Ops are incentived to avoid downtime. The two goals conflict. DevOps says we all work together to ship features that don't cause downtime. That's a philosophical aim and not a new discipline. The maturity and sophistication of the tools and practitioners is orthogonal. If you hire a team and set them apart from Dev and give them an incentive to avoid downtime and call them DevOps then you've accomplished nothing. If you hire SREs or platform engineers or whatever else you call them and align their incentives to dev and dev to them then congratulations.
- baryphonic 4y agoI knew DevOps jumped the shark when I started seeing "DevSecOps" and other such nonsense. But I don't think it was always so. Several years ago, I did "DevOps" work for a year or two. My gig essentially consisted of automating the repetitive Ops tasks and giving engineers self-service tools to get their stuff into prod efficiently. At the time, things like Puppet & Chef were commonly-used tools, Vagrant was a widely-used development tool and Ansible was the new kid on the block. I don't remember there being much YAML yet, and I'd only heard a few things about Docker. I wrote several custom tools in Python, and we used Jenkins as our CI/CD server. "DevOps" in those days was a cultural thing. The DevOps engineers owned the infrastructure and the software engineers owned the software. It was the DevOps engineers' responsibility to give the software engineers the tools needed to deploy, and also to ensure that the SWEs weren't causing outages (where we were the first line of defense). It started to get bollocksed up when hiring managers started defining DevOps roles in terms of tools used, and the tools themselves supplanted communication & culture as the definition of DevOps. With YAML, k8s and the rest of the nonsense, I don't think DevOps is very possible these days, because when your config is tens to hundreds of thousands of lines of YAML, the tooling doesn't even allow for a culture of self-service & communication. SWEs more or less have no choice but to chuck stuff over the wall, and DevOps or DevSecOps engineers (or whatever buzzword nonsense the industry has adopted) have to perform augury to construct the configuration. Because of cloud vendor lock-in or just sheer complexity, whatever runs in prod is quite different than the dev environment, and everything just limps along. EDIT: Now I read things about "MLOps" and so on. When will the madness stop?! Apparently we keep allowing recruiters and dimwit HR bureaucrats to define software processes and culture.
- tinglymintyfrsh 4y agoThis is an old, dead horse larger shops solved: - Systems get messy unless you have configuration management that converges on top of ephemeral instances - Build packages that work the same in all environments if possible - Dev-prod parity: if that means running Docker locally or on some throw-away dev servers, do it - 12factor principles - Every business department has an API and shares the same or similar messaging and storage tech - Change control: have high-available (HA) to where you're never upgrading individual machines and always backup/restore/replacing with fresh nodes - Repeatable, precise, cached, incremental, distributed builds. Even if it means throwing out timestamps in the binaries - Cache build artifacts forever (almost) - Cryptographically sign commits and build artifacts (don't sign hashes because those are weaker) - Canary, sharded deployments - Rarely/never allow changes directly to boxes - Require PRs made through configuration management - Require PRs have to have another developer code review them - Automate the heck out of linting and testing before it's generally allowed to drop in prod - Store secrets either in conf mgmt or in a separate system like Vault - Have SREs who know how things will end up in prod to troubleshoot the complexity and provide CI/CD and {I,P,Db,S}aaS - Reduce the number of duplicated systems to a minimum but not to where it is too awkward or difficult to maintain - Remember that prod, corp, and endpoints (phones and laptops) aren't the same but try to share bits as much as possible while isolating differences - Corp tends to run more heterogeneous than prod. It's okay but don't let it get out-of-hand without having recommended (as opposed to mandated) standards except for security and third-party component review - Eliminate technical debt: don't allow layers of crap or be precious about gross code just because it works - Consider the risks and impact before making changes - Have a backup/DR/BCP plan
- lloydatkinson 4y agoI've started calling devops teams that are hostile or incompetent "DevObs". Developer obstructions.