Virtuozzo Application Platform 5.4

This document is preliminary and subject to change.
In this document, you will find all of the new features, enhancements and visible changes included to the PaaS 5.4 release.

Container Firewall Management via User Interface

New Firewall section added to environment Settings, allowing to manage custom firewall rules via graphical user interfaceLearn more

Private Network Isolation

For now, each user account is assigned a dedicated private network, allowing to create isolated environment groupsLearn more

Extra Environment Layers for All Supported Engines

A possibility to add multiple Extra environment layers and combine both Docker containers and platform-managed stacks within a single environmentLearn more

Go Support Integration

Extending the list of supported engines and technologies with Go programming language, delivered by means of the Golang application server stackLearn more

UI/UX Improvements

  • New option to choose among simultaneous and sequential modes when (re-)deploying or restarting multiple containers within a single node group
  • Possibility to select and remove multiple items within the Deployment Manager’s archive list at once
Learn more

Deployment Improvements

  • Possibility to deploy application from the container’s local file
  • Allowing Maven build node to operate with projects from within VCS repositories subdirectory and/or to compile applications without specifying a target environment
Learn more

Webhooks for Application Build and Deploy Operations

Automation of environment lifecycle management with Webhooks to execute custom scripts before and/or after application deploymentLearn more

Web SSH Connection via Guacamole

Integration of web-based Guacamole client to access containers via SSH directly through the platform dashboardLearn more

Container Restart Command Standardization

Support of unified commands for calling start, stop and restart operations similarly within alll dockerized software stacksLearn more

UI/UX Improvements

  • Updated layout for platform API documentation UI
  • Updated UI for the 502 error pages
  • Displaying node group and comprised stack(s) name for layers and a dedicated icon for the master node
  • A possibility to expand the Environment Management panel with a double-click
  • Allowed scrolling of the Filters section content in Billing history tab in case it doesn not fit the allocated space frame
  • Dashboard notification for optional (but not forced) access to the (re-)deploy and restart actions log after the appropriate operation execution
  • Ability to accumulate and view node Statistics data with a 1-month period
  • Updating the NGINX server logo in dashboard to its latest official version
Learn more

Composer Dependency Manager for PHP Servers

Integration of the Composer dependency manager to the default Apache and NGINX-PHP application server buildsLearn more

HTTP 2.0 Support by Shared Balancer and Environment-Dedicated Load Balancers

Integration of the HTTP 2.0 protocol support for processing incoming requests to both common Shared Balancer and dedicated load-balancer nodes within user environmentsLearn more

Logging of the Request Source Port Number

Fetching and storing target port number of each incoming request which has been received by the platform’s Shared Load BalancerLearn more

Cloud Scripting Engine Optimization

Automatic provisioning of the default API parameters and case-insensibility integrationLearn more

Short Aliases for Namespaces in API List for Tokens

Possibility to define the allowed API methods during tokens management by means of namespace aliasesLearn more

AutoFS Package to Support Mounting on Certified Templates

Reducing the number of permanently active mount points with the AutoFS tool and its as-needed approachLearn more

Add-ons Button for the Load Balancer Layer

Permanent display of the Add-ons button for the nodes within load balances layerLearn more

Adding VCS Directory Shortcut to the List of Favorites

Adding the /var/lib/jelastic/vcs directory to the list of default shortcuts within containers, created upon platform-managed stack templatesLearn more

Environment Name within Load Alert Email Subject (build 3)

Displaying environment name in the load alerts email Subject to visually separate such notifications for different environments within user InboxLearn more

Clarification for Docker Container Credentials Email

Updated Docker container created email template to help new users with further possible steps on its use and managementLearn more

Detailed Response for the Image not Found Issue

Extended description for the Image not found error during Docker containers creationLearn more

Software Stack Versions

Actualized list of supported OS templates and software stack versionsLearn more

Locked Environment Issue Handling

There was an error when trying to manage container with the ongoing backup processLearn more

Private Docker Container Credentials Change

Custom Docker containers deployed from within a custom user registry, could not be scaled after changing the access credentialsLearn more

Fixes Compatible with prior Versions

Bug fixes implemented in the current release and integrated to the preceding platform versions through the appropriate patchesLearn more

Bug Fixes

List of fixes applied to the platform within the present releaseLearn more

Container Firewall Management via User Interface

One of the major features of PaaS 5.4 release is a newly implemented possibility to manage firewall rules through a comfortable graphical interface on the container level (excluding custom Docker- and Windows-based nodes) - the dedicated same-named section was added to the environment Settings menu.

container firewall

Here, the following three tabs are available:

  • Overview - provides general information on the feature, allows to change Firewall State (which is enabled for all containers by default) and shows Isolated Env Group(s) the current environment is included to
  • Inbound Rules - allows to manage incoming requests (not listed ones will be denied by default)
  • Outbound Rules - allows to control outgoing connections (not listed ones will be allowed by default)

A number of default rules is automatically added to the inbound section by the Platform to make your node operable. Rules within the list are grouped by layers and are marked with the following color labels:

  • gray for the default non-editable records (i.e. the obligatory ones)
  • white for other default (stack-related) and user-added (either by an environment owner or his collaborators) rules
Note: Apply changes to the default rules only in the case you know exactly what you are doing, since these records are required to ensure stack specific functionality and to provide particular features support (e.g. to allow SSH, HTTP, HTTPS or FTP connections).

The very first record is has the highest priority (1) and allows platform infrastructure to access a container. Also, subsequent execution of some container management operations (e.g. creating mount points, installing FTP add-on, etc.) can result in automatic complementation of the default rules list. Herewith, each rule is added with a 10 points priority step, so that you would be able to insert new ones in between the default records without the necessity to edit the already applied connection permissions.

