The Nutanix Calm application orchestrator is the gateway to self-service for business users in the enterprise. Their journey starts with managing projects and users via Calm, launching applications, and managing routine operational tasks on day two.
As a part of their daily routine, users rely on "Scaling" VMs in the application to support the varying demands of workloads running in the VMs. In Calm, the "Scale" profile action built into the blueprint is used to achieve horizontal scaling by deploying additional instances of a VM. However, until Calm 3.2.0, if the users wanted to vertically scale a VM, for example add more memory, or change any of the VM attributes on a running application, it was not directly possible and they had to go through an admin.
As an example, the database admin (DBA) of a multi-tier application managed by Calm supporting retail transactions in an enterprise wants to upgrade the primary database with a higher configuration to support more transactions per second. A typical process in this scenario would be:
- The DBA contacts the IT admin who has access to the cloud provider.
- DBA then provides the details of the VM and the required configuration.
- IT admin then makes the necessary changes.
- The DBA then waits for the changes to be reflected in Calm.
As a manual process, the complexity and hand-offs involved here are an overhead. Automation is the key to reduce such operational complexity. Previously, this problem was solved for Calm IaaS Apps (Single VM blueprints). A self-service user could navigate to the running application and change the VM specifications to the desired values. However, there were no guard rails to prevent a user from vertically scaling the VMs to an extent that it would result in the cluster running out of resources. You could set a quota of course, but it would still result in this one VM consuming all resources available under the project quota.
Calm 3.3.0 introduces a new feature to overcome the problems described above. A new concept called "Update Config" has been added. An "Update config" is defined by the blueprint developer inside the blueprint, and it contains the desired configuration state for the service VMs inside the application.
Let us learn more about how these “Update Configs” that can be used with an example of a Calm managed three-tier application consisting of a MySQL database, Apache application server, and a Load Balancer.
The blueprint developer wants to provide the DBA with T-shirt size configurations for MySQL service.
The blueprint developer uses the "Update Config"option to add the above configurations.
An "Update Config" consists of configuration to modify vCPUs, Cores per vCPU, and the Memory (GiB). The operations allowed on each of these parameters are Equal, Increase, or Decrease. When the Editable option is enabled, blueprint developers can also add boundary limits for each of the attributes using the Min and Max options. In addition, the “Update Config” also includes options to add/modify/remove Disks, Disk space, Categories, and Networks.
The final blueprint with "Update Configs" for Small, Medium, and Large MySQL database looks like the below image:
The Update action which includes the runbooks for vertical scaling can also be clubbed with tasks and actions that have to be executed before and/or after the scaling action. In this example, after vertically scaling the MySQL database the blueprint developers choose to restart dependent services.
After the application is successfully launched, the DBA navigates to the Manage tab within the application. The three actions configured to switch the database VM configurations can be executed from there. During execution, the DBA can compare the current configuration with the configuration that will be updated after successful execution of the “Update Action”.
With these new capabilities in Calm 3.3.0, the blueprint developer will be able to
- Provide vertical scaling capabilities for the VMs
- Have control on what VM attributes can be changed by the consumers/operators and to what extent
The power of “App Edit” configurations in the blueprint will let the self-service users scale the VMs vertically to their desired configurations with just a single click.
This feature is currently available for the Nutanix Cloud Platform. For more information and detailed user guide, please refer to the Nutanix Calm documentation.
This post was authored by Sampanna Hegde, Senior Product Manager, Nutanix Calm
2021 Nutanix, Inc. All rights reserved. Nutanix, the Nutanix logo and all Nutanix product, feature and service names mentioned herein are registered trademarks or trademarks of Nutanix, Inc. in the United States and other countries. Other brand names mentioned herein are for identification purposes only and may be the trademarks of their respective holder(s). This post may contain links to external websites that are not part of Nutanix.com. Nutanix does not control these sites and disclaims all responsibility for the content or accuracy of any external site. Our decision to link to an external site should not be considered an endorsement of any content on such a site. Certain information contained in this post may relate to or be based on studies, publications, surveys and other data obtained from third-party sources and our own internal estimates and research. While we believe these third-party studies, publications, surveys and other data are reliable as of the date of this post, they have not independently verified, and we make no representation as to the adequacy, fairness, accuracy, or completeness of any information obtained from third-party sources.
This post may contain express and implied forward-looking statements, which are not historical facts and are instead based on our current expectations, estimates and beliefs. The accuracy of such statements involves risks and uncertainties and depends upon future events, including those that may be beyond our control, and actual results may differ materially and adversely from those anticipated or implied by such statements. Any forward-looking statements included herein speak only as of the date hereof and, except as required by law, we assume no obligation to update or otherwise revise any of such forward-looking statements to reflect subsequent events or circumstances.