TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: If Kubernetes is the solution, why are there so many DevOps jobs?

437 pointsby picozetaalmost 3 years ago
Arguable the goals of DevOps align partly with the goals of system administrators in former days: Provide reliable compute infrastructure for<p><pre><code> 1) internal users: mainly developers by providing CI&#x2F;CD 2) external users: end users </code></pre> Nowadays we call people that do 1) DevOps and people that do 2) SREs (so one could argue that the role of sys admins just got more specialized).<p>The platform of choice is mostly Kubernetes these days, which promises among other things stuff like<p><pre><code> - load balancing - self-healing - rollbacks&#x2F;rollouts - config management </code></pre> Before the cloud days, this stuff has been implemented using a conglomerate of different software and shell scripts, issued at dedicated &quot;pet&quot; servers.<p>In particular, a main critic is &quot;state&quot; and the possibility to change that state by e.g. messing with config files via SSH, which makes running and maintaining these servers more error-prone.<p>However, my main question is:<p>&quot;If this old way of doing things is so error-prone, and it&#x27;s easier to use declarative solutions like Kubernetes, why does the solution seem to need sooo much work that the role of DevOps seems to dominate IT related job boards? Shouldn&#x27;t Kubernetes <i>reduce</i> the workload and need <i>less</i> men power?&quot;<p>Don&#x27;t get me wrong, the old way does indeed look messy, I am just wondering why there is a need for so much dev ops nowadays ...<p>Thanks for your answers.

110 comments

