Virtuozzo Application Platform 4.9 / 4.9.2
This document is preliminary and subject to change.
In this document, you will find all of the new enhancements and visible changes included in the PaaS & CaaS 4.9 and 4.9.1-2 releases:
For detailed information on using any of the platform’s features, please refer to the users' documentation.
Improvements
Auto Horizontal Scaling for Docker (4.9) & All Certified Containers (4.9.1)
Delay for Multiple Containers Restart & Deploy
Horizontal Scaling Support for Storage Container
Limited Availability of Built-in SSL & Domain Binding Options
API Improvements
Software Stack Versions
Auto Horizontal Scaling for Docker (4.9) & All Certified Containers (4.9.1)
Since Docker containers allow to handle almost any service inside, commonly it’s rather hard to automatically predict which node type a particular instance belongs to (i.e. whether it’s application server, DB, cache or storage server, etc.). In such a way, it’s a user who defines a particular environment topology and decides which environment layer a container should be placed to.
Thus, in order to integrate the platform automatic horizontal scaling functionality support for Docker-based instances (previously available only for nodes in application server environment layer), the whole Auto Horizontal Scaling section was rebuilt. Now it allows to manually choose a particular node group, where automatic scaling should be applied. This can be done within the appropriate drop-down list in the top-left tools panel corner. Obviously, this list can be used only for Docker-based environments, as such selection has no point for the platform native containers, where compute node is always placed within the application server layer.
Beside that, some other amendments were implemented - now, upon switching to the* Auto Horizontal Scaling* section, you will see a table with all scaling triggers that have been applied to the environment. It provides information on the appropriate *Nodes* and layers names, with *Scaling in* (to remove nodes) and *Scaling out* (to add nodes) conditions you’ve specified. And the **Add**, **Edit**, **Remove** and **Refresh** buttons above this list allow to easily manage it.
Starting with PaaS 4.9.1 release, automatic horizontal scaling can be applied to any environment layer, i.e. for all node types including the platform certified containers (previously, this was allowed for application server layer only).
Herewith, upon scaling out, new containers are created in the same way as during manual adjustment - i.e. for compute, load balancer and VPS environment layers each newly added instance will be cloned from the master one, and for the rest node types - created from scratch. More info
Delay for Multiple Containers Restart & Deploy
When scaling server out within environment, you automatically gain the advanced availability for your application or service, handled inside it. This is ensured with the sequential restart & deploy mechanism. It’s key point is to run the called process at nodes sequentially (i.e. one-by-one), so that when one container is undergoing the maintenance, the rest ones will remain accessible and operable. Such approach allows to perform various operations like container restart, application deployment (via both plain archive and VCS repo), Docker container update and changing cloudlets amount without the whole service downtime.
However, in some cases, your server instances may require some additional time to restore the full operability (for example, in order to sync sessions after restart). Thus, within the 4.9 PaaS version, this mechanism was supplemented with a special delay option, that allows to set a particular time frame between running consecutive operations at containers of a single layer. In such a way, the appropriate procedure on each next node will be initiated only when the stated delay has passed after the same operation completion at the previous instance. The default value of such delay is 30 seconds, but, if needed, it can be enlarged up to 5 minutes.
Horizontal Scaling Support for Storage Container
In confines of PaaS 4.9 release, the horizontal scaling feature availability was implemented for the Dedicated Storage Container node type. So from now, you are able to handle various development scenarios that require several separate storage nodes. This allows to run some specific applications and/or achieve data redundancy.
Storage containers number can be changed through the environment wizard central pane, just as for the rest of the platform nodes. Herewith, each Storage container, added during this operation, is created from scratch (so it won’t include any copied data from the already existing nodes). This ensures that you won’t pay for the unrequired disk space consumption and allows to compose the exact data structure you need. In case of opposite operation (i.e when decreasing the nodes number), the last created container will be removed from the layer. So before performing this, please ensure it does not contain any substantial data.
Limited Availability of Built-In SSL & Domain Binding Options
Starting with the current platform upgrade, the Built-In SSL (for establishing secure connection to environment with no external domain) and Custom Domain options (for domain binding and swap functionality) will be provided only for billing users by default. So, you need to upgrade your account for being granted the corresponding permissions. Herewith, hosting service providers got the ability to control availability of this functionality on their own.
API Improvements
Review & Update of Method Descriptions
“Get” Methods for Docker Volumes
GetStats Output Clarification
Review & Update of Method Descriptions
In order to improve platform API usage experience, within 4.9 PaaS release each API method was thoroughly rechecked for proper naming and presence of detailed description on what it actually performs.
Particularly, methods with “docker” string in denomination were renamed to use the “container” label instead. Also, all method overviews were rechecked and updated to fix minor inaccuracies and provide clear and comprehensive descriptions. Similarly, the detailed explanations were added for all of the comprised data objects.
“Get” Methods for Docker Volumes
To ensure comfortable interaction with Docker containers via platform API, a pair of new dedicated API methods were added. To be more specific, they are aimed to retrieve information on mounted Docker volumes:
- GetContainerVolumesById - returns the list of all Docker volumes for the specified container
- GetContainerVolumesByGroup - outputs the same data for master (i.e. initially created) node of a particular environment layer
Integration of such methods allows to easily get specific volumes information, without the necessity to examine the overall environment response (i.e. data received with the GetEnvInfo call).
GetStats Output Clarification
The platform GetSumStat and GetStats API methods are commonly used to retrieve statistics on average resources consumption by a particular environment during the specified period.
To make response on this methods' call easier for perception, a new cloudletsUsed parameter was added to their output. Herewith, it represent equivalent to the already used chanksUsed one (which will be still included to response for compatibility reasons), but can be easier identified by name.
Software Stack Versions
The component templates versions have been updated to their latest versions since the previous release:
Stack | PaaS 4.9/4.9.1-2 |
---|---|
Tomcat 6 | 6.0.44 |
Tomcat 7 | 7.0.70 |
TomEE | 7.0.0 |
Jetty 6 | 6.1.26 |
GlassFish 3 | 3.1.2.2 |
Java 6 | 1.6.0_45 |
Java 7 | 1.7.0_79 |
Java 8 | 1.8.0_102 |
MariaDB | 5.5.51 / 10.1.16 |
MongoDB 2.6 | 2.6.11 |
MongoDB 3.0 | 3.2.1 |
MySQL | 5.6.32 / 5.7.14 |
PostgreSQL | 9.5.4 |
CouchDB | 1.6.1 |
nginx | 1.10.1 |
Maven | 3.3.9 |
Centos 7 | 7.2 |
Memcached | 1.4.24 |
Apache | 2.4.6-40 |
NGINX PHP | 1.10.1 |
NGINX Ruby | 1.10.1 |
PHP 5.3 | 5.3.29 |
PHP 5.4 | 5.4.45 |
PHP 5.5 | 5.5.38 |
PHP 5.6 | 5.6.25 |
PHP 7 | 7.0.10 |
Ruby 1.9.3 | 1.9.3-p551 |
Ruby 2.0.0 | 2.0.0-p643 |
Ruby 2.1 | 2.1.9 |
Ruby 2.2 | 2.2.5 |
Ruby 2.3 | 2.3.1 |
Python 2.7 | 2.7.12 |
Python 3.3 | 3.3.6 |
Python 3.4 | 3.4.5 |
Python 3.5 | 3.5.2 |
Node.js | 0.10.46 / 0.12.15 |
Node.js 4 | 4.26 / 4.3.0 / 4.5.0 |
Node.js 5 | 5.1.1 / 5.6.0 |
Node.js 6 | 6.5.0 |
Back to the list of Improvements
Bug Fixes
In the tables below, you can see the list of bug fixes in PaaS 4.9/4.9.1-2:
PaaS 4.9 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
PaaS 4.9.1 | |||||||||
---|---|---|---|---|---|---|---|---|---|
|
PaaS 4.9.2 | |||||
---|---|---|---|---|---|
|