Virtuozzo Application Platform 4.10

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.10 release:

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

Features

Environment Groups
Embedded Auto-Balancing & Failover Protection for Multiple Environment Entry Points
Ability to Use Only Fixed or Flexible Pricing Model Separately

Back to the top

Environment Groups

Environment Groups is a new management entity, which facilitates operating multiple environments though attaching special tags and applying filtering on their base. Being mainly aimed to help in structuring large amount of created (or shared with an account) environments, this feature can be also helpful in smart administrating of even a couple of applications.

The process of such groups creation is based on attaching custom tags, so that separate environments can be filtered by one or more attributes (e.g. stack type, project relation, development stage, etc.). If needed, each division can be parted further into smaller subdivisions, as well as each environment can belong to multiple groups, which makes this approach truly flexible and versatile. For this feature implementation, several major changes were applied to the user dashboard:

  • a special navigation panel was added right above the environment list, where the currently displayed environment group is shown (with the full list of parent divisions if are any)
  • clicking on the Env Groups button will display the expandable list with a tree of all created groups and separate options to show environments within a particular region or only the shared ones. Also, it includes buttons to Create New and to Manage groups
  • the new Tags column was added to the list of environments, allowing to examine the attached labels, as well as to easily edit them with the corresponding pencil icon (displayed upon hovering over)

The above-described dashboard updates also caused a few minor UI adjustments to complement the feature. Namely, the main operations buttons (i.e. Create Environment, Import and Marketplace) were moved to the top pane, whilst the <How do I..?> field was hidden under the expandable Help menu. Additionally, all these interactive elements (i.e. buttons and menus) were redesigned to match the new style.

Embedded Auto-Balancing & Failover Protection for Multiple Environment Entry Points

In order to ensure high availability of applications, as one of the most crucial points for majority of developers, the automatic traffic balancing between multiple backends through Shared Load Balancer was implemented. With such integration, load is shared evenly across several load balancer instances of a single environment (implying it was preliminary scaled horizontally) even without attaching Public IP address to each container.

Upon requesting environment, the existence of the corresponding domain-dedicated upstream configuration on the Shared Balancer instance is checked. In case such section is absent, it will be created automatically based on environment entrypoint list, received from the appropriate request to the platform database. Herewith, in order to keep entry points list up-to-date, the upstream section is automatically removed, if some action affects the corresponding environment domain:

Additionally, a number of special modules were added to Shared Load Balancers, they are called each time request is proxied to environment:

  • upstream - evenly distributes traffic across the available entry points
  • sticky - applies the default sticky sessions behavior for the connections (excluding the browser cookie name, which is set to the custom slb_route one)
  • healthcheck - verifies backends availability

More info

Support of Only Fixed & Only Flexible Pricing Models

The platform implements the most versatile hybrid pricing model, which allows you to gain discounts based on the amount of reserved resources and, at the same time, do not pay for the unused capacities. And starting with the current PaaS 4.10 version, hosting providers also got the ability to implement different kinds of pricing model, either making it obligatory to pay for the whole amount of reserved resources or implementing the completely pay-for-usage approach.

This way, from now you can notice the following distinctions while setting the amount of resources for your servers, depending on a particular platform preferences:

  • fixed - model where you pay for the whole predefined amount of cloudlets and/or disk space Disables Scaling Limit slider in the Vertical Scaling wizard section and displays fixed price in the Estimated Costs details (including Storage cost for the whole specified limit).
  • flexible - based on paying only for actually used capacities in confines of the set limit, whilst not providing discounts for the preliminary reserved resources Hides the Reserved Cloudlets scroller and calculates Estimating Cost in a range from 1 cloudlet up to the specified Scaling Limit. The consumed disk space is also charged according to the pay-as-you-go approach.
  • hybrid - benefits on mixing of the fixed and flexible options

Maintains the same behaviour as before - both reserved and dynamic cloudlets can be used, with the storage being charged according to the hosting provider settings (i.e. for either preliminary reserved or dynamically allocated space).

More info

Improvements

Configurable Disk Limit for All Containers
YAML Format Support for JPS Import
Pre-Check of Account Limits during JPS Installation
Ability to Download Files via Server Configuration Manager
Detection of Docker Image Supportability by OS Type
UI/UX Improvements
New AddProject API Method Types for VCS Deploy
Exposed 8443 Port at Shared LB to Process Secure Requests
Software Stack Versions

Back to the top

Configurable Disk Limit for All Containers

Striving to make containers even more customizable, the current 4.10 PaaS upgrade includes possibility to set the amount of available disk space for any container. Such tuning can be applied through topology wizard during environment creation or its topology change. Just click or hover over the Disc Limit value in the middle part of the frame to adjust it for all nodes on a layer either via slider or through typing the desired amount of space (in GB) manually.

