HackerTrans
TopNewTrendsCommentsPastAskShowJobs

liushh

no profile record

Submissions

Launch HN: Nimbus (YC W22) – Cloud dev environments for teams

96 points·by liushh·il y a 4 ans·94 comments

comments

liushh
·il y a 6 mois·discuss
haha ~ I see my past self playing with this fulltime haha. great work!
liushh
·il y a 4 ans·discuss
Co-founder of Nimbus here (https://www.usenimbus.com/)

We also provide a remote dev environment solutions. I think in your use case is very special as you cannot leverage any cloud providers, which can potentially make it harder for you to integrate with certain solution.

We are looking for design partners. If you like to share more and have a discussion, I am very happy to learn more about use cases and make Nimbus work for your on-prem infra.
liushh
·il y a 4 ans·discuss
Great work guys! Looking forward to integrating with JumpWire!
liushh
·il y a 4 ans·discuss
I think you are right :) with a great dev infra and policy setup and proper enforcement, docker can be a great solution of environment consistency/standardization.

One use case I forgot to mention and I want to share. In some scenarios, engineers need to work on more than one project and they have completely different set up, which would be difficult for them to maintain multiple environments on their laptops. Back to our docker example, if project A requires docker desktop 4.1.0 and project B requires 4.7.0 it would difficult for the engineers to manage that. I know this is an extreme example but good enough to make the point. This scenarios happen a lot in consultant business where one engineer need to work for multiple clients at the same time.

In terms of desktop codebases, do you mean native desktop application development? I think that is a tricky one as well for similar reasons as mobile development because you need to run the apps on a specific OS for testing. But if one finds a workaround for testing, then writing code on Nimbus environments should be as good as on your local environments.

About the concern the big brother can always slip a timeclock in there: haha~ as an engineer I feel you. That is never the goal of Nimbus and I would not want my boss to stalk my every single keystroke.
liushh
·il y a 4 ans·discuss
Liusha from Nimbus here.

>I'd love to look again once virtual MFA or hardware MFA is supported.

MFA is not far. We have already started to work on MFA across our solution. I will ping you as soon as we have it ready for you.

Actually your use case is also something we are really interested in. Engineers who work on contracts or work at IT consultant companies switch between different environments way more frequently than other use cases. I wonder how you mitigate that problem today?

> The cloud env worked well, although I noticed the latency.

About latency, can I ask what your geolocation is? (country?) and which region did you select from Nimbus?

> I'd want fast VM start times

We have provided a `active hours` feature (not available for trial user). You can have your server start/stop at a given time of the day. During that time range your server will always be active. only takes about 10-15 seconds to connect.
liushh
·il y a 4 ans·discuss
haha I want to be clear. I meant you can define your environment however you like in terms of flexibility. You can have 27 different repos with 2 k8s clusters with other integrations you like in an environment.

Nimbus can achieve exactly the same. You can define an environment template and all workspaces your team create from that template will have exactly the same environment.

In short, a team can enforce consistent environment with Nimbus easily.
liushh
·il y a 4 ans·discuss
I can say for Meta/Facebook, Shopify, LinkedIn, Microsoft, Doximity...
liushh
·il y a 4 ans·discuss
Liusha from Nimbus here.

Actually the larger the organizations the more necessary a cloud-based dev environment solution. That is why all the tech giants have a solution internally like Nimbus and all organizations with more than 500 engineers that I have talked to have something like Nimbus.

> To me this seemed like a novel way to enforce strictness in SDLC for junior devs writing javascript-like code...

The key is not to enforce a strict SDLC. The key word is `Consistent`. I can see some exceptions where teams want to have inconsistent environments but I believe vast majority of the teams want to have consistent environment within their eng org. It means easier onboarding, fast recovery, and better collaboration.

> ... but never came close to having the real IDE on your machine.

If you are doing iOS development or something similar I would agree that IDE on your machine is a necessary. After all, you still need XCode. (even that, I see technologies are catching up...) But other than those native apps, I don't see real difference between a local vs cloud dev environment.

Can you share some examples? What can you do on local but very difficult/impossible to do on cloud dev env?

> If you need reproducible builds? Why not just use docker?

Here are some of my thoughts:

  1. in a small scale (3 micro-services + 1 DB + 1 webapp), I think docker does an amazing job to ensure reproducible builds. But as the complexity grow, docker starts to shift from part of the solution to part of the problem. Just to throw out some questions: how to manage compatibility if a team uses Windows, Mac, Linux at the same time, even with different versions? How to ensure 237 of my engineers do not have a broken environment when I want to bump the docker version? 

  2. There are things should not be part of docker images and those things are more troublesome than the build itself sometimes. For example: credentials, env vars, and so on. I don't remember how many times I need to ask a bunch of people just to get the credentials right. 

  3. Even an amazing tool like Docker does not have 100% of the market. So we may be a good alternative for the teams who choose not to use Docker.

Of course, there are various solutions to those different problems. I believe we are one of them. Moreover, I believe we can integrate with other solutions to solve the bigger problems.
liushh
·il y a 4 ans·discuss
Great question! (Also a tough one)

