Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [che-dev] How to bootstrap a minimal Che IDE?

Hi Kaloyan:

The use case that you are talking about is clear.

There are two ways to achieve what you are seeking - with and without docker.  In both cases, a Che workspace always requires a runtime. The workspace cannot start without its runtime, and you cannot open the IDE without it. So the only question is whether you are going to use a default runtime (Docker) or create a different kind of runtime (localhost). Che is shipping with an abstraction layer, called Machines, which can be extended to different types. Machines are used to provide runtimes to the workspace. We have the Docker machine as the default implementation. In 4.2, shipping in a couple weeks, we'll have an SSH machine as well.  We have not implemented a localhost machine, but it is possible to override our interfaces and to create custom machines of your own.

In all cases, regardless of the machine, you can programmatically create / destroy workspaces. Once you have the type of machine that you intend to use, you can launch the Che server and then use the Che APIs to generate (or load) a workspace. Once the workspace is loaded, you can then provide the user the IDE.  You could have the process that starts the che server & create the workspace run as part of a daemon, for example.

In the docker configuration, you need to have a docker daemon on your AMI along with the PHP image that would be used to power the Che machine.  Docker can instantiate containers quickly, so using Docker would generally not be the bottleneck in the loading.

So to do this, would:
1. Create a build of Che that removes any use of the dashboard.
2. Get a Che image on your AMI in your local registry.
3. Start the Che server in a daemon.
4. Call the Che APIs to create a workspace.
5. The workspace will start with the embedded terminal & ws-agent.
6. Then you have this workspace ready to present to the user on your own terms.

You'd want to set the workspace idle timeout to -1 or a very large number, as essentially the workspace itself is now running as a service.

Doing this without Docker would involve writing a new Machine interface. That is getting into code.  But even once you had this, it would be an optimization, as the workflow cited above would still be the sequence of steps to follow.

Tyler


Tyler Jewell | CEO | tyler@​codenvy.​com | 9​78​.8​84​.53​55


On Thu, Apr 14, 2016 at 7:04 AM, Kaloyan Raev <kaloyan.r@xxxxxxxx> wrote:

Hi,


I'd like to experiment with Che for the following use case.


We have an AWS AMI providing a professional PHP stack. It's an Ubuntu VM with Apache Web Server, Zend Server as the PHP stack, MySQL and other dev tools. I'd like to include the Che IDE in the same AMI and integrate it with the PHP runtime as tightly as possible to achieve better off-the-shelf experience.


I'd like to manually install the minimum required Che components in the existing AWS AMI. I need only a single workspace - the VM of the AMI itself. I don't need the Che dashboard and the ability to create new workspaces. Hence, I don't need the Docker management stuff.


Ideally, when I launch the AMI, I should have the Che IDE up-and-running very quickly.


What should I do to achieve the above?


Thanks,

Kaloyan


_______________________________________________
che-dev mailing list
che-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/che-dev



Back to the top