At the dedicated section, the tools panel above the list contains a set of buttons for a convenient firewall rules management, namely: Add, Edit, Remove, Disable (Enable) and Refresh. When adding a new rule, the following parameters should be defined:

  • Nodes - allows to select the required environment layer
  • Name - to provide name for this record (can be expanded to select from a number of the commonly used rules)
  • Protocol - to set the required protocol type (TCP, UDP or TCP/UDP)
  • Port Range - to define a particular port (e.g. 80) or their range (e.g. 1024-2048) to be opened/closed for connection; leave this field blank to apply the rule to all ports
  • Source - to select the request source:
    • Custom IP Address(es) - a comma-separated list of IPv4/IPv6 addresses and CIDR blocks (e.g. 10.0.0.1,10.0.0.0/24)
    • redefined ranges - All, All IPv4, All IPv6, Local Network, Internet (Public Access)
    • Environment Nodes - node type (layer) from any environment on an account (after appliance this rule will be automatically adjusted upon the appropriate layer scaling)
  • Priority - to set a rule priority (where rules with lower value will be applied first)
  • Action - to define the required action upon receiving the matching request (either allow or deny)

Subsequently, if meeting the necessity to edit any of predefined rules, you’ll be able to adjust all of the above-described parameters except of the Nodes field (i.e. target layer can not be switched). Also, with testing purposes, you can temporarily exclude some firewall records and reapply them later on with the appropriate Disable/Enable buttons. After some adjustment (for example, topology change), you may need to update the list of rules with the Refresh button.

Note: Rules, listed within the iptables-custom file, won’t be displayed within the dashboard UI, but will be applied before them.

Back to the top

Private Network Isolation

In confines of PaaS 5.4 release, an automatic account isolation was implemented at a Platform. This explicitly prohibits any unallowed connections between environments of different users via internal platform network (i.e. even in a case some malefactor has managed to gains access to such data as domain name, node ID, internal IP, etc.).

This results in another essential newly added possibility to create a so-called “secure” environment groups, intended to isolate environments of a single account from each other. Just turn on a new Network Isolation switcher within the Add or Edit Group frame.

add isolated group

Platform automatically creates a dedicated IP set for each isolated group, which is composed of the appropriate containers internal addresses. This allows to control access between nodes (i.e. if IPs are within the same set - interconnection is allowed, if not - denied). Also, Platform detects all the appropriate account changes to automatically keep sets up-to-date (e.g. due to environment removal, nodes scaling, etc.).

Also, while managing Network Isolation, the following peculiarities should be considered:

  • the feature can be enabled for the top-level group only (i.e. not for subgroups)
  • environment groups with enabled isolation are provided with a custom icon for better recognition
  • shared environments can not be included into isolated groups by collaborators
  • access from outside of the Platform (e.g. via Public IP) could not be limited by this feature

Extra Environment Layers for All Supported Engines

In order to support even greater variety of solutions (through a more flexible topology constructor), a number of special adjustments were applied to the environment wizard:

  • all layers include an additional Docker image option now, whilst sections within the Docker tab were complemented with platform-managed templates instead; this allows to combine both certified and custom Docker containers in confines of a single environment
  • within the App. Server layer the possibility to select servers for any programming language was added (you’ll be automatically switched to the appropriate tab)
  • the Extra layer option was integrated to all tabs, allowing to deploy any platform-managed stack template or Docker container image within the required environment layer; herewith, any required number of additional layers can be created
  • added possibility to specify custom layer names via topology wizard

choice app server

Such changes ensure environments versatility, allowing to create the one, which will suit you the most.

Back to the top

Go Support Integration

The most notable stack provisioning update in confines of PaaS 5.4 release is addition of a new programming language to the list of supported ones - Go. This free and open-source language (originally developed by Google) allows you to leverage with multiple built-in features:

  • a concurrency mechanisms to get the most of the multicore systems
  • modular program construction to achieve advanced flexibility
  • fast compilation into machine codes
  • a convenient garbage collection for efficient memory utilization

choice go in topology wizard

Go is easy to write on due to utilizing a set of simple tools and commands for operating with code. Below, you can find a list of the most common commands (refer to the official documentation for the complete list):

  • go build - compiles packages and builds Go binaries
  • go test - tests packages
  • go fmt - formats package source code
  • go get - downloads and installs packages
  • go vet - reports potential errors in code
  • go run - builds and executes code
  • go doc - displays documentation
  • go generate- generates Go files by processing code

The integration of a Golang application server was implemented through addition of the appropriate platform-developed dockerized stack templates, providing the 1.9.1, 1.9.2, 1.9.4 and 1.10 versions of the stack. A new app server supports all of the functionality required to work with Go and provides access to the platform native benefits (e.g. vertical and horizontal scaling, files and logs management, statistics monitoring and load alerts, etc.). Herewith, due to the Go engine specifics, it supports only VCS deployment type (i.e. deployment from archive is not available), whilst the appropriate server could operate with just a single project (context) at once.

Back to the top

UI/UX Improvements

API Documentation Redesign

Within the current platform upgrade, a major redesign of platform API documentation has been implemented. The new style corresponds to the current site and documentation color scheme and ensures better appeal in general. So, currently, API documentation includes three default tabs, which can not be closed:

  • Home - general overview of platform API and the common points/recommendations on its usage
  • API Documentation - the main section, where the categorized methods list is displayed, allowing to browse through all of the API requests
  • Examples - list of useful samples to demonstrate some basic procedures and automation flows, which could be implemented by means of platform API

platform API redesign Additionally, a few functionality optimization were applied to provide better user experience. For example, newly added drop-down list at the top left corner of the page, allows to select platform version (i.e. to display only the appropriate API requests). Next to it, you can find a Search field, which helps to find any API method. Also, for each section, the quick Filter class members field was added (top-right corner) to easily search through this particular group of requests.

More info

Environment Error Pages Restyle

If URL in the address bar points to environment, which can not be reached (e.g. for the reason it does not exist at a platform, or is stopped, or is down due to some maintenance activities, etc.) a dedicated error page will be displayed. Herewith, the platform automatically detects the issue occurred and provides the appropriate description with some of the most common steps (recommendations) to avoid or fix it. In the present PaaS 5.4 release, the corresponding set of error pages were updated, including their redesign to match the latest platform corporate style. Also, the link for contacting the platform support team was moved to the bottom of the page.