jmillikinalmost 3 years ago
<p><pre><code> &gt; 1) internal users: mainly developers by providing CI&#x2F;CD &gt; 2) external users: end users &gt; &gt; Nowadays we call people that do 1) DevOps and people that do &gt; 2) SREs (so one could argue that the role of sys admins just &gt; got more specialized). </code></pre> Both are called sysadmins.<p>SRE is a specialized software engineering role -- you&#x27;d hire SREs if you wanted to create something like Kubernetes in-house, or do extensive customization of an existing solution. If you hire an SRE to do sysadmin work, they&#x27;ll be bored and you&#x27;ll be drastically overpaying.<p>DevOps is the idea that there shouldn&#x27;t be separate &quot;dev&quot; and &quot;ops&quot; organizations, but instead that operational load of running in-house software should be borne primarily by the developers of that software. DevOps can be considered in the same category as Scrum or Agile, a way of organizing the distribution and prioritization of tasks between members of an engineering org.<p>---<p>With this in mind, the question could be reframed as: if projects such as Kubernetes are changing the nature of sysadmin work, why has that caused more sysadmin jobs to exist?<p>I think a general answer is that it&#x27;s reduced the cost associated with running distributed software, so there are more niches where hiring someone to babysit a few hundred VMs is profitable compared to a team of mainframe operators.
评论 #31581016 未加载
评论 #31586298 未加载
评论 #31581833 未加载
评论 #31590095 未加载
评论 #31581025 未加载
binarymaxalmost 3 years ago
Kubernetes is a Google scale solution. Lots of teams said “hey if Google does it then it must be good!”…but forgot that they didn’t have the scale. It caught on so much that for whatever reason it’s now the horrendous default. I’ve worked on at least 3 consulting projects that incorporated K8s and it slowed everything down and took way too much time, and we got nothing in return - because those projects only needed several instances, and not dozens or hundreds.<p>If you need less than 8 instances to do host your product, run far away anytime anyone mentions k8s
评论 #31581637 未加载
评论 #31588029 未加载
评论 #31581372 未加载
评论 #31581252 未加载
评论 #31596227 未加载
评论 #31589888 未加载
评论 #31586041 未加载
评论 #31587875 未加载
评论 #31581314 未加载
mancerayderalmost 3 years ago
Threads like the below are why DevOps jobs exist and why Kubernetes infrastructure skills pay so much and why there&#x27;s such a large demand.<p>Yes, it&#x27;s quite complicated.<p>No, an API to control a managed EKS&#x2F;GCK cluster + terraform + Jenkins&#x2F;Azure DevOps&#x2F;etc. does not mean that magically the developer can &#x27;just deploy&#x27; and infrastructure jobs are obsoleted. That&#x27;s old AWS marketing nonsense predating Kubernetes.<p>There&#x27;s a whole maintenance of the CI&#x2F;CD factory and its ever demanding new requirements around performance, around Infosec requirements, around scale, and around whatever unique business requirements throw a wrench in the operation.<p>Sticking to ECS I guess is a valid point. What Kubernetes gives you is a more sophisticated highly available environment built for integration (Helm charts and operators and setups that when they work give you more levers to control resources allocations, separations of app environments, etc.)<p>And as an aside, I&#x27;ve been doing this for 20 years and long before Kubernetes, before Docker, hell, before VMs were used widely in production, I observed the developer mindset: Oh but it&#x27;s so easy, just do X. Here, let me do it. Fast forward a year of complexity later, you start hiring staff to manage the mess, the insane tech debt the developers made unwittingly, and you realize managing infrastructure is an art and a full time job.<p>A story that is visible with many startups that suddenly need to make their first DevOps hire, who in turn inherit a vast amount of tech debt and security nightmares.<p>Get out of here with, it&#x27;s just API calls. DevOps jobs aren&#x27;t going away. It&#x27;s just the DevOps folks doing those API calls now.
mynameisashalmost 3 years ago
Reading the comments here validates my experience. When K8s was pitched as a way to make this all run smoothly, I thought, &quot;Great! I&#x27;ll write my code, specify what gets deployed and how many times, and it&#x27;ll Just Work(tm).&quot; I built a service which had one driver node and three workers. Nothing big. It deployed Dask to parallelize some compute. The workload was typically ~30 seconds of burst compute with some pretty minor data transfer between pods. Really straightforward, IMO.<p>Holy smokes, did that thing blow up. A pod would go down, get stuck in some weird state (I don&#x27;t recall what anymore), and K8s would spin a new one up. Okay, so it was running, but with ever-increasing zombie pods. Whatever. Then one pod would get in such a bad state that I had to nuke all pods. Fortunately, K8s was always able to re-create them once I deleted them. But I was literally deleting all my pods maybe six or seven times per day in order to keep the service up.<p>Ultimately, I rewrote the whole thing with a simplified architecture, and I vowed to keep clear of K8s for as long as possible. What a mess.
评论 #31589468 未加载
评论 #31589745 未加载
评论 #31590189 未加载
评论 #31590678 未加载
jeffwaskalmost 3 years ago
First. DevOps is a culture not a job most places have so many DevOps roles because they are doing it wrong.<p>In the olden days of 10 years ago, most operations teams worked around the clock to service the application. Like every day there would be someone on my team doing something after hours usually multiple. Tools like Kubernettes, Cloud (AWS, GCP, Azure) have added significant complexity but moved operations to more of a 9 to 5 gig. Less and less do I see after hours deployments, weekend migrations, etc. Even alert fatigue goes way down because things are self healing. This is on top of being able to move faster and safer, scale instantly, and everything else.<p>Operations side used to be a lot of generalists admin types and DBA&#x27;s. With today&#x27;s environment, you need a lot more experts. AWS alone has 1 trillion services and 2.4 billion of those are just different ways to deploy containers. So you see a lot more back end roles because it&#x27;s no longer automate spinning up a couple servers, install some software, deploy, monitor and update. It&#x27;s a myriad of complex services working together in an ephemeral environment that no one person understands anymore.
评论 #31588790 未加载
etruong42almost 3 years ago
New technology sometimes creates more work even though it makes the previous work easier. When the electronic spreadsheet was introduced in the 1980s, even though it made accountants more productive, the number of accountants GREW after the electronic spreadsheet was introduced. Sure, one accountant with an electronic spreadsheet could probably do the work of 10 or 100 accountants who didn&#x27;t have the electronic spreadsheet, but accounting become so efficient that so many more firms wanted accountants.<p>&quot;since 1980, right around the time the electronic spreadsheet came out, 400,000 bookkeeping and accounting clerk jobs have gone away. But 600,000 accounting jobs have been added.&quot; Planet Money, May 17, 2017, Episode 606: Spreadsheets!
devonkimalmost 3 years ago
Kubernetes in a sense is very similar to Linux back in the 2000s - it was nascent technology in a hot market that was still absolutely evolving. The difference now is that everyone knows the battle for the next tier of the platform is where people will be able to sell their value (look at RedHat selling to IBM for the saddled legacy of maintaining an OS as a tough growth proposition). For a while people thought that Hadoop would be the platform but it never grew to serve a big enough group&#x27;s needs back in 2013-ish and coupled with the headaches of configuration management containerization hit and it&#x27;s now combined at the intersection of OS, virtualization, CI, and every other thing people run applications on in general. It may be the most disruptive thing to our industry overall since the advent of Linux in this respect (people thought virtualization was it for a while and it&#x27;s shown to have been minor comparatively).<p>A lot of this stuff really is trying to address the core problem we&#x27;ve had for a long time that probably won&#x27;t ever end - &quot;works fine on my computer.&quot;
评论 #31587715 未加载
评论 #31589067 未加载
majewskyalmost 3 years ago
In my opinion, the main benefit of Kubernetes for large companies is that it allows for a cleaner separation of roles. It&#x27;s easier to have a network team that&#x27;s fully separate from a storage team that&#x27;s fully separate from a compute team that&#x27;s fully separate from an application development team because they all work around the API boundaries that Kubernetes defines.<p>That&#x27;s valuable because, on the scale of large companies, it&#x27;s much easier to hire &quot;a network expert&quot; or &quot;a storage expert&quot; or even &quot;a Gatekeeper policy writing expert&quot; than to hire a jack of all trades that can do all of these things reasonably well.<p>The corollary from this observation is that Kubernetes makes much less sense when you&#x27;re operating at a start-up scale where you need jacks of all trades anyway. If you have a team of, say, 5 people doing everything from OS level to database to web application at once, you won&#x27;t gain much from the abstractions that Kubernetes introduces, and the little that you gain will probably be outweighed by the cost of the complexities that lurk behind these abstractions.
评论 #31590514 未加载
moshloopalmost 3 years ago
High Availability, Scalability, Deployments, etc are NOT the goal of Kubernetes, they are features that are not exclusive to Kubernetes, nor is Kubernetes necessarily better at them then others.<p>The goal of Kubernetes is to improve the portability of people by introducing abstraction layers at the infrastructure layer - These abstractions can seem overly complex, but they are essential to meet the needs of all users (developers, operators, cloud providers, etc)<p>Before kubernetes in order for a developer to deploy an application they would need to (send email, create terraform&#x2F;cloudformation, run some commands, create ticket for loadbalancer team, etc) - these steps would rarely be same between companies or even between different teams in the same company.<p>After kubernetes you write a Deployment spec, and knowing how to write a deployment spec is portable to the next job. Sure there are many tools that introduce opinionated workflows over the essentially verbose configuration of base Kubernetes objects, and yes your next job may not use them, but understanding the building blocks, still make it faster than if every new company &#x2F; team did everything completely differently.<p>If you only have a single team&#x2F;application with limited employee churn - then the benefits may not outweigh the increased complexity.
评论 #31591424 未加载
habituealmost 3 years ago
The thing you&#x27;re noticing is the usual thing that happens when new labor saving technology is invented:<p>1. What people expect: less work needs to be done to get what you had before.<p>2. What people don&#x27;t expect: more is expected because what used to be hard is now simple<p>So while it may have taken a few weeks to set up a pet server before and as a stretch goal you may have made your app resilient to failures with backoff retry loops etc. Now that&#x27;s a trivial feature of the infrastructure, and you get monitoring with a quick helm deploy. The problems haven&#x27;t disappeared, you&#x27;re just operating on a different level of problems now. Now you have to worry about cascading failures, optimizing autoscaling to save money. You are optimizing your node groups to ensure your workloads have enough slack per machine to handle bursts of activity, but not so much slack that most of your capacity is wasted idling.<p>Meanwhile, your developers are building applications that are more complex because the capabilities are greater. They have worker queues that are designed to run on cheap spot instances. Your CI pipelines now do automatic rollouts, whereas before you used to hold back releases for 3 months because deploying was such a pain.<p>Fundamentally, what happens when your tools get better is you realize how badly things were being done before and your ambition increases.
rcontialmost 3 years ago
Because everything has gotten bigger and more complicated.<p>It&#x27;s like asking &quot;if the computer saves us all so much work, why do we have more people building computers than we ever had building typewriters&quot;?<p>Something can &quot;save labor&quot; and still consume more labor in aggregate due to growth.
评论 #31589700 未加载
jljljlalmost 3 years ago
I think this Kelsey Hightower quote has summarized my experience working with Kubernetes:<p>&gt; Kubernetes is a platform for building platforms. It&#x27;s a better place to start; not the endgame.<p><a href="https:&#x2F;&#x2F;twitter.com&#x2F;kelseyhightower&#x2F;status&#x2F;935252923721793536" rel="nofollow">https:&#x2F;&#x2F;twitter.com&#x2F;kelseyhightower&#x2F;status&#x2F;93525292372179353...</a><p>Everywhere I&#x27;ve worked, having developers use and develop Kubernetes directly has been really challenging -- there&#x27;s a lot of extra concepts, config files, and infrastructure you have to manage to do something basic, so Infra teams spend a lot of resources developing frameworks to reduce developer workloads.<p>The benefits of Kubernetes for scalability and fault tolerance are definitely worth the cost for growing companies, but it requires a lot of effort, and it&#x27;s easy to get wrong.<p>Shameless plug: I recently cofounded <a href="https:&#x2F;&#x2F;www.jetpack.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.jetpack.io&#x2F;</a> to try and build a better platform on Kubernetes. If you&#x27;re interested in trying it out, you can sign up on our website or email us at `demo [at] jetpack.io`.
zelphirkaltalmost 3 years ago
The short answer is: Because of Kubernetes.<p>The longer answer is: When you switch to Kubernetes, you are introducing _a lot_ of complexity, which, depending on your actual project, might not be inherent complexity. Yes, you get a shiny tool, but you also get a lot of more things to think about and to manage, to run that cluster, which in turn will require, that you get more devops on board.<p>Sure, there might be projects out there, where Kubernetes is the right solution, but before you switch to it, have a real long hard thinking about that and definitely explore simpler alternatives. It is not like Kubernetes is the only game in town. It is also not like Google invents any wheels with Kubernetes.<p>Not everyone is Google or Facebook or whatever. We need to stop adopting solutions just because they get hyped and used at big company. We need to look more at our real needs and avoid introducing unnecessary complexity.
评论 #31584862 未加载
评论 #31581812 未加载
caymanjimalmost 3 years ago
The premise of your question is invalid. Have you ever tried setting up a Kubernetes cluster and deploying apps in it? Kubernetes doesn&#x27;t save work, it adds work. In return, you get a lot of benefits, but it wasn&#x27;t designed to reduce human work, nor was it designed to eliminate devops jobs. It was designed for scalability and availability more than anything. Most people using Kubernetes should be using something simpler, but that&#x27;s a separate problem.
评论 #31581697 未加载
评论 #31582995 未加载
评论 #31581857 未加载
评论 #31581823 未加载
评论 #31581838 未加载
评论 #31584078 未加载
评论 #31583170 未加载
评论 #31581742 未加载
评论 #31581674 未加载
评论 #31584836 未加载
评论 #31581961 未加载
评论 #31584793 未加载
评论 #31582944 未加载
评论 #31585092 未加载
评论 #31584214 未加载
评论 #31588065 未加载
评论 #31586200 未加载
评论 #31581375 未加载
评论 #31581139 未加载
bombcaralmost 3 years ago
Because many many companies herd pets using kubernets.<p>The number of single-server setups with kubernetes thrown in for added complexity and buzzwords I’ve found is way too dang high.
评论 #31582015 未加载
MrBuddyCasinoalmost 3 years ago
&gt; &quot;If this old way of doing things is so error-prone, and it&#x27;s easier to use declarative solutions like Kubernetes, why does the solution seem to need sooo much work that the role of DevOps seems to dominate IT related job boards? Shouldn&#x27;t Kubernetes reduce the workload and need less men power?&quot;<p>Because we&#x27;re living in the stone age of DevOps. Feedback cycles take ages, languages are not typed and error prone, pipelines cannot be tested locally, and the field is evolving rapidly like FE javascript did for many years. Also I have a suspicion that the mindset of the average DevOps person has some resistance to actually using code, instead of yaml monstrosities.<p>There is light at the tunnel though:<p>- Pulumi (Terraform but with Code)<p>- dagger.io (modern CI&#x2F;CD pipelines)<p>Or maybe the future is something like ReplIt, where you don&#x27;t have to care about any of that stuff (AWS Lambdas suck btw).
评论 #31581022 未加载
评论 #31585083 未加载
rahenalmost 3 years ago
Kubernetes can really help bringing more scalability.<p>All you need is to rewrite your application (think microservices), reduce cold latency (get rid of anything VM based such as Java, or rewrite in Spring or Quarkus), use asynchronous RPC, and decouple compute and storage.<p>Then you need an elastic platform, for instance Kubernetes, with all the glue around such as Istio, and Prometheus, and Fluentd, and Grafana, Jaeger, Harbor, Jenkins, maybe Vault and Spinnaker.<p>Then you can finally have your production finely elastic, which 90% of companies do not need. Microservices are less performant, costlier, and harder to develop than n-tiers applications and monoliths, and <i>way</i> harder to debug. They&#x27;re just better at handling surges and fast scaling.<p>If what you want is:<p>- automated, predictable deployments<p>- stateless, declarative workloads<p>- something easy to scale<p>Then Docker Compose and Terraform is all you need.<p>If you also need orchestration and containers are your goal, then first try Docker Swarm. If you need to orchestrate various loads and containers are a mean and not a goal, then try Nomad.<p>Finally, if you will need most resources Kubernetes has to offer (kubectl api-resources), then yes, opt for it. Few companies actually have a need for the whole package, yet they have to support its full operational cost.<p>Most companies just pile up layers, then add yet a few more (Java VMs on top of containers on top of an orchestrator on top of x86 VMs on top of(...)), and barely notice the miserable efficiency of the whole stack. Well it&#x27;s using Kubernetes, it&#x27;s now &quot;modernized&quot;.
评论 #31581598 未加载
评论 #31582030 未加载
评论 #31581472 未加载
评论 #31581906 未加载
评论 #31582233 未加载
评论 #31583210 未加载
tapoxialmost 3 years ago
From my experience, Kubernetes drastically reduces the number of DevOps people required. My current place has a team of 5, compared to a similarly sized, vmware-centric place I worked at a decade ago with a team of 14.<p>But DevOps means many things because it&#x27;s not clearly defined, which also makes it difficult to hire for. It&#x27;s a &quot;jack-of-all-trades&quot; role that people somehow fell into and decided to do instead of more traditional software engineering.<p>Also, from what I&#x27;ve experienced from our internship program, CS programs are really bad at covering these fundamentals. Students aren&#x27;t learning such basics as version control, ci&#x2F;cd, cloud platforms, linux, etc.
评论 #31588131 未加载
评论 #31583115 未加载
评论 #31585759 未加载
oxplotalmost 3 years ago
Someone put it nicely when they said Kubernetes is like an operating system for containers. If you take linux as an analogy, it&#x27;s clearly a non-trivial investment to learn linux and learn enough to be effective and efficient in it. Further time perhaps needed to achieve the productivity, functionality and performance of what you were used to on Mac or Windows.<p>Kubernetes definitely achieves this goal well, and in a relatively portable way. But just like any other engineering decision, you should evaluate the trade offs of learning a completely new OS just to get a simple web site up, versus running a nginx instance with bunch of cgi scripts.
评论 #31583338 未加载
jedbergalmost 3 years ago
DevOps is a philosophy, not a job role. It&#x27;s the idea that developers deploy and operate their own code. An SRE is often someone who helps make that happen, by building the tools necessary for developers to operate their own code.<p>In a small organization, you can get away with a sysadmin running a Kubernetes cluster to enable that. In a larger org you&#x27;ll need SREs as well as Operations Engineers to build and maintain the tools you need to enable the engineers.
评论 #31589969 未加载
whalesaladalmost 3 years ago
Kubernetes is raw material, like concrete and lumber. It needs to be massaged&#x2F;crafted&#x2F;assembled into something that fits the use case. A &#x27;devops&#x27; engineer would leverage Kube to build a system, the same way a builder&#x2F;contractor would leverage raw materials, subcontractors, off the shelf components, etc to build a home or office.
评论 #31581532 未加载
codegeekalmost 3 years ago
Few reasons :<p>- Kubernetes is very complex to setup<p>- It is not needed for many use cases<p>- It is (hopefully) not the defacto and standard for devops<p>- Load Balancing is already a solved problem way before Kubernetes. For many use cases, you don&#x27;t need the complexity. Even things like Self Healing are kinda solved by AWS Auto Scaling for example.<p>- NOt every use case needs Kubernetes and its additional overhead&#x2F;complexity<p>- Most importantly, devops is not &quot;one size fits all&quot; magic wand that Kubernetes or any other tool can solve. Various nuances to consider and hence you need DevOps as a role.
techthumbalmost 3 years ago
K8S is not easy.<p><pre><code> It helps standardize: - deployments of containers - health checks - cron jobs - load balancing </code></pre> What is the &quot;old way&quot; of doing things?<p>Is it same&#x2F;similar across teams within and outside your organization.<p>If not, what would it cost to build consensus and shared understanding?<p>How would you build this consensus outside your organization?<p>For small organizations, one should do whatever makes them productive.<p>However, as soon as you need to standardize across teams and projects, you can either build your own standards and tooling or use something like K8S.<p><pre><code> Once you have K8S, the extensibility feature kicks in to address issues such as: - Encrypted comms between pods - Rotating short lived certificates </code></pre> I don&#x27;t love K8S.<p>However, if not K8S then, what alternative should we consider to build consensus and a shared understanding?
Seriominoalmost 3 years ago
As one person with kubernetes I can build and operate quite a big platform more secure and better than ever before.<p>Our current platform is much more stable, has more features, and bigger than what the prev team did.<p>There are plenty of things you can&#x27;t see like security or backup or scalability.<p>Backup were done app by app basis. Now you can do snapshots in k8s.<p>Security still is a mess. But now you can at least isolate stuff.<p>Scalability meant installing your application x times manually and configuring load balancer etc. Now you set it up per cluster.<p>Additional features you get with k8s: Auto scaling, high availability, health checks, self healing, standardization.<p>A lot of things got invented which lead to k8s like container or yaml.<p>Now with the operator pattern you can also replace admin and embed operational knowledge I to code.<p>Infrastructure was not ready to be controlled by code like this ever before.
viraptoralmost 3 years ago
It sure does reduce the amount of work. But there&#x27;s a lot that remains or just gets shifted to another area&#x2F;technology. Who&#x27;s setting up the image build pipeline? Who&#x27;s handling the scaling and capacity planning? Who&#x27;s planning how the deployments actually happen? Who&#x27;s setting up the system for monitoring everything? And tonnes of other things...<p>Kubernetes helps with: networking setup, consistent deployments, task distribution. That&#x27;s about it. It&#x27;s more standardised than plain VMs, but you still have to deal with the other 90% of work.
评论 #31581089 未加载
togaenalmost 3 years ago
Because software engineers can’t help but make things more complicated than they need to be.
edanmalmost 3 years ago
The easiest answer to your post is that you are looking at evidence which doesn&#x27;t necessarily mean what you think it means.<p>If k8s is as amazing and time saving as you would imagine, you&#x27;d <i>expect</i> many companies to want to adopt it, so you&#x27;d <i>expect</i> there to be lots of job postings!<p>It&#x27;s like saying &quot;if computers are such time savers, why do so many companies hire people that have knowledge in computers&quot;. It&#x27;s <i>because</i> this is a good tool that companies want to hire people with knowledge in that tool!
samskalmost 3 years ago
Simple, because they before the company had 2-3 beefy servers running some binaries and it handled all the load without problems.<p>Now because of new possibilities, and new development they want to switch to Kubernetes to have that new possibilities everyone is talking about, and now you have to build many new containers, configure k8s, autoscalling etc... and developers don&#x27;t know it (yet) and don&#x27;t have time to learn it.<p>So lets hire a DevOps (me) that will do it ;-)
wvhalmost 3 years ago
There&#x27;s a shift away from programs that run on actual computers to software that runs on clusters, a large conceptual computer. Whether ultimately Kubernetes-the-software is the answer or not I don&#x27;t know, but I don&#x27;t think we&#x27;re going back to installing packages on individual machines, as the benefits of the conceptual large computer are too great and the most logical way to solve challenges with scale and availability.<p>A lot of what is called DevOps goes into adapting software to this new mindset. A lot of that software is not written with best practices in mind, and likewise lots of tools are still in their infancy and have rough edges. I think it&#x27;s fair to say some time and resources go into learning new ways of doing things, and it might not be the best choice for everybody at this stage to spend those resources unless there&#x27;s an obvious need.
jstream67almost 3 years ago
As far as I can tell from doing years of contracting for non-FANG mid to large size companies -- they basically do their best to copy whatever trends they see coming out of FANG. There is no thought behind it.<p>Kubernetes and &#x27;DEVOPS&#x27; are the new hotness at non-FANG companies as they are always 5-10 years behind the trends. Expect to see more of it before it goes out of fashion.<p>Also DevOps is just a title. Nobody read the book, nobody is trying to create what the original guy at Google or whatever had in mind. It is just a all encompassing job doing the same activities that the sysadmin used to do. HR tells companies that they should rename their sysadmin departments to DevOps departments and everything else continues as normal.
JohnHaugelandalmost 3 years ago
Starting from &quot;if Kubernetes is the solution,&quot; you aren&#x27;t going to be able to get to the answer, because:<p>1. Kubernetes isn&#x27;t the solution 2. Kubernetes is expensive and extremely maintenance prone 3. Most of the companies I&#x27;ve seen switch to Kube I&#x27;ve seen switch away afterwards<p>Every time I&#x27;ve seen someone bring up Kubernetes as a solution, everyone at the table with first hand experience has immediately said no, loudly<p>Remember, there was a time at which someone wouldn&#x27;t have been laughed out of the room for suggesting Meteor stack, and right now people are taking GraphQL seriously<p>Kube doesn&#x27;t make sense until you have hundreds of servers, and devops makes sense at server #2
bashinatoralmost 3 years ago
Like cloud APIs, K8s replaces a ton of by-hand work that formerly made up the profession of systems administration (among others). I see my career progressions from sysadmin to devops as being a pretty natural development of &quot;automate your (old) job away&quot;. So today with cloud and k8s, I can be as productive as ten of my old selves fifteen years ago. Back then, it would have been almost unimaginable for a company like the one I&#x27;m with to be able to thrive and grow during its first 18-24 months with only a single &quot;IT&quot; staff who can still maintain a great work&#x2F;life balance.<p>TL; DR - K8s and cloud let me do the work of ten of my old selves.
durnygburalmost 3 years ago
Kubernetes and Angular are how Google burns resources to prevent any significant competition or innovation being created outside of their sphere of influence. Engineers who wank at sophistication usually receive the most attention and decisive power, btw that&#x27;s what keeps me from participating in interviews. Another reason is that IT engineers are such a low plankton that someone up in the hierarchy with massive indirect financial bonus for using this technology decides to hire &quot;Angular Developers&quot;, &quot;Kubernetes DevOps consultants&quot; and this triggers the hiring down to HR and recruiters who simply filter by keywords.
rbransonalmost 3 years ago
This is like asking: if writing code in a high level language is the solution, then why are there so many software engineering jobs?
pythopsalmost 3 years ago
DevOps is not only k8s. Think about DevOps as managing the whole infrastructure: setup ci&#x2F;cd pipelines, implementing infra-as-a-code, managing ML pipelines, implementing security policies ... DevOps is very wide
mferalmost 3 years ago
A few thoughts...<p>1) Kubernetes is an infra platform for the ops in DevOps. If developers need to spend a lot of time doing Kubernetes it takes away from their ability&#x2F;time to do their dev. So, there are a lot of platform teams who pull together tools to simplify the experience for devs or DevOps specialists who handle operating the workloads.<p>2) Kuberentes is, as Kelsey Hightower puts it, a platform to build platforms. You need DevOps&#x2F;SREs to do that.<p>3) Kubernetes is hard. The API is huge and it&#x27;s complex. The docs are limited.
评论 #31581094 未加载
评论 #31581154 未加载
raffraffraffalmost 3 years ago
I don&#x27;t think there are &quot;so many devops&quot; jobs. Everywhere I&#x27;ve worked in the last 15 years, the number of people managing everything from hardware up to developer tools and CI&#x2F;CD was tiny compared with the number of developers. Some start-ups dont bother with those people at all to begin with and regret it later. Then they hire a tiny team after years of neglecting these areas, and then expect the &quot;wings on the plane to be swapped out during flight&quot;. Those devops people are casually expected to be experts in process (incident&#x2F;problem management), cloud infra &#x2F; infra as code, db config &#x2F; replication, networking, security (IAM, SSO, network, OS), release &#x2F; deployment, monitoring &#x2F; metrics &#x2F; alerting &#x2F; tracing (not just deploying them but working with devs to implement observability in their code), dev tooling (code&#x2F;artifact repos, every brand of CICD pipelines &amp; runners) ... basically anything that isn&#x27;t software development. They&#x27;re also expected to be oncall for other teams in many companies.<p>Many years ago I worked at a large, old tech company where <i>all</i> of these areas had dedicated teams.<p>PS: how many people at your company &quot;really&quot; know Kubernetes inside out? And if it misbehaves, who do you expect to have the answer?
phoehnealmost 3 years ago
I think that part of the problem in general tech is that many developers don&#x27;t understand they&#x27;re being marketed to. I really have no opinion on whether or not K8s is a smart choice, and will save you time and effort, require more effort but provide benefits, or is a bad trade-off. But the crazy push for k8s as the one size fits all solution for everything that you get from some corners of the webs smells like hype cycle.
hsn915almost 3 years ago
There&#x27;s an argument to be made in general (which I don&#x27;t think applies here - but playing devil&#x27;s advocate) that says:<p>When technology makes previous difficult things easy, this technology will be used to do more things that were previously impossible.<p>I personally haven&#x27;t seen anyone use k8s to achieve things that were impossible before. They just use it because 1) They think everyone is using it 2) They don&#x27;t know how to do it any other way
thedougdalmost 3 years ago
Container adoption by workload is still pretty low. Most workloads are difficult to containerize because they&#x27;re commercial off the shelf software (cots), Windows based, etc. You need good people who can make the best of these situations and automate what they can with configuration management, image bakeries, CI&#x2F;CD pipelines, infra as code, and reverse engineering or bending that legacy app to run in a container.
throwaway892238almost 3 years ago
For the past 250 years, new machines have replaced old ways of working to make us more productive. But each new machine is more complicated than the last, requiring more technical jobs to address the new complexity in the machine. Kubernetes is just a new machine, and because so many businesses now want to run that machine, they need more maintenance crews that are trained on said machine. In order to have fewer people, we&#x27;d need to leverage economies of scale and specialization so that companies don&#x27;t need these new big complex machines. Even then, the appearance of fewer workers might just be jobs moved offshore where labor is cheaper.<p>It&#x27;s true that moving away from mutable state is a sea change that is (very) slowly engulfing the industry. But the tide is still very far out. The cloud is a pile of mutable state, leading to the same system instability and maintenance headaches that existed before the cloud, requiring new skills and workers to deal with. Redesigning the cloud to be immutable will take decades of re-engineering by vendors, and even when it&#x27;s done, we&#x27;ll still need economies of scale to reduce headcount.
GuB-42almost 3 years ago
I find the meaning of DevOps confusing.<p>Originally I thought it was a methodology assisted by a set of tools to make it easier for devs and ops (sys admins) to work together, mostly by giving both sides the same environment, usually in the form of docker containers.<p>Admins configure servers, or server pools since physical machines tend to be abstracted these days, set up applications, including the CI&#x2F;CD stuff, make sure everything is secure, up to date and in working order, etc... Devs write the code, and test it on the platform supplied by the admins.<p>And now I see all these DevOps jobs. I mean what does it means? You are dev or you are ops, so what does DevOps means? It doesn&#x27;t mean both, DevOps usually don&#x27;t write software, so DevOps is ops, maybe we could call them container administrators, like we have database administrators.<p>I think that the confusion between the DevOps methodology and the DevOps job title give the wrong idea. Someone needs to make all these servers work, calling it serverless just means there is another abstraction layer, and while abstraction has some benefits, it rarely lessens the workload, but it may change job titles, here sysadmin -&gt; DevOps.
muskmuskalmost 3 years ago
Because everyone and their dog insists on using way over complicated micro service architectures.<p>Wages does not count as cost of goods sold, so who cares about a couple of extra hires? Funding is easy.<p>Also you severely underestimate the amount of work that goes under DevOps. Everything from build servers to test and security infrastructure is usually handled by DevOps. It&#x27;s a massive surface area and it would be way worse without kubernetes.
autarchprincepsalmost 3 years ago
Well, if you did DevOps the way it is meant to be used, the idea is that the developers can do the minimal efford of the ops part, and you no longer need that role itself. So, depending on what a company means by DevOps, it could mean developers willing to that bit extra, and clearly we need ever more developers, or they could understand it as just a modern kind of ops, in which case they are NOT doing DevOps. Kubernetes has its complexities, but it certainly doesn&#x27;t require more people than previous methods. But what it does require, is people with new skills, and lots of companies want to move away from their old fields to this new, and therefore neeed to fill those roles, while people only begin to reeducate. Add to that, that more companies are doing more IT in more kinds of business segments, and in many countries the bigger generations are leaving for pension, with less people coming after. DevOps, true or not, is hardly the only field with a lack of enough educated people. You will find the same in lots of engineering fields.
drakonkaalmost 3 years ago
I think that K8s _could_ make the process of maintaining CI&#x2F;build&#x2F;deployment tasks much more hands-off and automated. But in practice we often use this new &quot;power&quot; as an opportunity to invent more fancy&#x2F;smart things to do, taking advantage of it to the point where it requires as much if not more maintenance as whatever came before.
oofnikalmost 3 years ago
The perception of a &quot;need for so much dev ops nowadays&quot; stems, in my view, from a skills mismatch in the market.<p>Division of labor and specialization are two natural results of any rapidly evolving industry. The tech industry is no exception. The problem is that there are currently comparatively quite a lot of ways to learn the skills necessary to become a competent web developer, backend engineer, data scientist, etc. Compared to these titles, the ways to learn the skills involved in designing, operating, and maintaining scalable cloud infrastructure have not kept up with market demand.<p>Kubernetes is not &quot;the&quot; solution, but it is one of several solutions to the problem of standardizing a trade skill for the purposes of making it transferrable. Nobody wants to go to work at a place where the skills they need to do their job well are both difficult to acquire and completely useless once they get a new job.
vegai_almost 3 years ago
&gt; If Kubernetes is the solution...<p>Yeah, you lost me already. This is a bit like asking why there are other languages besides Java.
moominalmost 3 years ago
Let me answer your question with another question: if Microsoft Word is so good, why are there so many people whose job it is to produce documents?<p>Now, I’m not saying k8s is as transformative as the word processor, but if it was, you’d probably expect to see more ops people, not fewer. They’d just be doing different things.
ac50hzalmost 3 years ago
Kubernetes is, amongst other things, a technical solution to the billing problem. Composable resources with unit costs permit organizations to charge profitably for such resources. There are also some advantages for organizations who need to purchase such resources, giving some clarity to the process.
bg24almost 3 years ago
It is a people problem. In a typical enterprise with multiple teams involved in every small thing, it is expected to see teams having their agenda and justifying their place&#x2F;time. Kubernetes is an elegant platform to do just that, because it is so extensible.<p>As part of my job, I see thousands of small and medium businesses happily embracing kubernetes. They do not have separate devops or security or infra folks. A few engineers do it all. Yes, there are challenges with so many moving parts and rapid releases with breaking APIs. But expect that to be fixed in coming years.<p>Why so many DevOps jobs? Are you noticing the jobs being eliminated, or are you just seeing more DevOps jobs being created?
kodahalmost 3 years ago
If you&#x27;re referring to the days of when systems engineers would run named fleets, then yeah, those days were nightmarish but for different reasons. Instead of debugging the Linux networking stack, I had to defer everything out to a team that ran a help desk to try to find time to investigate because I was locked out of access and tooling. I don&#x27;t miss those days one bit, though, it was fun to name components of my fleet.<p>A lot of companies moved to the cloud because their old data centers (or hosts) were driven by ticket systems instead of API&#x27;s and access management. What took three weeks was now solved in seconds; the beginning was fascinating without a doubt. Then companies realized they owned <i>none</i> of this virtualized infrastructure and were at the behest of a very large corporation who could make sweeping changes with little to no notice. Although Kubernetes was pitched as providing extra grease to the gears of the enterprise, and they weren&#x27;t wrong, that is not its total value to the enterprise.<p>The real value in Kubernetes running your own platform on someone elses hardware, especially to the degree where you can <i>eventually</i> free yourself from cloud provider lock-in that the above incurred. An example, if a company can spin up a team to create a database-as-a-service in Kubernetes clusters, then your RDS costs can shift dramatically down, and it develops a new level of capability and understanding that your company never had before.<p>I&#x27;m a SRE-SE, but I mostly use the title &quot;Distributed Systems Software Engineer&quot; because I feel that really fits what I do. DevOps is just a catch-all title for non-application-software tasks and roles at this point because it consumed so many things like &quot;release manager&quot;, &quot;QA&quot;, &quot;application operations&quot;, etc... Personally, I do not trust companies or teams that use this as some sort of distinguishable title.<p>To answer the last part of your question, &quot;Why are DevOps everywhere&quot;, because companies have diverse needs in terms of supporting software and software development, and DevOps is basically the catch all email of software engineering.
hotpotamusalmost 3 years ago
My glib response is that automation is a lot of work.
chazualmost 3 years ago
&gt; one could argue that the role of sys admins just got more specialized<p>Read the introduction to the SRE book, available free online [1] - and you&#x27;ll see that SRE is defined _in contrast to_ systems administration. Its specifically defined as software engineering with the goal of managing operational complexity.<p>Modern shops&#x27; failure to understand this (most SREs haven&#x27;t read any of the book, let alone stopped to think what SRE actually means) is IMHO a primary factor in the failure of most &quot;devops transformations&quot;<p>[1] <a href="https:&#x2F;&#x2F;sre.google&#x2F;sre-book&#x2F;part-I-introduction&#x2F;" rel="nofollow">https:&#x2F;&#x2F;sre.google&#x2F;sre-book&#x2F;part-I-introduction&#x2F;</a>
aaccountalmost 3 years ago
Kubernetes isn&#x27;t a solution. It just pushes the problem down the line. Fundamental problem is most software developed these days aren&#x27;t packaged properly. The devs just ship the code to production. The hacks that they used to get the development going stays in production.<p>For example, you don&#x27;t need a docker container to deploy Mysql, although you can deploy Mysql inside one. But most development processors are so badly managed that one product has many conflicting libraries and dependencies. Eventual requiring each component to be isolated within its own container. Finally leading to an unmanageable number of containers requiring Kubernetes to manage the mess.
iknownothowalmost 3 years ago
From what I&#x27;ve seen, most developers either aren&#x27;t systems thinkers or are too busy to take a step back and spot and eliminate redundancy. The best way I can explain this is that many software processes and pipelines within companies are usually complex Directed Acyclic Graphs and very often Transitive Reduction [1] is not applied to these processes.<p>At the end of transitive reduction, you end up with a graph with all redundant dependencies removed but functionally, it is still the same graph.<p>[1] <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Transitive_reduction" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Transitive_reduction</a>
kevwilalmost 3 years ago
Because it solves 5 problems while creating 4 more in the most complicated way possible. Seriously. It makes some things better, no question, but it is very complicated for some (most) people and is very time-consuming.
raygelogicalmost 3 years ago
I think it comes down to jevon&#x27;s paradox--if your demand is unbounded, making production more efficient doesnt reduce inputs, it makes you produce more. in the case of k8s, more reliable, more scalable, etc
Art9681almost 3 years ago
To put it simply, anything that increases efficiency most likely increases the desire to scale. There is a ton of demand because everyone wants to scale to billions of users. Kubernetes is one way to get there until the next thing comes along.<p>Also, there is more demand than supply. Everyone wants to do Kubernetes and DevOps pipelines but the amount of folks experienced in those fields is small compared with demand.<p>It requires knowledge in many domains because it abstracts the entire data center. So you can’t just take a mid level sysadmin or developer and expect them to jump right in.
throwaway894345almost 3 years ago
I can&#x27;t speak for everyone, but Kubernetes lets my company do more with the same amount of manpower, so we use that manpower to do more stuff rather than reduce our SRE&#x2F;sysadmin footprint.
ltbarcly3almost 3 years ago
Kubernetes is a bad approximation to the infrastructure solution at a place that has different problems than you have. It only complicates and makes everything worse and more expensive to maintain.
jasonshaevalmost 3 years ago
Something else to consider: what % of server workloads actually run on kubernetes?<p>I have no data to back this up, but my hypothesis is that if you zoom out, and look across the entire industry, the % is vanishingly small. It may seem like every company is running or adopting kubernetes within our bubbles but our perspective is biased.<p>(Note: I&#x27;m not espousing an opinion on kubernetes itself, just about it&#x27;s total adoption across the entire industry and how that effects the number of devops&#x2F;sysadmin&#x2F;SRE roles.
Garlefalmost 3 years ago
My short hot take on DevOps and infrastructure as code: &quot;Infrastructure as code has it backwards&quot;<p>-------<p>Take the development of programming as an analogy:<p>* Punched cards<p>* Programming in assembler<p>* Goto<p>* Callable procedures<p>* Proper functions<p>* Compiled languages (There used to be companies just selling a big C compiler)<p>* Interpreters&#x2F;JIT compilation&#x2F;...<p>* ...<p>-------<p>And here&#x27;s a similar progression:<p>* Servers in your basement<p>* Some server rented where you login via SSH<p>* Docker&#x2F;Kubernetes&#x2F;Clusters in the cloud<p>* Lambdas and other serverless solutions<p>* ...<p>As a sibling comment pointed out: We&#x27;re still in the stone ages. Somewhere between punch cards and proper functions.<p>-------<p>To rephrase it in reversal: &quot;Infrastructure as code has it backwards&quot;<p>Right now, we manually partition our code, then provision infrastructure and then push our code to this infrastructure.<p>Instead, we should take a high level language that compiles to the cloud:<p>Just write your business logic and the the compiler figures out what clusters&#x2F;services&#x2F;event-buses&#x2F;databases&#x2F;etc to use; It will automatically partition the code, package, build, provision, push, update. And there&#x27;s even room for something like JIT: Based on the load parts of your logic get, the compiler could switch databases. Also: Automated data migrations based on your code updates. But I guess we&#x27;ll end up with a big distributed virtual machine that scales infinitely and completely hides the existence of servers.<p>There&#x27;s already some glimpses of this future: No-code, the magic pulumi does with lambdas, several language projects that get rid of the file system and just store the AST in a DB, smart contracts where you pay for single computation steps...<p>-------<p>But back to the question: Kubernetes&#x2F;AWS&#x2F;etc is a lot of work because it&#x27;s not really THE SOLUTION.
评论 #31581579 未加载
评论 #31581998 未加载
rufiusalmost 3 years ago
The problems weren’t simplified. The problems were collected together into a single large platform.<p>However, as with most large platforms, they require ceremonies and priests (devops engineers). Someone has to make the offerings.<p>Much as people would like to believe, you don’t reduce complexity, you just shuffle it around and there’s an exchange rate. Even with solutions like Fly.io, you’re not getting rid of complexity in aggregate, you’re paying them to manage it (I.e. the exchange rate).
taylodlalmost 3 years ago
The DevOps jobs are to configure and maintain Kubernetes. The problem is K8S is a general-purpose solution that&#x27;s being used for managing an application comprised of container images. It&#x27;s way overcomplicated for that task, but that&#x27;s already been noted here in this thread. I know of proprietary solutions that greatly simplify DevOps compared to K8S, but they&#x27;re proprietary.
dtechalmost 3 years ago
Because they&#x27;re also doing more things. 20 years ago you might have a single server in the broom closet handled by the sysadmin and developers running tests locally (if you were lucky), nowadays we want all those things you mentioned for production, and CI&#x2F;CD for developing.<p>I&#x27;d wager providing all those things 20 years ago without k8s and CI tools would&#x27;ve required relatively more sysadmins
mkl95almost 3 years ago
Kubernetes solves a subset of your usual deployment problems and replaces it with a set of its own. I&#x27;d call it a tradeoff, but it&#x27;s such a leaky abstraction that unless your Kubernetes fu is really strong it&#x27;s mostly going to make your life harder. It&#x27;s a nice keyword to have in your CV though. Most jobs that &quot;require&quot; it don&#x27;t actually use it.
atmosxalmost 3 years ago
The answer to your question is this: _complexity does not go away, we just move complexity to another layer_.<p>Kubernetes buys the org some things but it is complex and you have to know how to write the app in a certain _way_ in order of the app to be &quot;scalable, etc.&quot;.<p>There are no free meals or as someone smarter than me said long time ago &quot;there is no royal road to learning&quot;.
pantulisalmost 3 years ago
When compared to a Linode VPS box that you provision and setup with Ansible yes, it&#x27;s much more work (and much more cryptic at that) but also Kubernetes covers for a lot of failure scenarios that a simple Linux box would not be able to cope with while adding many other benefits.<p>The question is: do _you_ need this added complexity? That humble VPS can scale _a lot_ too.
fertrevinoalmost 3 years ago
DevOps has its days numbered. What you see is the wide adoption of DevOps in every industry. This trend is likely to plateau and decline in the next couple of years, after which DevOps practices are taken for granted and become rather an expectation from customers. The DevOps problem only needs to be solved once, public cloud providers are almost there.
评论 #31589075 未加载
wecloudproalmost 3 years ago
If you use Kubernetes, you need custom operators and controllers in order to a have feature rich environment that can support your applications and support all CI&#x2F;CD instrumentation.<p>Then, for designing, implementing and maintaining all these extra elements is why you need a devops guy. Also not mentioning how extremely fast things are moving in the cloud era.
评论 #31588495 未加载
oznogalmost 3 years ago
Clouds have multiple conflicts of interest in favor of:<p>1. Dethroning sysadmins introducing devops in the middle (&quot;devs&quot; capable of deploying in the cloud but unable to control the OS).<p>2. Increase CPU and other resource consumption (promoting heavy frameworks, unable to pass the Doherty threshold in 2022).<p>For clouds, increasing complexity and costs almost always expands the business.
benlivengoodalmost 3 years ago
The cloud providers haven&#x27;t closed the DevOps loop yet is why. I mostly have experience with Google&#x27;s stuff, so I will take Cloud Build as an example. It provides the framework of CI&#x2F;CD, but there isn&#x27;t automatic build+deploy for every software and framework ecosystem.<p>What I&#x27;m trying to do at work is simplify the build ecosystem for all languages to the familiar `configure ; make ; make test ; make install` sequence that works well for OSS. If every ecosystem fit into that metaphor then the loop could be closed pretty effectively by any cloud provider by letting users add repositories to the CI&#x2F;CD framework and it would do e.g. a standard docker build (configure, make, test), docker push (make install 1&#x2F;2), and kubectl rollout to k8s at the end (remainder of make install).<p>Blockers:<p>Liveness and readiness checks are not automatic; they need to be part of each language*framework so that developers don&#x27;t have to implement them by hand. At Google they just sort of came with the default HTTPServer class in your language of choice, with callbacks or promises you knew you had to invoke&#x2F;complete when the instance was ready to serve. It helped that only 4 languages were officially supported.<p>Integration tests have no standard format and many deployments are combinations of artifacts built from multiple repositories, and configuration is not standardized (configmaps or ENVs? Both? External source of feature flags?) so all integration tests are manual work.<p>Metrics and SLOs are manual work; only humans can decide what actual properties of the system are meaningful to measure for the overall health of the system beyond simply readiness&#x2F;liveness checks. Without key metrics automatic rollouts are fragile. This also means autoscaling isn&#x27;t truly automatic; you need quality load metrics to scale properly. Not all services are CPU or RAM limited, and sometimes the limit varies depending on traffic.<p>All that said, cloud functions (Google, AWS, or other versions) are beyond DevOps. If you don&#x27;t need high-QPS services then use cloud functions. They bypass 90% of the headaches of having code running on https endpoints. Most people don&#x27;t have high-QPS (10K requests per second per shard) services, and could probably get away with cloud functions (1000 RPS on GCP). Everyone else pays the DevOps or hopefully the SRE tax for now. But we&#x27;re still trying to automate ourselves out of a job; we don&#x27;t want to be doing DevOps day-to-day either.
unity1001almost 3 years ago
Kubernetes just solves the long-standing problems at a certain level of infra.<p>But like everything else in tech, solution of the problems at a given level enables everyone to do much more and build more complex systems that do more complicated stuff on top of that level. We always push the frontier forward with every new solution.
ciguyalmost 3 years ago
In short - Kubernetes solves a lot of very complex problems. The problems are complex enough that the solutions are also complex and require specialized knowledge to implement well. Most teams using Kubernetes probably shouldn&#x27;t be, but tech companies like to over-optimize for future scale.
eric4smithalmost 3 years ago
This is the same thing when people say going to the cloud is not easier.<p>It’s not.<p>You still need Devops staff.<p>Cloud just provisions the hardware and OS. You still have to be responsible for the apps. You still have to be responsible for IO, memory, cpu and networking capacity.<p>You still need to make sure your apps are able to run on cloud - whether metal or k8s.
quickthrower2almost 3 years ago
Kubernetes is not the solution to completely automating ops so that you don’t have to employ anyone<p>The solution to that is PaaS (Platform as a Service), and you can start a startup with almost no devops knowledge using things like Heroku and it’s myriad competitors from startups to AWS offerings.
huklalmost 3 years ago
Kubernetes and co do not reduce the amount of work - it’s just shifted to the next abstraction layer. Before when DevOps meant „you build it - you run it“ we removed dedicated ops teams to which the code was thrown over the fence and to reduce the animosity and friction between dev and ops. This was great but now all the hips companies have dedicated ops teams only that they are now called „platform teams“. Instead of code artefacts it is now containers that are thrown over the fence and now the ops part became so complex that separating dev and ops again seems reasonable. Luckily for me I managed to keep the good old DevOps of working, developing code and running it or bare metal servers with FreeBSD and Jails - even converting an existing Kubernetes setup back to bare metal. In my opinion the platformisation of the internet infrastructure isn’t a desirable state, monocultures are too and for the vast majority of projects kubernetes is overkill as they won’t ever reach the scale that would justify a kubernetes setup. It‘s like the milage fear for EV cars - but I guess everyone wants to hit facebook or google scale and that desire misinforms the early infrastructure architecture. That is just my 40 years old grey beard view which you can happily ignore whilst flying amongst the clouds :)
politicianalmost 3 years ago
It’s the recognition on the part of companies that cloud providers don’t provide a turnkey solution.
dogman144almost 3 years ago
Because K8s is the very end of a long road, and even when that is done and setup, cloud eng work, shifts to CI&#x2F;CD, data eng, significant networking maintenance, and IAM&#x2F;account wrangling will keep the devops&#x27;ers employed. SRE is a golden goose job IMO
mastazialmost 3 years ago
&gt; The platform of choice is mostly Kubernetes these days<p>Is it? These days I see SAM or Serverless Framework or other FaaS solutions all around me and it seems that everyone is migrating away from ECS&#x2F;EKS&#x2F;containers, it might be my own particular bubble though.
mmcnlalmost 3 years ago
You&#x27;re looking at only infrastructure costs, but not at benefits. Being able to autonomously deploy an application in production increases your team&#x27;s velocity by orders of magnitude, e.g. faster time-to-market, faster feedback loops, etc.
djohnstonalmost 3 years ago
DevOps is basically the &quot;tool smith&quot; from Mythical Man Month&#x27;s surgical team isomorphism. Any sufficiently large (&gt;10) team of engineers will benefit immensely from a specialist focused on improving internal developer efficiency.
inportbalmost 3 years ago
Even though Kubernetes could reduce the workload and might require less manpower in some cases, it&#x27;s still a beast that requires management. So DevOps has shifted from managing traditional infrastructure to managing Kubernetes configurations.
mbrodersenalmost 3 years ago
DevOps are supposed to be part of the software development team. NOT a separate department. That’s the difference between SysAdmins and DevOps. It’s in the name! Developers (on a team that run) Operations (of the teams products). DevOps.
fartcannonalmost 3 years ago
I think it was originally pushed as a way to get more people to use cloud platforms. And who better than Google to host that which they created?<p>Luckily its from the functionally less evil google days and open source so it is possible to use anywhere.
aristofunalmost 3 years ago
Kubernetes is just heavily overegineered and overmarketed thing. Let’s face the truth.
haspokalmost 3 years ago
It&#x27;s like saying that you won&#x27;t need human workers because you&#x27;ll have robots doing the work. Aha, sure, but who is going to program those robots?...
mr_toadalmost 3 years ago
<a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Jevons_paradox" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Jevons_paradox</a>
flyinprogrammeralmost 3 years ago
Because it primarily wasn&#x27;t built for developers. It was built to keep sys admins relevant and give vendors a common place to sell their vaporware.
评论 #31581322 未加载
pabs3almost 3 years ago
I keep wondering when the systemd folks will come up with an orchestration layer over systemd-nspawn&#x2F;systemd-machined to replace Kubernetes.
mcharezinskialmost 3 years ago
I&#x27;d love to see a movement where more engineers write tooling in-house to solve technical problems. Not adapting existing and promoted ones.
lumostalmost 3 years ago
I&#x27;ve seen a general blurring of the lines between these roles. But a common theme is that if you have a dedicated &quot;role&quot; for something, they will prefer tools which cater to their &quot;role&quot;. This is both a good thing for companies who benefit from further optimization within that &quot;role&quot;, and a bad thing for companies who do not.<p>Kubernetes is a powerful tool for &quot;DevOps&quot; roles. It provides an immense array of configuration, and largely replaces many OpenStack, Xen, or VMWare type environments. You can build powerful internal workflows on it to colocate many services on one compute fleet while maintaining developer velocity - which can translate to large margin improvements for some firms. This comes at a cost that you are likely to need a Kubernetes team, and potentially a dev tooling team to make it all work. On a large compute environment, the latter costs don&#x27;t effect the big picture.<p>Now on the other hand, more teams than you would expect are just fine on Heroku&#x2F;AppEngine&#x2F;AppRunner&#x2F;Lambda. These teams tend to pay the cost of not having a dedicated dev tooling team through more expensive compute, and sub-optimal tooling. The benefit here though is that &quot;more expensive compute&quot; may mean a fraction of a salary in many environments, and &quot;sub-optimal&quot; tooling may mean a production grade SaaS offering that has a few rough edges you talk to the vendor about.<p>IME it&#x27;s much cheaper&#x2F;lower risk to choose the latter in the long-run. The apparent savings from option 1 eventually turn into tech debt as the shiny tools get old, and migrating to newer&#x2F;cheaper compute options becomes more expensive. I once built a colo facility which resulted in a 4x reduction in monthly recurring expenses (including salaries) for the same <i>compute</i> footprint, 1 year into the lifetime of the facility the former cloud provider reduced prices by ~30%. Around 6 months into the facility the DataScience team suffered attrition, resulting in fewer compute needs. At the 1.5 year mark the team begged for a flip to SSDs as they were having latency issues (a point of initial contention with the team that SSDs should have been used in the first place). Over the 3 year expected lifespan of the facility there were about ~2.5 months of ramp up&#x2F;migration work which impacted ROI.<p>Overall, in hindsight, I&#x27;d say at best we achieved a 1.5x reduction in compute expenses compared to the alternative of tooling improvements, cloud cost reductions, and compute optimization. I now seek the tool which provides the lowest friction abstraction as at the worst case I can simply migrate to something cheaper - investing in compute infra has a crazy level of depreciation.
jrockwayalmost 3 years ago
Here&#x27;s my thought on the current state of the industry. DevOps at some point was not a specialty that you hired for, it was a way of thinking about your team&#x27;s responsibility. Your team would make an application and your team would run that in production. If you wanted to test things before deploying, you would do that. If you wanted automated deploys, you would set that up. No middleman with competing concerns between you and your users.<p>Eventually, people had a hard time finding well-rounded individuals that could design, develop, test, and deploy software. It seems to be a rare skillset, and people are resigned to not being able to hire for that kind of role. So, all of these ancillary concerns got split off into separate teams. You have a design team, a software engineering team, a test engineering team, operations, and so on. DevOps changed from &quot;developers that operate their software&quot; to &quot;developer operations&quot;, which is just your 1990s operations team with a new name. You the developer want something, it goes on a backlog for some other team, you wait 6-8 years, you get your thing.<p>All the complexity of the devops world comes from having one team writing the software and one team running the software. An example are service meshes. They are super popular right now, and everyone and their mother is writing one and selling it for tens of thousands of dollars per year. To the software engineer, having two applications communicate over TLS is pretty simple; you read the certificates and keys from disk or an environment variable, throw them into a tls.Config, and give that tls.Config to your internal servers and internal clients. But, what happens in the real world is that the organization says something like &quot;all apps must use mTLS by January 2023&quot;. The software team says &quot;meh, we don&#x27;t care, we&#x27;ll get to it when we get to it&quot;. So the poor devops team is stuck figuring out some way to make it work. The end result is a Kubernetes admission controller that injects sidecars into every deployment, which provision TLS keys from a central server at application startup time. The sidecars then adjust iptables rules so that all outgoing connections from the original application go through the proxy, and if some distributed policy says that the connection is supposed to be mTLS, it makes that happen. Basically, because nobody on the dev team was willing to spend 15 minutes learning how to make this all work, it got bolted on by $100k worth of consultants, all for a worse result than just typing in a very small number of lines of code by yourself. That&#x27;s the state of devops. The people writing the software won&#x27;t run it, so you have to add complexity to get what the organization wants.<p>I think it&#x27;s terrible, but that&#x27;s the fundamental disconnect. When you need to change how software works without being able to edit the code, the workarounds get increasingly complicated.<p>As always, what looks like a software complexity problem is actually an organizational complexity problem. The way I&#x27;ve managed this in the past is to organize a lot of knowledge sharing, and make a conscious effort to avoid hiring too many specialists. At my current job my team used to make a SaaS product, and our team was a combination of backend software engineers, frontend software engineers, and some engineers with experience with operations. We were one team; frontend engineers would write Go code, backend engineers would make React changes, and we all did operational drills (&quot;game days&quot;) once a week. The result was a very well-rounded team. Everyone could deploy to production. Everyone could be on call. Everyone could fix problems outside of their official area of expertise. I wouldn&#x27;t have it any other way. The industry, however, deeply disagrees with that approach. So you&#x27;re going to have testing teams, devops teams, etc.
mountainriveralmost 3 years ago
Why aren’t we working 3 day weeks when we have all this automation power today? Like all things in life the bar just gets raised
kristianpalmost 3 years ago
If x is the solution, why are there so many &lt;x related&gt; jobs?<p>Economics says that as something becomes cheaper, demand increases.
broknbottlealmost 3 years ago
Because coding in Yamllang and Jsonlang is superior to old and archaic languages like Rust and Golang.
评论 #31589362 未加载
musicalealmost 3 years ago
&quot;To Kubernetes! The cause of - and solution to - all of life&#x27;s problems!&quot;
imwillofficialalmost 3 years ago
Scale, we are using so much more IT infra now. Old sysadmin ways don’t scale well.
otabdeveloper4almost 3 years ago
Yes, it is the solution for keeping DevOps employed and happily compensated.
BirAdamalmost 3 years ago
So, I am old enough that when I started my career I was just a &quot;system administrator&quot; who happened (rather luckily) to work primarily with BSD and Linux servers. At that time, I was still learning a lot. I eventually learned enough and gained enough experience to become a &quot;systems engineer&quot; which meant that I could architect solutions for customers of my employer. I then became a senior systems engineer. Throughout this entire time things like Chef, Puppet, ansible, and Salt were not widely used even after they were created. Red Hat pushed ansible really really hard once it came out, and config management became a thing. The combination of config management systems with containers created two new roles: DevOps, SRE. Servers became VMs, which in turn became container platforms. Config managers took the place of version control and a bash script. CI&#x2F;CD became weirder. In times past, you would have something like HAproxy on FreeBSD, which would then send traffic to Apache&#x2F;Nginx servers, which in turn sent traffic to PHP servers, which called data from database servers and an NFS cluster. Now, behind the scenes, you may still have HAproxy or other load balancers, but those are combined with something similar to OpenStack with an underlying storage system like Ceph. All of that may get partnered with geo-aware DNS if you&#x27;re really fancy. Systems engineers and admins are still managing that stuff behind the scenes at Azure, AWS, Google, RackSpace, Cloudflare, DigitalOcean, and other places (or at least I imagine so). There are also engineers who specialize in OpenStack. Most, however, have transitioned to the new roles of DevOps or SRE, because the need for highly skilled SEs and SAs has waned.<p>Essentially, these roles have narrowed the focus of system administrators and systems engineers. In one, you are concerned with CI&#x2F;CD, and in the other you are making and maintaining cloudy solutions for people. This is yet another layer of abstraction for people, but it also means that most people do not know how to configure underlying software anymore. Because they lack knowledge of how to configure underlying software, they also require automation frameworks. They now do not know how to automate their workflows with Bash, Ruby, Python, or anything else. They need the cloud system to do it for them, which means that they get very vendor locked.<p>EDIT: the plus side of a new abstraction layer is cheaper tech departments at non-tech companies (fewer and cheaper personnel); which also means that pretty much everyone wants to be a software developer now, and very few people want to be SAs, SEs, DOEs, or SREs; you have to know everybit as much but you get paid much less.<p>All of this may bust. Increasingly, more and more people are becoming wary of monopolistic tech giants. The cost of their datacenters on the planet is increasingly rapidly. The governments of the world are growing wary of their increasing power. For businesses, complete reliance on a third party who has vastly more power isn&#x27;t as palatable as it used to be. We may see a resurgence of smaller DCs and bare metal deployment, but any such change would only happen if another massive tech bust occurs. The reality that I see is that we may see both models live in tandem indefinitely, as there are differing use-cases that make either more suitable.
eeZah7Uxalmost 3 years ago
Because Kubernetes automates away 4 jobs by creating the need for 5.
merbalmost 3 years ago
btw. kubernetes is just a scheduler. you give kubernetes a definition and it will schedule the things according to your definition. everything else is basically just an addon.
janosdebugsalmost 3 years ago
Kubernetes is insanely complex and modular. Just yesterday I was looking at the source code and the code part I knew was replaced by yet another pluggable system. Instead of consolidating into a well-understoof set of features, Kubernetes is exploding with complexity, so it&#x27;s almost impossible to &quot;build it yourself&quot; for a production environment.<p>However, there are plenty of companies that will sell you a system, including varying levels of support. You then, of course, have to hire your own DevOps engineers that will deal with the areas the support doesn&#x27;t cover, which, given the complexity, is still an awful lot. Or you do everything in-house, which means hiring even more people.<p>TL;DR DevOps engineers won&#x27;t be out of the job anytime soon. Same for Kubernetes developers.
fancyfaithalmost 3 years ago
Checkout jetpack.io they are trying to solve exactly that
znpyalmost 3 years ago
Because kubernetes is both the problem and the solution.
zxcvbnmalmost 3 years ago
because it&#x27;s an overengineered hype that does not reduce complexity, only shovels it around, turning simple problems into obscure ones
lachlanwhitealmost 3 years ago
It isn&#x27;t the solution :)
kulikalovalmost 3 years ago
Tl;dr: Kubernetes is not &quot;the platform of choice. There is no universal tool. That&#x27;s why you need system architects, DevOps, etc.
评论 #31581628 未加载
blodkorvalmost 3 years ago
instead of 3-4 devops guys, you now only need 1-2 really good kubernetes guy.
throwaway787544almost 3 years ago
DevOps isn&#x27;t a job. DevOps is a system to work with people directly and find out what they need and give them things that enable them to get their job done faster, while also getting enough information to make sure the product stays online and reliable. What people call &quot;a DevOps role&quot; today is just sysadmin or sysop or syseng or SRE.<p>Back in the day we cobbled together solutions out of different parts because it gave us a strategic advantage over monolithic commercial solutions. It was cheaper, but it was also easy to customize and fit to product &amp; user needs. Yes configuration management was a nightmare, and it came back from the dead as Terraform, because instead of an OS with mutable state we now have a Cloud with mutable state. Docker and Packer and a few other solutions have fixed a lot of the mutable state issues, but databases are still flawed and SaaS is still just a mucky mess of unversioned mutable state and nonstandard uncomposeable poorly documented APIs.<p>With Kubernetes, we&#x27;re back in the land of commercial monolithic products. Technically you can build it yourself and customize it all, but it&#x27;s expensive and time consuming and difficult because of how many components there are tied together. It &quot;gives you everything you need&quot; the way the International Space Station does. Do you need a space station, or a barn?<p>People get so wrapped up in terminology. Declarative doesn&#x27;t mean anything other than &quot;not procedural&quot;; it&#x27;s not <i>better</i> than procedural, it&#x27;s just <i>different</i>. Plenty of declarative things are a tire fire. Infrastructure as Code just means &quot;there is some code that is committed to git that can manage my servers&quot;. A shell script calling AWS CLI is IaC. Doesn&#x27;t make it a good solution.<p>You can&#x27;t just install a piece of software and be done. That&#x27;s the entire point of the DevOps movement, really. It&#x27;s not about what you use, it&#x27;s all about how you use it. Work with humans to figure out what will work for your specific situation. Use your brain. Don&#x27;t just install some software because it&#x27;s trendy and hope it will fix all your problems.
评论 #31582034 未加载