Bug Reference

https://issues.apache.org/jira/browse/CLOUDSTACK-869

Branch

https://github.com/rajesh-battala/asf-cloudstack-master/tree/VpcNetscaler

Introduction

nTier Apps was a new feature added in the previous release of CloudStack.
Currently VPCVirtualRouter is providing the External LoadBalancing service in VPC for web tier. With this feature Netscaler will be supported

Purpose

This document describes the specifications and design of the feature.

Document History

Author

Description

Date

Rajesh Battala

Initial Revision

09/Apr/2013

Glossary

NS Netscaler
VPC Virtual Private Cloud

Feature Specifications

With this feature, Netscaler will be on of the Load Balancing Service provider to vpc WebTier.

Use cases

if user wants Netscaler to be LB provider for the VPC Webtier it will be addressed with this feature.

Architecture and Design description

A new VPC offering will be created "Default VPC Offering with NS"(seeded/by-default) with all the services provided by VPCVR and LB service with NetScaler.
For NetScaler to be LB provider in VPC, While creating a VPC, user should select the offering "Default VPC offering with NS".

Now VPC will be created with all the services being provided by VPC Router and LB service will be provided by Netscaler.
When a webTier is created (a tier with LB offering), then in the service map table the LB serivce will be provided by NetScaler.

Netscaler will be in the dedicated mode to the VPC Webtier. Netscaler will be dedicated mode because, In vpc user specifies the cidr of webtier, it can be the same as of guest network but with different vlan.
VM's can have same ip in webtier network and other guest network. As of now Netscaler cannot handle multi-tenant model. (Identifying the vm/service with ip and vlan is not possible in the available release)

Public IP is acquired for the VPC and then created Load Balancing rules will be created on the NetScaler device.

As of now only one tier with LB will be supported and it will continue to be the same.

NetscalerElement will implement VPCProvider interface so that Netscaler Element will be a VpcProvider type.

Upgrading of existing VPC to "VPC with Netscaler" is not supported in current feature.
For the scenario, if user wants to upgrade the tier with VpcVR as LB provider to Netscaler as LB provider two thing should be taken care.
1. Upgrading the VPC offering where Netscaler will be one of the LB provider.
2. Upgrading of the VPC Tier network offering to a network offering where NS is LB provider.
Current framework is not allowed to do the process in Vpc.
Enhancement bug will be created and tracked.

Web Services APIs

No new WebService API's. Will be using the Existing API's.

UI flow

While creating the VPC, a combobox will shown for the user to select the VPC offering.
While creating VPC network offering, when LB service is selected Netscaler also should be shown along with VpcVR
The UI flow is same as the previous LB rule creation UI flow.

IP Clearance

  • what dependencies will you be adding to the project? Would be using the existing Netscaler jars.
  • are you expecting to include any code developed outside the Apache CloudStack project? No

quality risks (test guidelines)

    • functional
      1. When a LB rule is created from UI/API for the web tier, if a free dedicated Netscale device is available then LB will be created on the NetScaler device.
      2. When a LB rule is created from UI/API for the web tier, if no free dedicated Netscale device is available then LB creation should fail.
      3. When a LB rule is deleted, then from netscaler device and Cloudstack DB the LB rule resource and entries will be deleted.
      4. When a new VM is added to the LB rule, then a new service will be create and will be added to the LB rule in Netscaler.
      5. When a VM is deleted from the LB rule, then service will be deleted from the LB rule in Netscaler.
      6. When there is change in the Stickiness policy then the stickiness policy will be changed in the NetScaler.
      7. Release ip operation should remove the LB rules and clean up should happen on the Netscaler device.
      8. Creation of HealthCheck should create a monitor and bind the monitor to the services.
      9. Deletion of HealthCheck should unbind the monitor to the services and delete the monitor
      10. If healthchecks are created on LB rule, then status of the services should be updated in the lb Vm Map table.
    • graceful failure and recovery scenarios
    • possible fallback or work around route if feature does not work as expected, if those workarounds do exist ofcourse.
      if LB rule creation is failed then automatically it will be revoked from the db.

Appendix

Appendix A:

Appendix B:

  • No labels