error page restyle

Parallel Containers (Re-)Deploy and Restart

In the PaaS 5.4 release, there was added a possibility to choose between two ways of horizontally scaled nodes managing was implemented:

  • simultaneously (i.e. all containers at once), which apply changes in a single run, but cause a brief service downtime
  • sequentially (i.e. one by one), where nodes are adjusted consecutively with predefined delay between operation on each two containers - to avoid service downtime

deployment types

Herewith, the first one can be a preferable option during testing/development, while the second one is mandatory for applications in production to ensure constant service operability. The required deployment type can be chosen by means of the appropriate options, which were added to the restart, deploy and update dialog boxes (for horizontally scaled layers only).

Environment Layer and Master Node Designation

Due to the extra environment layer feature, you are able to completely change the default topology structure (e.g. to place same stack within several environment layers). Upon working with such custom topologies, in order to avoid confusion, the new more explicit designation was provided to show node group (layer) and the comprized stack(s) name simultaneously.

Such a change was implemented within all of the corresponding dashboard sections and dialog frames (e.g. load alerts, endpoints, firewall, Docker container linking, etc.). Herewith, upon hovering over a particular item within any of the node group lists, an additional information will be displayed in a pop up.

master node icon and layer designation

Also, the very first container within each layer of an environment is automatically considered by the platform as master. This node is required for some specific operations and can additionally be used in the following cases:

  • is used as origin for any subsequent container on the load balancers, application servers and VPS layers, i.e. new nodes will be a copy of this initial one
  • is required for the cloning operation
  • can be configured as a storage server for sharing data within the whole layer
  • is recommended to store the main configurations for a cluster, to ensure your data won’t be lost during scale in (as master is the last node to be removed)

In case of a simultaneous creation of the multiple containers, master is not always the first node displayed in the platform dashboard, so, starting with the 5.4 release, the appropriate designation was provided. For now, if layer has more than one node, the special icon will be displayed before the master one, allowing to quickly identify it.

Simultaneous Removal of Multiple Deployment Archives

When working with multiple projects and/or their copies, your Deployment Manager could be occasionally over-filled with numerous Archives, uploaded to it. Such a mess makes it difficult to find the required package, decreasing the service usability in general. So, in order to make the task of unnecessary projects removal quicker and more comfortable, the possibility to delete multiple packages at once was implemented. Just select all of the unnecessary items with the appropriate check boxes and click the Delete button from the tools menu.

archives bulk removal

Improved Environment Management Panel Accessibility

For quicker access and more convenient usage of the Environment Management panel within the platform dashboard, the possibility to easily expand it to a full-screen size was implemented. Just double-click anywhere on the tabs pane at the top of a frame to fill the whole dashboard space with the current section (i.e. Deployment Manager, Tasks or a particular environment Settings). This allows to percept and manage the required configurations more comfortable. And in order to quickly return to the previous size of the Environment Management panel, just double-click at the top of the frame once more.

management panel accessibility

Scrollable Filters Section for Billing History

The platform Billing History frame provides an important information about account balance charges. Here, you can review all spends (either per environment or for the whole account) and see all of the appropriate resources (i.e which were charged for). Using the filters section to the left of the tab, you can adjust the Start and End date, select the required Interval, enable or disable the Group by node feature and Refresh results.

billing history scrolable filters

And starting with the current Platform release, there was implemented the possibility to operate with the filtering section in case of a cramped space (i.e. low Billing History frame height). For now, the appropriate scrolling bar will automatically appear in case elements can not be fitted within the filtering section.

More info

Action Logs for Container (Re-)Deploy and Restart Operations

By default, the platform automatically provides details on container(s) restart, deploy and redeploy operations by opening a dedicated tab in the Environment Management panel, where the information on the appropriate action is displayed. Currently, such flow was optimized, providing just a dashboard notification with the Show Logs button. This allows to open action log only in case it’s actually necessary. Herewith, for Docker containers the button will expand a drop-down menu with possibility to review both Action Log and Run Log files. action log notification

Container Consumption Statistics for the Last Month

In order to allow better analysis of a resource usage on nodes, the Statistics section was adjusted to display data for the whole past month (rather than just a week). If needed, such enlarged period can be selected from the appropriate Duration drop-down list within the Statistics tab. Herewith, it can be used only with the 1 hour and 1 day intervals, which provide the appropriate level of data granulation.

usage statistics for one month

Official NGINX Logo Integration

In the present 5.4 Platform release, the NGINX server logo in the platform dashboard was replaced with its most recent official version. Herewith, changes (with the appropriate recolor to match layers color scheme) were provided for the NGINX PHP/Ruby application servers and load balancer. Such an implementation ensures a more accurate reference to the stack. nginx logo update

Deployment Improvements

Application Deployment from Container Local File

Within the current Platform upgrade, a possibility to deploy application to container from archive located on the same node was implemented. This can be performed through the URL section of the deployment frame by providing address using the file:// protocol with path to local file (e.g. file:///path/to/archive.war). Herewith, such functionality works with external NFS storages through mount points. For example, you can mount directory with Java projects, which were built by Maven, to your application server, ensuring faster deployment (due to skipping file upload step).

deploy from container local file

Maven Build Node Amendments

