Virtuozzo Application Platform 5.5.1/2/3
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.5.1/2/3 releases.
Templates Auto-Clustering (5.5.3)
An automated configuration of separate nodes into the reliable cluster for a set of the managed templatesLearn more
Two-Factor Authentication
An additional security layer for PaaS account, to ensure environments safetyLearn more
UI for Access Tokens
A user interface for the convenient personal access tokens management directly in the dashboardLearn more
Go Archive Deployment
Implemented automated projects deployment from archives for the Go programming languageLearn more
Cloud Scripting Engine Version Comparison (5.5.3)
Added placeholder for platform CS engine version and function placeholder for two CS versions comparisonLearn more
Prohibit Deployment for Layer (5.5.3)
A possibility to forbid deployment into specific layer(s) with the isDeploySupport node group propertyLearn more
Cloud Scripting Transfer Events
The new onBeforeConfirmTransfer and onAfterConfirmTransfer events added to Cloud ScriptingLearn more
Node Group Scaling Mode
A possibility to set the stateless (simultaneous) or stateful (sequential) scaling mode for environment layersLearn more
API for Scaled Nodes Management
Refactored API methods for scaled nodes management to reduce the number of used parametersLearn more
HelloWorld Package
Adjusted the universal HelloWorld package to ensure successful installation into all supported application serversLearn more
Engine Versions Grouping
Simplified engine versions selection in topology wizard grouping them by type and major releaseLearn more
Collaboration Adjustments
Hiding the inappropriate options of the environment owner during environment creation as the collaboratorLearn more
Cloud Scripting Console Optimization
Improved auto-refresh functionality for the Cloud Scripting console to simplify logs analysisLearn more
Software Stack Versions
Actualized list of supported OS templates and software stack versionsLearn more
Bug Fixes
List of fixes applied to the platform starting from the current releaseLearn more
Templates Auto-Clustering (5.5.3)
It is a well-known fact that clusterization is virtually an obligatory requirement for production solutions to ensure applications and services high availability. However, the configuration of a reliable cluster is not a trivial task even for the experienced developers. So, within the present 5.5.3 PaaS release, the platform introduces the out-of-box clusterization of the managed templates to significantly decrease the time-to-market for users' projects.
The Auto-Clustering feature by the platform can be enabled through the same-named switcher in the central part of the topology wizard (if available for the selected stack). Herewith, upon enabling, some additional cluster customization options may be added to the wizard. For example, for the MySQL database stack, it is possible to choose the preferred clusterization scheme (i.e. Master-Slave, Master-Master, Single MGR or Multi MGR):
Currently, auto-clustering is available for the following software templates (more stacks will be supported by this feature in the future):
- MySQL, MariaDB 10 and Couchbase databases
- GlassFish, Payara and WildFly application servers
Based on the particular cluster requirement some topology restriction may be applied (e.g. the minimum/maximum number of nodes, scaling mode, etc.). The similar validation can be implemented for any JPS package through Cloud Scripting:
|
|
Two-Factor Authentication
In order to massively increase your account safety, the platform implemented a possibility to set up access based on the two-factor authentication (2FA). As an additional layer of security alongside with your username/password credentials, the platform allows using access codes generated in the authentication application on your mobile phone (e.g. Google Authenticator). In such a way with 2FA enabled, even if someone gets your password, it won’t be enough to connect to or manage your account.
The two-factor authentication can be enabled from a new Account section added to the Settings (accessible from the panel at the top of the dashboard). Here, you can manage your 2FA (set up, view recovery codes and disable) and change a regular account password.
To successfully Set Up Two-Factor Authentication click the appropriate button and, after confirming the password, follow the displayed instruction to interconnect your authentication application and account (either scan the QR code or provide the required details manually). After the authenticator is configured, it will return a six-digit code, which should be provided in the dashboard to proceed. Next, you’ll be shown the recovery codes, which can be used as a one-time alternative to the authentication codes generated by the mobile app.
UI for Access Tokens
Personal Access Tokens are the alternative way to authenticate API requests in the platform. Also, for the accounts with the two-factor authentication enabled, this option allows to avoid the complexity of the authenticator app code provisioning in custom scripts. So, within the 5.5.1 platform release, the appropriate subsection for Access Tokens is added to the Settings tab (accessible from the panel at the top of the dashboard).
Here, you can see the list of existing tokens (including ones created before UI addition, i.e. during previous releases) with the following information displayed in columns:
- Description - custom description provided for token
- API - the name of the predefined API requests set (IDE Plugins, Marketplace, Maven Plugin) or Custom one (hover over to view the exact methods)
- Expires - the date the current token is valid till (the expired ones can be regenerated or deleted)
- Last Used - the time of this token last usage
- Created - the date of the creation
The tools panel above the list provides access to the following buttons:
- Generate - creates a new token by providing the description, expiration date and selecting the required API methods (either from predefined sets or manually)
- Edit - adjusts the existing token or regenerates it (i.e. sets a new name, while maintaining all other parameters)
- Copy - creates a new token using parameters of the existing one as a basis
- Remove - deletes selected token
- Refresh - displays the most recent changes to the list
All the token changes on account require an obligatory confirmation with the password before being applied.
Node Group Scaling Mode
Starting with the PaaS 5.5.1 upgrade, it is possible to explicitly set the scaling mode for each node group in the environment. Just select the required one using a new drop-down list in the Horizontal Scaling section of the topology wizard.
There are two scaling modes:
- Stateless - creates a new node from the base image template; the scaling is performed simultaneously
- Stateful - copies file system of the master container into a new node; the scaling is performed sequentially (simultaneously during the initial layer creation)
The first option is comparatively faster, while the second one automatically copies all custom configurations (e.g. deployments or Custom SSL). Herewith, the transfer of custom files for the stateless mode can be done manually or configured via the Cloud Scripting automation.
The default scaling mode value is stateful for the load balancer, application server, VPS stacks and stateless for others. Herewith, when configuring a custom JPS package, the preferable scaling type can be defined with a new scalingMode property (using the new or clone value for the stateless or stateful mode respectively).
API for Scaled Nodes Management
The API methods for the management of the scaled nodes (e.g. Deploy, DeployApp, RestartNodes, etc.) were refactored to simplify their usage. Namely, the isSequential parameter was deprecated (but still available for the compatibility reasons) and its logic added into the delay one:
- if set to “-1” - the called action will be performed simultaneously (i.e. altogether)
- if the value is >= 0 - operations will be done sequentially (i.e. one by one) with the specified delay between actions
Currently, such a change is already integrated into the dashboard topology wizard, allowing to set the default restart delay for the layer (can be set differently during the operation itself).
Go Archive Deployment
Improving integration of the Go programming language, an ability to deploy Go project from the archive was implemented in the current PaaS release. The deployment process is the same as for any other application server and could be done in a few clicks - just upload or provide a link to the archive with sources of your Go project and select the desired target environment. Optionally, configure any other configs (e.g. hooks or deploy strategy) and click Deploy for the platform to install your application automatically.
HelloWorld Package Update
The platform provides and maintains a universal HelloWorld package, which can be deployed automatically on top of any certified application server stack. In such a way this solution supports all of the platform programming languages - Java, PHP, Python, Ruby, .NET and Node.js.
Due to the Go archive deployment integration within the current 5.5.1 release, the appropriate adjustments were applied to the HelloWorld package, ensuring its successful deployment into the Golang server. Also, to support the specifics of the Spring Boot Java application server, the .jar version of this solution was integrated into the package as well.
Engine Versions Grouping
Aiming to increase clarity and ensure better usability of the topology wizard, a grouping of the programming language engine versions was implemented. Now, the right-hand drop-down list within the Horizontal Scaling section automatically groups the available engine versions in the easy-to-find form, i.e by the major version (PHP 7.x.x, PHP 5.x.x) or type (JDK, OpenJDK, OpenJ9).
Also, as a part of this improvement, the displayed version names of the Java 7 and 8 engines were adjusted to match the latest releases pattern. For example, the old 1.8.0_172 denomination is now displayed as 8.0_172.
Collaboration Adjustments
When being included into collaboration with permission to create environments on the primary account, a user will be able to select Environment Owner through the appropriate pop-up. Starting with the present 5.5.1 PaaS release, if a new environment cannot be created due to limitations of a particular account, the appropriate user email option will be hidden in the drop-down menu of the Environment Owner pop-up.
Cloud Scripting Console Optimization
Cloud Scripting (CS) console allows tracking actions performed due to the JPS packages installation. It is accessible via the {hosterDomain}/console URL (should be already logged into PaaS account) and provides real-time information on the CS code execution. Herewith, to keep the displayed data up to date, the Auto-Refresh feature can be enabled with the same-named button at the top of the page.
In the current 5.5.1 release, the behavior of the Auto-Refresh option was adjusted to simplify CS logs analysis:
- automatic switching to the latest records will be performed only if scrolled to the bottom of the console (i.e. upon changing screen position, it won’t be jumping down, allowing to conveniently read/analyze logs)
- upon selecting some text in the console, the Auto-Refresh feature will be immediately disabled
- option re-enabling with the appropriate button will deselect text in the console
Cloud Scripting Engine Version Comparison (5.5.3)
Within the present PaaS release, a new ${engine} placeholder was added. It returns a CS engine version used on the platform, which can be used in scripts to adjust called actions based on the obtained value. Also, for the convenient comparison two new functional placeholders were implemented:
- ${fn.compare(version1, version2)} - compares any two comma-separated versions, returning the following results:
- 0 - version1 is equal to version2
- 1 - version1 is greater than version2
- -1 - version1 is less than version2
- ${fn.compareEngine(version)} - compares platform CS engine version with the given version, returning the following results:
- 0 - platform CS version is equal to the provided version
- 1 - platform CS version is greater than the provided version
- -1 - platform CS version is less than the provided version
Prohibit Deployment for Layer (5.5.3)
Some solutions may require to forbid deployment into the specific layer(s). For example in the GlassFish cluster package, deployment should be performed via the DAS container (not through the worker nodes). Such a possibility was implemented via the new isDeploySupport node group property, which can be set as true or false to allow/prohibit deployment respectively.
Software Stack Versions
Check out the list of the most accurate software stacks for the current platform version:
Stack | PaaS 5.5.1/2/3 |
---|---|
Apache Balancer | 2.4.35 |
Apache PHP | 2.4.35 |
Apache Python | 2.4.35 |
Apache Ruby | 2.4.35 |
CentOS 6 (VPS) | 6.8 |
CentOS 7 (VPS) | 7.2 |
Couchbase | 5.1.1 |
CouchDB | 1.6.1 |
Docker Engine CE | 18.03 |
GlassFish 3 | 3.1.2.2 |
GlassFish 4 | 4.1.2 |
GlassFish 5 | 5.0 |
Golang | 1.10.3 |
HAProxy | 1.8.12 |
IIS | 8 |
Jetty 9 | 9.4.12 |
MariaDB 5 | 5.5.61 |
MariaDB 10 | 10.3.9 |
Maven | 3.5.4 |
Memcached | 1.5.10 |
MongoDB 2 | 2.6.12 |
MongoDB 3 | 3.6.8 |
MongoDB 4 | 4.0.2 |
MSSQL | 2012 |
MySQL 5 | 5.7.22 |
MySQL 8 | 8.0.12 |
NGINX Balancer | 1.14.0 |
NGINX PHP | 1.14.0 |
NGINX Ruby | 1.14.0 |
NodeJS 6 | 6.14.1 |
NodeJS 8 | 8.11.3 |
NodeJS 9 | 9.11.1 |
NodeJS 10 | 10.8.0 |
Payara 4 | 4.1.2.181 |
Payara 5 | 5.182 |
PerconaDB | 5.6 |
PostgreSQL 9 | 9.6.10 |
PostgreSQL 10 | 10.5 |
Redis | 4.0.11 |
Spring Boot | 2 |
Tomcat 7 | 7.0.88 |
Tomcat 8 | 8.5.34 |
Tomcat 9 | 9.0.12 |
TomEE | 7.0.5 |
Ubuntu (VPS) | 16.04 |
Varnish 4 | 4.1.8 |
Varnish 5 | 5.2.1 |
Varnish 6 | 6.1.0 |
WildFly 10 | 10.1.0 |
WildFly 11 | 11.0.0 |
WildFly 12 | 12.0.0 |
WildFly 13 | 13.0.0 |
WildFly 14 | 14.0.1 |
Windows (VPS) | 2012 |
Bug Fixes
In the tables below, you can see the list of bug fixes applied to the platform starting from PaaS 5.5.1/2/3 releases:
PaaS 5.5.1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
PaaS 5.5.2 | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
PaaS 5.5.3 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|