Virtuozzo Application Platform 5.1/5.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.1 and 5.2 releases:

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

Features

Transition of Platform Infrastructure into Docker Containers Optimized UX for Deployment, Tasks and Env Management Panels
Billing History Data Export
Auto Update of Dockerized Stack Templates
FTP Access to Storage Container

Back to the top

Transition of Platform Infrastructure into Docker Containers

The infrastructure node represents a set of internal components, responsible for performing all operations within the platform (e.g. managing resources, processing requests, supporting system maintenance, etc.). Starting with 5.1 PaaS release, all infrastructure modules are provisioned as Docker containers, ensuring the following inherent benefits of this containerization technology:

  • resource utilization - allows to apply more lightweight solutions with lower resource consumption to run applications
  • standardization and compatibility - reduces risk to meet problems with resolving application dependencies or OS related issues, as Docker containers run in the same way on any hardware
  • isolation and security - ensures infrastructure modules' insulation (so that containers can’t affect host system or each other), which grants complete control over traffic flow and management

As a result of such transition, the Platform upgrade procedure was notably simplified and accelerated, allowing to deliver new platform features much more quicker. More info

Optimized UX for Deployment, Tasks and Env Management Panels

In order to simplify operating with multiple environments in the platform dashboard, its user interface layout has been updated. For that, Deployment Manager and Tasks sections were merged into a single collapsible frame with the appropriate tabs being available at the bottom of the dashboard. If needed, this panel can be minimized to free more space for your environments list display, making it easier to access the required options.
Also, upon working with a particular environment, a dedicated tab will be opened at the bottom of the above-mentioned frame (next to the default Tasks and Deployment Manager ones). Here, all available management operations for this environment (like Settings, File Manager, Logs, Statistics, etc.) are grouped, being opened into separate sub-frames within a single tab. Herewith, such additional environment-dedicated tabs can be closed if they are no longer needed, while Tasks and Deployment Manager ones are opened permanently.
More info

Billing History Data Export

To help you with financial analysis of hosting spends, a possibility to download billing history as a csv file was implemented within the current 5.1 Platform version. The appropriate Download CSV button was added to the Billing history section (for both per environment and per account options). In order to make the displayed data more clear and to speed up its fetching, the following gradation was added for the Interval field:

  • hour - can be used with 1 day period
  • day - can be used with 7 days period
  • week - can be used with 4 weeks period
  • month - can be used with 1 year period
  • year - can be used with 10 years period

Herewith, by shifting the data range (with the appropriate Start and End fields), you can get a granular billing history info even for the oldest data. For example, to get statistics on daily spends from a year ago, specify a period with 7-day difference or less (e.g. from 01-01-2016 to 07-01-2016).

Auto-Update of Dockerized Stack Templates

Within the current platform upgrade, a special tags auto-update option was implemented for dockerized templates. This feature is intended to regularly renew the lists of provisioned stack versions according to the latest updates within the central templates repository. As a result, new software releases become automatically available for you with almost no delay due to eliminating the necessity of hosting provider’s manual intervention. Herewith, the update frequency and enabling of this feature in general depends on a particular platform settings.

In conjunction with the latest tag improvement, such tags auto-update approach allows to keep utilized server software actual - the delivered updatescould be easily integrated by means of the Docker container redeploy functionality.

FTP Access to Storage Container

In order to make data management within Storage container more comfortable, FTP support was implemented for this type of node. Within the current 5.1 Platform release, FTP add-on was updated to enable its installation on Storage environment layer just as on any other one (load balancer, application server, etc.). Immediately after that, you can start working over FTP with any prefered client application (e.g. FileZilla) to transfer files, read and download logs, edit configurations, synchronize folders content and so on.

More info

Improvements

UI/UX Improvements
API Improvements
MySQL/MariaDB Security Enhancements
Default Aliases for Container HostnameMaster Node Environment Variables (5.2)
Fixes Compatible with Prior Versions
Software Stack Versions

