Virtuozzo Application Platform 5.3/5.3.2

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.3 and 5.3.2 releases:

For detailed information on using any of the platform features, please refer to the users' documentation.


Support of Public IPv6 Addresses

The v6 is the most recent version of Internet Protocol (IP), which is responsible for device identification and defining their location within network, as well as for traffic routing across the Internet. The 6th IP revision is an evolutionary upgrade of IPv4, designed to fulfill the need of more addresses, simplify processing by routers, eliminate NAT (Network Address Translation) issues and private address collisions, etc.

Starting with the present 5.3 release, the platform provides out-of-box support of Public IPv6, which can be attached to any container (except for Window-based ones) directly from the topology wizard. Herewith, the availability of this internet protocol version at a particular Platform depends on hosting provider settings. To check this, refer to the Quotas & Pricing frame:

  • Account Limits provides information on the Public IPv6 addresses availability for your account (note it can be limited during trial period)
  • Pricing > Options section displays the cost of this feature usage at your Platform

The 6th internet protocol version can be used on a par with IPv4, providing all the same functionality. In case the address type to use is not specifically indicated (e.g. in JPS packages, add-ons or when creating a VPS node), the 4th address revision will be used by default.

In order to support IPv6 usage via API, the following changes were implemented:

  • the AttachExtIp request was deprecated (still remaining valid for backward compatibility)
  • a new SetExtIpCount method was added; operates with two supplementative parameters: type (ipv4 or ipv6) and count (number of IPs to add per container - required for the multiple IPs feature)
  • the SwapExtIps method was limited to be used with IPv4 only

More info

Multiple Public IP Addresses for a Single Node (Container)

In confines of the PaaS 5.3 upgrade, a possibility to attach multiple Public IPs (both IPv4 and IPv6) to a container was implemented. For example, this allows to run several websites on a single node by using a number of dedicated SSL certificates, associated with the specific IPs.

Multiple IPs can be added in two ways due to the following UI updates:

  • the Public IPv4 and IPv6 counters were added to topology wizard, so the required IP number can be set right during environment creation / topology adjustment
  • each node within the dashboard environment list can be expanded to view and manage all of the attached IP addresses:
    • the total number of Public IPs can be adjusted directly from this list using the Attach/Detach IP(s) button (separately for IPv4 and IPv6)
    • each particular address can be copied to clipboard or detached from a node with the appropriate buttons

The first Public IP of each type to be added to container will be considered as primary one, i.e. will be used for all the outgoing traffic, while the rest of IPs can only receive it. Also, primary IP can only be removed if it is the last public address attached to node.

Other changes due to this feature integration are listed below:

  • the SwapExtIps API method was adjusted to allow swap of particular IPv4 addresses (using the sourceIp / targetIp parameters pair), as well as all of them at once (sourceNodeId / targetNodeId)
  • upon attaching new IP to the existing node, you receive the appropriate email notification with the list of all its addresses
  • the list of assigned IP addresses is displayed in the WAN IP column of the SSH menu while connecting to the Platform via terminal

More info

Personal Access Tokens for API Request Authentication

Every platform API call requires a special session parameter to verify whether a user is allowed to execute the appropriate operation. In order to get it, the Users > Authentication > SignIn method should be called. However, the obtained session value has a short-term validity, being frequently generated anew due to security reasons.

In the current 5.3 PaaS release, an alternative approach of authentication via tokens was implemented. It is aimed to maintain the security of the sessions-based approach (i.e. ensuring no one else can operate with your account), at the same time extending the API usability greatly. For example, tokens can be used within various scripts (e.g. during application lifecycle automatization) or be shared with co-workers to grant temporary access to some particular account/environments actions. There are a number of specifics to ensure the best user experience:

  • permission management - can be assigned to some specific tasks (each particular token can be allowed to work with a particular API methods only)
  • time to live - allows to set an expiration date for token
  • multiple tokens - supports up to 100 different tokens per account
  • renewal possibility - regenerates lost tokens with the same parameters as original ones
  • prohibited self duplication - restricts token usage for the Authentication API methods (i.e. can not be used to create new or to manage existing tokens)

