<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:series="http://organizeseries.com/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
<channel>
	<title>CloudSpring</title>
	
	<link>http://cloudspring.com</link>
	<description>Learn how to manage your website in the Cloud</description>
	<lastBuildDate>Thu, 06 Dec 2012 02:40:38 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/cloudspring" /><feedburner:info uri="cloudspring" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Change in the Wind: CloudSpring Moves to SitePoint</title>
		<link>http://feedproxy.google.com/~r/cloudspring/~3/Gm8zvWiKJk8/</link>
		<comments>http://cloudspring.com/change-in-the-wind-cloudspring-moves-to-sitepoint/#comments</comments>
		<pubDate>Thu, 06 Dec 2012 02:40:38 +0000</pubDate>
		<dc:creator>Tom Museth</dc:creator>
				<category><![CDATA[About]]></category>
		<category><![CDATA[Cloud Basics]]></category>
		<guid isPermaLink="false">http://cloudspring.com/?p=3077</guid>
		<description><![CDATA[Change is afoot, CloudSpring fans. Since CloudSpring launched in July 2011, we&#8217;ve brought you all the news there is to know about the world of cloud computing, kept you abreast of developments in cloud-related technologies, and published handy tutorials on migrating apps, securing data, improving performance &#8230; you name it. From SaaS, IaaS and PaaS [...]]]></description>
				<content:encoded><![CDATA[<p>Change is afoot, CloudSpring fans.</p>
<p>Since CloudSpring launched in July 2011, we&#8217;ve brought you all the news there is to know about the world of cloud computing, kept you abreast of developments in cloud-related technologies, and published handy tutorials on migrating apps, securing data, improving performance &#8230; you name it. From SaaS, IaaS and PaaS to AWS, Oracle and Google Compute Engine, we&#8217;ve aimed to cover all aspects of the cloud and its role on the web.</p>
<p>The SitePoint network is always evolving, and as part of a revamp for 2013, we&#8217;re adding CloudSpring onto our main site, at www.sitepoint.com. We think it&#8217;s a smarter fit &#8212; SitePoint explores a diverse range of web technologies, and we feel cloud computing falls neatly under the SitePoint umbrella.</p>
<p>So shortly, you&#8217;ll see a dedicated CloudSpring section on SitePoint. Here you&#8217;ll be able to find all the latest and greatest articles and tutorials on the world of the cloud &#8212; not to mention all the content that&#8217;s been posted on CloudSpring over the last 18 months or so. We&#8217;ve got a skilled, dedicated bunch of writers with their heads in the cloud, and they&#8217;ll regularly be posting on the CloudSpring page. Hopefully we can open up the world of cloud computing to a wide audience, and get a good dialogue happening among you all.</p>
<p>The web is always changing; and CloudSpring is changing with it. Look out for the brand new CloudSpring on SitePoint shortly &#8212; and as always, your feedback is welcome.</p>
<img src="http://feeds.feedburner.com/~r/cloudspring/~4/Gm8zvWiKJk8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cloudspring.com/change-in-the-wind-cloudspring-moves-to-sitepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://cloudspring.com/change-in-the-wind-cloudspring-moves-to-sitepoint/</feedburner:origLink></item>
		<item>
		<title>Distributed Cache On Steroids: Amazon ElastiCache</title>
		<link>http://feedproxy.google.com/~r/cloudspring/~3/MeXYwUbGni4/</link>
		<comments>http://cloudspring.com/amazon-elasticache-cache-on-steroids/#comments</comments>
		<pubDate>Wed, 05 Dec 2012 13:00:10 +0000</pubDate>
		<dc:creator>Harish Ganesan</dc:creator>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[ElastiCache]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[distributed caching]]></category>
		<category><![CDATA[edge caching]]></category>
		<category><![CDATA[memcached]]></category>
		<guid isPermaLink="false">http://cloudspring.com/?p=3053</guid>
		<description><![CDATA[Web applications can often be made to perform better and run faster by caching critical pieces of data in memory.  Frequently accessed data, results of time-consuming/expensive database queries, search results, session data and results of complex calculations are usually very good candidates for cache storage. We will understand basics of caching post which we will [...]]]></description>
				<content:encoded><![CDATA[<p>Web applications can often be made to perform better and run faster by caching critical pieces of data in memory.  Frequently accessed data, results of time-consuming/expensive database queries, search results, session data and results of complex calculations are usually very good candidates for cache storage. We will understand basics of caching post which we will deep dive in Amazon ElastiCache</p>
<h2><strong>Types of Caching Architectures</strong></h2>
<h3><strong>Local In-Memory Caching</strong></h3>
<p>The Cache objects are stored locally in-memory (example Java Heap) of the application servers. Open source frameworks like EHCache, OSCache can be used inside Java Application Servers for serving cached items from the heap. Since the cache items are accessed from the same process heap of the application programs, this model offers very fast “Set/Get” operations for cache items. On the other hand because of the limited nature of RAM only few GB can be cached in the Local In-Memory Caching model.</p>
<h3><strong>Network Attached Caching</strong></h3>
<p>The Cache objects are stored in a separate Cache Server accessible over TCP network. Cache Clients or Cache Drivers need to be embedded on the Application Servers which enable the GET/PUT/Sync operations. Cache behaves like a network attached RAM. Terracotta Cache is an example of network attached RAM caching. Since the cache operations need to travel over the network, few milliseconds of latency can be felt on “Set/Get” operations. Since the cache is centralized and consolidated it is easy manage, extend and maintain this tier.</p>
<h3><strong>Distributed Caching</strong></h3>
<p>Distributed caching may run on multiple cache servers so that it can grow in size and in transactional capacity. It is mainly used to store application data residing in database and web session data. The web applications may access the distributed cache deployed locally or remotely using a client library. The most popular distributed caching software is Memcached. Deploying large farms of Memcached has become possible because memory is affordable and cheap now and networks have become very fast.  Distributed cache works well on low cost commodity machines and cloud providers. One such popular distributed cache on AWS we are going to discuss in this article is Amazon ElastiCache.</p>
<h2><strong>Introducing Amazon ElastiCache:</strong></h2>
<p>Amazon ElastiCache is a managed distributed caching service provided by Amazon Web services.  Amazon ElastiCache currently uses memcached as the caching engine, so memcached compatible programs can be easily ported to Amazon ElastiCache usually without code change. With Amazon ElastiCache operating as a separate tier, AWS team offloads typical cache tier management tasks like the ones listed below from the application and infrastructure teams of the customer:</p>
<ul>
<li>Managing the work involved in setting up a distributed in-memory cache tier</li>
<li>Provisioning the server resources you request to installing the caching software</li>
<li>Common administrative tasks such as failure detection, recovery and software patching</li>
<li>Adding / removing Cache nodes from the cluster</li>
</ul>
<p>Now lets us explore in detail the major components of Amazon ElastiCache.</p>
<h2><strong>Components of Amazon ElastiCache </strong></h2>
<p><a href="http://cloudspring.com/amazon-elasticache-cache-on-steroids/elasticache-components-2/" rel="attachment wp-att-3055"><img class="aligncenter size-full wp-image-3055" title="ElastiCache Components" src="http://cdn.cloudspring.com/files/2012/12/ElastiCache-Components1.jpg" alt="" width="620" height="557" /></a><a href="http://cloudspring.com/amazon-elasticache-cache-on-steroids/elasticache-components/" rel="attachment wp-att-3054"><br />
</a></p>
<h3><strong>Amazon ElastiCache node:</strong></h3>
<p>Amazon ElastiCache node is a memcached instance with a unique endpoint URL and port. You can configure the memcached configuration file used by the popular memcached clients with this endpoint URL(s) provided. Memcached clients are available for all popular programming languages and the latest list can be found <a href="http://code.google.com/p/memcached/wiki/Clients">here</a>. Amazon ElastiCache nodes are protocol compliant with memcached server and usually the same memcached client mentioned above can be switched to Amazon ElastiCache nodes without requiring code changes. You can use standard Memcached operations like get, set, incr and decr in exactly the same way as you would in your existing Memcached deployments and as well perform requests using both Binary and Text messages over TCP protocol.</p>
<p>A sample pseudo code illustrating SET operation in Text TCP protocol using Java Spymemcached library and Amazon ElastiCache Tier:</p>
<pre class="brush: java; title: ; notranslate">
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import net.spy.memcached.AddrUtil;
import net.spy.memcached.DefaultConnectionFactory;
import net.spy.memcached.MemcachedClient;
import net.spy.memcached.*;
import java.util.*;
public class ElastiCacheTextTCPSet {
 public void setTextValue() throws IOException {
 MemcachedClient memcachedClient = new MemcachedClient( new DefaultConnectionFactory(),AddrUtil.getAddresses(&quot;ecache1a.sqjbuo.0001.use1.cache.amazonaws.com:11211&quot;));
 String key = &quot;1000002&quot;;
 String value = &quot;1000002-Test value in Text&quot;;
 Integer expires = Integer.parseInt(&quot;1000&quot;);
 try {
 Future&lt;Boolean&gt; result = memcachedClient.set(key, expires, value);
…………
…………
 } catch (InterruptedException e) {
 e.printStackTrace();
 } catch (ExecutionException e) {
 e.printStackTrace();
 }
 memcachedClient.shutdown();
 }
}
</pre>
<p>A sample program illustrating GET operation in Text TCP protocol using Java Spymemcached library and Amazon ElastiCache Tier:</p>
<pre class="brush: java; title: ; notranslate">
import java.io.IOException;
import net.spy.memcached.AddrUtil;
import net.spy.memcached.ConnectionFactory;
import net.spy.memcached.DefaultConnectionFactory;
import net.spy.memcached.HashAlgorithm;
import net.spy.memcached.MemcachedClient;
import java.util.*;
public class ElastiCacheTextTCPGet {
 public void getTextValue() throws Exception {
 MemcachedClient memcachedClient = new MemcachedClient( new DefaultConnectionFactory(),AddrUtil.getAddresses(&quot;ecache1a.sqjbuo.0001.use1.cache.amazonaws.com:11211&quot;));
 String key = &quot;1000002&quot;;
 Object obj=null;
 try {
 obj = memcachedClient.get(key);
 System.out.println(&quot;Value = :&quot;+obj.toString());
 } catch (Exception e) {
 e.printStackTrace();
 }
 memcachedClient.shutdown();
 }
}
</pre>
<p>You can also communicate with Amazon ElastiCache using Binary protocol of Memcached. A sample program illustrating SET operation using Java Spymemcached-TCP Binary Protocol and Amazon ElastiCache Tier:</p>
<pre class="brush: plain; title: ; notranslate">
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import net.spy.memcached.AddrUtil;
import net.spy.memcached.DefaultConnectionFactory;
import net.spy.memcached.BinaryConnectionFactory;
import net.spy.memcached.MemcachedClient;
import net.spy.memcached.*;
import java.util.*;
public class ElastiCacheBinaryTCPSet {
 public void setBinaryValue() throws Exception {
 MemcachedClient memcachedClient = new MemcachedClient( new BinaryConnectionFactory(),AddrUtil.getAddresses(&quot;ecache1a.sqjbuo.0001.use1.cache.amazonaws.com:11211&quot;));
 String key = &quot;1000004&quot;;
 String value = &quot;1000004-Test value in Binary-TCP protocol&quot;;
 Integer expires = Integer.parseInt(&quot;1000&quot;);
 try {
 Future&lt;Boolean&gt; result = memcachedClient.set(key, expires, value);
 } catch (InterruptedException e) {
 e.printStackTrace();
 } catch (ExecutionException e) {
 e.printStackTrace();
 }
 memcachedClient.shutdown();
 }
}
</pre>
<p>Memcached software version 1.4.5 is used as the cache engine in the Amazon ElastiCache nodes. Cache nodes accept connections on port 11211 and only for Amazon EC2 network. In order to allow network requests to your Cache Nodes from web/application EC2 instances, you will need to authorize access in AWS security groups. Amazon ElastiCache provides variety of cache node types (capacities) and pricing models to suit the customer requirements. The latest cache node type information can be found <a href="http://aws.amazon.com/elasticache/" target="_blank">here</a></p>
<h3><strong>Amazon ElastiCache Cluster:</strong></h3>
<p>An Amazon ElastiCache Cluster is a collection of one or more Amazon ElastiCache Nodes. All Cache Nodes within a Cache Cluster will be of the same Node Type (capacity). A node type is an associated memory size of the cache nodes to be deployed in your cache cluster. Currently cache nodes come in 11 different capacities in AWS to suit a variety of your needs, new capacity types will be added by AWS in future. If you need cache nodes of different capacities in your application systems you need to create multiple cache clusters in your account. The Cache Cluster should be supplied with an Identifier name by the customer during its creation process. For example: if you give a name “ecache1a” for the cache cluster, the endpoint URL of a particular cache node may look like this <strong><span style="text-decoration: underline;">ecache1a</span></strong>.sqjbuo.0001.use1.cache.amazonaws.com:11211.This name identifies a particular Cache Cluster when interacting with the Amazon ElastiCache API and commands. The Cache Cluster Identifier must be unique for that customer in an AWS region.</p>
<p>While configuring a cluster you need to mention the availability zone in in which you would prefer to deploy your Cache Cluster. Currently a single Amazon ElastiCache Cluster cannot span multiple Availability zones inside an Amazon EC2 region. It is advised to keep the cache cluster and related web/application ec2 instances in the same Availability zone for better latency. <a href="http://harish11g.blogspot.in/2012/11/amazon-elasticache-memcached-ec2.html" target="_blank">Refer here</a> for common Amazon ElastiCache deployment architectures in AWS infrastructure<span style="text-decoration: underline;">.  </span>Parameters and Security group settings of all the nodes inside the Amazon ElastiCache cluster can be grouped and controlled at cluster level. This clustering/grouping of cache nodes helps in easy management and maintenance of huge farms of cache nodes.  Amazon ElastiCache Clusters are can be created, using the AWS Management Console, Amazon ElastiCache APIs, or Command Line Tools. In addition to the above you can specify whether you would like to receive SNS notifications related to your cache nodes/cluster using <a href="http://aws.amazon.com/sns/" target="_blank">Amazon Simple Notification Service (SNS)</a> system. You can either select an existing SNS topic or disable notifications completely as well for the entire Amazon ElastiCache Cluster.</p>
<h3><strong>Amazon ElastiCache Parameter Group:</strong></h3>
<p>Amazon ElastiCache Parameter Groups allows you to control the runtime parameters and cache engine configuration values of your Nodes. The values configured will get passed to memcached nodes during startup and gets applied to all the nodes associated in the Amazon ElastiCache Cluster. If you do not specify a Cache Parameter Group for your Cache Cluster, then a default Cache Parameter Group (default.memcached1.4) will be used. Usually the default parameter group contains engine defaults and Amazon ElastiCache system defaults optimized for the Cache Cluster nodes you are running. Since Amazon ElastiCache by default chooses the optimal configuration parameters for your Cache Cluster taking into account the Node Type&#8217;s memory/compute resource capacity, it does not require change for most use cases. However, if you want your Cache Cluster to run with your custom configuration values, you can simply create a new Cache Parameter Group, modify the desired parameters and use it for new or existing clusters. In event the custom parameter group is applied to running cache cluster the changes will not be applied to the Cache Nodes until the Cache Cluster is rebooted.</p>
<h3><strong>Amazon ElastiCache Security Group:</strong></h3>
<p>An Amazon ElastiCache Security Group acts like a firewall, controlling network access to your Cache Cluster. Since IP-range based access control is currently not enabled for Amazon ElastiCache Clusters, All clients to a Cache Cluster must be within the EC2 network and authorized via security groups.  If you want your Web application EC2 instances to access your Cache Cluster, you must explicitly enable access from hosts in their specific EC2 security groups. For example: To allow network access to your Cache Cluster, you first need to create a Cache Security Group and link the desired EC2 security groups (which in turn specify the EC2 instances allowed) to it.</p>
<h2><strong>What features Amazon ElastiCache offers over MemCached on EC2</strong></h2>
<h3><strong>Operation 1: Modification of Cache Cluster</strong></h3>
<p>An Amazon ElastiCache cluster can be modified anytime.  Properties like Cache Security group, Cache Parameter group, Maintenance window period, SNS notifications and Auto Minor version upgrade can be modified at cluster level applying to all nodes. Security group changes may take a few minutes to be applied to the cluster. Parameter Group changes will take effect only after you reboot your Cache Nodes.  Instance capacity type of a Cache Node cannot be modified at runtime.</p>
<h3><strong>Operation 2: Reboot</strong></h3>
<p>Using this option you can reboot a single cache node or the entire cache cluster. The cache nodes will not be available during the cluster reboot operation. In case a single cache node alone is rebooted, other cache nodes are available for processing requests. Reboot operation can be done using the AWS console or API. Reboot is usually performed:</p>
<ul>
<li>When a cache node(s) is not responsive</li>
<li>Parameter Group changes applied need to take effect on all the nodes of the cache cluster</li>
</ul>
<p>In our tests, we found reboot of 5 X m1.large cache node type in Amazon EC2 US-EAST region takes around ~140 seconds. This may vary time to time depending upon the cache node type and Amazon EC2 regions in consideration. Because of the ephemeral nature of the Cache, the cache node begin empty (also called “cold”) after reboot operation, and depending on your workload pattern, it may take some time to be re-populated with data (also called “warming up” phase).</p>
<h3><strong>Operation 3: Delete and Removal </strong></h3>
<p>You can remove a one or more nodes from a cache cluster or delete the entire cluster. In case only one node is present in the cache cluster, you need to delete the cache cluster itself. Deleting one or more nodes takes ~200 seconds. This may vary time to time depending upon the cache node type and Amazon EC2 regions in consideration. In case a cluster is deleted, you can recreate a cache cluster in the same name at later point of time in the same Amazon EC2 region.</p>
<h3><strong>Operation 4: Addition of Cache Nodes</strong></h3>
<p>Amazon ElastiCache as the name suggests you can automatically/manually add cache nodes to the existing ElastiCache cluster making the whole tier elastic. One or more cache nodes can be added to the existing cache cluster at a time. In our tests, we found adding 5 X m1.large cache node type in Amazon EC2 US-EAST region takes around ~320 seconds. This may vary time to time depending upon the cache node type and Amazon EC2 regions in consideration. While adding new cache nodes in existing cluster, the cache node type should be the same size as the existing node type. You cannot change that size, in case you need different cache node capacity a new cache cluster needs to be created.</p>
<p>With a normal hashing algorithm, increasing the number of memcached cache nodes can cause many keys to be remapped to different cache node resulting in huge set of cache misses. Imagine you have 10 Amazon ElastiCache Nodes in your cache Cluster, adding an eleventh server may cause ~40%+ of your keys to suddenly point to different servers than normal. This activity may cause cache misses and swamp your backend Database with requests. To minimize this remapping process it is recommended to follow consistent Hashing in your cache clients. Consistent Hashing allows for more stable distribution of keys and minimal remapping when new cache nodes are added. Using this algorithm, adding an eleventh server should cause less than 10% of your keys to be reassigned. This % may vary in production but it is far more efficient in such elastic scenarios compared to normal hash algorithms.  It is also advised to keep cache node ordering and number of cache node entries same in all the client configurations while using consistent Hashing algorithm. Java Applications can use “Ketama library” through Spymemcached library to integrate this algorithm into their applications.  <a href="http://www.last.fm/user/RJ/journal/2007/04/10/rz_libketama" target="_blank">Refer URL</a> to know more about consistent Hashing in memcached.</p>
<p>A sample Pseudo code illustrating SET operation in TEXT-TCP protocol using Java Spymemcached –Ketama Hashing library and Amazon ElastiCache Tier:</p>
<pre class="brush: plain; title: ; notranslate">
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import net.spy.memcached.AddrUtil;
import net.spy.memcached.DefaultConnectionFactory;
import net.spy.memcached.MemcachedClient;
import net.spy.memcached.*;
import java.util.*;
public class ElastiCacheKetamaTCPSet {
 public void setValue() throws IOException {
 ConnectionFactory connFactory = new DefaultConnectionFactory(
 DefaultConnectionFactory.DEFAULT_OP_QUEUE_LEN,
 DefaultConnectionFactory.DEFAULT_READ_BUFFER_SIZE,
 HashAlgorithm.KETAMA_HASH);
 MemcachedClient memcachedClient = new MemcachedClient(connFactory,AddrUtil.getAddresses(&quot;ecache1a.sqjbuo.0001.use1.cache.amazonaws.com:11211&quot;));
 String key = &quot;1000001&quot;;
 String value = &quot;1000001-Test value in Consistent Hashing&quot;;
 Integer expires = Integer.parseInt(&quot;1000&quot;);
 try {
 Future&lt;Boolean&gt; result = memcachedClient.set(key, expires, value);
………………..
………………..
 } catch (InterruptedException e) {
 e.printStackTrace();
 } catch (ExecutionException e) {
 e.printStackTrace();
 }
 memcachedClient.shutdown();
 }
}
</pre>
<img src="http://feeds.feedburner.com/~r/cloudspring/~4/MeXYwUbGni4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cloudspring.com/amazon-elasticache-cache-on-steroids/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://cloudspring.com/amazon-elasticache-cache-on-steroids/</feedburner:origLink></item>
		<item>
		<title>Testing in The Cloud Using SauceLabs</title>
		<link>http://feedproxy.google.com/~r/cloudspring/~3/jypBtlCwjIo/</link>
		<comments>http://cloudspring.com/testing-in-the-cloud-using-saucelabs/#comments</comments>
		<pubDate>Fri, 30 Nov 2012 13:30:59 +0000</pubDate>
		<dc:creator>Vasudevan Krishnamoorthy</dc:creator>
				<category><![CDATA[CloudSpring]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[saucelabs]]></category>
		<category><![CDATA[selenium]]></category>
		<category><![CDATA[testing in cloud]]></category>
		<category><![CDATA[testing infrastructure]]></category>
		<guid isPermaLink="false">http://cloudspring.com/?p=2968</guid>
		<description><![CDATA[Any developer familiar with the testing process will agree that it is pure evil. In a traditional set up testing requires setting up new environments at every turn which is being used sporadically at best. Not just a major chunk of your resources are lying idle for the most part, it also consumes a lot [...]]]></description>
				<content:encoded><![CDATA[<p>Any developer familiar with the testing process will agree that it is pure evil. In a traditional set up testing requires setting up new environments at every turn which is being used sporadically at best. Not just a major chunk of your resources are lying idle for the most part, it also consumes a lot of time. For most of us testing is a non-critical business activity. But it is absolutely required, unless you want to meet your clients red faced.</p>
<p>Today the software development world has entered into the Cloud bandwagon, and everything is treated as a service. Sadly these benefits have seldom passed on to the testing side of the world. Well, not anymore. In this article I am going to show you how to set up your testing infrastructure in the Cloud using <a href="saucelabs.com">SauceLabs</a>.</p>
<p><span id="more-2968"></span></p>
<h2>What is Testing Infrastructure?</h2>
<p>Let us assume that you are building the next Amazon. You have hired a few awesome devs and your Before going mainstream, you might want to check how it behaves in different Operating systems, browsers, and resolutions. We also need to check how many parallel transactions your application is able to manage before it turns into the next IRCTC and drown. Obviously you will need some sort of infrastructure to back your team up. This is called as Testing Infrastructure.</p>
<p>Normally you will need to procure multiple systems depending upon your needs and configure each separately with the operating conditions of your choice. For load testing you will even need to set up a even more powerful, expensive system that effectively mimics your main server. Obviously this is going to cost, which is not feasible for a small organization.</p>
<p>Another problem is testing is not a full time task. It is only required when there is some change either in production, or the operating conditions. Other times your capital just sits idle in an air-conditioned room. The costs spirals up, and even before you realize you will be out of money to focus on other important tasks.</p>
<p>When Cloud computing came into existence a lot of discussions circled around moving your testing infrastructure to the Cloud. The idea is to attain efficiency by decoupling your testing team from testing infrastructure. When you set up your testing infra in the Cloud, it does two things- it eliminates the need for an upfront Cap-Ex, and it allows you the flexibility to scale up/ scale down your operations on demand, there by efficiently utilizing your resources. It also effectively removes the headache of having to configure each system individually. Unfortunately it is not all roses either. There are many doubts creeping over data integrity and security in the Cloud, which could easily retract anyone from making the move.</p>
<h2>SauceLabs</h2>
<p>SauceLabs is a cross-browser automation tool built on top of the famous Selenium Web-driver  For those of us who do not know what Selenium is, &#8220;It is a technology that allows programmers to send commands to web browsers to make them perform tasks as though they were being used by a human. In this sense it is like a robot for web browsing.&#8221;, to quote their website. Essentially Selenium gives you the freedom to test your pages across browsers automatically, through test scripts. A Selenium server (locally installed) then instructs your browsers (with Selenium extensions enabled) to test your app. However it is a pain to install and manage the complete Selenium suite, especially if you are mooting for cross browser support. You will also have to face the brunt of hardware failures, and maintenance nightmares too.</p>
<p><a href="http://cloudspring.com/?attachment_id=3019" rel="attachment wp-att-3019"><img class="aligncenter size-full wp-image-3019" title="Diagram-Selenium" src="http://cdn.cloudspring.com/files/2012/11/Diagram-Selenium.png" alt="" width="600" height="362" /></a></p>
<p>SauceLabs was developed by the same guys behind Selenium, as a solution to this problem. SauceLabs takes care of setting up the testing environment, only this time the setup resides in their Cloud servers. Then we can connect to those machines virtually from anywhere using any browser. Think of SauceLabs as a container having your testing environment, which you can access over Internet. We are now free of all the configuration related hoopla and we can focus on what really matters. Of course as with any Cloud setup you have the flexibility to fire up additional instances on demand, and even run parallel tests.</p>
<h2>Getting Started</h2>
<p>Once you sign up for a SauceLabs account, you get 200 free testing minutes, after which you&#8217;ll have to pay a <a href="https://saucelabs.com/pricing">small fee</a> to continue using the service. Once you&#8217;re in the admin dashboard you can setup your test environment just by clicking the little pointer icon.</p>
<p>Once SauceLabs is done configuring your machine it lets you connect to your web-app for further testing. One interesting thing to note is all the browsers come with developer tools pre-installed to help you in debugging the issues on the fly. You can navigate through your app and verify it for both functional and non functional issues. SauceLabs allows you to raise bugs directly from the tool immediately. It automatically uploads the screenshot of the page where the bug is and a video showing how to reach the page. This should remove any ambiguity, if any during fixing the issue. It also generates a Selenium style log which should come in handy later on. The dashboard gives also presents you with a colorful, comprehensive overview of what is happening with your testing scenarios to keep your managers happy.</p>
<h2>Automate your way in</h2>
<p>Manual testing is redundant, time consuming, and boring. Selenium offers a powerful test suite to automate your testing. The best part is you need not circumscribe yourself to the language in which the application is developed. In fact you can write your test scripts with any programming language in which you&#8217;re comfortable with. For the purpose of this tutorial we&#8217;ll be using Ruby. This tutorial assumes that you&#8217;ve a working copy of Ruby installed in your machine.</p>
<p>Lets first get the dependencies out of our way with</p>
<pre class="brush: plain; title: ; notranslate">gem install selenium-webdriver </pre>
<p>We will now write a basic snippet to check if search works in CloudSpring.com. Have your access key handy.</p>
<pre class="brush: plain; title: ; notranslate">
require 'rubygems'
 require 'selenium-webdriver'&lt;/code&gt;
caps = Selenium::WebDriver::Remote::Capabilities.firefox
caps[:name] = &quot;Learning SauceLabs- CloudSpring&quot;
driver=Selenium::WebDriver.for(
 :remote,
 :url =&gt; &quot;http://saucelabs_username:saucelabs_accesskey@ondemand.saucelabs.com:80/wd/hub&quot;,
 :desired_capabilities =&gt; caps)
driver.navigate.to &quot;http://CloudSpring.com&quot;
element = driver.find_element(:xpath, &quot;(//input[@name='s'])&quot;)
 element.send_keys &quot;A newbie's guide to Amazon EC2&quot;
 element.submit
puts &quot;Yay! Search works.&quot;
 puts driver.title
driver.quit
</pre>
<p>Save this file as test.rb and execute it by</p>
<pre class="brush: plain; title: ; notranslate">ruby test.rb</pre>
<p>Your result should resemble this</p>
<p><a href="http://cloudspring.com/testing-in-the-cloud-using-saucelabs/results_auto/" rel="attachment wp-att-3020"><img class="aligncenter size-full wp-image-3020" title="results_auto" src="http://cdn.cloudspring.com/files/2012/11/results_auto.png" alt="" width="565" height="114" /></a></p>
<p>Head over to the dashboard, and you will find the test log. It lists the steps followed and even shows a video of how the script executed.</p>
<p>The code we&#8217;ve written is self-explanatory (and utterly useless, mind you) but for brevity sake let us take a little detour.</p>
<pre class="brush: plain; title: ; notranslate">caps = Selenium::WebDriver::Remote::Capabilities.firefox
 caps[:name] = &quot;Learning SauceLabs- CloudSpring&quot;
driver=Selenium::WebDriver.for(
 :remote,
 :url =&gt; &quot;http://saucelabs_username:sauce_labs_access_key@ondemand.saucelabs.com:80/wd/hub&quot;,
 :desired_capabilities =&gt; caps)
</pre>
<p>Capability is what defines the scope of your script. This is where you define you executing environment like operating system, browser, and even the version. SauceLabs sets up your VM based on this. WebDriver separates where the tests are running from where the TI, or in this case the browser is. It connects to your VM and starts the execution on the environment you&#8217;ve set. This where SauceLabs makes our life a lot easier. We just specify which browser to work on on the script and it takes care of the installation and stuff. We don&#8217;t have to lift another finger unnecessarily.</p>
<pre class="brush: plain; title: ; notranslate">driver.navigate.to &quot;http://CloudSpring.com&quot; </pre>
<p><a href="http://cloudspring.com/?attachment_id=3022" rel="attachment wp-att-3022"><img class="aligncenter size-full wp-image-3022" title="infra" src="http://cdn.cloudspring.com/files/2012/11/infra.png" alt="" width="504" height="428" /></a></p>
<p>Now we&#8217;re instruct the browser to navigate to thew URL where you want to perform your testing. Your driver object will now have the entire page.</p>
<pre class="brush: plain; title: ; notranslate">element = driver.find_element(:xpath, &quot;(//input[@name='s'])&quot;)
 element.send_keys &quot;A newbie's guide to Amazon EC2&quot;
 element.submit</pre>
<p>The find_element() traverses the DOM based on the parameters we pass. I&#8217;m asking the browser to look for an input field with the name &#8216;s&#8217; and pass the search string to it.</p>
<p>Author&#8217;s Note: We&#8217;re essentially writing the same old Selenium scripts, and using SauceLabs as a platform to execute it. If you already have written any selenium scripts they should work the same way. For those of us who&#8217;re new to Selenium or can&#8217;t quite understand how WebDriver works, download the Selenium IDE extension for Firefox and you can create your test scripts directly from the browser itself.</p>
<p>In real time scenarios we&#8217;ll be using verify..() or assert..() methods to validate the scripts. But since this article is focused on how to move your test scripts to the cloud, I&#8217;m drawing the line here.</p>
<h2>Security concerns</h2>
<p>Many people have steered clear of Cloud just because they feel it is insecure. It is just that- a myth, but that is a discussion for another day. To dispel any such doubts that you might have the team at SauceLabs employs a new approach- Security through purity. They assure you that your cloud VM once used is completely destroyed with all the data and not reallocated to anyone else. Have a sensitive data pool to be tested. Fret&#8217; not. They offer a secure service called <a href="https://saucelabs.com/docs/connect">SauceConnect</a> to prevent any data leakage. With the initial barrier out of our way, I strongly encourage you to take advantage of this wonderful technology.</p>
<h2>Wrapping up</h2>
<p>Testing in the cloud, especially for startups, offers a huge array of things. You don&#8217;t have to pay a penny upfront and you pay for what you use rather than wasting resources. And with SauceLabs all your test scripts are automatically logged, eliminating the need for manual intervention. Of course we&#8217;ve just scratched the surface today and there is a long way to go before your application can be completely tested on the cloud. We hope to rectify that in the future articles.</p>
<p>What would you like us to cover here in the future? Feel free to join us in the discussion and let us know about your thoughts. Thanks for reading, and stay tuned.</p>
<img src="http://feeds.feedburner.com/~r/cloudspring/~4/jypBtlCwjIo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cloudspring.com/testing-in-the-cloud-using-saucelabs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://cloudspring.com/testing-in-the-cloud-using-saucelabs/</feedburner:origLink></item>
		<item>
		<title>Cloud Slice: Eucalyptus for Hybrid Clouds</title>
		<link>http://feedproxy.google.com/~r/cloudspring/~3/ar1JT_i-QHw/</link>
		<comments>http://cloudspring.com/cloud-slice-eucalyptus-for-hybrid-clouds/#comments</comments>
		<pubDate>Mon, 26 Nov 2012 10:32:43 +0000</pubDate>
		<dc:creator>Vishal Biyani</dc:creator>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[IaaS]]></category>
		<guid isPermaLink="false">http://cloudspring.com/?p=3004</guid>
		<description><![CDATA[What is Eucalyptus? Eucalyptus is a platform which can enable you to use your existing hardware to build in house Infrastructure as a Service (IAAS). You don&#8217;t need to buy special hardware to build a private cloud. Eucalyptus is built with APIs similar to public cloud providers like Amazon Web Services, so you can easily integrate private [...]]]></description>
				<content:encoded><![CDATA[<h2>What is Eucalyptus?</h2>
<p>Eucalyptus is a platform which can enable you to use your existing hardware to build in house Infrastructure as a Service (IAAS). You don&#8217;t need to buy special hardware to build a private cloud. Eucalyptus is built with APIs similar to public cloud providers like Amazon Web Services, so you can easily integrate private and public clouds.</p>
<h2>So what is the deal?</h2>
<p>Let&#8217;s do a quick roundup of some key features of Eucalyptus</p>
<ul>
<li>You can use existing investment in variety of hardware to build a IaaS which will provide you compute and storage services. A self service console enables you to provision and configure compute, storage and other devices</li>
<li>You can seamlessly integrate with public clouds like AWS and more platforms will be supported in future. You can build for high availability and provision for hot failover and repairs</li>
<li>You can manage multiple hypervisor clusters from vSphere, ESX, KVM and XEN</li>
<li>Eucalyptus integrates well with SAN to provide on demand storage allocation and de-allocation. With an EBS like storage you can persist virtual machines including state for faster launch.</li>
</ul>
<h2>Public Cloud Integration</h2>
<p>As of writing this article Eucalyptus provides seamless integration with some of well known Amazon Web Services (AWS) features like EC2, EBS, S3 etc.</p>
<h2>How to test drive Eucalyptus?</h2>
<p><a href="http://go.eucalyptus.com/Download-FastStart">FastStart</a> is a pre-configured installation of Eucalyptus which you can run on your hardware. You can test drive <a href="http://go.eucalyptus.com/Test-Drive-with-Eucalyptus-Support.html">Eucalyptus through their subscription</a> where you have more options for hypervisor selection. You can also download the source code and play around with Eucalyptus <a href="http://www.eucalyptus.com/download/eucalyptus">here</a></p>
<img src="http://feeds.feedburner.com/~r/cloudspring/~4/ar1JT_i-QHw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cloudspring.com/cloud-slice-eucalyptus-for-hybrid-clouds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<series:name><![CDATA[Cloud Slice]]></series:name>
	<feedburner:origLink>http://cloudspring.com/cloud-slice-eucalyptus-for-hybrid-clouds/</feedburner:origLink></item>
		<item>
		<title>Who Stole My CPU?</title>
		<link>http://feedproxy.google.com/~r/cloudspring/~3/3V8kXX-6Kdg/</link>
		<comments>http://cloudspring.com/who-stole-my-cpu/#comments</comments>
		<pubDate>Wed, 21 Nov 2012 13:00:49 +0000</pubDate>
		<dc:creator>Ofir Nachmani</dc:creator>
				<category><![CDATA[AWS]]></category>
		<guid isPermaLink="false">http://cloudspring.com/?p=2956</guid>
		<description><![CDATA[One of the most important features of the cloud is the sharing of resources by multi-tenants. Without sharing and being able to optimize utilization of resources, the cloud operator can’t provide scalability and support “economies of scale” for its business. The IaaS public contains its “cloud magic” as well as real hardware such as computing, [...]]]></description>
				<content:encoded><![CDATA[<p>One of the most important features of the cloud is the sharing of resources by multi-tenants. Without sharing and being able to optimize utilization of resources, the cloud operator can’t provide scalability and support “economies of scale” for its business. The IaaS public contains its “cloud magic” as well as real hardware such as computing, storage and network devices. The utilization of these resources should be optimized by meeting demand (by time), hence they must be shared between the cloud consumers.</p>
<h2><strong><strong>What is Steal Time?<br />
</strong></strong></h2>
<p>The basic metric for how a server utilizes its CPU is the idle capacity – the amount of CPU that is free. The CPU utilization compounds from allocations of the following:</p>
<ul>
<li dir="ltr">User – the running application</li>
<li dir="ltr">System – the operating systems</li>
<li dir="ltr">Interrupt – Hardware interruptions</li>
<li dir="ltr">Wait – waiting for I/O jobs to end</li>
<li dir="ltr">Steal – cycles that are not related to the virtual machine</li>
<li dir="ltr">Idle – no work is being done</li>
</ul>
<p>Steal time (ST) also referred to as “Stolen CPU”, exists in virtualized computing environments –It is the time that the CPU uses to run internal virtual machine tasks, with the hypervisor allocating CPU cycles to other “external tasks” that are probably caused by one of your noisy neighbors.</p>
<h2>ST on Amazon Cloud</h2>
<p>I researched this subject on AWS forums and found that when CPU utilization spikes for some time (configured by the cloud operator); the system automatically throttles back the CPU to a few usage percentages, while “stealing” the rest of your CPU. This makes sense as the cloud must protect itself from overload and the threat of crash.<br />
You can find more information with regards to Micro instance type in the Amazon AWS FAQs: “Micro instances provide a small amount of consistent CPU resources and allow you to burst CPU capacity up to 2 ECUs when additional cycles are available. They are well suited for lower throughput applications and web sites that consume significant compute cycles periodically but very little CPU at other times for background processes, daemons” <a href="http://aws.amazon.com/ec2/faqs/#How_much_compute_power_do_Micro_instances_provide">Read more</a><br />
On the Amazon developers forums you can find the following:<br />
“For example, when the occasion comes where I might need to do a &#8220;yum update&#8221; the system becomes unresponsive within one minute. I would have expected it to do this at three or five minutes, as it has always done, but today this throttling happens at about thirty seconds to one minute.” <a href="https://forums.aws.amazon.com/thread.jspa?messageID=374345">Check the thread </a></p>
<p><a href="http://cloudspring.com/who-stole-my-cpu/micro/" rel="attachment wp-att-2957"><img class="aligncenter size-full wp-image-2957" title="micro" src="http://cdn.cloudspring.com/files/2012/11/micro.png" alt="" width="454" height="278" /></a><br />
Amazon doesn’t detail the actual Xen configuration though they say that: “The instance is designed to operate with its CPU usage at essentially only two levels: the normal low background level, and then at brief spiked levels much higher than the background level.” <a href="http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/concepts_micro_instances.html">Read more</a> According to what I <a href="http://www.axibase.com/cloud/2010/07/22/ec2-monitoring-the-case-of-stolen-cpu/">learn</a>, monitoring CPU using a standard monitoring tool can mislead the cloud user. For example, Linux instances will not report the proper values for CPU usage due the virtualization layer on the underlying infrastructure. For accurate values for CPU usage on EC2 instances, the cloud user should rely only on the CloudWatch metrics.<br />
Another important aspect regarding CPU utilization is the workload model. I learned that you should differentiate between two workload models – Batch workload and Real-time workload. The former  provides greater tolerance for shortage and can wait for an available capacity. The batch model describes a task that generates a steady utilization or aggregated amount of CPU usage, so once there is heavy utilization it will be compensated later on. The real-time workload balance will never be compensated and overloads will be restrained by the cloud operators. Moreover, cloud operators such as Amazon AWS tend to deploy a more batch workload model to control loads on their physical layer.<br />
In order to utilize the AWS micro instances, you need to be able to control your online resources behavior. You could also try playing your web server configuration settings, for example, limiting the number of clients. You should use S3 for hosting static files, such as images, video, and audio. Utilizing other AWS services to support your application performance needs can move some of the load to other cloud resources thereby lowering the overall CPU consumption of your EC2 instances. Anyway, it is important to leverage the elastic environment and deploy horizontal (or vertical) scaling methods to protect the environment.</p>
<h2>Join the discussion</h2>
<p>Following different Xen configurations for different instances types, such as the rules for micro CPU, I wonder &#8211; Do you need to have different auto-scaling CPU thresholds for different instances types ?</p>
<img src="http://feeds.feedburner.com/~r/cloudspring/~4/3V8kXX-6Kdg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cloudspring.com/who-stole-my-cpu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://cloudspring.com/who-stole-my-cpu/</feedburner:origLink></item>
		<item>
		<title>What You Should Know About Cloud Management</title>
		<link>http://feedproxy.google.com/~r/cloudspring/~3/AP48mXy_lS0/</link>
		<comments>http://cloudspring.com/what-you-should-know-about-cloud-management/#comments</comments>
		<pubDate>Fri, 16 Nov 2012 13:00:51 +0000</pubDate>
		<dc:creator>Jacco Blankenspoor</dc:creator>
				<category><![CDATA[Cloud Management]]></category>
		<category><![CDATA[cloud management]]></category>
		<guid isPermaLink="false">http://cloudspring.com/?p=2934</guid>
		<description><![CDATA[Introduction  Managing one server should be easy, and even managing a couple of servers with one provider  doesn&#8217;t have to be a daunting task. But what if you want to manage tens of servers? Or you want to spread the risk, and want to use more than one cloud provider? This is where cloud management companies [...]]]></description>
				<content:encoded><![CDATA[<h2>Introduction<strong> </strong></h2>
<p>Managing one server should be easy, and even managing a couple of servers with one provider  doesn&#8217;t have to be a daunting task. But what if you want to manage tens of servers? Or you want to spread the risk, and want to use more than one cloud provider? This is where cloud management companies come into play. And that’s not all, since they also bring in budget control, cloud monitoring, governance and automation, all to make cloud server management a bit more easy.</p>
<h1>Why should you use cloud management?<strong> </strong></h1>
<p>Cloud management, budget control, automation; It all sounds very nice, but what is it? Let me give you a few examples of cloud management, and the benefits it brings:</p>
<h2><strong>Cloud management</strong></h2>
<p>Fully connected with API’s, this allows you to fire up a Amazon AWS hosted WordPress site based on a LAMP stack in minutes without logging in into AWS. But this is child’s play compared to what cloud management companies are capable off. Just imagine if you want to run your site on both Amazon AWS and Rackspace Cloud for redundancy and Scalability with Google Compute Engine doing the heavy work and your own OpenStack private cloud as base for this setup? All with hundreds of servers each? Try to manage that! Cloud management gives you the tools to keep an overview in a single console, eliminating the need to check all the underlying providers yourself.</p>
<h2><strong>Budget control</strong></h2>
<p>Setting up a configuration like above can become quite costly. With the help of budget control you can keep the costs below a certain limit, up to preventing a new server to be launched of your automation is setup this way. This tightens your flexibility, but won’t surprise you with a huge bill if you suddenly became the next Youtube over night.</p>
<p>Using cost reporting you can monitor your spending across all of your cloud deployments. You can set up projects to keep the costs of it separate from the rest, or drill down to the cost of a specific server in the cloud.</p>
<h2><strong><em>Governance</em></strong></h2>
<p>All cloud installations require you to setup authentication keys, which are all generated and managed for you. But, you may want to restrict access within your own company or deployments. Cloud governance gives you the ability to restrict access based on roles and requirements. You can assign teams to a specific cloud, or limit their spending. It also comes with auditing and logging, allowing you to review and trace back of previous activity or open ports. It takes security out of your hands, without losing the financial or operational controls.</p>
<h2><strong>Monitoring</strong></h2>
<p>You can expect to receive a decent set of monitoring tools to keep an good overview of the health or your cloud. Basic stuff like monitoring CPU, memory and disk usage, processes and network usage are included of course. But it doesn&#8217;t stop there, since you can also monitor important applications like Apache, memcached for example. This goes as far as how much active connections Nginx has, or how much active workers Postgres uses. Again, these are all examples since the monitoring is really extensive. And besides having lots of graphs at hand, you can also set up alerts to receive an email when something goes wrong. It gives you all the options you need to discover problems within your cloud for you to fix or optimize.</p>
<h2><strong>Automation</strong></h2>
<p>This is where the real power of cloud management comes to surface. Automation allows you to scale your servers, manage your backups, provision new servers in an instant and use automated recovery. It also gives you the opportunity to update all of your cloud servers one at a time, or all at once. I will explain all these features a bit more in-depth, since this really is the main benefit of cloud management:</p>
<h3><em>Auto scaling</em></h3>
<p><em></em>In the old days you had a look in your server load reports once in awhile, and when you saw that the load was above certain thresholds most of the time, you added one of more servers till it repeated again. Auto scaling does this for you, only much better. You can use parameters like server load, page load time or transaction rates (which are all monitored) to determine whether or not new servers need to be added, or have current servers removed. You can use predefined scripts based on these parameters to launch a server in one or more clouds. Imagine you get a sudden influx of visitors from Europe, while your whole cloud is set up for visitors from North America. If you programmed your scaling script right, you can instantly swing on a few servers in Europe and minimize loading times.</p>
<h3><em>Managing backups</em></h3>
<p><em></em>This is another interesting feature of cloud automation, because just like you can manage different servers in different clouds, you can do this with your backups as well. So you can use multiple cloud providers or different regions to provide maximum redundancy for your backups.</p>
<h3><em>Server provisioning</em></h3>
<p><em></em>Starting up a server is one thing, but getting it to work like you want it can be quite a challenge. Cloud management provide you with scripts or templates to make server provisioning a breeze. A template is basically a blueprint for your server, where you specify what needs to be installed on a fresh server, to which database or load balancer it should connect and on which cloud it should launch. This is all handled with scripts to make it happen. Most providers offer you predefined scripts for setting up a load balancer, a cache server or a LAMP stack based WordPress site like mentioned above. And after provisioning, you can set up scripts to keep the servers up to date and have patches applied.</p>
<h3><em>Automated recovery</em></h3>
<p><em></em>Just like with scaling, you can specify what should happen when a server goes down. You can have it replaced by cloning a live server, use a predefined template or relaunch from a backup. Large companies, running hundreds of servers, use automated recovery to keep their costs down. They rather have a broken server instantly replaced, than spending tons of money to prevent them from going down. Imagine a load spike to a specific server due to bad scripting, or a false setup. To prevent it from going down, you can add more memory and more CPU power. But you are also paying for this when there’s no spike. Or you use a small server, and when it does go down when a load spike hits it, just have it replaced. And with the monitoring in place, you can always find out what hit it.</p>
<h2><strong>Conclusion</strong></h2>
<p>As you can see, cloud management is way more than just having an easy overview of all your clouds. Especially auto scaling takes a lot of work out of your hands, and gives you the flexibility you need to keep costs down and performance high. We have covered features of a cloud management software in this post. In next part of this post we will do some hands on with market leaders in cloud management.</p>
<img src="http://feeds.feedburner.com/~r/cloudspring/~4/AP48mXy_lS0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cloudspring.com/what-you-should-know-about-cloud-management/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://cloudspring.com/what-you-should-know-about-cloud-management/</feedburner:origLink></item>
		<item>
		<title>Cloud Slice: Redhat OpenShift</title>
		<link>http://feedproxy.google.com/~r/cloudspring/~3/b3MMx0SQ3gU/</link>
		<comments>http://cloudspring.com/cloud-slice-redhat-openshift/#comments</comments>
		<pubDate>Fri, 09 Nov 2012 13:30:21 +0000</pubDate>
		<dc:creator>Vishal Biyani</dc:creator>
				<category><![CDATA[PaaS]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://cloudspring.com/?p=2923</guid>
		<description><![CDATA[What is Redhat OpenShift OpenShift is the Platform as a Service (PaaS) offered by Redhat. It offers an environment for you to deploy, scale and manage applications while you as a developer can focus on building applications. OpenShift has built in support for PHP, Ruby, Java, node.js, Perl and can be extended with support of cartridge [...]]]></description>
				<content:encoded><![CDATA[<h2>What is Redhat OpenShift</h2>
<p>OpenShift is the Platform as a Service (PaaS) offered by Redhat. It offers an environment for you to deploy, scale and manage applications while you as a developer can focus on building applications. OpenShift has built in support for PHP, Ruby, Java, node.js, Perl and can be extended with support of cartridge to host clojure and other platforms.</p>
<h2>How does it work?</h2>
<p>For a developer you can create application through web console or through command line. I would talk with reference of command line as it will be in line with our next steps. For command line interaction you will need gems for GitHub and the openshift gem named &#8220;rhc&#8221; * . After successful installation you can login with &#8220;rhc setup&#8221; command. Applications can be created with &#8220;rhc app create&#8221; command and appropriate arguments based on type of applications you are creating. You can modify the created app locally with your favourite IDE. You can add services needed for your application which are called &#8220;cartridge&#8221;. For example for adding MongoDB you can use command &#8220;rhc app cartridge add -a twt -c mongodb-2.0&#8243;. Now your application is literally a &#8220;git push&#8221; away!</p>
<h2>What goes on behind the scenes</h2>
<p>Redhat is a pioneer and leader in open source and without doubt they use their robust set of technology to power openShift. Red Hat Enterprise Linux (RHEL) forms the basic foundation of OpenShift and SELinux is used for enhanced security and separation between multiple applications. By default OpenShift scales automatically so you don&#8217;t have to worry when load on application increases. Users can choose to scale manually if they wish to. For the architecture enthusiasts <a href="https://openshift.redhat.com/community/wiki/architecture-overview" target="_blank">this link</a> explains the architecture in detail.</p>
<h2>Use and extend!</h2>
<p>OpenShift comes with support for Java, Ruby, Perl, PHP etc. But don&#8217;t worry if you have something that is not supported out of the box. Any binary that can run on a RHEL 6.2 X64 and can talk HTTP can be configured by creating a cartridge yourself as explained <a href="https://openshift.redhat.com/community/developers/do-it-yourself" target="_blank">here</a>. OpenShift looks a promising platform with power of Linux and open source expertise of Redhat!</p>
<img src="http://feeds.feedburner.com/~r/cloudspring/~4/b3MMx0SQ3gU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cloudspring.com/cloud-slice-redhat-openshift/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<series:name><![CDATA[Cloud Slice]]></series:name>
	<feedburner:origLink>http://cloudspring.com/cloud-slice-redhat-openshift/</feedburner:origLink></item>
		<item>
		<title>Log Management as a Service</title>
		<link>http://feedproxy.google.com/~r/cloudspring/~3/U1SkyMshQQ8/</link>
		<comments>http://cloudspring.com/log-management-as-a-service/#comments</comments>
		<pubDate>Wed, 07 Nov 2012 13:00:41 +0000</pubDate>
		<dc:creator>Vishal Biyani</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://cloudspring.com/?p=2901</guid>
		<description><![CDATA[What &#38; Why: Log Management in Cloud Logging is often not the most exciting part of an application, but definitely an important one. Logging and managing logs becomes even more important in a multi node clustered environments where logs are spread across nodes. It is not a very productive proposition to log on to each [...]]]></description>
				<content:encoded><![CDATA[<h1>What &amp; Why: Log Management in Cloud</h1>
<p>Logging is often not the most exciting part of an application, but definitely an important one. Logging and managing logs becomes even more important in a multi node clustered environments where logs are spread across nodes. It is not a very productive proposition to log on to each node to check what is happening on a node or to trace the transaction which might be spread across multiple nodes. Moreover ability to filter and parse logs on a node is limited by native tools such as grep on *nix systems. Is there a better solution? Absolutely! Welcome to log management or centralized logging, demonstrated at a high level in following image</p>
<p style="text-align: center;"><a href="http://cloudspring.com/?attachment_id=2902" rel="attachment wp-att-2902"><img class="aligncenter  wp-image-2902" title="LogManagementConcept" src="http://cdn.cloudspring.com/files/2012/11/LogManagementConcept.png" alt="Log management" width="598" height="374" /></a></p>
<p>This might sound complicated to setup, but let&#8217;s look at the benefits and then see how easy it is to setup log management.</p>
<h2>Production Troubleshooting &amp; Application Debugging</h2>
<p>If you are troubleshooting a live application, logs will be the lifeline which will save your day. On development environments, there are enough tools at hand which make debugging application much easier. But for an application which is live in production, logs provide key information about what is going on in the application. On the other hand too verbose logging might hamper performance of an application,but that is a separate discussion and there are tools available to control level of logging based on environments.</p>
<blockquote><p>&#8220;debugging statements stay with the program; debugging sessions are transient&#8221;</p></blockquote>
<p>If you have applications deployed in private/public cloud, or even deployed within enterprise in a clustered fashion, it will be much easier to troubleshoot and debug application if all your logs can be searched and parsed all in one place. Inefficiencies of scrolling over thousands of lines of raw data through multiple nodes and trying to connect dots would be solved by a log management system which provides a unified view of all logs and a much richer query interface.</p>
<h2>Data Analysis</h2>
<p>A running application has multiple user interactions and transactions running and being able to gather real time insights from these would be extremely valuable.  Applications can be designed to log desired information about transactions and this information from logs can be analyzed and monitored in real time. Just imagine if CEO of a retail company could see in real time statistics of how many shopping carts are converted in actual buys. While analytics is a huge field in itself, you got the idea of possibilities.</p>
<h2>Monitoring and alerting</h2>
<p>Being able to report on errors, exceptions and crashes in real time can lead to actions which reduce downtime and much proactive response to issues in a live application. Alerts can be setup based on severity level and actions can be taken accordingly.</p>
<h1>Features of a Log management system</h1>
<p>While every product and service offers different flavours of features, we consolidate here some features you should look out for.</p>
<h3>Drill Down Capability</h3>
<p>Time based drill down is a very standard feature of any log management system and offers ability to look at patterns plotted vs time, which can be drilled down further. For example look at a screenshot of LogStash:</p>
<p style="text-align: center;"><a href="http://cloudspring.com/?attachment_id=2909" rel="attachment wp-att-2909"><img class="aligncenter  wp-image-2909" title="Log Management LogStash" src="http://cdn.cloudspring.com/files/2012/11/LogManagementLogStash-1024x716.png" alt="" width="717" height="501" /></a></p>
<h3>Regular expressions and filtering</h3>
<p>Being able to filter on random text, or being able to click on strings from the result shown on UI makes navigating and finding relevant logs much easier and quicker. Also a regular expression library like grok for example shipped with LogStash helps using regular expressions a easier job.</p>
<h3>Alerts and notifications</h3>
<p>A good log management system should be able to hook to multiple systems like email, websockets for delivering information. That increases reach of the system and it&#8217;s usefulness.</p>
<h3>API</h3>
<p>Last but not the least, having a API of the log management system exposed can greatly increase adoption and extensibility of platform in some cases.</p>
<h1>Factors to Consider</h1>
<p>Here is a definitive questionnaire you should analyze for choosing your log management system:</p>
<ul>
<li>Which type of applications you have and do you have sufficient hooks available to plug into log management system? For example if you would like Android apps to log data to log management server, do you have a lightweight library supporting the same?</li>
<li>Does the language in which applications are developed has easier ways to communicate to a log management server? For example log4j has SysLogAppender which can talk to Syslog which in turn can talk to log management system.</li>
<li>Would you like to setup your own log management systems or you would like to use log management provider&#8217;s services? (Refer to following sections for both approaches)</li>
<li>If your application is hosted on a PaaS platform, can you integrate the platform with your own or hosted log management servers?</li>
</ul>
<h1>Log Management: Set Up Yourself</h1>
<p>If you are planning to set up your own log management system, either within your enterprise or on hosted environments you have quite a few choices. If your organization has budgets to buy support and want enterprise grade system without a team to maintain the system inhouse, then <a href="http://www.splunk.com/" target="_blank">Splunk</a> is probably a good fit. If you have a team inhouse which is ready to look after the system and prefers a DIY approach, then you can choose from a set of tools for each specific purpose. Log storage and indexing can be done in MongoDB, ElasticSearch to name a few. Tools like <a href="logstash.net" target="_blank">LogStash</a>, <a href="http://kibana.org/" target="_blank">Kibana</a>, <a href="http://graphite.wikidot.com/" target="_blank">Graphite</a>, <a href="http://graylog2.org/" target="_blank">Greylog2</a> offer different features and you can mix and match to suit your needs.</p>
<h1>Log Management as a Service</h1>
<p>If you want to add Log Management as a service to your existing apps in cloud, you have choices like <a href="http://loggly.com/" target="_blank">Loggly</a>, <a href="https://papertrailapp.com/" target="_blank">papertrail</a>, <a href="https://logentries.com" target="_blank">logentries</a> among the main players. While we won&#8217;t be discussing them in detail in this post, each one offers it&#8217;s unique flavors of log management strategy.</p>
<h1>Conclusion</h1>
<p>You can decide not to give enough importance to logging in your applications but the benefits of logging and a good log management system are far reaching. In a world where horizontally scaled environments are the norm and cloud is being adopted day by day, a good log management system is a necessity but can prove to be a differentiator.  Organizations have already started reaping benefits of log management system from production debugging to analytics. Has your company started the journey yet? Let us know your thoughts.</p>
<img src="http://feeds.feedburner.com/~r/cloudspring/~4/U1SkyMshQQ8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cloudspring.com/log-management-as-a-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://cloudspring.com/log-management-as-a-service/</feedburner:origLink></item>
		<item>
		<title>Move Your Office to Cloud</title>
		<link>http://feedproxy.google.com/~r/cloudspring/~3/yTK1aCuo-0U/</link>
		<comments>http://cloudspring.com/office-to-cloud/#comments</comments>
		<pubDate>Mon, 05 Nov 2012 13:00:23 +0000</pubDate>
		<dc:creator>Jessica Velasco</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://cloudspring.com/?p=2891</guid>
		<description><![CDATA[Every business small or big needs an office software suite and maintaining these applications and related IT infrastructure may not be core of your business. If provided with an alternative which is cost effective than maintaining the IT yourself – you sure would like to consider it for adoption. In this article we look at [...]]]></description>
				<content:encoded><![CDATA[<p>Every business small or big needs an office software suite and maintaining these applications and related IT infrastructure may not be core of your business. If provided with an alternative which is cost effective than maintaining the IT yourself – you sure would like to consider it for adoption. In this article we look at some office software suite provided as a service. You sign up for service and you are ready to use within a few minutes. We look at three prominent office suites hosted in cloud: Zoho, Google Docs and Microsoft Office 360 which will replace your desktop suite of office applications.</p>
<h2>Why Should My Office be in the Cloud?</h2>
<p>We are glad you asked!  There are several benefits of using an online office application.</p>
<h3>Cost savings</h3>
<p>Small businesses need to focus on their core business and don&#8217;t have lot of resources to invest and maintain the infrastructure and operations of IT.  If that is true for your business, why wouldn&#8217;t you take advantage of a way to cut costs? Instead of purchasing, downloading, and maintaining the necessary software on each and every computer your business owns, why not use an online office application?  Most apps will charge a small monthly fee.  However, the rate will be significantly less than the desktop alternative.  Plus, the online version comes with way more perks than the traditional method of document production.</p>
<h3>Access anywhere</h3>
<p>When you use an online office application, you will always have access to your data any time you have access to the internet – including internet access on mobile devises.</p>
<h3><em>Collaboration and increased productivity</em></h3>
<p>Imagine how much more efficient your employees would be if you could do away with the download-edit-save-attach-email process.  Not only would that time-consuming process is eliminated, your employees will not waste time searching through folders for the most recent version of a file.  There would never be a situation where someone is working off old, outdated information.</p>
<p>With an online office application, colleagues would collaborate on a project in real time since edits are saved almost instantly.  Additionally, the chat and comment features make working together a breeze. Whether you are outsourcing tasks overseas, connecting with a virtual assistant on the other side of the country, communicating with a cross-town location, or interacting with someone in the next cubicle, online office applications make the process infinitely easier and more efficient.</p>
<h2>The downsides?</h2>
<p>As is the case with everything in this world, there is bad that comes with the good.  However, the minimal downside of an online office app is definitely eclipsed by the benefits. For control freaks, you have probably already detected a flaw; you will have to surrender some control of your documents.  While most online office apps have top-notch security, there is always the potential for issues when you relinquish control. To access your data, you’ll be dependent on internet connectivity and bandwidth.  While most apps automatically save data, there is a chance that minute bits of information could be lost if there was a sudden browser crash.</p>
<h2>Which One Should I Choose?</h2>
<p>There are a myriad of online office applications to choose from.  As a beginner, we shall point you to three of the most popular applications – Zoho, Google Docs and Microsoft Office 360. We won&#8217;t spend a lot of time elaborating on the individual pros and cons of each program.  In the world of technology, updates are inevitable and things change and improve every moment.</p>
<p>We will take a moment to offer a brief breakdown of what each program has to offer.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="185"></td>
<td valign="top" width="185"><strong>Zoho </strong></td>
<td valign="top" width="185"><strong>Google Docs</strong></td>
<td valign="top" width="185"><strong>Office 360</strong></td>
</tr>
<tr>
<td valign="top" width="185"><strong>Function</strong></td>
<td valign="top" width="185">SheetWriterShow</p>
<p>Calendar</p>
<p>Notebook</p>
<p>Creator (Database)</p>
<p>Planner</p>
<p>(Additional tools for businesses)</td>
<td valign="top" width="185">SpreadsheetDocumentPresentation</p>
<p>Drawing</p>
<p>Form</p>
<p>Calendar</td>
<td valign="top" width="185">WordExcelPowerPoint</p>
<p>OneNote</td>
</tr>
<tr>
<td valign="top" width="185"><strong>Price for Small Business</strong></td>
<td valign="top" width="185"><a href="http://www.zoho.com/docs/zoho-docs-pricing.html">$3 a month per user for 10 employees</a></td>
<td valign="top" width="185"><a href="http://www.google.com/enterprise/apps/business/pricing.html">Free for 10 employees</a></td>
<td valign="top" width="185"><a href="http://www.microsoft.com/en-us/office365/compare-plans.aspx#fbid=31p-qR0tGR4">$6 a month per user for 25 employees</a></td>
</tr>
<tr>
<td valign="top" width="185"><strong>Storage</strong></td>
<td valign="top" width="185">2GB(5GB for an extra $3)</td>
<td valign="top" width="185">5 GB</td>
<td valign="top" width="185">2GB of storage in SharePoint Online (each additional GB is $2.50 per month)</td>
</tr>
<tr>
<td valign="top" width="185"><strong>Compatibility</strong></td>
<td valign="top" width="185"><em>Import:</em>Google Docs, Office 97-2003, Office 2007-2010, OpenOffice, HTML, RTF, CSV and more<em>Export:</em> all the files mentioned above plus PDF and LaTeX</td>
<td valign="top" width="185"><em>Import:</em>Office 97-2003, Office 2007-2010, OpenOffice, RTF, CSV and more<em>Export:</em> Office 97-2003, OpenOffice, RTF, CSV and PDF</td>
<td valign="top" width="185">Word files can be opened from Office 97-2003, but must be changed to newer version for editing and exporting; Excel, PowerPoint, OneNote work with Office 2007-2010 only</td>
</tr>
<tr>
<td valign="top" width="185"><strong>Collaboration</strong></td>
<td valign="top" width="185">Uses real-time editing with various collaborators</td>
<td valign="top" width="185">Uses real-time editing with various collaborators</td>
<td valign="top" width="185">Installation of Lync is needed for real-time collaboration</td>
</tr>
<tr>
<td valign="top" width="185"><strong>Sharing</strong></td>
<td valign="top" width="185">Share with anyone</td>
<td valign="top" width="185">Share with any Google account (even those outside your own app installation)</td>
<td valign="top" width="185">Share with people outside the app for a fee</td>
</tr>
<tr>
<td valign="top" width="185"><strong>Mobile Access</strong></td>
<td valign="top" width="185">View (but not edit) documents on mobile devises</td>
<td valign="top" width="185">View and edit documents on iPhone and Android devises (Android 2.2 and up).  View (but not edit) documents on other devices</td>
<td valign="top" width="185">View (but not edit) documents on most mobile devises</td>
</tr>
<tr>
<td valign="top" width="185"><strong>Pros</strong></td>
<td valign="top" width="185">-Basic application integrates with a wider Zoho collaboration and business applications.-Acts like a traditional office suite (those familiar with Word won’t have trouble)-Integrates with Microsoft Office better than Google Docs</td>
<td valign="top" width="185">-Uploads the fastest-Interacts nicely with other Google products- Users who are familiar with Google products won’t have a problem with the user interface</td>
<td valign="top" width="185">-Provides a wide variety of offline features-Includes advanced editing functions</td>
</tr>
<tr>
<td valign="top" width="185"><strong>Cons</strong></td>
<td valign="top" width="185">-Slower to upload</td>
<td valign="top" width="185">-Has its own, unique user interface which can be tricky for those not accustom to the style-Imports from Microsoft can be messy-Tools and functions are considerably more meager than what we are used to</td>
<td valign="top" width="185">-Very limited functionality in browsers-Still need desktop version of Microsoft Office</td>
</tr>
</tbody>
</table>
<h2>Are These My Only Options?</h2>
<p>No, of course not!  If Zoho, Google Docs, or Office 360 won&#8217;t meet your needs, check out one of these other cloud options:</p>
<ul>
<li><a href="https://www.acrobat.com/welcome/en/home.html">Adobe Acrobat</a></li>
<li><a href="http://www.thinkfree.com/main.jsp">ThinkFree</a></li>
<li><a href="http://www.weboffice.com/">WebOffice</a></li>
</ul>
<p>There are other cloud apps that don&#8217;t include document creation, but will allow your business to store files online and/or collaborate with others.  For those limited functions, your business might be interested in:</p>
<ul>
<li><a href="http://windows.microsoft.com/en-US/skydrive/home">SkyDrive</a></li>
<li><a href="https://www.google.com/intl/en_US/drive/start/index.html">Google Drive</a></li>
<li><a href="http://box.net/">Box</a></li>
<li><a href="http://crocodoc.com/">Crocodoc</a></li>
<li><a href="http://www.weboffice.com/">Cisco WebEx WebOffice</a></li>
<li><a href="http://www.zimbra.com/">Zimbra</a></li>
</ul>
<h2>Which One To Choose?</h2>
<p>While each one has some unique features to offer, the most basic features are available in all three. The decision is more on the strategic direction you want to choose than just features.  Either Zoho or Google Docs would enhance your small business greatly.  If you already have a new version of Microsoft Office installed, Office 360 will probably work nicely too. Let us know what you think.  Are you a small business owner who recently joined the cloud?  What are your impressions of cloud computing?  Do you use an online office application other than the ones mentioned here?  Let us know why yours is better!</p>
<img src="http://feeds.feedburner.com/~r/cloudspring/~4/yTK1aCuo-0U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cloudspring.com/office-to-cloud/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://cloudspring.com/office-to-cloud/</feedburner:origLink></item>
		<item>
		<title>Multiply Your Business With Virtual Desktops</title>
		<link>http://feedproxy.google.com/~r/cloudspring/~3/Dj4VJz4hY54/</link>
		<comments>http://cloudspring.com/multiply-your-business-with-virtual-desktops/#comments</comments>
		<pubDate>Wed, 31 Oct 2012 13:00:27 +0000</pubDate>
		<dc:creator>msmith</dc:creator>
				<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[VDI]]></category>
		<category><![CDATA[Virtual Desktop]]></category>
		<guid isPermaLink="false">http://cloudspring.com/?p=2792</guid>
		<description><![CDATA[What are Virtual Desktops? A virtual desktop has a virtual space that is larger than the physical size of its monitor. Software accomplishes this feature through various means, which may be classified into two general approaches. A switchable virtual desktop makes copies of the desktop and allows the user to switch between them. The second [...]]]></description>
				<content:encoded><![CDATA[<h2>What are Virtual Desktops?</h2>
<p>A virtual desktop has a virtual space that is larger than the physical size of its monitor. Software accomplishes this feature through various means, which may be classified into two general approaches. A switchable virtual desktop makes copies of the desktop and allows the user to switch between them. The second approach to virtual desktops is to create a single virtual screen that is larger than the physical screen. The user may then pan or scroll to view the desired area of the virtual screen.</p>
<p>Desktop managers often classify desktop environments according to their degree of virtualization, typically for the purpose of comparing costs and benefits. Virtual desktops generally benefit a business, particularly when they are implemented on a large scale. These benefits include direct costs which you can estimate with relative ease, and indirect costs which are more difficult to quantify.</p>
<h2>Categories</h2>
<p>The categories of desktop environments include the following in increasing order of virtualization:</p>
<ul>
<li>Typical traditional desktop</li>
<li>Best practices traditional desktop</li>
<li>Terminal services</li>
<li>Managed virtual desktop</li>
</ul>
<p>A typical traditional desktop environment requires each user to manage 30 to 50 percent of the desktop software. This percentage may be even higher in environments where the users are able to install software themselves, which increases support costs.</p>
<p>A best practices traditional desktop environment implements up to 95 percent of its software from a central location. This particularly includes distributed applications, software patches and anti-virus software.</p>
<p>A terminal services environment is the most conventional method of delivering applications to the desktop device from a remote location. This environment is most useful when other forms of desktop virtualization provide unacceptable performance due to bandwidth limitations. The virtualized applications typically use banks of servers, while the other applications are implemented by the end user.</p>
<p>A managed virtual desktop environment moves all memory, processing and storage from the desktop device to a centralized infrastructure. A user would then be able to access the virtual environment from any device set up by IT. This type of desktop environment is often used to transition a desktop environment to a cloud-based server.</p>
<h2>Benefits of Virtual Desktops</h2>
<p>The primary benefits of a virtual desktop solution include the ability to save the desktop’s state, which is saved on a server that is connected to the facility’s local area network. This feature allows users to begin a new session without needing to restart applications and reopen files. The IT team is able support a fully virtualized environment from a centralized location, which reduces the support required of the desktop devices.</p>
<p>A virtual desktop environment has improved information security and requires less network bandwidth since the desktop is presented on the end user’s device. This desktop environment also has more efficient data recovery services, greater protection against disasters and improved information security. A virtual desktop also improves the user’s overall experience, which increases productivity.</p>
<h2>Cost Benefit Analysis of Virtual Desktops</h2>
<p>Dell Services provides an analysis of the typical savings that a business can realize by converting a traditional desktop environment to a managed virtual desktop solution. These figures assume the facility has 1,000 desktops.</p>
<p>A managed <a href="http://content.dell.com/us/en/enterprise/virtual-client">virtual desktop solution</a> will save a 1,000-desktop facility $300,000 per year by allowing the use of desktop devices that last longer and cost less. The savings in increased productivity will be approximately $294,000 per year. This savings come from better performance, including less downtime, shorter screen refreshes and faster logins. A savings of about $250,000 per year will come from a reduction in the number of calls to the help desk and fewer visits by technicians to the user’s desk. The reduced power consumption of virtual desktop devices will save an additional $60,000 per year. This analysis shows a total savings in internal costs of about $900,000 per year.</p>
<img src="http://feeds.feedburner.com/~r/cloudspring/~4/Dj4VJz4hY54" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cloudspring.com/multiply-your-business-with-virtual-desktops/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://cloudspring.com/multiply-your-business-with-virtual-desktops/</feedburner:origLink></item>
	</channel>
</rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using memcached
Database Caching 10/33 queries in 0.039 seconds using memcached
Object Caching 980/1167 objects using memcached
Content Delivery Network via cdn.cloudspring.com

Served from: cloudspring.com @ 2013-05-11 00:16:23 -->
