Skip to main content

Cloud IDE

Free2019-10-06#Mind#云IDE#远程开发#全云开发#why Cloud IDE#tool-less-dev

What future R&D model does Cloud IDE unlock?

I. Cloud IDE? Is it a new concept?

No, no, no. Mature products existed as early as 2010: Cloud9 IDE

Nowadays, Cloud IDEs are quite common, such as:

II. Why do we need Cloud IDE?

In typical development workflows, we set up a local environment, including a handy IDE and a complete set of local tools. But this local development model has some problems:

  • High performance requirements for development machines: 40 minutes for a cold compilation

  • Complex development environment configuration: Tool environments can be solved through container technology or a series of version management tools (such as nvm), but network, security and other environments are not so easy to configure

  • Dependency on specific devices: Vacation is fine, but bring your laptop, 24-hour On Call, one major demerit for 10 minutes of no response

  • Management challenges for giant codebases: Switching a Git branch in a giant codebase often takes half an hour

Thus, the concept of remote development emerged. Connect to remote test servers and complete daily development work directly in the server environment, eliminating the cost of rebuilding and maintaining a test environment locally

Under existing remote development models, engineers mostly connect to remote machines through terminal interaction tools and develop through text editors like vim, naro, etc. These editors usually don't support basic features like project file management, running tasks, debuggers, intelligent hints/completion in a friendly way, and cannot provide a comfortable development environment like local IDEs. While development experience declines, it also limits development efficiency

So, is there a way to have the best of both worlds?

Yes, move the IDE to the remote as well, i.e., Cloud IDE

P.S. Or pull the cloud down, that is, local IDE provides remote development capabilities, but conceptually it's no different from Cloud IDE (local IDE is equivalent to a browser). See VSCode Remote Development Kit for details

III. What problems can Cloud IDE solve?

In summary, moving IDE to the cloud can solve problems in two aspects:

  • Problems difficult to solve in local development model: No longer requires local machines to be very powerful, no need to worry about environment, no dependency on specific office equipment, and hard drives no longer need to spin crazily

  • Experience problems of remote development model: No longer a Web Editor toy, but a development environment as handy as local IDE

Cloud IDE is also an implementation form of remote development model, so it can naturally solve some problems existing in local development model

At the same time, as an upgraded form of Web Editor, Cloud IDE can provide better remote development experience, complement the experience shortcomings of remote development model, and solve the problem of tools not being handy limiting development efficiency

IV. What is the function of Cloud IDE?

Whether local IDE or Cloud IDE, both have two basic functions:

  • Improve development efficiency: Integrate fragmented development tools/services, realize platformization of toolchains

  • Upgrade development experience: Seamlessly connect development workflows, provide one-stop experience

From a developer's perspective, the key to IDE lies in the integration and connection of tools, not just a simple toolset, but enabling these tools to work together in the most natural way, forming an efficient workflow. That is Workbench/Work Assistant >> Toolset:

IDE >> Project File Management + Text Editor + Interactive Terminal + Project Scaffolding + Running Tasks + Debugger + Tool Plugins + ...Tools

For cloud service providers, they can achieve product form upgrades from Cloud Shell, Cloud Editor to Cloud IDE, closely combining a series of products (cloud services) with users' workflows, which not only better expresses product functions, but also reaches users more efficiently through IDE:

                     ^ FaaS, BaaS
                    /
Cloud Service Users ---> Cloud IDE ---> Data Storage Services
                    \
                     v Computing Resources

V. Application Scenarios

In the foreseeable future, Cloud IDE has these application scenarios:

  • FaaS: Function as a Service, so, where are functions written?

  • Independent technical ecosystems: Such as React Native, Mini Programs, visual building systems, etc.

  • Cloud computing products: From providing discrete products/services (such as FaaS), to providing customized development environments and workflows

  • Source code management platforms: Imagine, GitHub/GitLab as development environment

  • R&D workbench: In the all-cloud R&D model of the cloud computing era, the complete chain of Requirements-Development-Testing-Operations

VI. What might the future R&D model look like?

An efficient R&D model centered on Cloud IDE might look like this:

  • Unified development environment: With container technology, development environment can also become part of the project, managed like source code (Infrastructure as Code), and code style constraints can be better implemented

  • Dedicated IDE: Provide dedicated IDEs that fit products/business better by customizing open-source IDEs

  • Complete engineering chain: Edit-Build-Run-Debug-Test-Operations

  • Fast build speed: Thanks to [cloud computing's elastic allocation capabilities](/articles/伯克利研究员们眼中的 cloud-computing/#articleHeader4), compilation time can be greatly shortened

  • Code anywhere: Development environment can be as readily available as cloud computing services, anytime, anywhere, code whenever you want

  • Real-time collaboration: Online Review, hands-on teaching, shared workspaces, one-click code sharing

  • AI-assisted development: Intelligent hints based on full source code, even code generation, quality analysis, etc.

While technology moves towards techless, the R&D model may usher in a tool-less era

Reference Materials

Comments

No comments yet. Be the first to share your thoughts.

Leave a comment