Some Cloud System-Testing Tools

February 25, 2011 Leave a comment

Hi all,

Its been a while since my last post. Just trying to juggle up my memcapsules to create something of use. Here is a list of Cloud testing and performance measurement tools. Application performance tools and the variation in techniques is the hidden element that I will try to get out of them. Have a nice read.

1- Phoronix Test Suite:
Its an automated open-source (GPL License:)) testing framework, which has php-cli dependencies. It give graphical output of the tests underway. It can test many suites of applications running over amazon EC2. Those who don’t want to use CLI can employ GTK2 GUI over php. The basic idea behind is AUTOMATED TESTING.
It comes with 130 test profiles and 60 test suites. Plus you can create and add your own test profile and suite by using their extensible architecture approach using just XML. It can monitor power consumption, disk-storage, system-memory, CPU utilization, disk-read/write speeds, graphics performance, and motherboard components.
Tests can be scheduled using Phoromatic.com.
You can find regression pattern in application software. Currently those folks have found regression on Linux Kernel using this test suite.
USE CASE: Deploy Phoronix TS on your local machine and then in Cloud. Run both of them and compare the results.

2- SOASTA:
Simply awesome. Used by well-renowned companies like Netflix, Intuit, Chegg, Microsoft, P&G, Cisco, AmericanGirl etc. Its commercial and on-demand. A demo is available.
It provides web-based distributed multi-object multi-threading testbench. It can create multiple objects like browsers, UI elements, AJAX put/gets, http(s) requests on multiple devices like mobile and desktop. More on that is that you can get into the live test and see what are the current bottlenecks.
Check out their Global Test Cloud offering which will give you testmarks on multiple clouds. You can simulate web-traffic on any cloud platform with any amount of load that you want to target. AND remember its TURNKEY. Isn’t that awesome. AND its pay-as-you-service. Isn’t that awesome too.

3- CloudTesting.com:
It provides automated website testing services. Plans for pricing start from 100 Pounds per month. It operates on SAAAS model.

4- PushToTest:
It runs on your test equipment, on cloud, or both. Runs on distributed TestMaker test environment. Its also on-demand. It can run on multiple cloud environments and global user traffic is one dimension of it. It also supports Collabnet Cubit. You can organize tests using simple XML configuration files. Customers include intuit and cisco.

5- SOAPSonar:
Its an offering from CrossCheck Networks providing testing for web-services and ESB. It can indulge itself in software, VMWare, and cloud image. It provides SOAP, XML, and REST testing over HTTP(s), MQ, and JMS protocols. It provides functional, performance, compliance, and security testing in cloud. One can validate SLA rates in terms of throughput, and capacity statistics from the back-end service in cloud, in performance testing mode.
Its a commercial offering, and many feature segregated editions are available along with a trial version. You can compare editions here.

6: Bonnie++ filesystem benchmarking:
In the words of Linus, the founder/maker of linux kernel, it is “reasonable disk performance benchmark”. SUN guys used it all the time. And its been around since 1996. Both 32 and 64-bit versions are available. It measures hard-drive and filesystem performance. If you wish to test different zones of a hard-drive, it would be good to use ZCAV along with bonnie++.

7: Sysbench MySQL benchmarking:
Back in 2006 SUN published Solaris vs REDHAT stuff, based on the output of this tool. Till now its been matured. It allows you to test file I/O performance, schedular performance, memory allocation, and transfer speed, POSIX thread implementation performance, and database server performance. First four are good for platform evaluation. E.g. test these four paramters on your local datacenter and then on public cloud to test both the platforms against your application. It uses LUA as scripting language, so you can write scripts into it for your own ride. Its a very good tool OR infact is for OLTP (OnLine Transaction Processing).

8: ProbeVue:
Those well-versed in knowing/comprehending that probeVue is the best, why I haven’t mentioned it in the first place. Well I don’t wanna answer that question, since I am waiting for it to be ultimate for me and available in other coding stylses also rather just in C. Apart from it, its the best of the best from IBM. It is basically a lightweight dynamic tracing utility, and many people think (ones like William Favorite from The Ergonomic Group), that its the future of system introspection.
When using ProbeVue a developer can select what he/she wants to extract from an event, and still able to make his/her own events using Vue as language. Here is the comparison from William’s Slides

I will be adding more to this post. Please add yours in the comments section.
Cheers

Categories: Amazon AWS, Cloud, Performance