In the present 5.4 Platform release, functionality of the Maven build node was extended with a number of new possibilities, aimed to enhance users experience during the appropriate Java projects deployment:

  • Added possibility to add, edit, remove and build project without specifying the target environment, i.e. allowing just to add a new project to the Deployment Manager and/or pre-build it within Maven without its actual deployment. As one of the main advantages, this eliminates the necessity to predefine repository data and re-build a project with exact target environment parameters upon deploying it to multiple environments.

  • The Maven build node stack template was provided with a dedicated /opt/maven/conf/variables.conf file, which, in conjunction with the pre-installed java-memory-agent add-on, allows to define values for the most essential Java server options (e.g. -Xmx, -Xms, -Xmn, etc.). Also, the MAVEN_RUN_ARGS and MAVEN_RUN_ARGS_{project} variables were added to the node’s default build, allowing to specify additional Maven command-line parameters for either all or a particular project respectively (where, the {project} name should be stated with underscores “_” instead of spaces and dashes).

  • Also, there was added a possibility to deploy Java projects, located in the VCS repository subdirectory, allowing to store various app versions within a single repo and organize them properly. This was implemented through the addition of a new Working Directory field within the Git / SVN deployment form (available for Java instances only). Here, if needed, you can set a repository subfolder with the required application sources.

deployment with maven build node

  • The Maven build process was adjusted to be run under the jelastic user to support the webhooks implementation. For now, as both operations are executed by the same user, all of the created files are accessible without any additional changes required. For example, with the appropriate post hook, this allows to run your project immediately after it was built.

Webhooks for Application Build and Deploy Operations

Webhook is a term used to indicate a code insertion to customize original flow of operations based on a certain condition. In the current Platform upgrade, such webhooks were added to provide a possibility to run custom script on nodes before and/or after application deployment. Additionally, for the Maven build node and the Golang application server the pre- and post-build hooks were implemented as well. Such functionality was added to all of the deployment forms (archive, URL, Git/SVN) at dashboard and is located within a new Hooks section of the appropriate frames.

Deployment Hooks

Selecting the Pre or Post hook from the deployment form will open a code editor window, where you can provide your custom script. Herewith, any preferable programming language can be used, you just need to specify the appropriate program for code interpretation (should be pre-installed on container). For example:

deployment hook example

Also, you can break your hook (and the appropriate deployment / build operation) execution at any point by providing an exit code, for example exit 1. Herewith, the 0 value is used to indicate success, while any other value assumes an error (will be shown at dashboard). Additionally, in case of a webhook failure, the dashboard notification will point to the appropriate hook.log file, providing details required for troubleshooting. More info

Back to the top

Web SSH Connection via Guacamole

Within the present PaaS 5.4 upgrade, the platform integrated the latest 0.9.13-incubating version of the Guacamole Gateway into the Platform to provide SSH connection to a container of any type directly in browser. Just click a new Web SSH button next to the required node and a dedicated tab with terminal emulator will be opened. Herewith, you’ll be automatically connected to the appropriate container without necessity to provide SSH key or perform any other additional actions. Web SSH direct connection

In the tools panel of the opened frame, you are able to switch between nodes of the horizontally-scaled layer. Starting with the 3rd build of the 5.4 release, the Duplicate Session button was added to open another tab with connection to the current container. This option allows to perform several simultaneous operations on a single node (e.g. tail log in one terminal window and manage your application in another).

More info

Back to the top

Composer Dependency Manager for PHP Servers

Composer is one of the most popular dependency managers for PHP, which provides all of the required packages and libraries for your applications. Being run on the per project basis, Composer allows each one to have a different set of dependencies installed directly into the appropriate working directory. Also, it can automatically load updates to keep your packages up-to-date.

php composer dependency manager

Within the present 5.4 release, the Composer was integrated into both Apache and NGINX PHP application servers (located at the usr/local/bin folder). In order to be further operable from anywhere on the node, this tool was automatically added to the PATH variable and can be called with a composer shortcut (e.g. composer about). Additionally, in case the appropriate project has a composer.json file, such implementation allows to manage dependencies directly during the deploy operation with the appropriate post hook script. Namely, you need to move to your project directory and run the install command:

1
2
cd $WEBROOT/ {project_name}  
composer install

Herewith, Composer is automatically provided for all of the newly created PHP application servers, so you are able to operate dependencies even on the Platforms below 5.4 (e.g. through SSH). In order to work with Composer on the already existing nodes, follow the appropriate guide for manual installation.

Back to the top

HTTP 2.0 Support for Shared and Dedicated Load Balancers

The Shared Load Balancer processes all of the incoming requests to the platform (excluding direct connections to Public IP addresses) and routes them to the destination nodes. In the current PaaS release, to ensure a secure connections over SSL protocol, an OpenSSL tool on SLB was updated to its 1.0.2.k version. The new version additionally supports an ALPN (Application-Layer Protocol Negotiation) extension, which allows Shared Load Balancer to work over the HTTP 2.0 protocol, when SSL is enabled.

HTTP 2.0 support Herewith, to support direct access via Public IP, the NGINX and Varnish load balancers were similarly upgraded. In such a way, for the most cases a quicker request processing (compared to the commonly used HTTP 1.1) can be achieved without necessity to adjust your application, i.e. through improved compression of web pages, reduces latency, etc.

Note: The HTTP 2.0 support on the HAProxy and Apache load balancers will be implemented in future releases during the appropriate stacks conversion into dockerized templates.

Back to the top

Logging of Requests Source Port

Starting with the present PaaS release, each platform’s entry point node - so-called Shared Load Balancer - was configured to automatically log the source port of each incoming requests. For example, such implementation allows to successfully track the users' activity over the mobile internet access, where source client can not be identified with the standard login.

Back to the top

Cloud Scripting Engine Optimization

In the current platform 5.4 upgrade, a number of optimizations were implemented for the Cloud Scripting engine to provide a better interaction with API methods:

  • all parameters became case insensitive, so you can can define them in any preferable way
  • optional parameters can be skipped entirely (instead of providing the null value)
  • the appid (unique environment identifier) and session (unique session of a current user) parameters are specified automatically for all API requests

    Back to the top

Short Aliases for Namespaces in API List for Tokens

Tokens is an authentication method to provide extra consistency compared to the default session-based implementation. It is commonly used within automatization scripts or for access sharing with other users (allowing just the specified range of commands). In the current PaaS release, the possibility to define a list of methods for token (the apiList parameter) using the appropriate API namespace aliases were implemented. Namely, the following shortcuts were allowed:

  • env - for the environment group of methods, e.g. env.control.CreateEnvironment
  • dev - for the development namespace, e.g. dev.applications.GetAppHosts
  • mgmt - for the management API, e.g. mgmt.account.AddSHHKey
  • util - for the utils methods, e.g. util.scheduler.GetTasks

