loading...

Discussion on: What is the most potentially-revolutionary software currently being developed?

Collapse
downey profile image
Tim Downey

I think a lot of the work in the open source cloud infrastructure space has a high impact on the entire software ecosystem. I'm talking about most of the projects that fall under the Cloud Native Computing Foundation (CNCF) umbrella -- things like Prometheus, Envoy, containerd, etc. -- as well as "cloud native adjacent" stuff like Firecracker or Hashicorp's OSS offerings.

Most of all, though, I want to focus on Kubernetes. 🀩

Kubernetes has democratized the infrastructure automation capabilities of the hyperscalers. It provides a declarative, "self-healing", platform for deploying and running workloads that is (mostly) cloud agnostic. That said, it's still pretty complicated. Fortunately Kubernetes can act as a set of building blocks for building further abstractions on top of it! Kelsey Hightower sums this up better than I ever could in a tweet:

Projects like OpenFaas, Knative, and Cloud Foundry for Kubernetes (I work on this, so shameless plug) enhance Kubernetes further by providing full serverless and PaaS (Platform as a Service) experiences for developers.

By relying on Kubernetes and platforms built on top of it, developers can spend less time reinventing the wheel when it comes to infrastructure and more time developing applications that actually serve their users' needs.

In short Kubernetes and other Cloud Native projects provide devs with the infrastructure automation capabilities of the tech giants and this itself acts as a giant springboard for everything that is later built on top of it.

Disclaimer: I'm biased here cause I work with this stuff all day and would like to believe what I spend time on is meaningful. πŸ˜…

Collapse
charlesdlandau profile image
Charles Landau

I would argue that cloud native is the key innovation here, and that Kubernetes is a great option among many viable platform-for-platforms solutions. (Nomad comes to mind.)

While k8s is an incredible project, I've come to sense that the Cloud Native movement is going through a "DevOps is not tools" phase. In their excellent book, Justin Garrison and Kris Nova stress time and again how the business, culture, and tools must also align in order to get the most out of tools like k8s.

As a result I have increasingly come to see the value of Kubernetes as an add-on to the much more important value of realizing a business and technical process that is capable of defining a pod spec regardless of the syntax.

None of which, I think, contradicts what you said, but I think it's easy to miss.

Collapse
downey profile image
Tim Downey

Yep, completely agree that tools alone won't be the force multiplier that folks may be expecting. But the existence of these tools certainly makes it possible. :)

A skilled platform team and the right practices can enable hundreds of developers with k8s. :)

Collapse
srleyva profile image
Stephen Leyva (He/Him)

I kinda think what kubernetes has done is establish a common language to declare your application deployments. The API is what’s amazing here. An example of this is how Amazon put the API around fargate. Eventually tho, the kubernetes underlying services will fade into the back ground. What’s a kubelet and why is it running my c?

Collapse
downey profile image
Tim Downey

Ya, I've heard folks describe it as being a "common dial tone" for the cloud.

Eventually tho, the kubernetes underlying services will fade into the back ground.

This is something I'm looking forward to. 😌 Developing nicer and nicer abstractions will continue to lower the barrier to entry to software development. πŸ‘

Thread Thread
nhh profile image
Niklas

Effectively saying, using kubernetes lowers the barrier of entering software development? πŸ‘€

Thread Thread
downey profile image
Tim Downey

Maybe what I said is a little broad... I'm just rattling off comments here. πŸ˜‚

I don't believe Kubernetes lowers the barrier of entry to the field of software development, per se. In fact if someone is starting out and wanting to learn to code it's probably at best a distraction. I do believe, though, it lowers the barrier to entry for writing production-grade software that runs at scale. It provides:

  • A common declarative way of deploying changes and running containers
  • Ability to autoscale when under load
  • Fault tolerance and self-healing capabilities when application instances crash
  • Tons of adjacent software works with it (service meshes, logging systems, etc.)
  • Ingress Controllers provide self-service APIs for configuring external routing
  • Much more... just listing off the first things that come to mind

Things that you or someone in your organization would have to do themselves and perhaps do manually. When used correctly it can save a lot of time and more devs can focus on writing their own software instead of learning how to do all of this. That's what I meant. :)

That said, like what @charlesdlandau said above, Kubernetes alone is just a tool and it's not as simple as just throwing a legacy application into a container and calling it a day.

Thread Thread
nhh profile image
Niklas

Good take! I believe k8s has its place but waaay to many people with small to medium business jump on the hype train without any justification for using k8s. There is a huge gap betweeen cost and benefit in the low/medium end.