Virtuozzo Application Platform 4.8

This document is preliminary and subject to change.

In this document, you will find all of the new features, enhancements and visible changes included in the PaaS & CaaS 4.8 release:

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

Features

Traffic Distributor Add-On

Back to the top

Traffic Distributor Add-On

Traffic Distributor is a powerful solution, developed by PaaS team to provide smart requests routing and load distribution between a pair of applications (environments). It is delivered by means of the dedicated Add-on package (available through the platform Marketplace board within Apps > Dev & Admin Tools section). The distributor itself represents a separate environment with NGINX load balancer server and a special add-on installed on top of it.

During Traffic Distributor installation, you are provided with a number of options to comprehensively configure it up to your needs. Here, you are able to select hosts to route the requests between, state traffic ratio, amount of balancer nodes, etc. But the main option here is choosing the required routing method according your purposes, where 3 options are available:

  • Round Robin - the most straightforward distribution type, used to route each new request to a particular backend based on specified server weights
  • Sticky Session - this routing type is based on “sticking” each user to a specific backend (according to the set servers' weights) which will process all their requests until the corresponding user session, created on the first app visit, expires
  • Failover - allows to set the standby server in addition to the primary one in order to ensure application availability even during one of the environments is down

Right after succesfull installation, Traffic Distributor will immediately start routing traffic between chosen backends according to the specified parameters. Still, any of the defined during installation settings can be subsequently easily changed through the corresponding Configure option (to access it, just click on the Add-ons icon for NGINX load balancer in the distributor-dedicated environment).

There is a broad range of scenarios to effectively use Traffic Distributor with your project. Starting with the advanced workloads balancing and gaining additional high availability for a cluster, to the far more complex implementations (e.g. to apply advanced failover protection, blue-green updates or to perform A/B testing).

More info

Improvements

Docker Container’s DNS Aliases for nodeId
JPS Import Improvements
Increased SSH Gateway Performance
Export Directory Dialog for File Manager
Default Memory Configs Optimization for Java Containers
File Manager Improvements
Software Stack Versions

Back to the top

Docker Container’s DNS Aliases for nodeId

Since the present PaaS 4.8 version, all newly created Docker containers are provided with a DNS record, named according to its nodeId. Such an alias allows to refer to your Docker container via automatically assigned node identifier while working with the platform internal network via SSH Gateway.

The exact alias name looks like node{ID_number}, where {ID_number} - a unique numeric identifier for the node (it can be also seen at your user dashboard). As an example, this string can be used with such commands as ping, host, dig, etc (like ping node58316).

JPS Import Improvements

The platform import is a highly popular feature which, in particular, allows to install JPS packages (i.e. file with an environment or add-on description - its topology, configuration, application to be deployed, etc.) directly through the dashboard. This time, in order to simplify new packages delivery, the already existing abilities to insert JPS manifests with local file or via direct URL were complemented with a new possibility to specify manifest content right during the import operation through the embedded JSON editor. This option is now available within the same-named tab of the Import window, where you can paste your code and edit it on fly or write a completely new one from the scratch.

Platform JSON editor is complemented with basic editing tools, needed for comfortable work with code - find out the buttons at the top pane:

  • format JSON - automatically sets the proper indentation and line feeds
  • wrap lines - brakes lines upon reaching frame border
  • search - allows to easily find the needed information, including additional Match case and Regex search options

Once pasted, your code is automatically parsed for errors, which, if detected, will be marked with a red cross before the corresponding line (hover over it for additional information). Also, your JSON file is safely retained in browser local storage, so you can freely close Import frame without losing the stored data to continue your work with dashboard, and return to coding later on.

With an aim to make Import more notable and easier to access, this option was placed to the top of the tools dashboard pane alongside with the Create environment button.

More info

Increased SSH Gateway Performance

In the PaaS 4.8 upgrade, a major update has been applied to the platform SSH Gateway, with the multi-threads support implementation as a main point. Another big change was a great optimization boost, that speeds up such operations as downloading, uploading and file copying in dozens of times. Apart from that, CPU load during these processes was optimized for being highly cut down, whilst added multi-threading support ensures absence of the additional performance dropdowns, as it will be proportional to the current threads count.

Also, the Add SSH Key form (for both public and private keys) at user’s dashboard was slightly updated to make it a bit more clearer. In particular, each uploaded SSH keyfile is now displayed with additional info on its fingerprint and unique ID, allowing to differentiate and find the required one easier.

Export Directory Dialog for File Manager

Striving to simplify Data Storage Container management, this time we’ve implemented new possibility of sharing directories right from the source node’s Configuration Manager. This eliminates the necessity to switch to the target container to add the required mount point.

So, once the manager is opened, the appropriate new form can be accessed via the Exports menu section (with the same-named button at the top tools panel inside) or directly from the file tree (within the gear icon’s context menu) of any node. In the opened Export Path From tab the following options will help you to specify the necessary data:

  • From NFS - drop-down list of containers within current environment layer to select the one the directory should be exported from
  • Path - type in full path to the exported folder (or choose it among favorite ones)
  • To Container(s) - specify target container to share the directory with using drop-down list of all nodes (in all environments) on your account
  • Path - path to the location at the chosen target container the shared data should be available at
  • Mount to all nodes - use this switcher to set the same mounts for being added to all nodes within the destination layer
  • Read Only - turn the switcher on to restrict editing of the exported data at client node(s) (by default, the read & write permissions are provided)

In this way, now you are able to quickly share the data in both directions, i.e. either from source or target container. Herewith, in order to properly handle this functionality at Docker-based containers, both shared directory paths (i.e. at its source and target nodes) are automatically added as volumes. This ensures that the shared data will be protected during Docker container lifecycle operations (e.g. redeploy) at any of them.

Default Memory Configs Optimization for Java Containers

In order to improve performance of Java-powered containers (including cartridge-based ones), a new optimized flow for the main memory configurations generation was implemented.

In particular, this considers the MaxHeapSize (Xmx) and MaxPermSize parameters' values:

  • The first setting sets the maximum amount of memory that can be used by Java objects within a container. For now this value is calculated as 80% of total container’s RAM.
  • As for the second parameter, it defines the maximum space for the compiled Java classes, initiating execution of the garbage collection mechanism when it is overflowed. Herewith, MaxPermSize is automatically defined only for that Java containers, which are run over 6 or 7 engine versions and with allocated amount of RAM > 800 MiB. In all other cases (i.e. if container’s scaling limit is less than 7 cloudlets or it uses Java 8) this parameter is omitted. The actual value of the MaxPermSize setting is calculated based on Xmx memory amount divided by ten, but can’t be set greater than maximum of 256 MiB.
  • Also some changes were applied to the GC selection algorithm - the details can be revealed within the newly integrated Java memory configuration script.

In such a way, container’s memory configurations are dynamically changed due to the amount of allocated resources, which provides the best optimization for your Java containers at the platform.

File Manager Improvements

The platform configuration manager provides easy access to container filesystem right through the dashboard, allowing to apply some common configurations via browser with no additional tools involved. Herewith, it is constantly updated to provide even better user experience.

So, in confines of the present platform upgrade such amendments were applied to it:

  • Since tracking and logging of the performed actions in task panel represent an important part of user experience, currently it was improved to show the proper file name for the create, delete, rename, read and *save *file operations, performed through configuration manager.
  • From now on, while performing uploading through Config manager, the platform correctly detects whether the transferred file already exists and, if it does, automatically triggers the overwrite dialog. Herewith, you can either confirm replacement or abort operation.
  • Lastly, a new improved flow is now used to check whether the accessed file is text or not (i.e. to define whether it’s content should be displayed inside file manager and be available for editing). It allows to examine file more precisely, preventing a rare issue of the incorrect type determination.

Software Stack Versions

The component templates versions have been updated to their latest versions since the previous release:

StackPaaS 4.8
Tomcat 66.0.44
Tomcat 77.0.70
TomEE7.0.0
Jetty 66.1.26
GlassFish 33.1.2.2
Java 61.6.0_45
Java 71.7.0_79
Java 81.8.0_102
MariaDB5.5.51 / 10.1.16
MongoDB 2.62.6.11
MongoDB 3.03.2.1
MySQL5.6.32 / 5.7.14
PostgreSQL9.5.4
CouchDB1.6.1
nginx1.8.1
Maven3.3.9
Centos 77.2
Memcached1.4.24
Apache2.4.6-40
NGINX PHP1.8.1
NGINX Ruby1.8.1
PHP 5.35.3.29
PHP 5.45.4.45
PHP 5.55.5.38
PHP 5.65.6.25
PHP 77.0.10
Ruby 1.9.31.9.3-p551
Ruby 2.0.02.0.0-p643
Ruby 2.12.1.9
Ruby 2.22.2.5
Ruby 2.32.3.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.3.0
Node.js 55.6.0

Back to the list of Improvements

Bug Fixes

In the table below, you can see the list of bug fixes in PaaS 4.8:

PaaS 4.8
#Description
JE-19102The already shared with view rights environment can be re-shared for the same user
JE-26900Incorrect link for automatic horizontal scaling in dashboard
JE-26950Incorrect Loading Value rounding for *Network *load alert trigger
JE-26995New or edited variables are not added/changed at the linked Docker containers
JE-27021Improper validation of the “.” symbol during the custom Docker image addition
JE-27059Rarely, the environment creation action is duplicated
JE-27069Master Container tab in the Add Mount Point section should be disabled for Maven node
JE-27070File manager becomes inaccessible if external NFS-server with mounted data is not available
JE-27092The *samyroad/atlassian-jira-software:latest *Docker image can not be started
JE-27113The Apply button for FTP Users add-on is active even if no change was done
JE-27125The gitlab/gitlab-ce Docker image can not be installed
JE-27154Incorrect description for the Permission denied error in Task Manager
JE-27155Duration of the export operation in Environment status differs from the same in Task manager
JE-27156An error occurs while saving changes for all instances in a folder, mounted as Master Container
JE-27350Improper symlinks handling during the Data Storage Container mount operation
JE-27410An error appears when trying to access Add-Ons board for the already removed from the platform cartridge
JE-27416Incorrect validation error message for too long environment names in topology wizard
JE-27425An error occurs while trying to read *.jsp *file through the file manager
JE-27440Empty database dump is exported via phpPgAdmin for Postgresql node
JE-27571Text files can not be edited via File Manager for legacy containers (based on CentOS 5)
JE-27777Crash report appears for Docker containers with “{” and “}” characters in environment variables names
JE-27809High availability option is displayed for the Tomcat 8 cartridge, which has been already disabled at a platform
JE-27868Environment can work over HTTPS even without SSL being enabled
JE-27973Direct connection to container via SSH Gateway doesn’t work after environment migration
JE-28056The cachethq/docker Docker image can not be started
JE-28081Environment actions menu disappears after passing the Welcome tutorial

Back to the top