[Back to the top](#back)

UI/UX Improvements

Latest Tag for Dockerized Stack Templates Basic Management Options within Empty Environment Group Layout
Clarification on Port Settings for Docker Containers

Latest Tag for Dockerized Stack Templates

To simplify operating with various software, all platform dockerized stacks were complemented with dedicated latest tags: per whole template (tomcat:latest, mysql:latest, etc.) and per each major stack version (tomcat:7-latest, mysql:5.7-latest, mariadb:5-latest). Herewith, the appropriate grouping is automatically applied to stack tags list within topology wizard:

  • if stack has several versions, they will be shown in the expandable list with the latest tag at the top (hover over to see the exact version)
  • if stack has several minor versions of the same major one, the appropriate record will be converted into a general view (e.g. 7.x.x) with a list of exact minor releases and the corresponding latest tag (e.g. 7-latest)

Basic Management Options within Empty Environment Group Layout

With an aim to make dashboard UI more intuitive, background for an empty environment group was updated with buttons on a number of common actions, which may be needed to get started with this feature. Namely, quick access was provided to the following operations:

And for the case there are no environments within an account at all, the similar background was added to the dashboard start page. Herewith, the Collaborate on Shared Environment option is shown instead of the Add Environment to This Group one. More info

Clarification on Port Settings for Docker Containers

By default, all Docker containers within the platform are provisioned with the following open ports: 80, 8080, 8686, 8443, 4848, 4949 and 7979. In case any other container port is needed to be accessed via Shared Load Balancer, the appropriate endpoint can be easily attached to the environment. Alternatively, Public IP can be used to get direct access to all container ports.

To make such specifics more clear, the appropriate Ports tab within the Docker container settings wizard was updated. For now, it provides a core information on default ports, endpoints / Public IP usage and has a special explanatory image to visualize ports behaviour, making it easier to percept. More info

API Improvements

New GetEnvs Method with Pre-Sorted Response
Set- & Get- ContainerEnvVars Methods for Environment Layer
Support of Parameters Aliases within CLI Commands
Updated Namespace for API Calls within Cloud Scripting

New GetEnvs Method with Pre-Sorted Response

The GetEnvsByCriteria is a new API method which allows to get information about all your environments whilst sorting them to simplify the perception. It uses a special criteria parameter (specified in JSON format) with the following options:

  • order - can be assigned either ASC or DESC value to sort environments in ascending / descending order respectively
  • orderField - sorts environments by either status (e.g. running, stopped) or name

In case of a big number of applications and projects being run on an account, this method can help to speed up and simplify the appropriate data fetching.

More info

Set- & Get- ContainerEnvVars Methods for Environment Layer

In the present PaaS 5.1 release, two new API methods were added to help managing environment variables in Docker containers and dockerized stacks. Both operations were designed to work with all the nodes within a layer:

  • GetContainerEnvVarsByGroup - gets list of all the environment variables
  • SetContainerEnvVarsByGroup - sets variable values for nodes of a particular type

In conjunction with the on-going conversion to the dockerized templates, these API methods will be especially useful, as they will become applicable for all platform-managed stacks.

More info

Support of Parameters Aliases within CLI Commands

A lot of API methods in the platform have a number of aliases for their parameters (i.e. alternative names, which can be used on a par with original denominations). Usually, such variations appear due to steady API development, supporting legacy implementations and ensuring backward compatibility. For example, the frequently used envName parameter can be equally replaced with its previous appid or domain denominations, whilst zdt parameter name can be similarly substituted with the atomicDeploy string, and so on.

In the current 5.1 platform upgrade, support of such aliases was implemented for platform CLI as well (including the appropriate parameters designation within JSON files). This allows developers to operate with the same preferred parameter denominations when using both API and CLI.

More info

Updated Namespace for API Calls within Cloud Scripting

The platform API documentation provides examples on calling methods via HTTP using URL (REST) and through Cloud Scripting (Scripting). In the current upgrade, namespace for the latter one was updated to a new format through substituting its hivext part with jelastic string. As an example, for now the following expression should be used when referring to VCS API requests - jelastic.environment.Vcs.{method-name}. Herewith, the former version (i.e. hivext.environment.Vcs.{method-name}) is considered outdated, although remaining operable for compatibility reasons.

More info

MySQL/MariaDB Security Enhancements

According to native MySQL and MariaDB implementation specifics, a one will see the appropriate directory content if accessing a page with no specified entry point on these servers via direct URL. In most cases, such behaviour should be avoided as it may reveal some sensitive data (e.g. backups, temporary or hidden files, etc.), which must not be exposed for clients. Thus, restriction on directory indexing was enabled for both MySQL and MariaDB stacks.

Another implemented improvement is automatic generation of self-signed certificates for MySQL/MariaDB nodes, which allows to establish encrypted HTTPS connection to their admin panels via Public IP right after instance creation, i.e. without any additional configurations being required.

Default Aliases for Container Hostname

When referring to a particular container, two formats of a hostname could be used in the platform internal DNS (with either hyphen or period as a separator):

  • node**{node_id}**-**{env_name}**.**{hoster_domain}** - default record for all node types
  • node**{node_id}**.**{env_name}**.**{hoster_domain}** - additional record for Docker containers (i.e. beside of the default common one)

where:

  • {node_id} - unique container identifier
  • {env_name} - internal environment domain (based on environment name, set during its creation)
  • {hoster_domain} - domain name of a platform a node was created at

From now on, both of the above-specified records will be automatically added for each new container and can be used for refering to both native and Docker containers. Herewith, for the already existing containers, number of DNS records will remain the same.

Master Node Environment Variables (5.2)

When setting up an environment topology, the very first instance to be created on a particular environment layer is automatically considered as a master, i.e. the main one. For example, such initial container will be taken as a template for all layer nodes during environment cloning or, in case High-Availability is enabled, applications will be deployed only to the master node. Starting with the 5.2 PaaS version, each newly created Docker container (and dockerized stack) is provisioned with the master node details for a layer it is placed at, which are defined within the appropriate variables:

  • MASTER_ID - unique digit identifier (Node ID), e.g. 226501
  • MASTER_HOST - network address for referring to a master node, composed of container ID and environment name (without the Platform domain suffix), e.g. node226501-my-app
  • MASTER_IP - master container internal IP address, e.g. 192.168.13.31

Such implementation will help to identify master node much easier - for example, to discover a container where the data is actually stored when utilizing master as a storage for sharing data across the layer. Also, when packaging clustered solutions via JPS, these variables allows to prescribe the appropriate master node host and IP address fetching without an environment being actually created yet.

Fixes Compatible with Prior Versions

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

PaaS 5.1
#Compatible fromDescription
JE-289662.5The File Synchronization add-on can not be installed due to the deprecated CS format used in the manifest file
JE-272633.3Error occurs, while installing the Cyclos 4 package
JE-322403.3Correcting default email settings for the osTicket package
JE-327393.3Adjusting File Synchronization add-on to enable its installation on top of dockerized stacks
JE-271404.2Validation message clarification for the user name field in the FTP Users add-on
JE-256564.5Crash report appears, while updating a New Relic add-on, which is installed on top of Apache PHP application server
JE-317394.8Incorrect documentation link within the Traffic Distributor package description at the platform Marketplace
JE-299964.10Support and integration of a new Spring Boot Java application server
JE-312524.10Indication of environment groups and layers within SSH Gate menu at terminal
JE-319704.10Making environments in the nested (child) environment groups being displayed within SSH Gate terminal menu
JE-325604.10Shared environments can not be accessed by collaborators via SSH Gate, due to owner UID usage by SSH client
JE-325694.10Ability to connect to nodes without internal IP via SSH Gate
JE-327214.10Updating legacy VDS labeling for VPS nodes in SSH Gate terminal menu
JE-327224.10Pre-sorting of containers by environment layer within SSH Gate terminal menu
JE-311554.10.2Fixed issue with MSSQL node creation failure due to the password for sa user occasionally being not generated by the system
JE-313004.10.2Sometimes platform CLI could not be installed due to Java exception
JE-267925.0.5Fixed error during restarting dockerized Varnish load balancer stack
JE-314735.0.5Crash report appears when installing the TimeZone add-on on top of dockerized stacks
JE-315535.0.5The Drupal package from platform Marketplace can not be opened in browser due to incorrect Apache version
JE-318125.0.5The /use/java/tzupdater.jar file is absent within Java-based dockerized stacks (i.e. Tomcat and TomEE)
JE-318755.0.5Incorrect permissions for the /var/spool/cron/nginx file on the dockerized stack of Nginx PHP
JE-319105.0.5The logdb_bckp.log file is not created after first backup procedure on the dockerized stack of MySQL 5.7
JE-326335.0.5The locale command return errors after updating glibc on dockerized stacks
JE-326455.0.5Unmasking systemd-logind to avoid warning messages in var/log/messages
JE-326795.0.5Error message appears during successful MySQL / MariaDB / Percona databases restart
JE-327155.0.5The screen session can not be opened, while connected to container with dockerized stack via SSH Gate
JE-327195.0.5Updating tag label for MariaDB 10 based on the actual database version
JE-328095.0.5Forbidding directory listing on the dockerized PHP stacks after Git / SVN deploy
JE-328935.0.5The dockerized TomEE stack can not be accessed via SSH Gate
PaaS 5.2
#Compatible fromDescription
JE-319844.10Displaying environment topology changes after refresh in SSH Gate terminal menu
JE-329655.0.5Adding system libraries, which are required for some dynamic extensions, to the PHP module
JE-329135.1Updating permissions for the keys folder on the dockerized Varnish stack to allow file creation
JE-329675.1Setting proper Common Name for the auto generated self-signed certificates on databases with Public IP

Back to the list of Improvements

Software Stack Versions

The most notable software stack updates in confines of PaaS 5.1 and 5.2 releases are:

  • the legacy Ruby versions (namely 1.9.3, 2.0.0 and 2.1) are no longer maintained by the platform
  • the latest Ruby 2.4 release was added
  • the RHEL OS template support was implemented for Docker containers

This way, for now the list of the component templates versions is the following:

StackPaaS 5.1/5.2
Tomcat 66.0.53
Tomcat 77.0.77
Tomcat 88.5.5
TomEE7.0.3
Jetty 66.1.26
GlassFish 33.1.2.2
Java 61.6.0_45
Java 71.7.0_79
Java 81.8.0_131
MariaDB5.5.56 / 10.2.6
MongoDB 2.62.6.11
MongoDB 3.03.4
MySQL5.6.36 / 5.7.18
PostgreSQL9.5.5
CouchDB1.6.1
nginx1.10.1
Maven3.5.0
Centos 77.2
Memcached1.4.24
Apache2.4.6-45
NGINX PHP1.10.1
NGINX Ruby1.12.0
PHP 5.35.3.29
PHP 5.45.4.45
PHP 5.55.5.38
PHP 5.65.6.28
PHP 77.0.13
PHP 7.17.1.0
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.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.1 and 5.2:

PaaS 5.1
#Description
JE-19273Parameters set by the JAVA_OPTS variable are not applied and not exported on Jetty 8 and JBoss 7
JE-24012Platform CLI client displays a login prompt, while a user is actually trying to sign out
JE-26295Platform API allows to add and edit a project with Maven where interval to check and auto-deploy updates has a negative value (less than 1 minute)
JE-27765String index exception occurs while moving any file from the ~/jelastic directory and running it with parameters via platform CLI
JE-28497Permissions to sub-directories differ from the ones to *ROOT *
JE-28536Ability to execute the BindSSL API request for environment without Public IP or with unsupported node type
JE-28667Unhandled error occurs while importing the corrupted JSON manifest from a local file
JE-28913Member of collaboration with the Viewer permissions can delete log files on a shared environment
JE-28954Member of collaboration with the Viewer permissions can deploy projects to an application server on a shared environment
JE-29435Incorrect class names are provided for some API methods
JE-29863The star icon is displayed next to the level-up arrow after clicking Refresh in the Config Manager
JE-29876Ability to create new MongoDB database and user with no access restrictions
JE-29943Incorrect validation for right-to-left (RTL) text in domain names
JE-30064Environment status is not changed after cloning
JE-30197Unknown error occurs while creating a new environment
JE-30465The getdockerenvvars and *getcontainerenvvars *API requests return an unknown error
JE-30567Unhandled error occurs instead of a custom error when using custom buttons in Cloud Scripting add-on packages
JE-30685Impossible to mount directory from environment with cyrillic symbols in the name
JE-31001The Enter key doesn’t work while adding new environment group or applying changes to the existing one if the cursor is out of the input field
JE-31007Improper behavior of the Disk Limit slider box in the wizard
JE-31019The Delete button appears cropped for environments with long names and aliases in the Add Group dialog box
JE-31020The environment status is not clear from the icon that appears while adding environment to a group
JE-31066Unclear description on how to create a new environment group from the + Add to Env Group dialog box
JE-31068The Groups list remains displayed after pressing Enter to select a particular group
JE-31143Inability to create or rename a file located in a directory that was earlier renamed
JE-31739Invalid link to the Routing Methods page in the Traffic Distributor installation box
JE-31872Installation of the Cloud Scripting package with Payara Micro Advanced Cluster fails
JE-31892Error appears while editing or removing a Git/SVN project deployed to the mounted context
JE-31911Backup script for MariaDB is not executed with the *dumpall *option
JE-31987The su root root value is not returned from the logrotate config file on Fedora Docker image
JE-31997Renaming a child environment group can make it disappear or cause an unknown error
JE-32037No valid login shell is available for user in run.log on the RHEL-based Docker image
JE-32039Incorrect *Disc Limit *set for some nodes
JE-32087Error occurs while adding custom SSL certificate to the GlassFish-based environment
JE-32132Some common vulnerabilities and exposures affecting the MySQL server
JE-32140Incorrect firewall rules for the dockerized stack template with Memcached
JE-32161Member of collaboration with the Viewer permissions can’t access the Mount Points and Exports directories on a shared environment
JE-32168Newly added variable is missing within the scaled nodes of a dockerized stack template
JE-32202Account limits are exceeded while importing the Cloud Scripting package on an account with sufficient permissions
JE-32281Failure to deploy EJB project to TomEE application server
JE-32350The Scaling Limit box appears cropped in the wizard for a deselected stack layer
JE-32377The *High-Availability *button is present in the wizard for unsupported stack layers
JE-32394The sendmail service is not available on a dockerized stack template
JE-32420Member of collaboration with the Viewer permissions can’t stop or start a shared environment
JE-32505No active tasks are displayed in the Tasks panel while uploading an archive from a local file
JE-32507HTTP transport error appears while uploading an archive with a size larger than allowed
JE-32538Failure to install the Let’s Encrypt add-on on Apache-PHP due to the broken locale identifiers
JE-32610The Redeploy containers list for dockerized stacks includes tags that are not provisioned by the hosting provider
JE-32664Inability to redeploy dockerized containers in case a selected tag was repealed by a hosting provider but remains available within the source image on Docker Hub
JE-32792Incorrect formatting of SSH connection string sent to a user via email
PaaS 5.2
#Description
JE-30851Incorrect redirect from port 80 after the Node.js application server restart
JE-32293Two external IPs are added, while attaching Public IP to the stopped container
JE-32720Collaboration members can’t change topology after being granted the sufficient permissions
JE-32749Docker containers, which specify users via uid can not be created
JE-32751Maven node fails, while building EJB project that contains a JAR file
JE-32807Environments, which are stuck in the Creating status, are not automatically removed
JE-32879Inability to export data from Storage container
JE-32901Incorrect display of the Actions log tab after restarting node
JE-32907Sometimes, the ResetServicePassword, ResetNodePassword, RestartServices and RestartNodes API methods don’t respond
JE-32928Error occurs while saving changes to a file, which contains pictograms via the Config manager
JE-32932Error appears while creating environment with the MSSQL or IIS Windows-based stacks
JE-32939Calling the API request with legacy APPID format fails
JE-32944Topology wizard is not updated after switching from the Docker container tab
JE-32946Owner can manage environment after transferring it to another account
JE-32968Simultaneous creation of several environments fails due to SSL-related errors
JE-33002Unhandled error occurs while adding mount point to a file
JE-33003Session error appears while building project with Maven node
JE-33005Archives with spaces and special symbols in name can not be deployed
JE-33012Incorrect template names are displayed in the *Quotas & Pricing > Software *tab
JE-33023Rarely environments can not be created due to inability to connect to GitHub
JE-33024Deployment to environment fails due to missed DNS records
JE-33068The Tasks tab is empty after creating first environment on a new account during the Welcome tutorial
JE-33075SSH Gate can not be access by users during Platform maintenance
JE-33100SSL certificates uploaded via Deployment manager are displayed incorrectly
JE-33154Email notification about account deactivation is not sent to users
JE-33178Environment transfer request can not be resent after the previous one being cancelled
JE-33181Email notification about account being destroyed is not sent to users
JE-33212Content of the mounted folder is not available on the scaled GlassFish instances

Back to the top