Below, you can find a list of the appropriate API methods, which were provided for tokens management (check the Users > Authentication section of the documentation for detailed information):

  • CreateToken - creates token with the required permissions, expiration day and description
    Note: The exact value (name) of your token will be shown just once and won’t be exposed anywhere afterward, so ensure you’ve saved it before closing method response.
  • DeleteTokens - removes token(s) by ID
  • EditToken - allows to adjust existing token
  • GetTokenApiList - returns a list of all operations, which can be authenticated by token (upon granting the appropriate permissions during creation)
  • GetTokens - displays information on a particular (or multiple) account token
  • RegenerateToken - generates a new name for existing token, while maintaining all other parameters

More info


Deployment Manager Improvements

The version control systems (VCS) are extremely popular among developers, as they allow to record and recall changes to your application, as well as manage several different versions of it at once. Thus, to simplify integration of VCS projects into the platform, a special enhancements were applied to the deployment manager.

Starting with the current 5.3 release, it has two tabs - Archive and Git/SVN. The first one maintains functionality of packages deployment via uploading them from the local machine or providing a direct link to file, while the Git/SVN tab is a new implementation. Here, you are able to store VCS projects for a simpler future deploys (i.e. no need to specify your repository detail multiple times).

Use the Add Project button on the top of the Git/SVN tab of deployment manager to create a new VCS project. Within the opened Add Git / SVN Project frame, you can specify any custom Name, provide Git or SVN repository details and, if needed, Use authentication. When everything is configured, click the Add or Add + Deploy button. Either way, your project will be stored in manager, but, in the later case, you can immediately deploy it to any environment on your account.

Note: While deploying project to the Java application server, the Maven build node is obligatory required, which, due to this improvement, can be either selected from the list of already existing ones or automatically installed to the deployment target environment.

Apart from that, some changes were applied to the environments list in dashboard. For now, all of the deployed projects are shown under the Deployments section (former Context / Projects), which is displayed as the first element within the application server layer. Hover over Deployments to get a quick access to the File, URL and Git/SVN deployment dialogs through the same-named buttons. Also, all of the deployment API methods were refactored and gathered under the new Environment > Deployment section:

  • CreateProject - creates a project based on sources from a VCS repository (both login/password or ssh key authorization can be used)
  • EditProject - edits the specified project
  • DeleteProject - deletes project from the deployment manager
  • DeployArchive - deploys an application package into the given context (ROOT by default)
  • DeployProject - deploys application based on the specified project
  • GetProjects - returns information about the projects
  • RenameContext - renames application by moving it from the old context to a new one
  • Undeploy - removes application from the given context
  • Update - updates project from a VCS repository

More info

Unlocked Environment Management During Reconfiguration

While applying changes to an environment, it becomes fully locked (i.e. prohibits any other actions) and automatically closes all the associated tabs and dialogs in dashboard. Starting with the current PaaS release, such behaviour was changed, allowing to continue environment management during the ongoing time-consuming operation (e.g. topology adjustment, Docker container redeploy, application deploy, etc.). Herewith, the list of allowed actions varies depending on the exact process in progress, but in the most cases you’ll be able to access file manager to adjust configs, as well as to monitor environment via logs and statistics.

Additionally, tabs and dialogs related to the adjusted environment will no longer be closed (with the exception of the Docker container redeploy action). Herewith, when frame operates with container, that is being removed, it will automatically switch to another node.

Back to the list of Improvements

UI/UX Improvements

Possibility to Download Log Files

Logs analysis is an important part of web hosting monitoring, which helps to understand system behaviour as well as perform troubleshooting in case of necessity. The platform provides access to server log files directly from dashboard (with the Log button next to the required node) for a quick online analysis.

In the 5.3 Platform upgrade, the possibility to download the appropriate files from a Cloud to your local machine was implemented. This could be done using a new Download button, which was added to the top pane of the log tab. In such a way, you can explore logs with any preferable analysis tools or perform any application-specific operations with the obtained file.

More info

Back to the list of Improvements

Welcome Tutorial Update

Helping new users to get started, the platform welcome tutorial is automatically started upon the very first login to dashboard (although, it can be called manually from the Help > Tutorial menu at any time). This short guide provides a summary of the platform main benefits and, consequently, leads through the steps required to create environment and to deploy the first application.

Currently, the first part of the welcome tutorial (i.e. platform overview presentation) was updated to show info on how to build your application topology. Additionally, some minor adjustments were applied to the other slides to provide even better clarity on the platform pricing advantages.

Back to the list of Improvements

Redesign of the Default HelloWorld Application Example

