We were lucky enough to get together with our advisor, Kelsey Hightower, in his home town to discuss Kubernetes, the role of Portainer and how the whole containerization landscape is changing. It's a great watch (25mins). Skip to 8mins to get Kelsey's take on Portainer specifically.
Full transcript as follows:
Savannah Peterson (S): Hello everyone and welcome to an exciting interview with Kelsey Hightower. We had a unique opportunity and happened to be in the Pacific Northwest where Kelsey is and wanted to take a moment to sit down with him so we ask in advance for your forgiveness and your understanding for this is shot on an iPhone in a hotel room and Kelsey is being an incredible sport. Kelsey thank you so much for joining me today. How are you doing?
Kelsey Hightower (K): Good happy to be here
S: excellent so I think most people that are going to be tuning in are pretty familiar with you but just in case this is someone's first intro to kelsey hightower who are you what's your role in the space, give us some context.
K: I prefer myself as a minimalist first and uh technologist some people know me from the Kubernetes world but you can see from my hoodie here I used to work at a company called Puppet Labs that was right down the street from here in Portland and so I've been in this technology space for about 15 years. A lot of it on the kind of infrastructure side of the house, but I've had so many of the jobs that people watching today have.
S: I love that so now I'm curious you lead with minimalist. Can you tell me more about that.
K: All walks of life. From home decorations to things that I pay attention to. I'm actually out of character but I typically just have a great t-shirt, some Levi jeans and that has been my uniform for like the last five years. But mostly just keeping things pragmatic and simple. I care about the fundamentals of everything and so that's kind of where I stick to, so when you ask me who I am, I usually like to identify as a minimalist.
S: I like that it's nice that that's a part of your work and your life and your existence which is pretty excellent. So while minimalism is awesome, it kind of applies to what we're talking to today. In fact we're going to be talking a lot about Kubernetes, so if you're already on the Kubernetes bandwagon, if you've been thinking about adopting the technology, if you're not sure where to start, we're going to talk a lot about where things are at today and what the future looks like and help you weigh your options in this video. Kelsey is quite literally perhaps one of the perfect people to be talking to about this, so definitely stay tuned and keep watching. I love that our very honest and direct CEO at Portainer describes Kubernetes as a once in a generation tool. Can you agree or deny that, and do you think that this really is a paradigm shift technology?
K: So I think most people would probably say if you look at the low-level technology, it isn't something that necessarily changed the world. It's the agreement across the industry to use a common tool to solve this class of problems. So when we think about applications over the last 15 years there's been tons of ways of doing it. For Roku, Cloud Foundry, but then Kubernetes comes out roughly about six seven years ago and then somehow we gained all this kind of industry consensus around this being the way forward for a huge class of problems. That's the once and generation part, where you get everyone to agree to use the same language, kind of hollow around the same APIs. That's the part that only comes around at least once or twice in my whole career.
S: I love that. So it's really it's the collaboration that is distinctive and one of the greater value ads?
K: Yeah I think the last time I saw this personally was around things like Git for version control. Now we have things like Github and most people doing software development more than likely they're using Git and then before that in my lifetime was probably Linux - the operating system. And so there were so many operating systems especially in the unix space but somehow as an industry we kind of rallied behind Linux and then the cloud was born. So I think people are equally excited about Kubernetes.
S: So if folks are just hearing the word Kubernetes for the first time and actually we got to do this at Kubecon - there's a fun comedy challenge. Define Kubernetes for the listener
K: I think for most people they'll think about application management. If you wanted to click down below that you'll say something like container orchestration. If you click down even below that and this is where I tend to operate mentally when I think about Kubernetes - It's a framework for building platforms. So a lot of people are used to the cloud. A bunch of virtual machines, load balancers, all the low-level bits. But now that we're at like 2021, even five six years ago where Kubernetes came out, we needed an operating system for all of that instead of everyone gluing together their own automation tools. So for me, Kubernetes becomes that next layer of the foundation. It abstracts away a couple of things and you can build any system you want. so of course containers is the thing that we built first but if you look at the project there are so many other tools like Istio, Kubeflow for machine learning, some people are building their own platform as a service on top. So I think that's what makes Kubernetes super interesting as a platform for building platforms.
S: Yes that's also an extraordinarily meta statement there. Just since we're talking about it, where do you see the future of Kubernetes in five or ten years?
K: A lot of people ask that question. So, everything that's hard about Kubernetes, the things that people would say sucks about Kubernetes, that is the active future because that's what people are working to solve right now, so there's good parts that we all like. It does a decent job putting containers on virtual machines and exposing them to the internet via your load balancer but the things that are super hard are the parts around configuration management, like i have 400 apps that i need to manage across multiple clusters. How do you solve that particular problem? and so those are the things that will dictate the future. I think really long term, Kubernetes will disappear, for example like in the cloud, most people don't talk about Linux very much; we just say the cloud because Linux is so stable. Like any good infrastructure project, it simply disappears and gives way to the usage of the platform versus the thing itself, so Kubernetes has a while ago before that happens but i think the next intermediate step will be bringing back configuration management. It's exciting it's kind of like the intel inside. I think we'll see something really similar with blockchain as well. We won't care that it's on blockchain it'll just be built into the system so it's that's very exciting
S: So, building on that how far do you think we are from Kubernetes being mainstream or will it get mainstream?
K: Yeah i think it's mainstream for its use cases, you know, like, if you're going to run containers i think Kubernetes is probably a place most people would probably start these days. I think Docker is still the thing you would do if you're a developer on your solo laptop. it's probably the best tool to kind of build things locally maybe even package up that application that could run somewhere else, but if you're talking about I need custom infrastructure, like my own VMs, my own bare metal machines and my own data centre, then yeah more than likely Kubernetes is the first tool that's going to come to mind so from that point I think will be mainstream but I think what's not clear that the industry has an open question on is when will the majority of the workloads run on Kubernetes instead of something like VMs or Serverless yeah so people have this continuum to choose from. I think a lot of people will choose Kubernetes where it makes sense but there's an equal competition on the serverless side that says why do you need a cluster in the first place
S: I think it's an interesting debate and i know you're a self-described skeptic yourself to a degree, so i think there's a healthy tension there
K: yeah i think a lot of times people like to pick winners. Oh Kubernetes will win when what right there's no competition to win so i think when people think about this logically yeah throughout history we have competing technologies that exist at the same time all the time and so Kubernetes is yet another option and the way i think about Kubernetes it's simply checkpoints that patterns from the last 10 years of cloud that cloud's been out for a while lots of people have discovered a ton of patterns and those patterns are just baked in so it's almost like if you took all those patterns and you made an open source project behind them what would you end up with you end up with something like Kubernetes and so look that's great if that's the type of things you need it but if you're in the serverless world you look at all of this and say hello that's not for me yeah it's going to be interesting to see what happens i'm actually really curious
S: so Portainer is a simplified control plane for managing containerized applications from the data center to the edge. How do tools like this accelerate adoption of Kubernetes?
K: So i think we talked about it earlier the configuration management problem. If you give somebody a kubernetes cluster and you say do something with it the number one challenge that even experienced people in Kubernetes will run into is feature discovery; what can it do? And so, if you think about the analogy like in TV - if i just gave you a remote and TB you're gonna be, like, "I don't know what channels are available, do you have cable? do you have Netflix? do you have HBO macs etc. So, then comes along the TV guide and i think in the Portainer cases, if you hook up your cluster it gives you this kind of fast track to feature discovery. You can deploy apps like this, you can put secrets here; here's where your logs are; here's where your metrics are. I think for a lot of people, it's not just having a UI,
I also think there's a debate in our community on CLI versus web unit interface, but i think it's been proven that a web interface typically gives people easier access to discovering what's available on the platform and so i think when you start to roll out Kubernetes to not just the early adopters but to an enterprise of people who may or may not have Kubernetes skills, may or may not want Kubernetes skills, then you get into a world where they say hey can you just give me something that's a little bit closer to what i'm trying to achieve, I think that's what Portainer is all about. Interestingly enough it's not a pass, so i think some people this is just like 'oh yeah another pass' and i think that's where Portainer tries to go one level below Containers as a Service and then focusing on abstracting away Kubernetes concepts. I think there's a little bit that you can do there but more about here's what they are and wouldn't it be nice if you can kind of like drop downs and save and create these things without necessarily writing any script or YAML.
S: Yeah, very very well said. So digging a little deeper there, do you think tools like this that abstract complexity help or hinder adoption?
K: so the new answer to me is i think tools like this accept the complexity embracing complexity. They embrace the complexity. I think a lot of times, like the complexity is going to live somewhere and I think what Kubernetes is all about is letting you articulate what it is my app needs. It has three dependencies - it needs this network and use the secret it needs to run in the zone like look that's complexity yeah how do you express it and i think what Portainer says is it's complex and so we're going to do is make it a little bit easier to express what you need from that complexity and then you can hit save and i think that's what most people are after. It gets equally challenging when you start to bring in multiple clusters. A lot of this stuff is fairly easy to work out when there's only one cluster involved but what happens if my app needs to run across three different clusters? that's where things start to fall apart that's where most people don't have really good workflows and i think having that in the ui format is something that's going to help a lot of people deal with and manage that complexity.
S: Yeah, and it's making sure that everything's talking to each other the way it should be talking to it most effectively and that can be really hard to see sometimes so good well that's awesome. Why do devs love kubernetes?
K: uh i don't think devs love kubernetes, When i think about kubernetes, I think about infrastructure standard library so if you're a developer and someone asks you to build an app you pick a programming language and the first thing you do is you go to the standard library number one there's no way any developer wants to write all their code from scratch so we just use libraries right right want to connect to the database import the library talk to the database. Kubernetes is very similar for infrastructure. I want to deploy an app to a set of machines you could go do that yourself there's lots of automation tools out there or if kubernetes is there it's going to give you a standard library for thinking about and expressing those things so i think if you're a developer and someone told you that you have to have a load balancer an ip address and ssl certificate and then keep everything locked down and secure doing that from scratch makes zero sense but if you're a developer wouldn't it be nice to be able to express that in an api in a way that you're used to when you're writing software so i think that's the things that developers not necessarily love but resonate with there's a familiarity in the process and approach that's digestible i think that's i think that's awesome
S: Do you think that kubernetes on-prem will ever go away? and that coupe from a cloud provider will become the way to deploy
K: yeah i have this saying kubernetes is only as good as the infrastructure it runs on top of so typically if you're in the cloud you know i work at google cloud if you're in the cloud then you get to leverage everything that the cloud can do gpus you know lots of storage multiple regions apis for spinning things up and down and so if kubernetes is an operating system on top of that then cool it's going to be pretty nice experience but if you're on prem and you only have a subset of that well i'm not going to have the exact same experience but i think what most people are excited about on-prem is if you're going to have on-premise hardware and software and things to do you probably want the similar control plane that you have in the cloud so i think as long as there's on-prem i think there will always be a need for something to make it a little bit easier uh to leverage your hardware and what you do have so yes as long as there's on-prem i think as long as kubernetes is relevant it will always be a good pair for a lot of folks
S: how do you feel about edge is that a place for kubernetes? i don't know i i'm always skeptical i think people are trying to take kubernetes and shrink it way down and i think the the problem that most people struggle with is kubernetes was designed for more of a control plane and data plane separation so the concept would be is if you're on the edge let's talk about a really small edge like home you're at your house and you only have one device like a raspberry pi trying to put an entire cluster control plane and data plane on just single device to manage a single device sounds like overkill and typically what you want to do in that scenario even at home is you might want to have a separate control plane so think about those kind of big speakers people have right like the google homes you can imagine something like that being the control plane and then maybe those devices can actually be data planes so we can ask kubernetes to tell what these things will run but i do see people trying to take kubernetes and shrink it way down to fit on these limited devices and i think i think there's a lot of ambition for that to happen but this is that whole hammer and nail kubernetes is great at all of these things let's also make it work for edge i said well how far are we talking so i think for telco the comcast the att's of the world yeah they'll be able to build a new control plane on top but when we start to talk about the car people will try it but is this the absolute best idea for the current form of kubernetes maybe we change it like linux was changed to run on a phone like an android right so i think kubernetes has that kind of potential but to be clear we need more work before we can talk about all that edge has to bring to the table i love that and i agree with the literalness of that we have a lot of community members who play with raspberry pi's and kubernetes and have a lot of really interesting home setups our open source community is very inspiring that way and super creative so on that note what do you think are the best use cases for optimizing kubernetes today well so i always ask people to really figure out what they need from their infrastructure and then use kubernetes to express that do it in that order so i see people take kubernetes that says how do i do this the kubernetes way and i think that's the wrong way to look at it number one kubernetes is not finished there are things that need to be added there's probably things that need to be removed but when you look at what kubernetes can bring to the table always ask people figure out what your best practice is figure out what you actually need and then once you have that kind of diagrammed out you've done some peer review to make sure this is right i need gpus i need to run this region i do need it behind the load balancer i need five copies of this i need this much memory and ram once you have that understanding then you can actually articulate it to kubernetes using kubernetes configuration files and manifest when you do it the other way around i just see people doing stuff oh this is the way kubernetes wants me to do it i was like that doesn't doesn't make a lot of sense because kubernetes doesn't really have a hard opinion about how you have to run or even write your applications microservices versus monoliths doesn't matter it just wants to know how should i run those things on your behalf right if you approach it that way i think you will always land on the best use case of kubernetes for yourself i like that so going a little deeper are there any other myths you wanted to spell in this space there's so many we're here for it we've got time well i think the biggest myth is you'll see a lot of people that will go out to adopt kubernetes and believe that they need to go from model list to microservices first or they need to rewrite their apps to be cloud native first i'm sitting here as like number one you do not have to do that number two if you did maybe you can get a little bit more value from kubernetes kubernetes has really good things for like collecting metrics uh collecting logs but of course you have to have metrics and logs for that to work right but the question that i really give people is that maybe you should do those things like first maybe not wait for kubernetes to be the reason why you go do those things you probably need to do those things 15 years ago so you got to ask yourself a serious question what has prevented you from doing that because whatever the lack of engineering discipline or maturity to get things done won't necessarily be solved because kubernetes can benefit from you doing those things so i think that's the biggest myth is that somehow rubbing kubernetes on your existing stuff will make it cloud native it was like that's that's not how it works actually no it's not how it works like that's i think that's well said and very appropriate i hear a lot of the hype and don't see as much of the practical application that would support that hype sometimes so i think that was very well said what would you say i mean we we met we talked about it you self-identify as a skeptic how do you convince yourself to continue to work on this then um when you're an engineer your goal is to look at what's possible what's safe what's missing and you just logically think through it right there's a big feedback loop that just happens in engineering kubernetes in this current form is very different than its original form and will probably be very different in the future based on the needs of the applications and the people who use it that's it just pragmatism just straight up pragmatism and then sometimes when the thing solves a problem maybe people before you found kubernetes for the first time saw the whole class of problems there's nothing better than installing something like wow it just works for my use case it's okay to be happy we can go to the conferences and give the talks but we also need to be pragmatic that kubernetes is only one of a hundred things that you're gonna need to pull together in order to run a successful business on top so for me the reason why i like to keep going is because again there's very few places in our lifetime where there's consensus being built where we can solve a problem in a common area and then everyone gets the benefit so that's the thing that i'm most optimistic about absolutely what has you stepping even higher than just kubernetes what is you most excited in technology right now well i think now that most people have like a mobile computer in their pocket the intersection between humans and computation is becoming even more blurry right you have cars that want to drive themselves if it doesn't drive in the right way then you human will pay the price and be injured um my if you look up my kind of like covet vaccine is in my apple wallet in my phone right so you think about it now there's so much of our lives that are kind of articulated or expressed via these digital tools that we have so that means ethics is involved does it work for everybody or does it only work for the people that can afford to buy the latest and greatest technology so no longer can technology outpace people's ability to adapt consume and so now we're getting to more interesting discussions in tech now we get to talk about people again right you start talking about tools we all get lost in the tools but who are we building the things for and then when we get to a point where that becomes a bigger part of the conversation that's where i get excited we're humans before we're engineers and so getting back to that discussion to try to figure out is what we're building working for people and who are those people and what are their actual needs and then we go build yeah need finding and i always think about reddit in conversations like this their their tagline when you walk into hq is remember the human and i think about that almost every day when i'm creating or doing or whatever we're doing you know it's it's there's a human who's benefiting at the end of this or being served by whatever the tech is doing and it's important to remember that i'm i'm actually just as a sidebar personally grateful that during the pandemic i think there's been a shift back to talking about humans a little more we get very in our zones about our tools and our tech and our architecture and it's nice to remember that we're all beings behind that writing that code and engaging exactly with those clusters in this case what's your advice for folks getting started more curious now that we've been chatting about it uncle we have the same respect the opportunity and i think a lot of people are looking for success in five minutes or 10 minutes they want to download something and then 10 minutes kind of see themselves operating in production i don't think that is really respecting what's in front of us if you think about your current skill set how long did it really take to get them to a point where you're this confident that you can be paid and trusted to run them reliably kubernetes is going to take a bit of time for you to really get good at it so if you're just getting started number one kubernetes is basically 80 of the things you already know without a doubt it typically runs on top of linux the thing from 30 years ago it uses the same networking protocols from 50 years ago and it runs programming languages from 60 years ago so this idea that you have to rethink everything is far off so just remind yourself of the fundamentals step back and appreciate those and then when you approach kubernetes your goal is to say how does kubernetes implement these fundamentals and how to how do i express to kubernetes what i wanted to do that's the relationship you have and then you will put the technology in this proper place and you'll feel a little bit good about your
pacing in terms of what you got to learn really you have to go and close this 20 gap in your knowledge kubernetes implements the fundamentals in a different way than you understand and so be patient because you'll eventually close that 20 game i love that be patient we're also zealous especially with the speed at which things move right now and everybody always wants instant results so if you heard that if it's taking you more than five seconds to learn how to implement kubernetes and optimize it for whatever it is that your use case is as kelsey says just be patient give yourself the time and respect the opportunity i like that kind of hold space for the time it's going to take you to learn how best to implement and what i'm hearing here is don't rush it it's worth it we all agree that it's going to be a tool for a while so take the time to figure out where it fits in best that's exactly right that you're doing that's fantastic outside of following yourself and all of your work and obviously paying attention to our blog where else should people go to learn do you have any other thought leaders books tools favorite video series anything like that there's so much it's a fire hose you know i follow a select set of people on twitter i like tech twitter where people will have threads about kind of their insights on certain things i noticed you follow a whopping 32 32 people i rotate people based on areas of interest but i like to number one people i've met number two people who i think put a little bit of thought into what they're talking about right it's okay to retweet and repeat but i like people that say hey here is my opinion on this thing and i think everybody should probably find that right set of people you don't have to limit yourself to 32 it can be a much larger number of people who you believe you can get some insight from i like people whose personality shines through their opinions on things because look i want people's perspectives i don't worry about everyone being exactly 100 right all the time oh yeah and that's just boring if it's all facts yeah because then everyone's saying the exact same thing got that yeah gotta have the hot take so if you want to know who kelsey's into go check out his twitter uh the folks he is following on twitter you'll find the ratio is pretty dramatic between the 32 people he follows and tens of thousands of people that follow him that's a great list it's basically essentially a twitter list if you just look at the people that you're following which is fantastic speaking of twitter how do people find you if they would like to learn more uh i'm at kelsey hightower so my full name on twitter no spaces my dms are open so i typically will hop on a 101 and chat with people learn from them and hopefully share some of my insights too he's not kidding i actually jumped into his dms and that's how we're sitting on this couch right now so reach out to kelsey and say hi if you'd like to you know where to find the portainer crew most importantly we hope that you are having an absolutely fabulous day we appreciate you being a part of our community let us know what's on your mind in the comments and we look forward to seeing you next time thanks again kelsey and thanks for having me cheers.