Ask HN: Is anyone using cloud dev environments (e.g. Codespaces/Replit) at work?
A lot of devs I know are excited about Cloud Development Environments (CDEs) like GitHub Codespaces, Gitpod, Codeanywhere, Coder, Replit, and CodeSandbox. They seem great, and simplify many aspects of the dev workflow: easy to onboard onto new projects, everyone on the project stays in sync, etc.
But I rarely hear of actual teams using them; it's usually individuals using CDEs for side projects.
Are you using a CDE at work? Would love to hear about your experience.
245 comments
[ 3.5 ms ] story [ 274 ms ] threadBy far, what I appreciated the most was I didn't have unnecessary data on my local hardware. No customer data. No order data. Nuttin'.
What does D.O. stand for in the context?
E.g. For Computer System it spawns an environment with GDB pre-installed, while for Intro to AI it has PyTorch/Python3 pre-installed
Alternatively, you could do something similar with Google Colab and a notebook you make to serve as a template.
Refer to the section titled “CSCI JupyterHub Coding Environment”
Alternatively, as another user pointed out: https://tljh.jupyter.org/en/latest/install/custom-server.htm...
But at the same time if everyone moves to devcontainers, will this skill even matter for the most part? Because the people who want to learn how to do something are going to do it regardless, and those who don’t might not need to worry about it
I remember being a Junior Compsci student watching other students struggle to install the Java JDK on their Windows laptops (install JDK not JRE; configure PATH; install Eclipse; point it at the JDK). The professor had to come around and help them. I was the only student with a Mac and I had transferred from a community college where we had already learned Java in the first semester, including how to install and set up a local environment. All of this to say I feel like colleges should better prepare students to set up their local environments, although I see how useful the online REPL options are for getting started.
Even at megacorps where they have really good cloud dev environments, adoption is not universal. Many many people at my current employer have big under-desk workstations to do their day-to-day programming.
I do think there are some real wins in ensuring development environments are consistent and versioned. Knowing you can pick up the exact version used to develop the project without dedicated effort is attractive.
It's not nothing. Most developers are issued laptops, and a 64GB Macbook costs over $3000. Plus a CDE can be shared.
This is unfortunatley a nonsensical argument.
As a company, you are employing a developer to write code. Both the company and the developer are happy when they are at their most productive. And to that extent, a $3,000 laptop is a perfectly reasonable "tool of the trade". Also don't forget companies can lease laptops if they don't have the cash floating around.
Its the same thing in other sectors.
For example, in Finance. A Bloomberg terminal comes in at $30,000 a year. But if you are, for example, a bond trader putting in multiple 6,7 or 8 figure orders on the market every day, then its no secret that Bloomberg has the monopoly on bond data and as a bond trader you absolutely need access to one as the tool of your trade.
In addition, following COVID, most sensible companies have embraced WFH. And so what the company saves on office space they can spend on other things such as better laptops for developers.
I get that spinning up a new dev env is really handy, but with something like Ansible it's possible to get a good dev environment on someone's local machine within hours, not much worse.
What am I missing?
At work we have very beefy workstations that just aren't available in those hardware specs from cloud vendors. They use workstation grade hardware (A6000 GPU, threadrippers) that offer better performance/price than similarly sized cloud offerings which use datacenter type hardware. To actually tick all same boxes you'd need to go for much larger instance types. Plus it would be questionable whether one could realize the scaling benefit of the cloud because those machines are more pets than cattle, killing them over night and bringing up a clean system the next day would likely upset dozens of different workflows and tweaked setups. And then the software expects network filesystems with low latency random access, not blob storage... They did the cost calculations, buying hardware is cheaper in the long run, including ops.
And then there are customers that have extremely stringent security demands. Segregated networks, video surveillance, no data must leave the premises. Convincing them to move the data into the cloud might not be impossible but it would be a big recertification ordeal for one cloud vendor. And then we'd be locked into that vendor until we could get something else. And we have several such customers.
if you're up for quick chat/DM, would love to hear more (link in profile)
I was initially kinda opposed to this and preferred "bare metal development" on my local rig. But the performance is actually pretty incredible for remote development with vscode such that I don't really notice things are running on different hardware.
We recently had some new members join the team and I decided to spin up some dedicated EC2 instances for them to use for this exact purpose. They aren't being used yet, but as our stack becomes more sophisticated I think workloads will transition there. It's done with a custom terraform module that also provisions other assets needed for each dev (regardless of local or remote dev) like an S3 bucket, some dynamo tables, IAM roles, etc. Being able to onboard a new dev with a handful of lines added to a mapping is pretty awesome.
tl;dr I would absolutely consider remote dev spaces.
I tried Github Codespaces and thought it was cool but wasn't nearly as fast as my remote workstation.
Not to mention the superior network connectivity (10 gigabit/s). In fact, there are no 10gbps options from the common last mile carriers available at any price (AT&T, Crapcast). And if they did offer it, it'd probably be $500USD/mo+ just for Internet.
AT&T has a 5gbps fiber plan available for $250USD+/mo, but there are very few (>10 fractional portions of cities nationally) areas where it is offered today.
If you have a strong enough desire for cost-effective, really fucking fast Internet for a fair price, move to Korea. In .kr you can get 10gig for something like $30-50USD/mo.
Edit: Oops, my bad. I meant to reply to this comment:
https://news.ycombinator.com/item?id=37934982.
> Step 1. Create an Oracle Cloud account Step 2. Create an Ampere 6 core, 32gb memory instance for like $5/mo Step 3. Use Jetbrains Gateway to run your IDE as a thin client, executing on that host.
> You get a pretty darn beefy ARM64 VM instance from OCI for extremely cheap. You can get these in a region near you, with low latency. And Jetbrains Gateway works pretty great.
We use OCI, aka Oracle Cloud. As a customer, OCI is more financially appealing compared to the competition (AWS, Azure) for bare compute infra. Not as cheap as OVH, if that fits your requirements. For me though, OCI is preferred because it provides all the standard cloud building blocks of multi-region + (cheap) object storage + block storage.
I mean, fuck Oracle and Larry Ellison, right? That said, building and operating a cloud at scale is a lot of work and I'll leverage their work as long as it makes fiscal sense.
> $60/yr vs thousands of $ upfront for a comparable desktop or notebook machine.
I don't think we're talking about the same things here.
I could upgrade to dual 2.5 GigE but I have nothing that needs that much bandwidth. I can download 30gb from hugging face in a few minutes which doesn't bother me.
The DC is about to onboard another client of mine, a startup that ran on AWS credits for 9 months. They are upgrading to a 64 core 2TB ram box that was an extra the DC had, for $3500, which will probably go into the rack next to mine.
Windows randomly quit, take forever to open, there are always indexing issues, etc. Locally everything is great, but remote is completely unstable.
I'm really interested in this kind of thing.
https://www.webhostingtalk.com/forumdisplay.php?f=131
Also just googling "[major city name] colocation" will usually find results, though be warned pricing is often "call us" vs. stated upfront.
Edit to add; cost me about $70/month depending on a few variables on collocation for a 4U. My same apps on AWS would cost 10x more. So that’s plenty of budget for my hardware that I usually get a year or two out of; doing minor repairs/upgrades myself.
I like to make sure the network hop path to my home is as direct as possible. My ISP has a large presence in one of the local “backbone” data centers so that’s where I find the best results. But still do testing, it’s not all about location when it comes to latency. If you visit the data centers, or online, they often list names of colo providers. They’re often rather small shops and not large brands so going to be very location specific
Step 1. Create an Oracle Cloud account Step 2. Create an Ampere 6 core, 32gb memory instance for like $5/mo Step 3. Use Jetbrains Gateway to run your IDE as a thin client, executing on that host.
You get a pretty darn beefy ARM64 VM instance from OCI for extremely cheap. You can get these in a region near you, with low latency. And Jetbrains Gateway works pretty great.
On the plus side, this is an entire VM, so if you've got containers, or whatever else you need to run, that all executes there too.
Has it improved in the last year?
i so desperately want it to work, but it messes up often enough that it's not worth it yet
fwiw, using local intellij with nfs mounted source is a better experience
There are still irritations. But I am comfortable using it day-to-day.
It's absolutely critical that your remote gateway be nearby. I'm about 10ms away from mine, and though there is sometimes perceptible lag, it's not bad at all.
> Ampere A1 compute… with cores billed at $0.01 per OCPU-hour and memory billed at $0.0015 per GB-hour in all regions.
So for 6 cores and 32gb memory I’m calculating $78.84 per month.
I’d love to get 32gb of ram for $5/month.. but it sounds too good to be true.
Most cloud environments are also limited in terms of what you can do. e.g: issue sudo while running a process, attach to a process with a debugger.
Usually when these come development environment ready, it also hides away underlying details - i.e, I no longer know the command line etc to should I need to write infrastructure code/automation later on.
I guess there are domains where these are non-issues. But for a wide variety of my use-cases local development is going to be preferable, because by design there are limitations in the alternative.
Started a new job recently and had my laptop up and running, ready to code in about an hour (only second nix box I've brought up), by day 3 I was building and running the main monolith monorepo with my own local flake. I have since replaced redis, postgres, and two ancillary services in containers with devenv services/processes; it's been really great not dealing with docker volumes, networks, images or building containers and managing pruning them.
It would be interesting to play with automating deployment of my nixos machine configuration into a cloud VM or pod as I work 99% CLI anyway, but I just don't really see the need... this is just easier.
GitHub Codespaces for quick stuff, I prefer my IDE.
I'm aware of IDX though
doing things like that will not get you any rewards which compare to the effort you've spent. look out a window, I say.
that's your time. don't give it away to your employer for free. get paid for it if you are going to do work while you commute.
Honestly, I'm either on the clock or off, and I have better things to do with my time than look out a window when I'm not being paid.
At this point id question if I want to be this tiny piece of a tiny cog in a tiny gear among a billion gears in the huge clunky machine (comp and bottom layer of Maslow hierarchy aside).
https://github.blog/2021-08-11-githubs-engineering-team-move...
Also I can't really say that I've heard anyone outside of this thread who is excited about this at all. I see people here have different ideas but personally I've never heard of it from anyone I work with or know directly.
I can also concur that I work in an area a that is doing somewhat bleeding edge infra work (probably second stage adopters) and none of my colleagues or myself is actively seeking out this technology. We don’t really seem to have the problems it purports to solve in a major way at this time.
The issue is that most of my team are in that 10% and now that 90% of the company have their needs met, we're getting pressure to conform because maintaining all the physical infrastructure for a small group gets expensive. Unfortunately, we can't use cloud environments for a reasonable chunk of our work, so that really means we're get forgotten about until we complain loudly enough, no matter how friendly I am with the relevant teams.
We have our own custom built cloud dev envs where I work and I def see the value. I don't need to worry about a conflicting version of a dependency that I have installed locally for some prototyping affecting my day-day productivity.
I loved it-- I loved having separate environments per-project. I enjoyed the collaborative features as well (send a link to look at code or preview something, etc). I see a lot of potential with them and I would love for them to be more mainstream.
After Amazon acquired the company I cancelled my subscription (I was paying annually.. I think it was $190??). I knew Amazon was going to murder the service, require an AWS login and who knows what.
I have tried others since then like code spaces and some open source/self hostable solutions (I have even tried the old self-hostable Cloud9 code).
Ultimately, I gave up on it... why? I didn't like the idea of self hosting (more attack surface area, etc). I didn't like any companies offering the service.
I bet it's hella outdated and full of security issues now though.