All new users on the platform are automatically provided with a simple, lightweight HelloWorld application sample. This package can be easily deployed to any platform-managed app server and is used during a welcome tutorial. In the current 5.3 release, it was upgraded according to the latest platform design. Additionally, the HelloWorld package was provided with a number of useful links (Pricing FAQ, SSH Access, etc.) and some specific URLs based on the used program language (e.g. for PHP - PHP Settings, PHP Extensions).

Back to the list of Improvements

Environment Variables Management via API

In the present PaaS 5.3 release, two new API methods were added to help managing environment variables in Docker containers and dockerized stacks. Both operations were specially designed to work with either single node or a whole layer at once:

  • AddContainerEnvVars - adds variables to the target container(s)
  • RemoveContainerEnvVars - removes variables from the target container(s)

Herewith, variables are provided in the JSON format, which allows to add / remove several of them at a time. If both single container and layer are specified as target for these methods, the nodeId parameter will have a higher priority (i.e. only specified container will be updated). Also, in case the AddContainerEnvVars method is provided with a variable, which already exists, it will be overwritten using a new value.

More info

Removed Deployment Delay Option for Clusterized GlassFish

Upon deploying a project (either from archive or Git/SVN) to environment with multiple application servers, the appropriate Sequential deployment delay field appears at the confirmation frame. It allows to set a time frame (30 seconds by default) between redeployment of current and subsequent containers in one node group (layer). In such a way, the handled application downtime can be avoided.

Starting with the current 5.3 release, the above-described field won’t be shown at the appropriate dialog box, when deploying to the GlassFish application server. Here, all the configurations are performed on a master node only, while slaves get these changes through replication.

Back to the list of Improvements

Fixes Compatible with Prior Versions

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

PaaS 5.3
#Compatible fromDescription
JE-338623.3The GlassFish 4 application server start page can not be accessed
JE-341253.3Incorrect redirect to admin panel in the GlassFish 4 application server
JE-336294.9Securing Redis nodes with obligatory authentication by default
JE-320864.10Rename the deprecated directives in Apache Balancer configuration files to their latest denominations
JE-330224.10Environment topology is not updated in SSH menu after refresh
JE-318475.0.5Incorrect redirect for the keys shortcut in a favorites list of the Tomcat 9 software stack
JE-321035.0.5Insufficient permissions for the logs files in the HAProxy load balancer stack
JE-331335.0.5Improper CSS styles for SQL editor in the phpMyAdmin panel on MySQL or MariaDB nodes
JE-336155.0.5Tomcat 9 stack can not be accessed via https after addition of a custom SSL certificate
JE-340085.0.5Remove old hosts from Varnish configs after environment cloning
JE-319005.0.6The dockerized Varnish stack is not properly initiated on startup
JE-337265.0.7The can’t read ssl certificate error appears, while installing Let’s Encrypt add-on
JE-335245.1Error, while deploying projects using the platform Maven plugin
JE-333275.2Application can not be connected after being deployed into already existing context on JBoss and WildFly nodes

Back to the list of Improvements

Software Stack Versions

The most notable software stack updates in confines of PaaS 5.3 and 5.3.2 releases is addition of the OpenJDK 7/8 engines, which are compatible with the Tomcat 6/7/8, Maven, TomEE dockerized templates. Below, you can check the list of the most accurate software stack versions:

StackPaaS 5.3/5.3.2
Tomcat 66.0.53
Tomcat 77.0.79
Tomcat 88.5.5
Jetty 66.1.26
GlassFish 44.1.2
GlassFish 55.0
Payara 44.1.2
Java 61.6.0_45
Java 71.7.0_79
Java 81.8.0_141
MariaDB5.5.57 / 10.2.7
MongoDB 3.03.4
MySQL5.6.37 / 5.7.19
Centos 77.2
NGINX Ruby1.12.0
PHP 77.0.21
Node.js0.10.46 / 0.12.15
Node.js 44.26 / 4.3.0 / 4.5.0
Node.js 55.1.1 / 5.6.0
Node.js 66.5.0

Back to the list of Improvements

Bug Fixes

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