6 Phases of successful migration of Enterprise Apps to the Cloud

February 6, 2011 1 comment

NOTE: This post is a sort of my abstract version with comments for a great document available here http://media.amazonwebservices.com/CloudMigration-main.pdf

Phase 1: Cloud Assessment Phase:

In this phase ask yourself these questions:

a- Whats the difference in Cost, Security, and Complience in your Data Center Reilm and Cloud Reilm?

b- Do you have a business case in hand? And Who in your organization knows about this and how much? Are the implementors aware of what part they have to play?

c- When you talk about Cloud, you have to take COMPUTE, STORAGE, AND TRANSPORT in mind. Have you got any plans for that? How will you handle compute, storage, and transport? A pre-assessment study should yield a start-off plan. Else application metering in compute domain, storage domain, and transport domain is necessary factor in Cloud for Enterprises expecially Telecom Enterprises.

d- Your security advisory and auditing advisory should have an assessment plan before hand for the Cloud, have you involved them OR you are just thinking of feeling the good guts?

e- Have you characterized the sensitivity of the Data that will be ported or kept?

f- Have you classified your enterprise application based on its dependencies and risk?

Dependencies: 1- Applications with Top-Secret, Secret, or public Data sets

2- Applications with low, medium, or High complience requirements

3- Aplications that are internal-only, partner-only, and customer-facing

4- Applications with low, medium, and high coupling

5- Applications with strict and relaxed licensing

Phase 2: Proof of Concept Phase:

In this phase consider the following points:

a- The goal here is to learn about the Cloud provider while you are in direct contact with it. Deploy a simple app and then see the output.

b- Approach your assumptions with real measured data of an example installment/deployment

c- Start with a small Public Dataset that depends on an application which has similar dependencies as your enterprise application

d- The purpose of the proof of concept is that you wet your hands and make a case for critical next-step evaluation based on phase 1.

Phase 3: Data Migration Phase

In this phase consider following points:

a- Involve Enterprise Architect into the equation. 

b- Evaluate Cloud storage options against your local-storage options

c- NoSQL or Relation Database?

d- Estimate the effort required to migrate data to the Cloud.

e- Get some metering software like OpenCore 6.1 that will measure latency, and response-time of read-write data on datasets.

f- If you don't have data or you only deal with real time non-persistance data, have a coke and enjoy the next phase. 

Phase 4: Application Migration Phase

a- Learn about forklift migration strategy and hybrid migration strategy. What you choose is important.

b- Is your application stateless or stateful?

c- In forklift you port entire application at once with minimal code changes and it deals with stateless apps

d- In hybrid approache you can move parts of the application one at a time. 

Phase 5: Leverage the Cloud Phase

This is the phase where your application lies in the cloud as you planned. In this phase consider the followings:

a- Now you think of auto-scaling, edge caching your static content, auto-recovery, and elasticity.

b- How about business continuity with the new knowledge at hand about cloud-aware applicatoin?

c- Network level parameter estimation should be considered also. Connectivity constraints should be put to desk.

Phase 6: Optimization Phase

In this phase consider following:

a- How will you optimize the application in terms of cost savings?

b- You pay as you go means if your application is highly optimzation, you will have to pay less too.

c- Get your highly qualified software architects and solutions manager to think about new ways to optimize using code optimization, dataset optimization etc.

d- You can get alot of help for optimization if you run metering and code-probing softwares on your application in the cloud.

e- Improve caching

Conclusion

If you do all of the above, you have successfully migrated the enterprise application to the cloud, BUT still you need to rethink factors according to your business case or organizational plan.

Ask Yourself! Basic Application-Migration Consideration Questions-Part 1

February 6, 2011 1 comment

I have compiled few basic questions that are needed to be answered beforehand as the first step in migration-strategy. This part deals with IT Enterprise without the access-network implications. Part 2 will focus on Telecom Enterprise, and the perspective will be from access point of view.

So these are the basic questions that are needed to be considered by a person who is going to migrate the application without its network ramifications.

