Saturday, February 7, 2015

(Phase Two – Testing) Strategy to migrate Software Applications to Cloud



Series:
 (Disclaimer: The manuscript is my personal view and is not affiliated to any groups or organizations)


In Phase II testing tools, testing launch pads, testing environments, etc. should be moved to Cloud. Goal is not to leave any trace of testing or its ancillary components on-prem. In addition embrace the need to catch the nuisance of the change of application and deployment architecture especially the usage of PaaS features.

Move the test tools to Cloud running on IaaS. Don’t try to retool or change drastically. However, commence researching towards using PaaS services for testing such as VSO load test as a service, Automate of environment recycle on a scheduled basis, automate regression test, automate BCDR test, etc. Pick the easiest (or may be two easy ones) ones, adopt, and institutionalize them.

Pay attention to the intermittent or transient nature of Cloud connectivity. Ensure that adequate retry logic in place in the initialization modules of the test cases. E.g. connecting to a database might not work in one sec but when retried the next second it might work. This is the nature of transient failures for all PaaS based services.

Pay attention to the compute of the testing beds. Retire the test bed when the tests are finished. This can be accomplished by utilizing automation service. If a test bed can’t be entirely retired then attempt to scale down the environment. As an illustration using Azure automation along with its scheduler can help shutdown the entire test environment or could leave the minimum desired capacity and shutdown the rest of the unwanted capacity.

Use storage to your advantage. It doesn’t cost much. However, pennies do add up.  But the data stashed could be analyzed to find interesting patterns in the phase III. Check to see the data is structured or unstructured. Unstructured data should be stored in Azure Blob storage and structured should be stored in Azure tables.
Carefully access the security of the environment and the data collected in the process of testing. Rotate SAS keys regularly. Manage keys in in KeyVault. Set permissions at Azure blob container level or Azure table row levels. But be aware not to over engineer control which increases in proportion the complexity of administrating the security.

No comments:

Post a Comment