tokens

More info

Back to the top

AutoFS Package to Support Mounting on Certified Templates

AutoFS is a tool to automate directories mounting operations and to achieve an “as-needed” approach, which implies that shared folders are mounted only upon being accessed. Also, it automatically unmounts directories after a predefined period of inactivity (10 minutes by default for the platform). Such implementation provides a better overall performance compared to the static mounts. Namely, it reduces containers start up time (as no mounting is done during a boot time) and improves network efficiency (through reducing a number of the permanently active mount points).

More info

Back to the top

Add-ons Button for the Load Balancer Layer

The platform provides a number of add-ons, which are suitable not only for the application servers, but for the load balancers as well. For example, one of the most popular Let’s Encrypt solution to issue a free SSL certificate or the recently added NGINX Amplify one to monitor and configure alerts for NGINX servers. In order to help you find and install such add-ons, the appropriate Add-ons button was permanently added to the load balancers layer (is displayed upon hovering over).

load balancer add-ons

Back to the top

Locked Environment Issue Handling

Some of the hosting service providers implement an automatic environments backup within the platform to ensure data safety. The process is run periodically on each container, temporarily locking node for other management operations (e.g. stop, restart, etc.). Occasionally, an action can be called during the ongoing backup process on container, causing an error.

Starting with the current platform release, in case such issue occurs, the called process will be automatically repeated every 10 seconds. Herewith, the auto-retry will continue for an hour and, if container is still locked, an error with the appropriate description will be provided - Node with id NodeID is locked by another process. In most cases, this improvement allows to completely avoid any errors, causing only a brief delay of the executed operation.

Back to the top

Private Docker Container Credentials Change

The platform provides an ability to work with Docker templates from custom registry in the same way as with any public image. Herewith, in case repository is password-protected, the authentication credentials are stored and are automatically provided whenever needed (e.g. for the new containers creation, horizontal scaling or redeploy).
Herewith, in case one of these operations can not be performed due to the authentication failure (i.e. in case the access credentials to the appropriate repo were changed), the dashboard will respond with a warning notification, which provides the Update Credentials button. Starting with the Platform 5.4 upgrade, in case of the automatic horizontal scaling failure (due to the same authentication issue), the appropriate Verify Authentication button will be displayed within the Event History details. This allows to immediately update your access credentials, ensuring the success of the sequential auto-scaling operations.

warning update Docker registry credentials

Also, an ability to redefine authentication data for custom Docker containers, using the redeployment API requests, was implemented. Such possibility is available through a new RedeployContainers API method, which is provided with two optional parameters (login and password) to specify a new authentication credentials for your custom registry. Additionally, it can be used to redeploy either just a particular container or all nodes within a layer.

Tip: The RedeployContainerById and RedeployContainerByGroup API methods are considered deprecated, but still can be used for compatibility reasons and even utilize the new login and password parameters.

Back to the top

Container Restart Command Standardization

In the present PaaS release, a unified way to call container start, stop and restart operations for all dockerized software stack was developed. Simply execute one of the following commands via terminal and the required service will be detected automatically, allowing to process the required action:

  • jem service stop
  • jem service start
  • jem service restart

container services start stop restart

With such improvement, it’s no longer necessary to memorize all of the stack specific commands, which simplifies operating with containers (e.g. during scripting or automatization).

Back to the top

Adding VCS Directory Shortcut to the List of Favorites

The /var/lib/jelastic/vcs directory is used by the platform to store configuration files for VCS projects and the appropriate SSH keys for authentication. In case of a frequent and/or multiple deployments (e.g. during development or testing), this folder is oftenly required by developers to review and manage projects. So, in the current PaaS 5.4 upgrade, to allow a quick access to the /var/lib/jelastic/vcs directory, it was added to the list of favorites on the Apache PHP, NGINX PHP, Node.js, Go and Maven nodes. vcs directory favorites shortcut

Back to the top

Environment Name within Load Alert Email Subject (build 3)

In the current PaaS 5.4 release, the email notifications, which are sent due to load alert triggers execution, were provided with a new subject. Here, the appropriate environment and node names are displayed. Such a change allows users to analyze and separate multiple monitoring alerts directly from inbox without necessity to process the content of each email.

load alerts email subject

More info

Back to the top

Clarification for Docker Container Credentials Email

When creating environment based on the platform-certified templates, which includes database server or compute node with some management panel, you automatically get an email with the appropriate admin console credentials. Herewith, such data can not be extracted for custom Docker container, so Platform only sends credentials to gain a full root access to a node (for connections over Public IP).

Docker container credentials email Sometimes, when creating custom Docker container, a conflict between expected (admin panel access) and actual (external access) data can lead to these two concepts being confused. To avoid this issue, texts in the appropriate Docker container created email template were reviewed and rewritten to clarify the provided information.

Back to the top

Detailed Response for the Image not Found Issue

Rarely, while creating a Docker container at the platform, you can face the “Image not found” error. It can be caused by various reasons such as network issues, remote registry unavailability, etc. So, in the present PaaS release, an additional description was provided for such type of errors, explicitly identifying the root of the problem.

Back to the top

Fixes Compatible with Prior Versions

Below, you can find lists of fixes which except of being implemented within PaaS 5.4 release, have been also integrated to preceding platform versions by means of the appropriate patches:

PaaS 5.7.7
#Compatible fromDescription
JE-356393.3The Jetty 8 application server does not start after engine version change
JE-358583.3The platform-managed Neo4j 2.3 software stack cannot be created
JE-360693.3The /opt/shared/conf/my.cnf file is absent in the Percona database node
JE-361623.3The platform-managed Percona stack should be provided with IPv6 support
JE-369993.3A warning message is displayed within the php_errors.log file during the OwnCloud JPS solution installation
JE-372323.3The IonCube add-on can not be installed on the application servers with the PHP 7.1 / 7.2 versions
JE-387943.3The IonCube add-on can not be installed on the environments created via platform Marketplace
JE-392853.3The File Synchronization add-on can not be installed
JE-393053.3An error occurs, while installing the WebMail solution from platform Marketplace
JE-373454.6An icon is missing for the Plesk solution in platform Marketplace
JE-388034.6Incorrect spacing for the Plesk solution icon in platform Marketplace
JE-360894.9.1The Let’s Encrypt add-on can not be installed, in case specified domain name is attached not to the first IP of the target container
JE-327994.9.5Unhandled error, while scaling the WordPress Cluster solution
JE-333674.9.5New posts can not be created with the WordPress Cluster solution from platform Marketplace
JE-358234.9.5Incorrect domain names validation within the Let’s Encrypt add-on
JE-373674.9.5The home page for the Magento Cluster solution is not opened with the Open in browser button
JE-375214.9.5The ROOT context is removed during the Git-Push-Deploy add-on deployment
JE-347355.0Sometimes, database with the #mysql50# prefix is added, while creating MySQL or MariaDB stack
JE-381665.0An incorrect category is specified for the Docker Swarm Cluster and Docker Engine CE solutions in platform Marketplace
JE-312415.0.5Incorrect favicon and browser tab name for the deployed WordPress Cluster solution
JE-316905.0.5Incorrect automatic horizontal scaling triggers configuration for the WordPress Cluster solution
JE-351865.0.5The Tomcat 9 stack template can not be accessed via SSH after container redeploy
JE-355505.0.5An error within the application server log files after successful installation of the WordPress Cluster solution
JE-356075.0.5The postgis extension should be successfully installed for the dockerized PostgreSQL stack template
JE-356095.0.5An admin panel for the dockerized PostgreSQL stack template can not be accessed with the credentials sent via email
JE-356205.0.5A post created with the WordPress Cluster solution can not be accessed after changing its initial link
JE-356285.0.5The default webadmin user does not exist on the dockerized PostgreSQL stack template after container redeploy
JE-356565.0.5The dockerized PostgreSQL 10 stack template can not be accessed via SSH
JE-356885.0.5The Tomcat application server can not be accessed after environment stop and start operations
JE-356965.0.5In the admin panel of the WordPress Cluster solution, comments are logged with an SLB address instead of the appropriate user IP
JE-356985.0.5The cache folder of the wpsupercache plugin within the WordPress Cluster solution should be writable
JE-357345.0.5Some folders (e.g. keys, backup) for the dockerized templates should be writable
JE-357355.0.5An error occurs, while updating time zone on Java application servers with tzupdater.jar via SSH
JE-359805.0.5The Tomcat stack based on the JDK 6 can not be started
JE-360015.0.5The Let’s Encrypt add-on can not be installed into environments with the Varnish 4.1.8 load balancer
JE-361455.0.5Custom SSL certificates are applied incorrectly for the Payara application server
JE-362515.0.5The cron folder is empty on the PostgreSQL stack templates
JE-362765.0.5Unhandled error, while adding project with login and password credentials to some versions of the Maven build node
JE-362785.0.5The MariaDB 10.2.8 database can not be accessed with the default credentials sent via email
JE-364385.0.5A warning dashboard notification should be displayed, in case of the added SVN project authentication failure
JE-365875.0.5Sometimes, MySQL is not launched after environment stop and start operations
JE-366655.0.5The NGINX PHP 1.10.3 stack template is not started due to an error, while loading the libyajl.so.2 shared library
JE-367835.0.5The MySQL database dump file can not be saved locally on the same container
JE-367875.0.5An error occurs, while trying to rename context of the deployed application on the GlassFish application server
JE-369375.0.5The platform GC agent is started from two different sources on some Java containers
JE-369475.0.5The tag name of the PostgreSQL image should correspond with the provided database version
JE-370795.0.5An application can not be build on the Maven node after container redeploy due to the .m2 folder absence
JE-370895.0.5The /usr/bin/java -D[Server:worker] process is not started for the WildFly node in the domain mode
JE-371615.0.5The nginx.conf file is not editable on the Varnish load balancer node
JE-376525.0.5Unhandled error, while trying to uninstall the DripStat add-on
JE-382575.0.5Sometimes, a zero tag is displayed for software stacks in dashboard
JE-388935.0.5The 8080 and 3000 ports should be allowed through the firewall rules on the Node.js stacks by default
JE-391395.0.5The /var/lib/pgsql/data folder is not accessible via FTP on the PostgreSQL node
JE-230875.1The mail log file on the PHP instances should be accessible via dashboard
JE-363455.1The Let’s Encrypt add-on can not be installed on the Payara application server
JE-374085.1The Tomcat 8 / 9 application server is not started in the high availability mode
JE-374435.1Redirect from the 443 to 8743 port is missing on the Tomcat application server after Let’s Encrypt add-on installation
JE-374935.1Backups upon the dumpall and dump db actions are not stored on the MariaDB database
JE-377255.1The /var/lib/jelastic/vcs folder on the NodeJS application server should not be overwritten during container redeploy
JE-379075.1The variables.conf file is absent on some of the Maven build node tags
JE-379355.1The jelastic-cli.jar file is absent on the Maven build node
JE-379845.1The Docker Swarm Cluster solution can not be installed due to incorrect iptables rules
JE-382095.1An error occurs, while trying to create a Storage container
JE-382345.1The keys redirect in the Favorites list is not working for the Docker Swarm Cluster solution
JE-383065.1The memcached file is marked as folder in the Favorites list on the Memcached node
JE-383625.1The redirect rule for the 443 port is absent on the TomEE application server, if account is provided with the firewall feature
JE-387745.1An error occurs, while trying to rename context of the deployed application on the GlassFish application server after container redeploy
JE-389605.1An error occurs, while installing the WordPress Cluster solution
JE-340255.3The connection refused error appears, while trying to resolve some of the platform-managed software stacks with IPv6 enabled
JE-361705.3Certificates provided by the Let’s Encrypt add-on are not automatically updated via cron
JE-358245.3.2The TomEE 7 application server of the plus, webrofile and plume versions is not started after creation
JE-377205.3.2Sometimes, Docker image manifest could not be get from registry
JE-380385.3.2The keys folder is not editable on the HAProxy load balancer
JE-387865.3.2The GlassFish Cluster solution can not be accessed after application server stop and start operations
JE-356215.4Custom Docker containers based on Fedora OS can not be created
JE-359605.4Some OS are not recognised correctly during the custom Docker containers creation
JE-369455.4Environments with the high availability feature enabled for application server in wizard can not be created
JE-371685.4Data synchronization between two environments using the File Synchronization add-on is not working
JE-371805.4The PHP Composer dependency manager should be run with the composer command
JE-374895.4The Git-Push-Deploy add-on should be applicable for the GlassFish and WildFly application servers
JE-374995.4The Open in browser button within the installation success window of the MariaDB Database Replication solution is not working
JE-379995.4The application deployment success text is not displayed within pop-up after Docker Swarm Cluster solution deployment
JE-381755.4The –silent flag in platform CLI does not disable confirmation to work over HTTP, in case the Platform does not have a correct SSL

