Cloud Dev Environments with Coder’s Ben Potter
Ben Potter, head of product at Coder, discusses how developers can replace the developer laptop, VDI machines, and standalone VMs with standardized cloud development environments.
Transcript
This is Textron tv. Well, hey, everybody, have a great pleasure of being joined by Ben Potter. Ben is head of Product with Coder.
Welcome Ben. Mitch, happy to be here. Excellent, and glad to have you on, um, talking about great things.
You know, and it, this has come up a couple times for me recently chatting and when I was at Coup Con, I think in Chicago and, and talking about, um, cloud development environments. Matter of fact, even a friend of mine on an AI pro AI project, and I were talking about that, so I'm really intrigued to chat with you. Um, let's just set some context for folks.
You know, if you don't know what a cloud development environment, hopefully the name describes it well enough, but is there any more you should know when we're talking about what is a cloud development environment? Yeah, the, the very basics are, we're trying to replace developer laptops, meaning, um, developers will always need a laptop or a desktop, but, um, so many applications and, um, are moving to the cloud. Yet, developers still have to run these applications, whether it's one service, um, 10 services or even dozens of services all on their local machine or some hybrid where they're running some on their local machines, some on the, the cloud.
And, um, as these environments get more complex, especially in, in large, like enterprise organizations, um, it, it becomes unrealistic to be able to run these on the, on the, the local machine, especially when, uh, developers essentially forced to use a lockdown Windows machine. So what we see happening is developers are creating virtual machines, they're running their code there that also has a drift from the place they're deploying it. So what, what a cloud development environment tries to do is give developers a very identical environment to that of which they're deploying, that they can test and, and develop against using their, their favorite editors, whether that's vs code or jet brains.
So sometimes when people think cloud developer environments, they think of a, a browser editor with limited tools and limited keyboard shortcuts. Um, that's not the case. Developers can keep using their editors, but really they have an environment they're developing against.
It's very similar to where they'd be deploying. So that's kind of the main concept, or at least that's how we define it at, at coder. Great.
And then do you actually, well, you know, IDE tools like your, you, you know, you're using Visual Studio or whatever your favorite Python or whatever IDE is, some of those have integrated with it like Homebrew for your Apple, right? To be able to, to do, uh, uh, package management and update and set environments in different contexts. I have to be honest with you, the least for me, I don't do it every day, but when I do it, it, it's kind of complex to go back and remember now how do I set that?
Where, where's that? Do I need to upgrade this? Is that set up with my environment where I'm pushing this to it?
It's, you know, it taxes me and I, you know, I'm not doing hard stuff either. Yeah, that's, that's exactly right. We, we have users who have to follow maybe 30 to 45 steps to get their environment set up.
And, um, those, those steps are oftentimes very specific to a, an operating system or a, a version of an operating system where if someone upgrades to an M1 Mac, for example, and they were previously on the, the Intel ones, it's a whole new set of steps and that hasn't been updated. So what, what a lot of our users, um, do is they, they automate a way all those steps. So a developer can just click a button and using these powerful cloud technologies such as Docker and, and, and virtual machines or even Kubernetes, uh, developers can get these reproducible environments with all their tools set up.
So essentially it turns those 30 steps into, into one. I mean, someone has to, to automate it and create those, those images. But mm-hmm.
It's, um, kind of a one to many relationship where you kind of have the, the confidence that everyone on the team can use that, those same tools. Cool. So what's the developer experience like?
Are they using an ID that's run IDE that's running locally on their environments, connecting to a cloud development environment? Are they using an IDE in the cloud? How does that work?
Yeah, That's, that's a really good question. And there's, there's two paths that we can support. So the, the modern, um, editors, which, uh, we vs code and and JetBrains are the two main ones have support for running them locally on your machine.
Meaning you can have your theme, your keyboard shortcuts your layout, but then you're connecting over essentially SSH into these remote servers where the file system and the terminal is. So all the tools are pre-installed on the remote server, but then it's kind of this like thin client server model. The, the other option is entirely through the web browser, which is, which is pretty magical.
Um, both Microsoft as well as, um, US at coder have a version of vs. Code that runs entirely in the web browser. And in that case, the full IDE is running, um, remotely and a developer could connect with even an iPad or, or a Chromebook and, and do the development that way.
So that one's, um, it, there are some limitations. Um, it's, uh, you don't get all your shortcuts, but if you're kind of quickly switching between services, it's, it's a great workflow. I could see that especially like, Hey, Ben's on vacation, I've gotta step in and, and yeah, I kind of know that environment, but I'd sure like a turnkey press a button, I'm, press a browser, you know, browser key I'm in, I'm in, and I don't have to worry about, you know, making sure my IDE will connect to it and okay.
You know, where's the cer or credentials, et cetera to get to that. And then how do we move around? Yeah, that's exactly right.
It's kind of, it's, it's great for those kind of times that you only need to go into environment maybe once a month. Um, it's maybe a service that you don't always maintain, or like you said, like, maybe I'm on on vacation and I only have my, my iPad and I need to hop on and, and do something. You can kind of have the, the ease of mind that it's all there and, and working.
Mm-Hmm. And we, we talk a lot about, I'm trying to remember the term, but the, uh, cognitive load, that's the word, um, that, that we put on developers. We do that in all kinds of jobs, but we especially put around developers of, there's cognitive load of building your environment and there's cognitive load of like doing your job, and then there's everything else too.
And that content tech switch across all of those is maning. I mean, that's where you lose your productivity. You know, I, I I think of software a kind to writing a book.
You're not gonna write a book a sentence at a time. You're gonna sit down and write a chapter or write part of one or this part of the story or whatever. You, and you gotta stay there a while.
Right. You can't deal with interruptions, why's, why developers wear noiseless headphones all the time if they aren't working from home. Um, you know, how does a cloud environment help you with cognitive load and context switching?
Yeah. Our, our tagline actually is, is keep developers in flow. Um, mm-Hmm.
And we use that at both internally. So how can we make sure that when we're meeting with the development team, it's only in certain times and we can reduce meetings and, and also externally in the, in the products that we build. Um, one of, one of the main ways that, that we help with that is there's this huge expectation, um, from, from like the, the, the DevOps kind of paradigm for developers to start building their applications with best practices in mind, whether that's mm-Hmm.
Where they download their packages from, or how often they scan or, um, what kind of languages and, and libraries they use. And, um, with coder, you can essentially create these, these recipes for developers to get into an environment that has all of those things installed for them. So if a developer goes to install a package, they don't even need to configure or run security scans.
You can have confidence that they're downloading it from a trusted source Mm-Hmm. Wherever that, those artifacts are and wherever you're scanning it from. Um, we're also seeing that with an AI and LLM tools.
We have a lot of our enterprise customers re-installing these tools in for the developers so that it can kind of handle these, these operations that normally you, you, it, it's pretty difficult to, to enforce or even like encourage developers to use these best practices, but by having them by default in their editor where they spend the majority of their time, they don't have to spend a lot of time switching out of your editor and, and doing other stuff. I think there's like a pretty famous quote that like, it takes 15 minutes to, like a context switcher to fully get back into flow. Mm-Hmm.
So, as much as possible, having these best practices pre-installed inside your editor as opposed to having to go out and read some wiki to, to get things set up the right way, um, the, the better. So we're, we're essentially trying to only like only really let developers focus on like what, what they need to, which is like the, the libraries and, and then the, the code and then the rest can kind of take care of, take care of itself through automation. Mm-Hmm.
I like to, I like to say the best way or fastest way get something done is not to have to do it at all. Right. Like, just let it be done for you.
Right. If you can, um, well, let's talk, let's talk about the AI side of this. 'cause one of the questions I have is about a cloud development environment is, you know, not all the resources could be put in the cloud or into your environment, right?
I have databases, I have APIs that I'm testing with to third party services, buying own applications, you know, a plethora of things that, you know, no, there is no, no application is an island, right? It's, it's all connecting to everything. How do you deal with that, um, deal with when you need to talk to other services or maybe in your LLM your training data and you need to, uh, keep that updated with the, the latest that you're using or that's coming, you know, getting ready to get pushed to production.
How, how do you deal with the external things that aren't in your cloud environment? Yeah, so we, uh, uh, uh, have a, a kind of policy, the way we deliver our software that we only want it to be self-hosted, meaning we give the software to our customers and they install it in their AWS or, or on-prem environments. Um, that's because we have a lot of, um, secure regulated customers who mm-Hmm, very, really much value owning their, their network, so that that gives them control over which endpoints and, and network things they want to expose.
So one argument, or one example I had earlier was ensuring that artifacts only get downloaded from a secure artifact store as opposed to the, the public registries such as Docker Hub or NPM, where, um, there's no vulnerability. There's so many vulnerabilities there. It's all there.
It's all secure, don't worry. Exactly. Um, and, and on the, on the AI side, we, we do have, um, even some of the most like regulated customers using AI with coder, but they have control over that those network firewalls, whether they have an an on-prem model that they're using or something, um, exposed through chat GPT, they expose only the, the aspects that they want.
What's super interesting about AI to me is that, um, even the, the, the customers that really value security are accepting the risks to use these AI models because of the productivity benefits that they have. And, and that coder you can kind of, well, we use it because it's self-hosted. You have control over the full, the full network that it's, it's deployed on.
Um, another use case we've seen is it's, uh, pretty difficult to get developers access to, to GPUs. Um, there's, there's a way to for developers to like schedule if you're doing AI development, maybe to schedule out to a build farm. And another use case that we've seen for people who are doing very advanced l AI development is they wanna fall GPU workspace in the cloud or even multiple workspaces.
So we, we have templates that code to let developers get a, a workspace with A GPU attached. So if they're training a model or working against a, um, if they're working against a local LLM that, that isn't like training based on your company data, that they have the, the horsepower to do so in their, in their cloud. Mm-Hmm.
Excellent. Um, how about data protection? Right?
Test data, uh, you need to test with realistic data. Sometimes it's, you know, data you don't want escape, right? You, you don't want that data leaked.
How do you protect assets like that? Sounds like what you just described would help with that if you're running it within your own, you know, you're in your own environments with your own security controls. Yeah, that's, that's a really good question.
Um, the way that we're seeing our users doing this now is they're deploying a, a database with, with either customer data or mock customer data inside the same network that they have coded, deployed in. Meaning that a developer doesn't have to open a firewall on their local machine to access it. They're only connecting it to it through their cloud, IDE.
So this cloud IDE is on the same network as the customer data or test data or mock data. And multiple developers are able to develop against it. So they're not downloaded onto each CDE, they're not downloaded onto each local laptop, which is a huge security risk.
It's all staying within the boundaries of, of your network. And it can even say in within the boundaries of a, of a web browser, which then can be secured to make sure people aren't copy and pasting out of it and, and doing things like that. So we, the, the, the real benefit there is because you can put coder in your own network where the data is, it can never nec it never has to leave that, um, that network.
It can all just stay in, in the web browser or on that environment. Um, so kinda last, last question. I, I could talk to you for another two hours, but last question is, um, you know, right tool for the right job, right?
Um, what maybe what are things that aren't a great, you know, fit for trying to use a cloud development environment? So don't go down that path. That's not the best way to do it.
Yeah. Anything that's super, um, latency sensitive. So web development's a perfect example of what's great.
You can develop against a, a modern editor such as BS code, you can preview your changes in the web browser. Um, that's great. If you're developing a video game, um, you'll run issues, Say game development.
Yeah, yeah. The game is, is compiling and, and developing, uh, and essentially being sent back so you can get a full desktop environment through coder, but it's, it's pretty slow and it's, it's not ideal I'd, I'd much rather do game development on my, my local laptop. Mm-Hmm.
Um, another one that comes to mind is, is iOS development. Again, this is one of those things where technically it could be done, we created our, our product to run on on Mac hardware, but there isn't a great solution for provisioning mac hardware for iOS development. There, there's some solutions out there that I'm closely looking at.
'cause I'm, I'm interested. Um, but if you're doing any form of kind of app or game or even even desktop development, it's not ideal. Again, it, it can be done if you, if you have some of those, those pain points such as like data security, but, um, web development using Visual Studio code as well as like Jet Brains is really the, the sweet spot that we're seeing now.
Um, what, what I think some people think when they hear CDE is that if you have a large complex service, it's actually not a good fit for CDE. And we're actually seeing the opposite, which is the more complex the service you have, the, the more you benefit from automating the steps away and giving it to a developer. Mm-Hmm.
Um, and, and I think something else is if people, people think maybe if they're later or earlier on in their cloud native journey, that it's not a good time for CDEs until they're fully onto the cloud. And the opposite is also true. We, we have, um, some of our largest customers are using CDEs to get more developers to develop applications for the cloud with those, those practices.
So, um, those are kind of two things that you, you might think wouldn't be a good fit, but would, but yeah, it, the, the game development is, is not, it's not great. I, I tried it. It's not, it's not fun.
Yeah. It's always those edge cases or, or unique cases. And you Yeah.
You know, you mentioned Mac and Xcode isn't really happy to run itself in other environments. I'm sure that's a bit of a challenge. Well, where can folks kick the tires?
You know, um, anybody that's a developer technical person would like to, you know, let us turn us loose. Let us check it out, kind of see how it works. Yeah.
com and our GitHub is also coder. So it's pretty, pretty easy to remember. Um, on the, the website, you can get a trial to try the, the enterprise features, but the core product itself is actually open source.
So, uh, if you're a developer and want this either for your, your home setup or maybe a, a small team entirely free. com as well. Okay.
Excellent. Well, Ben, it's been fascinating talking with you. Um, I'm definitely headed there.
I'm gonna go check it out. com right? com?
That's right. Yeah. com.
You always get asked these days 'cause sometimes it's not. I hope you'll come back again. It's, uh, been fascinating talking with you.
Ben Potter, head of product with coder. Thanks man. Yeah, this Was great.
Thank you.