I have been using Nimbus on my flights and it works well. Of course depends on your geolocation, the latency can be higher than normal but the internet speed should not be a blocker because all the intense internet traffic happens on the data center.

However, without internet it would be challenging to leverage Nimbus solution at this moment since the environments live on the cloud 100% now. But in the future, we will look into a hybrid solution. In short, we can offer the option to rsync (or similar tools) the cloud environments into your local or the other way around to facilitate this corner case.
liushh
·il y a 4 ans·discuss
Do you mean having a MacOS on a cloud machine?
liushh
·il y a 4 ans·discuss
self-host is definitely on our roadmap. For the first step, at least we want to deploy the EC2s in your own cloud rather than Nimbus's cloud.
liushh
·il y a 4 ans·discuss
Nimbus is now compatible with JB Gateway actually even though we don't have an official JB plugin, which we are actively working on already!

Feel free to check out our doc about how to set it up here: https://www.notion.so/Connect-to-Nimbus-workspace-8c7c5b41d9...
liushh
·il y a 4 ans·discuss
+1 on "You could run DevSpace on top of Nimbus"
liushh
·il y a 4 ans·discuss
> How does that work from the IDE's perspective?

We have been adding different IDE integrations into our solution so that a user would not even feel they are coding on a remote environment. We support a very smooth VSCode experience now and JetBrains IDE is on the way.

> What does being "machine-first" mean for the end-user experience?

It means you have the full control and flexibility to define how your environment looks like instead of being forced to have one repo per environment. This flexibility enables the exact same experience as the one you have in your laptop from development and env management perspective.

> Does that mean your target audience is doing data-heaving / processing-heavy development that requires much more powerful machines?

Data-heaving / processing-heavy development is definitely a good use case but our target audience is not limited to that. A few examples here:

  1. even though you are running a webapp with micro-services on the backend, the requirement for computing power can increase as the number of services grow. I see some teams are running 20 - 50 micro-services and it is just too much for a laptop.

  2. In some regions, it is not so common that engineers get the high-end macbook pro for their daily work. Some has to work with 8GB ram machines for various reasons.
> As an end-user, how does this affect me?

Theoretically, containers can do everything VMs do but in reality they introduce different complexity. Here are some examples:

  1. If you have two k8s clusters, you can easily run it on a Ubuntu VM and when you run into issues, it is easy for you to find answers support. But running two K8s clusters inside a docker container is much more challenging~ but yes doable.

  2. There are some random issues I run into with containers, like port forwarding (management in general). Again I figured it out but more complex

  3. Easier to integrate with users current configurations. Most users today still code on their laptop directly instead of creating a container and code inside that container. So most settings can be migrated to a VM-based environment directly.

  4. As much as I love containers... still many engineers don't use containers for various reason.
liushh
·il y a 4 ans·discuss
There are definitely more alternatives in the market now. But I do see the differentiation pretty clear (maybe because I am building it) Actually I think you are pointing out some great categories for differentiation, simpler config, faster boot time, and so on.

A few more things we learned based on the current market is that the team is way more distributed geographically now. So the latency and collaboration across different geolocation are also two areas we really focus on.
liushh
·il y a 4 ans·discuss
As a Codespaces competitor, glad to see a Codespaces user giving us some attention.

Love to see how you like Nimbus and how you feel the difference between different alternatives.
liushh
·il y a 4 ans·discuss
At Nimbus, our solution for individuals will be released very soon. I am happy to get you on a free trial even before the release if you are interested.
liushh
·il y a 4 ans·discuss
As someone who is building a cloud-based dev environment solution, to be honest, I am really thrilled to see tech giants making such big splashes.

It is impossible to ignore the trend that the software we develop is getting more and more complex. It will take longer and longer for an engineer to set up the local dev environment until it is almost impossible for a new hired engineer to do so. More importantly, once you reach a complexity scale, even the most high-end macbook pro cannot run the software we develop locally anymore.

At Nimbus, we are simply following and accelerating that trend with our cloud-based dev environment solution. I deeply believe that within 3-5 years, it will be a more common to develop on a cloud-based dev environment than on our laptops.
liushh
·il y a 4 ans·discuss
Great article. I learned something new today!

I am using M1 Mac pro and I do code on Ubuntu but I took a very different approach. I have been using cloud-based dev environments based on AWS (potentially any cloud provider).

Different from a couple years back, the integrations of VSCode are now very mature and can provide a very smooth development experience when I use native VSCode + remote server AWS EC2. As you can imagine, when I code on the cloud ubuntu instance directly, the performance on my laptop and the dev environment are both much better because the zoom and chrome on my laptop get more resource and my code also has its own dedicated resources on the cloud. Everybody is happy.

There are a few concerns when it comes to develop on cloud

* Latency: - after all now every single key-stroke goes to a remote machine will that be slow? The reality is I can't notice it at all. Of course, you need to pick a data center closer to you.

* Computing power: - Some are concerned the performance of cloud computers. But in fact, cloud computers can be much faster. I once picked a 256GB RAM just for fun. All I can say it, you may want to try it just for fun

* Security - I will be brief there. Cloud computer is much more secure than personal laptops if you follow the practice, especially if your eng team has lots of remote developers.