PaaS 5.3
JE-3856Incorrect font size for VPS label in Russian localization
JE-8762Same ID is assigned to archives, if upload is initiated simultaneously
JE-15525Add warning message in topology wizard upon removing public IP for node with installed FTP addon
JE-18638Unhandled error, while trying to edit custom file with insufficient permissions via file manager
JE-22150Renew icon on the environment remove confirmation frame
JE-22505Incorrect validation message, while using the ‘_’ symbol in environment name
JE-22934Some elements of environment settings are displayed incorrectly in a full screen mode
JE-23043Automatically correct the “root” context to “ROOT” on Apache PHP
JE-23044Warning notification is not displayed upon deploying archive with a blank context specified and the ROOT context already in use by Git/SVN project
JE-23421ZDT deployment can be enabled for non ROOT context, while called via API
JE-23813Unhandled error, while building project with incorrect parameters via API
JE-23878Sometimes the Activate button is not displayed for trial users on the Quotas & Pricing > Account Limits frame
JE-25819Tasks for both add and remove horizontal scaling triggers are displayed, even when just one option was selected
JE-27178Cloned environment can be hibernated earlier if no actions were performed with it
JE-27867Sometimes regex expressions are ignored by search in file manager
JE-27965Configuration files can not be edited on the dockerized stack templates
JE-28058A mount point record is added even in case the data export operation was failed
JE-28300Incorrect versions sequence in topology wizard for the WildFly stack
JE-28354The CouchDB and MongoDB software stacks can not be created
JE-28377Some buttons are displayed with artifacts upon zooming in browser
JE-28433The Import button should be disabled, when nothing is specified on the Import > JPS frame
JE-28635Environment dependencies should be checked upon scaling in Storage nodes
JE-28638Unhandled error appears, when collaborator tries to bind/swap external domain for environment, where owner does not have the appropriate permissions
JE-28691Sometimes the engine tabs can be duplicated in topology wizard for trial and beta users
JE-29007Files are not displayed on the second container upon creating same mount point on two nodes
JE-29079Some directories from the favorites list are absent on the dockerized containers
JE-29248Docker volumes are duplicated if specified with a “/” character in the end
JE-29623The input field for the balance less than option in auto-refill section is displayed incorrectly
JE-30761Public IPs can not be swapped for VPS nodes without internal IP
JE-30766The wrap lines functionality should work for YAML in the Import > JPS frame
JE-30847The platform welcome tutorial should be interrupted in case of a “No free hardware” error
JE-31069Highlight environment group in a list, when trying to add one that is already attached
JE-31419Incorrect favourites list in file manager for the dockerized Varnish template
JE-31427Incorrect status label for environment during the FTP add-on installation
JE-31430Incorrect icon in the file manager for files added to / removed from Docker volume
JE-31459Delay between starting to build a project with Maven node and displaying the building status at dashboard
JE-31466While connected to it via SSH Gate, container name is displayed incorrectly for dockerized stacks after redeploy
JE-31511Error, when opening and instantly closing the new project addition frame for the Apache PHP, NGINX PHP or Maven node
JE-31816MySQL connector is absent on the Tomcat and TomEE dockerized stacks
JE-31902Error, while configuring target region in on the environment Settings > Migration frame
JE-31922Unhandled error on dashboard upon creating environment with existing domain name via CLI
JE-32185Collaborators with a view permissions can not download files from the dashboard config manager
JE-32226Incorrect validation for the URL field, while adding project from Git/SVN
JE-32672Engines drop-down list should not be displayed in topology wizard, when just one option is available
JE-32746Directory name should be validated by length, while adding Docker volumes
JE-32911The Add to Volumes button should be disabled for the folders with restricted access
JE-33079If account limits are insufficient for JPS package installation, it should proceed using the maximum of allowed resources
JE-33080Mount points can not be configured between two shared environments
JE-33125The zip binaries are absent on the dockerized stack templates
JE-33213Environment nodes in dashboard should be sorted according to the topology layers order
JE-33214Not all IP addresses of the SSH Gate are allowed for connection to the 22 port of dockerized stack containers
JE-33215The core dump files are created, when managing container via file manager
JE-33324The maximize button should be hidden for the URL tab of the Import frame
JE-33330Project update hangs on the Python and Ruby nodes, if the corresponding Git/SVN URL was specified incorrectly
JE-33334The UDP traffic does not pass through environment endpoints
JE-33338Docker container settings can not be accessed for the password-protected private Docker images
JE-33341The post parameters are not working properly, while processing application content or JSON file
JE-33364The CouchDB container can not be created
JE-33380No response from the platform CLI commands after sign in
JE-33381The help messages for the Docker Volumes and Links settings in topology wizard are not displayed
JE-33384Environments with the platform certified containers can not be exported from the regions based on Virtuozzo 7
JE-33469Unhandled error, while trying to export files from a shared environment by a collaborator with a view permissions
JE-33630Upon consecutive execution of the restart and redeploy operations, the action log is hidden each time
JE-33641Balance refills using the WHMCS credit are not accepted
JE-33724Environments can not be created via platform CLI
JE-33882The removed environments are displayed in dashboard with the Creating status
PaaS 5.3.2 (build 6)
JE-32287The Debian 9 OS template is not supported by Docker containers
JE-32973Docker container can not be created from a dockerfile file with the “result” environment variable
JE-33456After changing an external IP, an NSCD cache provides old address for the prolonged period of time
JE-34040The FIREWALL_ENABLED setting is reset to “0” on dockerized containers after redeploy
JE-34315Deployed projects are not displayed within dashboard after environment cloning
JE-34390The Ubuntu 17.10 OS template is not supported by Docker containers
JE-34397The Fedora 26 OS template is not supported by Docker containers
JE-34450Prolonged environment creation time due to the incorrect MASTER_HOST variable format on dockerized containers
JE-34490Admin password is reset while cloning a standalone GlassFish or Payara server
JE-34518Invalid DNS records are added while creating clustered GlassFish or Payara servers
JE-34721An unhandled error occurs, when deploying two project into the same context on clustered GlassFish or Payara servers
JE-34756The /dev/null folder has inappropriate access permissions and /dev/fd is missing on the Docker containers based on the Alpine OS distribution
JE-34781Some log files are not displayed for Docker containers in the user dashboard Logs section
JE-34867The IPv4 address can not be attached via the attachExtIP API method when the IPv6 account quota is disabled
JE-34912Password to admin panel should be set only for the Couchbase cluster master node
JE-35010Docker containers layer redeployment failure, if it contains just a single node
JE-35159Docker container can not be redeployed, if one of the image tags has “result” in its name
JE-35299Sometimes, network is not started for Docker containers based on the Debian 9 OS template
JE-35350The NSCD cache daemon management operations should be executable with sudo permissions on containers
JE-35377Errors during add-on installation are not displayed at dashboard
JE-35417API methods for logs management starts containers on the stopped (sleeping) environment
JE-35464Some placeholders are not displayed within email templates
JE-35490The “Cloud account is going to be destroyed” email notification is sent too often (hourly)
JE-35529The Deploy button is active on the Git/SVN deployment form, when the required fields are empty
PaaS 5.3.2 (build 6)
JE-34129An error message appears for a successful installation of custom SSL on the Apache, Varnish and HAProxy load balancers
JE-34159Sometimes, incorrect email notification is sent after creating environment without application server
JE-34515Firewall ruleset is incomplete on the Storage node with the nfsd filesystem
JE-35160File upload and archives deploy operations should be forbidden when a Platform Uploader is down
JE-35317The connection time out error occurs, while mounting from the application server to load balancer
JE-35400Unhandled error for crossmounts, caused by manual mount operations
JE-35469Environment with the PostgreSQL database of the 9.6 and 10.1 versions can not be created
JE-35494An error occurred while getting a list of environments for account
JE-35549During Java projects deployment, the Maven build node can not be created automatically on the accounts with cloudlets limit less than 16
JE-35694The autopay feature should be disabled for account if the last order was not fulfilled
JE-35704User session for dashboard is not valid for the platform Marketplace
JE-35797Upon platform Marketplace inaccessibility, the appropriate tab in dashboard is opened for a prolonged period of time
JE-35803An empty row appears at the bottom of the dashboard upon hovering over region of an environment in the deploying status
JE-35816Sometimes, the network bandwidth limit and a number of cloudlets are displayed incorrectly within dashboard
JE-36108The centos-jelastic-6-x86_64-ez package should be maintained to support legacy containers based on CentOS 6
JE-36131Environments under a heavy load are removed for a prolonged period of time
JE-36175An error occurs, while trying to remove a big file uploaded to dashboard via URL
JE-36181Incorrect description for the node(s) restart operation in dashboard Tasks manager
JE-36257The Contact Support form validation restricts appeals in a non-English language
JE-36490Sometimes, environments with the Ubuntu VPS node(s) can not be created
PaaS 5.3.2 (build 10)
JE-30173Credentials to a private Docker registry can not be adjusted
JE-36464The Add-ons button should be permanently displayed for the load balancer layer
JE-37100The “Image not found” error should provide more details on the occured issue
PaaS 5.3.2 (build 11)
JE-35007An error occurs, while trying to remove the last application server node in environments with the NGINX load balancer

Back to the top