1- Which technologies we should use in the Cloud to PERSIST DATA?
2- How data will be shared between entities inside the Cloud and entities inside the local data center?
3- Application metering at Cloud should be compared with the application metering in local Data Center. Whats the difference between the two metering outputs?
4- Should we adopt the PHASED MIGRATION STRATEGY or SINGLE-THROW MIGRATION STRATEGY?
5- Should we consider NoSQL or SQL? Should we flatten the databases? Is there any need to convert a relational database to a NoSQL type database?
6- Cross-zone is definitely not an issue, BUT Is Cross-region an issue for Operators especially in Telecom perspective?
7- If you want to migrate the DB, then how would you be able to sync Oracle etc DB with the SimpleDB or S3 or any NoSQL offering?
8- Do you know MIGRATING DATA and MIGRATING APPLICATION SOFTWARE are two different things? IF YES, then how will you migrate DATA? (Compare above questions!)

If we can answer these questions, we might be able to get to a successful migration.

Recovering Deleted Files on a Linux System

February 4, 2011 2 comments

Sometimes you loose files on a system, loose them as in DELETE them. Many people think its no way to get the files back OR they would have to use some expensive software to do so. But in linux this can be achieved very easily. I will enlist two ways here, and I will ask two questions from the Linux community too. Lets start:

First Way:
1- In root you have /proc directory which contains the process IDs of your processes. Each file you create has an iNode in which it resides, and a reference. The reference to the file is actually the file/folder/directory which you delete. So you never delete the actual iNode, you only delete the reference, but it looks to you that you have deleted it from your system altogether.
2- Each iNode gets a process ID and a file description which can be used to recover the file. So how do you know the process ID of the file you just deleted. Here is the command for it

less lsof | grep “your_deleted_file_name_with_location”

This will list the following as output:

less 14675 zombie 4r REG 8,1 21 5127399 /home/zombie/test_file (deleted)

The second column is your Process ID i.e. 14675 in my case. The fourth column lists the file-descriptor i.e. 4 in my case.

3- Now you know the Process ID and file-descriptor, lets copy the file from the iNode to your preferred location by running the following command

cp /proc/14675/fd/4 recovered_file

So you just created a new file called recovered_file which contains the contents of the file that you deleted.

Now I have a question for Experts that is it possible to recover the files without zombie-ing it?

Second Way (Easy):
1- You can use SCALPEL utility to recover your files. It can scan upto 16 EB (Exabytes) of disks, in one go.
2- I will use Ubuntu 10.04 to download it by using

sudo apt-get install scalpel

3- Now open its configuration file located in /etc/scalpel/scalpel.conf
4- Uncomment i.e. remove the # charater from the start of the line for extensions that you want scalpel to search for in DELETED domain. OR simply read the whole configuration file (small one) in order to know what i am saying.
5- Now create a directory somewhere and name it RECOVERED. This directory will hold all the recovered files i.e. scalpel will save all the files that were deleted in this directory.
6- Now use the following command to reclaim/recover all the deleted file of the extension that you wanted

sudo /dev/sda -o RECOVERED

7- After the scanning process is over, open the RECOVERED directory and check to see your recovered files.

Some Questions for Experts:
1- If I delete a file in windows and try to recover it in linux, would I be able to do that?
2- How scalpel and recovery of files will work in a Virtuallized Environment e.g. Amazon EC2 Cloud?

Have a nice time.
Cheers

Categories: Amazon AWS, Linux, Linux tools

Digging the surface of a Cloud

February 1, 2011 1 comment

Cheers to all those who like the rains.But interested in how they are made i.e. rains.

Currently I am working on mounting an application on Amazon EC2. To start with, knowing Amazon is on one place is not enough. Amazon provides a lot of EC2 instances BUT they are not enough too. They do mention that they are going to give support of new instances with varying application needs, but how long it will take to get out in the market isn’t well seen of. On the other hand Amazon gives you ability to deploy your own HANDMADE Amazon Machine Instances. So its good news for guys those who can make, and a challenge for those who can’t.

So to start the digging you need the tools to dig. Imagination to dig won’t do much here. So what are the tools to dig the Amazon Cloud? Amazon provides you APIs and a good set of Command Line tools or reference. They also provide a web interface to manage your instances. And if you want to know the performance parameters of your instances, there is another service from Amazon called CloudWatch. But does Amazon provides tools like VMWare cCloud Director on which Zenoss has implementation a cool Cloud monitering tool too. Zenoss mentions this in its post

Zenoss Provides Unified Visibility and Real-Time Awareness of the Entire vCloud infrastructure

So the question arises, is there any kind of tool available in the market which addresses this need for Amazon OR CloudWatch is enough. Am waiting for a good 1-to-1 comparison or analysis of both of them. So if anybody has any idea, please comment.

 

Categories: Amazon AWS