Additionally, the Estimated Cost section (shown in the right part of the topology wizard) was updated to reflect the price for disk space usage according to the specified limit. Hover over to see more details: spends for the currently consumed space (starting with 1 GB for bare server) are included to the minimal “FROM” cost, while the maximum available “TO” price is calculated assuming the whole allocated disk space will be in use. Also, if you try to set amount of space over the allowed limit, the appropriate notification will be shown right above the wizard:

  • trial users will be encouraged to upgrade account
  • billing users will be proposed to send a request to the Platform support team

YAML Format Support for JPS Import

YAML is a popular data serialization language, designed to be human-readable and make code easier to percept due to its slim and flexible structure. Starting with the current PaaS upgrade, the YAML syntax support was integrated to be used during JPS packages import to a platform (in addition to the default JSON format). To highlight this possibility implementation, the UI part of the Import frame got some small updates:

  • the JSON tab was renamed to JPS, so that it does not imply usage of just a single format for now
  • a hint for the JPS tab input field was added (which is displayed when the form is empty yet), saying that you can “Input your JSON or YAML code here”

More info

Pre-Check of Account Limits during JPS Installation

JPS is a highly efficient tool for application delivery and automation. In the current 4.10 release it received a notable update, aimed to improve user experience greatly. For now during any solution installation from JPS manifest a special verification is performed, aimed to ensure that a package can be properly deployed and specified topology won’t exceed any of the current account limitations.
For that, the following limitations are analyzed:

  • access to the Public IP, High Availability and Built-In SSL options
  • maximum server size in cloudlets
  • maximum number of nodes per layer
  • access to the VPS hosting
  • ability to operate VPS with internal IP
  • maximum number of environments that can be created on an account

If all of these account quotas match the demand of a package, the installation process will proceed as usual, opening the appropriate confirmation window. And in case of verification failure, the corresponding frame will inform you about which limit(s) are exceeded.

Herewith, if an issue can be fixed by converting account to the billing type, the appropriate Upgrade trial account button will be shown; otherwise, you will be proposed to contact Support for assistance or to negotiate enabling of the required functionality.

More info

Ability to Download Files via Server Configuration Manager

Within the PaaS 4.10 version, the new ability to download files directly from Configuration Manager was implemented for all of the supported container types. Such possibility simplifies project management via dashboard UI by allowing to freely transfer files between containers in a Cloud and your local machine.

The appropriate Download option was integrated to the file context menu (i.e. the expandable Additionally list, opened with the gear icon). In a moment, the system will generate a temporary downloading link and automatically run this operation, whilst otherwise you will be shown the appropriate error message.

More info

Detection of Docker Image Supportability by OS Type

Currently, the platform implementation of Docker containers support is focused on operating with Linux-based images only. Thus, starting with the present platform upgrade, each called Docker manifest file is automatically checked for the appropriate OS type usage. In case it utilizes any operating system that is different from the Linux one, the platform will automatically interrupt creation of such container, providing you with the relevant “Not supported OS template” warning message.

More info

UI/UX Improvements

Remembering Wrap State for JSON in JPS Editor
Instant Update of Environment Topology within UI after Auto Scaling
Disabling VPS without Private IP for Adding Endpoint
Added Close Button for Minimized Installation Frame

Remembering Wrap State for JSON in JPS Editor

Striving to improve user experience while operating JPS packages, the PaaS team has implemented an update to the built-in JPS code editor, available via the Import frame. For now, the system automatically detects whether YAML or JSON code format is used and, in the latter case, stores the chosen wrap option state in the browser localstorage.

With this improvement, you can stick to the preferred code view for it to be automatically applied each time the Import frame is opened. It is especially convenient while testing the developed packages, as this process implies repeating opening of the editor to apply the required tuning. Herewith, the wrap option is automatically disabled for YAML in order not to corrupt its syntax.

More info

Instant Update of Environment Topology within UI after Auto Scaling

Automatic horizontal scaling is a popular platform feature, aimed to adjust the number of server nodes based on incoming load through attaching new instances upon spikes of activity and removing them when resources are idling. Such changes are performed automatically according to configurable trigger conditions, allowing to edit topology without necessity for you to be involved in this process directly.

In order to make auto scaling results visible in environment list within the main dashboard screen right after the changes are applied, the corresponding data should be pulled from a platform. This is automatically done when a you perform some operations within PaaS UI. But in case of inactivity, such topology adjustment may not be displayed, keeping you unaware on the changes made (whilst email notification is sent anyway). So, in the 4.10 platform upgrade, an additional periodic topology check up (once per 30 seconds) was implemented to compare the displayed environment topology with the actual one. Herewith, the Tasks list in the corresponding panel at the dashboard bottom will be updated as well, providing you with info on the most recent scaling events occurrence.

