Open Source DevSpace Tool – Lukas Gentele, Loft Labs
Loft Labs CEO Lukas Gentele explains why donating an open source DevSpace tool to the Cloud Native Computing Foundation (CNCF) will advance Kubernetes developer productivity.
Transcript
This is Textron TV. Hey guys, we're here with Lucas gentelli. Who's the CEO for loft labs?
And we're talking about a new project that they've I guess donated to the cncf and it's aimed at developers. So we're going to jump in and what that's all about right now Lucas. Welcome the show.
Yeah, thank you for inviting me Mike. Alright, so you donated a thing called Dev spaces to the cncf. What exactly is that?
And what impact do you think this is gonna have? Yeah, so that space is a developer, which will it was the first open source project that our team has started working on all the way back in 2018 even before we actually started the company. I was mainly my CTO and me starting.
Starting out building this project to simplify our own, you know developer experience and workflow with kubernetes and the step that we're taking right now is, you know handing an over to the cncf. So to give it like a neutral home to make sure that the governments is in the hands of the Linux Foundation rather than you know in the hands of a single company and that's essentially to stop that. We took this week in cncf has a technical oversight committee who has to review these submissions for the so called sandbox and they had a meeting this week and accept that our you know contributions so that space are is now I mean of of course there's a lot of like legal processes and like hanging over trademarks and all of that stuff which will follow now.
Um, but the decision has now been made on both sides to hand over that space to the cncf. There's a lot of focus these days on developer productivity as it relates to kubernetes. So what exactly does This tool do to make people's lives easier.
Is it? I don't think it's a full ID is it? Yeah, no, it works with any idea that you already using so you don't need a you know, you don't need to switch everything and start with a new tool or suddenly code in the browser or something like that.
You know what I use the browservase IDE or you're using a ID on your regular MacBook or whatever you are, right, even if you're coding within right just totally fine deaf space is compatible with that space essentially does is when you fire it up it connects to kubernetes Cluster and then stands up your application. Right if that's a microservice application that has more than just the current project that you're in it also pulls the other projects in an employees and as well, um each project that you can deploy and connect to each other via Dev space, um has so called that space yaml file inside of it. It's kind of like a Docker file, right?
It's like a it's like a The Cloud of definition of how does this project? You know, how should that be deployed to kubernetes, you know, obviously, Have things like kubernetes manifests. You might be using customize you maybe use Helm, you know, there's so many tools that you can apply to with kubernetes and you essentially tell Dev space.
Well, which one is it? Right? Where does my armchart live right is it remote?
Does it live in a certain folder do have to pull it from a git repository their space can handle all of these things stands up your project. You know, let's say you're running a git clone, right? You have one project locally now, but you need four other projects that's based applies them applies your current project.
And then for the one that you're working on desk space starts just hot reloading development workflow and that's something really cool because that really speeds up your development workflow because when you typically want to work with kubernetes and test out an application, um, you can deploy it, you know, let's say via home or you want to keep CTL apply, right? That's great. But before you do that, you have to build an image.
You have to push that image. You have to take that image. What's the tour registry?
Suddenly? You need to registry right? It's like Lot of steps involved and then you want to make a change that application.
Well, you got to build that image again. You gotta take it again. You gotta push it to it just again and then you got to tell kubernetes.
Please update this container with Dev space. We're cutting the short we essentially doing is we're deploying at once right potentially with image building and a lot of cases we can actually even skip that step and just take your latest build image, right? Because then we start this hot reloading process.
That means we look at your current files in your your, you know, local file system or your brows are based IDE or whatever you're working and then we look into the container and we see oh, we need to update the container. And that's what we call Hot reloading sort of means the running container is being updated instead of an image being produced and a new container being created from that image and that really boosts the ball apart activity because suddenly it doesn't take 10 minutes to see a change. It just takes a second change line of code.
You know, your goaling or Java application is being compiled and we just swap out that binary inside the running container. We've been here a lot about how developers are intimidated by kubernetes. And the question I would ask you is.
Is that related more towards the platform and building in the code or is it just all the scut work that has to be done to set up the environment in their first place? And if I get rid of that more developers will find their way to the platform. Yeah, if you typically you know the adoption of for a tool like Dev space is that someone with kubernetes experience start setting up these desks?
Yeah, that's right. Um And then everything that you need is access to kubernetes Cluster, what are your company gives you access to eks, and you don't really have any management maintenance effort. You don't need to know a lot about kubernetes.
You just want to you know, AWS you like man and there you go you have access to eks Cluster or you use something like commercial product Loft which Provisions these virtual clusters for you or you spin up a local Mini Cube or dock our desktop has a little button or creative virtual cluster on your on your laptop, right? Um, no matter which cost there it is that's basic kind of work with them. And because the person who has a little bit more experience with kubernetes and has created that desk is yaml file and version it and put it into gear you can now just run Dev space deaf and start at what we're loading flow without being a kubernetes expert.
Um, I think the beauty of death Space versus the classical, you know past experience is, you know, their similar in a way, right? You want a single command and somehow figures out how to deploy this and how to work with this and how to iterate over this but the big difference is um that you can go under the past right? Because with deaf space we're just using under the hood Coop CTL commands Helm commands or connecting to kubernetes.
That means if you need to Go deeper, if you need the logs, if you need to, you know, go beyond the pass layer, you can still run a cube CTL command and it's still compatible with anything you're doing in that space. You're not locked into one static experience. You have to you have a transparent kind of pass like layer that you're creating with with tools like that space on top of kubernetes and that really boosts, you know, these initial steps with kubernetes.
You don't have to be an expert, right? So a good example for this is when you are, you know, you run that space deploy and it deploys application and now you want to stream the logs, right? You could either now run Cube CTL get parts.
Find the right part copy the name, right? And then run Coupe CTO logs copy paste part name, right? That's like a lot of steps and a lot of things you already have to know and that's just to stream the logs right of death space you run Dev space logs and it's going to show you which one it's gonna ask you which container do you want to see right?
You have a easy like you use your keyboard up and down keys to select the one and then it's like you want to follow it or do you want to just a one-time dump right like it has this like, you know active experience rather than being a single command tool and I think that makes these first steps easier. But again, if death space doesn't support a flag or you need to go deeper and you need to run a coop CTL command. You can and I think that makes the hurdle a lot lower to get started with kubernetes without kind of limiting you to the to the tool that actually opens you up to the kubernetes world.
It also sounds like we're trying to strike a balance between Automation and a Paz environment that might be too highly opinionated and therefore developers get frustrated and they don't want to be there. So yeah, is this part of an effort to find the middle ground? I think so.
Yeah, I think I think that's really nailing it down. I think passes have the problem that the very opinionated and very very limiting for a lot of folks. Right?
So I think the biggest fear that you know, especially like companies have pass is that they're locking themselves into something opinionated where they may be hitting the limits off right versus when you have something on kubernetes. It's extensible, right? It's essentially um, it's very very open right completely open source, of course when you're thinking about something like that space it just creates this then lay on top that creates a little bit better experience, but it doesn't lock you into anything and it's client only as well.
That means you could essentially, you know, there's like 50 other developers out there. Right and let's say you love scaffold which is an alternative product that Google is working on right? It's another open source project.
You could have a scaffold yaml and a desk Space Jam on both in Europe it repositories. And then depending on you know, just like every developer likes their own IDE, right? Some people like vs code some people like the IntelliJ Suite right?
And I think that kind of freedom is pretty important for engineers because everybody has a little bit of their own opinionated way of working with a tool. Um, but what we're trying to do with death space in particular is be very very open. Um, we have all plug-in system.
So if you really want to change the behavior internals of that space you could hook into that you can customize the business logic right? You can do a lot of things with this plugin system and then you can also Insight that depth space yamo. You have a lot of freedom like you can read environment variables from your local fire system.
You can pull secrets from kubernetes directly and say, okay, I'm apparently deploying to my staging environment because the condition says this and this and this cluster right? So I need to change the way we'd apply and there's a lot of you know, Seen so many companies so many different workflows that we know that space needs to be very very flexible. Um, one way to achieve this and that sounds kind of paradox because you know in a way we're trying to replace like things like make files, you know, a lot of people write like these custom make files and they're like really hard to maintain but really understands them well and the hurdles really hard But every developer kind of knows a little bit of bash, right?
So in this test space Yama, we're trying to combine yammal with bash which sounds awful but it actually works really well. So in that space yaml you have a construct called pipelines which essentially lets you describe of a simple Dash like language, right? It feels like you're writing a couple of bash commands, right?
What would you actually do in this you defining something cloud of under the hood and then you are referencing The Cloud of things like kubernetes deployments and images, right? So instead of writing all these like very bulky and complicated best scripts and conditions. You actually defining the cloud of things and then you're using them in a procedural language like bash to just instantiate them and that makes that bash script very very understandable and very easy.
I bet if I had showed you a desk busyama, you would understand what's going on there without being you know, too deep into that particular project or you know, that particular Tech stack that that folks are doing because it's just like four or five lines of commands, right? They're very easily understandable. They're like build image deploy something right at dependency, right and then just a single word understandable word behind it because that single word reference is something more complicated like an image or health manifest, right but the understanding the workflow and how does application is being created?
It's very very easy with a couple of words. All right, anything that gets rid of that wall of yam will files is a good thing. But let me ask you this.
I'm If I look at the map, there's maybe depending on what estimate you want to see. I don't know seven to nine million developers that are familiar with kubernetes and familiar is a loose term. There's 50 million Enterprise developers.
So as the coming year the Year where we start to see more of these developers are finally going to be comfortable enough to start really building apps on kubernetes. I think we are already seeing that Trend in this direction. You know, I can remember when you know again we first open source death space around 2018.
I went to a conference back then actually to multiple conferences, but I were very vividly remember the first one where I gave a demo of death space and you know how this works of kubernetes and then the feedback from the audience was literally like nah deaf space doesn't work like kubernetes is for operators. We don't need this right and I'm I'm definitely seeing we don't get that reaction today. People are curious.
People are like, oh, yeah, that sounds like we need that right because I think a lot of developers when you're looking at, you know, stake overflow GitHub. They always do these like surveys right and you see a lot of pulse in terms of Engineers wanting kubernetes they want to do something with it. Right?
I think it's just about lowering the battery of entry for them and they're curious right Engineers are inherently curious and they want to try new things. Right? That's why you know, the JavaScript Community has like 300 different Frameworks something in the front end and back end.
Right same for pretty much every language right? I think JavaScript is a little bit extreme of an ecosystem and being very petition and there's always new things coming around but in pretty much every language every idea, right there's so many Alternatives and so many new approaches and then I think that's that's really a beautiful source of innovation so we can definitely see that all from the developers that they want to enact with with kubernetes. It's about the companies and the experts in the company and operators of kubernetes right within an Enterprise to make it accessible for them and to make it easy for them to get started to start at learning experience in depth spaces.
Definitely a tool that they can use to make that experience as you know, smooth sailing as possible when someone new wants to spin up something in kubernetes and take their first steps. All right, folks. I heard it here that search for the Goldilocks tool that's strengths the right balance continues but might want to check this one out because it sounds like a big step in the right direction.
Hey Lucas. Thanks for being on the show. Thank you for inviting me Mike.
All right back to you guys in the studio.