Ephemeric Instances

Ephemeric cloud is designed to efficiently host lots of applications. There are some restrictions applied to the hosted Images though.

Image Archive File

To create a new instance in Ephemeric Cloud user sends an HTTP request with an Image Archive File which contains an application to run. Image Archive File is tar or zip archive with one Pharo image and complimenting files (sources, changes, file resources). System unarchives the file, searches for an .image file and run it with the following command line:

pharo -vm-display-null --headless --encoding UTF-8 "$IMAGE" --no-quit

There are some restrictions applied on Image Archive file:

Image Archive file may contain some additional configuration files which have some special processing:

Startup script

If you want some script executed upon Image start you may put startup.st file in Image Archive File the same location as Pharo Image. This file may contain any smalltalk code like startup of services, and configuring database connections.

This file is very helpful to get Pharo Teapot applications run in Ephemeric cloud as Teapot is not auto-restarting on Image restart.

Environment configuration

Ephemeric cloud provides an automation of environment configuration by using secure tunnels to external resources like databases. If system finds a stunnel.conf file in Image Archive File it will automatically apply this configuration to instance. Read more in Configurable Cloud Environment

Instance object

Sample Ephemeric JSON

{
      "accessTime": "2016-01-12T15:19:20.204+00:00",
      "createdTime": "2016-01-02T04:39:52.395+00:00",
      "alias": "example.swarm.pharocloud.com",
      "isRunning": false,
      "imageName": "Ephemeric-Cloud-Client-1.3.zip",
      "hostname": "eph-865894e7.swarm.pharocloud.com"
}

Instance Properties

hostname

Random-generated hostname is automatically assigned to an instance upon publish. It is used as unique identifier of an instance in the cloud. Read-only property.

Ex.: "eph-865894e7.swarm.pharocloud.com"

createdTime

Date and time of initial instance creation. Read-only property.

Ex.: "2016-01-12T15:19:20.204+00:00"

isRunning

Boolean, true if instance is actively running right now. Writable option. To activate instance you can change the value to true.

alias

Additional hostname that can be assigned to instance by user. If set to the value assigned to another instance owned by the user then previous instance's alias is set to null value. Writable string property.

Proper way to re-map alias is to set a value to a new instance first and then stop previous instance by setting isRunning property to false.

User may use any hostname you want if it is pointing to ephemeric gate domain. You also may use any *.swarm.pharocloud.com domain for not to configure anything, just make sure alias is not claimed yet.

customPorts

User can define an array of ports applications needs to expose. Ports are exposed on start and are mapped to a set of random ports on a node. To see the list of ports exposed see "mappedPorts" attribute.

mappedPorts

A dictionary with a list of requested custom ports and actual public addresses for each of them

accessTime

Last time instance was activated. Read-only date string property.

imageName

A descriptive name of the instance set by a user. Writable string property.