Also, in confines of this improvement, the Automatic Horizontal Scalling button was added to the Statistics section for Docker containers (in the same way it’s already available for the rest of node types). This allows to quickly open the appropriate settings panel in order to add or tune scaling triggers according to the observed load data.

More info

Disabling VPS without Private IP for Adding Endpoint

In order to improve user experience while working with VPS containers, the endpoints functionality was adjusted to automatically validate nodes without internal IP attached. So, for now, such containers will be shown inactive in the appropriate list during endpoint addition. This change allows not to mislead you, as commonly virtual private servers in the platform represent the completely isolated units and should be managed through SSH Gate or attached Public IP (or, for Windows VPS, via remote desktop protocol).

More info

Added Close Button for Minimized Installation Frame

While installing a JPS solution (either from Marketplace, one-click widget or through importing your custom one), the corresponding frame pop-ups to track the process and display the results when it’s finished. This window can be minimized with the corresponding button at the top-right corner, allowing to continue operating with dashboard.

And starting with the current Platform version, collapsed form of this frame can be also quickly Closed with the appropriate icon, eliminating the necessity to expand it into the full view beforehand. So in case of active UI usage or when having multiple simultaneous installations running, you can manage such processes more convenient.

New AddProject API Method Types for VCS Deploy

With an aim to improve Java VCS projects management via API, the AddProject method was divided into two separate calls - AddProjectWithCreds and AddProjectWithKey. Correspondingly to the names, these operations allow to add projects from a private Git or SVN repository using either login / password authentication or SSH key check up. Such divisioning provides less confusion and shortens the number of parameters to consider. Herewith, the full backward compatibility is provided, allowing to operate with both new methods and the old one. Also a number of other small changes were implemented regarding this operation to provide a better user experience:

  • parameters sequence for all of the AddProject methods was rearranged to group the obligatory ones at the beginning and leave optional arguments at the end
  • names and descriptions of some parameters were updated to make them more clear
  • the two newly added methods utilize the targetEnv parameter instead of the env one to provide better clarity and avoid possible confusion with the envName one

More info

Exposed 8443 Port at Shared LB to Process Secure Requests

Many of Docker containers with Java application server inside utilize 8443 port as the default one for establishing secure HTTPS connection. Within confines of the present 4.10 PaaS release, it was exposed via Platform Shared Load Balancers, allowing HTTPS requests to access the required container even without the Public IP address being attached to it.

For example, such implementation simplifies access to the admin panel for Java application servers (like GlassFish) which are deployed inside custom Docker containers.

More info

Software Stack Versions

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

StackPaaS 4.10
Tomcat 66.0.48
Tomcat 77.0.73
TomEE7.0.2
Jetty 66.1.26
GlassFish 33.1.2.2
Java 61.6.0_45
Java 71.7.0_79
Java 81.8.0_112
MariaDB5.5.54 / 10.1.21
MongoDB 2.62.6.11
MongoDB 3.03.2.1
MySQL5.6.34 / 5.7.16
PostgreSQL9.5.5
CouchDB1.6.1
nginx1.10.1
Maven3.3.9
Centos 77.2
Memcached1.4.24
Apache2.4.6-40
NGINX PHP1.10.1
NGINX Ruby1.10.1
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 1.9.31.9.3-p551
Ruby 2.0.02.0.0-p643
Ruby 2.12.1.9
Ruby 2.2***2.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.26 / 4.3.0 / 4.5.0
Node.js 55.1.1 / 5.6.0
Node.js 66.5.0

Back to the top

Bug Fixes

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

PaaS 4.10
#Description
JE-28075Incorrect validation of some special characters during Mount Point path addition
JE-28984Topology Wizard is displayed improperly if its loading is interrupted with the Esc button
JE-29292Incorrect endpoints data is shown within the GetEnvInfo CLI call output
JE-29972Default shell is missing for jboss/wildfly Docker image
JE-30011MongoDB container is not launched properly in a cloned environment
JE-30344A long alias name overlaps region icon
JE-30493Node layer associated icon is missing within the Add Endpoint tab in a full screen mode
JE-30494The default name of a new directory is not changed within the path bar of the Config Manager
JE-30550Environment created via the NetBeans IDE is added alongside with its unidentified copy in dashboard
JE-30587Folder with subdirectories is not removed from the Config Manager upon deletion
JE-30603An error occurs during undeploying context on the Tomcat8 container
JE-30670An environment with cyrillic symbols in a name can not be imported after export
JE-30775Invalid Loading Value is displayed for the Network trigger within the Events History sections

Back to the top