Back to the top

Software Stack Versions

Within the PaaS 5.4 release, the most notable innovation is addition of the Go programming language (check the linked section for additional details). Also, the Debian 9 OS template support was implemented for Docker containers.

Below, you can check the list of the most accurate software stacks for the current platform version:

StackPaaS 5.4
Tomcat 66.0.53
Tomcat 77.0.85
Tomcat 88.5.29
Tomcat 99.0.6
TomEE7.0.4
Jetty 66.1.26
Jetty 88.1.17
Jetty 99.3.7
GlassFish 33.1.2.2
GlassFish 44.1.2
GlassFish 55.0
JBoss7.1
Payara 44.1.2.174
Payara 55.0.0.174
Railo9.1.3
SmartFoxServer 2X2X
SpringBoot 2.02.0
WildFly 99.0
WildFly 1010.1.0
WildFly 1111.0.0
WildFly 1212.0.0
Java 61.6.0_45
Java 71.7.0_79
Java 81.8.0_162
Java 99.0.4
Java 1010
OpenJDK 71.7.0.161
OpenJDK 81.8.0.161
MariaDB5.5.58 / 10.2.12
MongoDB 2.62.6.11
MongoDB 3.03.4
MySQL 55.7.20
MySQL 88.0.3
PostgreSQL 99.6.8
PostgreSQL 1010.3
CouchDB1.6.1
Cassandra 11.2.5
Cassandra 22.2.4
Cassandra 33.0
Couchbase5.0.1
Neo4j 11.9
Neo4j 22.3
Neo4j 33.2
OrientDB 11.7.4
OrientDB 22
Redis 22.8
Redis 33.2
Redis 44.0
MSSQL2012
Perconadb 55.6
NGINX1.12.2
HAProxy1.6.3
Maven3.5.2
Centos 55
Centos 66.7
Centos 77.2
Ubuntu16.04
Windows2012
Memcached1.5.4
Apache2.4.6-45
NGINX PHP1.12.2
NGINX Ruby1.12.0
PHP 5.35.3.29
PHP 5.45.4.45
PHP 5.55.5.38
PHP 5.65.6.33
PHP 77.0.27
PHP 7.17.1.7
PHP 7.27.2.1
Ruby 2.22.2.7
Ruby 2.32.3.4
Ruby 2.42.4.1
Python 2.72.7.12
Python 3.33.3.6
Python 3.43.4.5
Python 3.53.5.2
Node.js 66.12.3
Node.js 88.9.4
Node.js 99.4.0
Golang1.10

Back to the top

Bug Fixes

In the table below, you can see the list of bug fixes in PaaS & CaaS 5.4:

PaaS 5.4
#Description
JE-7941In case an environment includes only Maven build node, the Java engine version for it could not be changed
JE-8723Before adjusting environment topology, it should be checked if there are enough free public IP addresses on the platform
JE-20478Before creating environment, it should be checked if there are enough free public IP addresses on the platform
JE-21271Email addresses with uncommon top level domain names (e.g. “.technology") can not be invited into collaboration
JE-22694It’s possible to deploy application into Ruby environment with a busy context (i.e. with an ongoing deployment task)
JE-23762The Apply button is active within the Maven project Edit form even without any actual changes performed
JE-23837It is possible to add special symbols and html tags within the load alerts names
JE-23847The platform Marketplace window is not closed with the Esc button after adding Docker container as favorite
JE-25651Unhandled error, while uploading big files via the ftp:// link
JE-25929Outdated connection description for the VPS nodes within the Info pop-up window
JE-27266An error appears upon executing the applySqlPatch cloud scripting action
JE-28050The file rename field can go outside of the Deployment Manager tab upon scrolling
JE-28281If there is not enough Public IPs during topology adjustment, the actually attached external addresses are not displayed for nodes
JE-28455Environment creation / adjustment via API or CLI does not return an error upon enabling Built-in SSL for account with the appropriate quota disabled
JE-28640The Exporting dialog hangs for collaborator, if environment owner does not have an export permission
JE-28967Unhandled error, when collaborator with the view permissions tries to disable Built-in SSL for a shared environment
JE-30343Internal domain name is not displayed within the platform dashboard for environments without compute node
JE-30971Before creating environment, it should be checked if there are enough free public IP addresses on the platform
JE-31025The legacy (orange colored) border is displayed for the environment groups
JE-31140A warning notification should be displayed, when importing environment with external IP(s) into account without the appropriate permission
JE-31416Unhandled error, while importing JPS package with a preset environment group and, simultaneously, creating a same-named one via dashboard
JE-31421A list of domain names for the applied SSL certificate should be scrollable in the environment Settings > Custom SSL section
JE-31686The failed (due to insufficient account quotas) Docker Swarm installation is displayed as “in progress” within dashboard
JE-31725An “Invalid context name specified” error appears upon using some of the special characters in context name during application deployment
JE-32267Some special characters in the Docker container CMD / Entry Point configs cause an error
JE-32701Platform dashboard can not be accessed using the Internet Explorer browser of the 9-11th versions
JE-32970In case some specific characters are used within Docker container environment variable, the whole list can not be displayed in dashboard
JE-33345An error occurs upon scaling node with external mount point configured
JE-33671Unhandled error, while trying to deploy a Git/SVN project with incorrect credentials from the Deployment Manager
JE-34040The FIREWALL_ENABLED setting from the /etc/jelastic/metainf.conf file is reset during container redeploy
JE-34123The server.log file is absent within the Logs section on the GlassFish 4 node
JE-34202An SVN application can not be deployed, if a very long remote repository password is used
JE-34212Sometimes, Action Log can not be opened after container reboot
JE-34224Remote desktop connection to the Windows-based nodes using the Guacamole client is not working
JE-34315The deployed projects are not displayed for environment clones within dashboard
JE-34324Mount points addition is failed, if the Mount to all nodes option is enabled
JE-34365A software stack should not be displayed in dashboard, if is not supplemented with at least one versions by hosting provider
JE-34386An error appears before CLI command response, if the jelastic.cli.send_err_confirm property is set as true
JE-34390A container with the Ubuntu 17.10 Docker image can not be created
JE-34394Incorrect response for the empty parameter name error in the CreateGroup API method
JE-34462The Java Memory Agent add-on is not started within the jboss/wildfly container
JE-34474Sometimes, an environment creation is failed due to the java.lang.ArrayIndexOutOfBoundsException error
JE-34478An extra environment is displayed in dashboard upon installing JPS solution, which executes some other package
JE-34490The admin password should not be reset during the GlassFish or Payara server cloning
JE-34491The Neo4j admin panel can not be accessed with credentials provided via email
JE-34536An unhandled error should not be displayed, when trying to unmount path, which is already unmounted
JE-34557A space character is added after password in some email templates
JE-34598The WildFly server admin panel can not be accessed, if created in non default environment region
JE-34625An error within the /var/log/messages file upon creating some of the platform-managed stacks
JE-34635The collaboration invitation is not valid, if the specified email name is in uppercase
JE-34660The archive download possibility should be prohibited till it is fully uploaded to Deployment Manager
JE-34699The Git project can not be deployed,in case a repository password starts with the ‘$’ symbol
JE-34721Unhandled error, while deploying multiple applications to the GlassFish or Payara cluster
JE-34749A typo in the no free external IPv4 addresses error description in Tasks manager
JE-34781Some custom files from the /var/log folder are not displayed within the Log section
JE-34803Unhandled error, while trying to reset password on the MySQL node (after redeployment with the Keep volumes option enabled)
JE-34823The lastly used authentication method (Password or SSH Key) should be selected by default, while editing Git project
JE-34826GlassFish admin panel can not be accessed on some platforms
JE-34861Windows-based environments with Public IP can not be cloned
JE-34865After being transferred, an environment belongs to the environment group of the initial customer
JE-34913The nodeId alias for the nodeid parameter should be supported in cloud scripting
JE-35063It is possible to call the unmount action for the same mount point twice
JE-35070Incorrect automatic horizontal scaling action description in the Events History section
JE-35198The Tasks manager tab is not displayed, when working in the Windows Edge browser
JE-35299Sometimes, network interfaces are not started on Docker containers with the Debian 9 OS
JE-35416The opened tabs of the stopped environment should be inactive (except for the statistics one)
JE-35420Incorrect error code for the GetEnvInfo API method, when using not valid appid and session parameters
JE-35489An existing application is not removed, while deploying other project to the same context on the SpringBoot sever
JE-35547If JPS solution calls an execution of another package, an incorrect success pop-up can be displayed
JE-35557The Building status is not displayed for the Maven build node, if it is added during the Git/SVN project deployment with the “Add a new node” option
JE-35599An environment with the Python application server and the default HelloWorld.zip package deployed can not be cloned
JE-35663The group:ssh-access:rw- ACL (access control list) rule is absent for node after container redeploy
JE-35922Sometimes, internal and external IPv4 addresses are not released after environment deletion
JE-36003Network interfaces are not started on Docker containers with the Debian 9 OS after restart
JE-36193The Delete button can be clicked several times for the same load alert, scaling trigger or firewall rule
JE-36236NGINX load balancer can not be started, if there is no IPv6 support on the latform
JE-36410NodeJS application server should have a possibility to enable custom SSL using load balancer node
JE-36539Some elements within the Auto refill tab are displayed incorrectly, in case a big sum is specified within the Balance less than field or if using the Safari browser
JE-36744Empty placeholder values should be automatically replaced in cloud scripting
JE-36815The Delete button for a particular file in the Logs section should be displayed only upon hovering over
JE-36888The number of cloudlets is set incorrectly, if the appropriate cloud scripting parameter value is defined as string
JE-37020Unhandled error, while creating environment via API with the nodeGrout name not matched by the ^[a-z0-9._\-+]+$ regex
JE-37056The BuildAndDeploy action in API calls fails, in case its value contains a semicolon separator
JE-37174The border for the environment group icons does not match corporate style
JE-37487The ExecCmdInner API request fails, in case an empty nodeType parameter is provided
JE-37590Sometimes, the 50x error pages are displayed incorrectly
SITE-1230The Feedback textbox field in the Cloud Union page should have a fixed minimal size
SITE-1303Incorrect highlighting of the validated fields in forms on the platform site
SITE-1315Some elements of the main website are displayed incorrectly using Safari browser
SITE-1317The Sign up button is cropped in the Cloud Union page, if displayed in some of the mobile resolutions
SITE-1318An empty space is displayed within the Price drop-down list in the Cloud Union page, if viewed on a mobile phone

Back to the top