<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Fubaredness Is Contagious &#187; cloud computing</title>
	<atom:link href="http://somic.org/category/cloud-computing/feed/" rel="self" type="application/rss+xml" />
	<link>http://somic.org</link>
	<description>Dmitriy Samovskiy's Blog</description>
	<lastBuildDate>Wed, 01 Sep 2010 07:55:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Extending EC2 API &#8211; ec2-describe-ipaddress-ranges</title>
		<link>http://somic.org/2010/09/01/extending-ec2-api-ec2-describe-ipaddress-ranges/</link>
		<comments>http://somic.org/2010/09/01/extending-ec2-api-ec2-describe-ipaddress-ranges/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 07:55:05 +0000</pubDate>
		<dc:creator>Dmitriy</dc:creator>
				<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[ec2]]></category>

		<guid isPermaLink="false">http://somic.org/?p=1669</guid>
		<description><![CDATA[Do you remember how we used to programmatically consume services on the web before proliferation of APIs? That&#8217;s right &#8211; scraping! And do you know what prevents us from using this technique now, when some piece of data you need for your application, is not available via API? That&#8217;s right &#8211; absolutely nothing!
I recently came [...]]]></description>
			<content:encoded><![CDATA[<p>Do you remember how we used to programmatically consume services on the web before proliferation of APIs? That&#8217;s right &#8211; scraping! And do you know what prevents us from using this technique now, when some piece of data you need for your application, is not available via API? That&#8217;s right &#8211; absolutely nothing!</p>
<p>I recently came across something that was not available via EC2 API &#8211; lists of IP address ranges for each EC2 region. AWS team maintain such lists in their forums &#8211; currently at <a href="http://developer.amazonwebservices.com/connect/ann.jspa?annID=735">http://developer.amazonwebservices.com/connect/ann.jspa?annID=735</a> (I say &#8220;currently&#8221; because annID has already changed at least once). I <a href="http://twitter.com/somic/status/21921693410">asked</a> for API, but in the meantime since I needed this now, I wrote a simple python script to scrape and parse the data &#8211; <a href="http://gist.github.com/559397">http://gist.github.com/559397</a> or embedded below. Enjoy! By the way, who would have thought that one would need to resort to scraping AWS, the very pioneers of infrastructure APIs, to get this simple bit of information?</p>
<style>
pre { font-size:12px; }
</style>
<p><script src="http://gist.github.com/559397.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://somic.org/2010/09/01/extending-ec2-api-ec2-describe-ipaddress-ranges/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parallelize Your EC2 API Calls with Python, Boto and Threading</title>
		<link>http://somic.org/2010/08/03/parallelize-your-ec2-api-calls-with-python-boto-and-threading/</link>
		<comments>http://somic.org/2010/08/03/parallelize-your-ec2-api-calls-with-python-boto-and-threading/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 08:06:43 +0000</pubDate>
		<dc:creator>Dmitriy</dc:creator>
				<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[boto]]></category>
		<category><![CDATA[ec2]]></category>

		<guid isPermaLink="false">http://somic.org/?p=1492</guid>
		<description><![CDATA[I started a small new project on Github &#8211; http://github.com/somic/ec2-multiregion. It includes several small tools that facilitate EC2 API operations that involve multiple regions at the same time.
If I were to query each endpoint one after another, I quickly discovered it would take too long. Therefore, I created a small helper class called BotoWorkerPool (in [...]]]></description>
			<content:encoded><![CDATA[<p>I started a small new project on Github &#8211; <a href="http://github.com/somic/ec2-multiregion">http://github.com/somic/ec2-multiregion</a>. It includes several small tools that facilitate EC2 API operations that involve multiple regions at the same time.</p>
<p>If I were to query each endpoint one after another, I quickly discovered it would take too long. Therefore, I created a small helper class called BotoWorkerPool (in lib/boto_worker_pool.py), which wraps Python&#8217;s standard <a href="http://docs.python.org/library/threading.html">threading</a> module around calls to <a href="http://github.com/boto/boto">boto</a> &#8211; this helps achieve some amount of parallelism without introducing significant complexity of dealing with and sharing data among multiple processes. This also allows to potentially migrate to <a href="http://pypi.python.org/pypi/processing">processing</a> or <a href="http://docs.python.org/dev/library/multiprocessing.html">multiprocessing</a> libraries in the future, which offer threading-like interfaces for a multi-process model.</p>
<p>There are 2 tools at the moment.</p>
<p><strong>onesnapshot.py</strong> creates new snapshots for all volumes that already have one snapshot marked with &#8220;__onesnapshot__&#8221; token. The rationale for this tool came in part from the following statement on <a href="http://aws.amazon.com/ebs/">AWS main page for EBS</a> about durability:</p>
<blockquote><p>The durability of your volume depends both on the size of your volume  and the percentage of the data that has changed since your last  snapshot.</p></blockquote>
<p><strong>imageequiv.py</strong> takes AMI ID, kernel ID or ramdisk ID and finds equivalent IDs in all regions, based on matching name or manifest file location. This tool is a response to the following <a href="http://twitter.com/somic/status/13735105239">tweet</a> of mine:</p>
<blockquote><p><span><span><span>wanted &#8211; equivalence lists for kernel and ramdisk images (aki-, ari-) across all ec2 regions</span></span></span></p></blockquote>
<p><span><span><span>Hope these are useful to someone.<br />
</span></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://somic.org/2010/08/03/parallelize-your-ec2-api-calls-with-python-boto-and-threading/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Russell&#8217;s Paradox and Cloud Computing</title>
		<link>http://somic.org/2010/07/20/russell-paradox-and-cloud-computing/</link>
		<comments>http://somic.org/2010/07/20/russell-paradox-and-cloud-computing/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 08:01:21 +0000</pubDate>
		<dc:creator>Dmitriy</dc:creator>
				<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[fun]]></category>

		<guid isPermaLink="false">http://somic.org/?p=1575</guid>
		<description><![CDATA[I am sure you&#8217;ve heard of Bertrand Russell&#8217;s paradox and one of its more widely known versions &#8211; Barber paradox. But let me rephrase the Wikipedia article:
Suppose there is a town with just one public IaaS cloud provider, and that every business in the town runs their own IT: some by hosting it on-premises, some [...]]]></description>
			<content:encoded><![CDATA[<p>I am sure you&#8217;ve heard of <a href="http://en.wikipedia.org/wiki/Russell%27s_paradox">Bertrand Russell&#8217;s paradox</a> and one of its more widely known versions &#8211; <a href="http://en.wikipedia.org/wiki/Barber_paradox">Barber paradox</a>. But let me rephrase the Wikipedia article:</p>
<blockquote><p>Suppose there is a town with just one public IaaS cloud provider, and that every business in the town runs their own IT: some by hosting it on-premises, some by running it in the cloud. It seems reasonable to imagine that the cloud provider obeys the following rule: it runs IT for all and only those businesses that do not run their IT on-premises.</p>
<p>Under this scenario, we can ask the following question: is cloud provider&#8217;s own IT in the cloud or on-premises? (remember that the cloud provider itself is also a business)</p></blockquote>
<p>Of course this &#8220;faux&#8221; paradox is not a paradox at all. As I <a href="http://twitter.com/somic/status/18045970837">suggested</a> on Twitter, &#8220;<span><span><span>if you build a cloud, to your customers it will  indeed look like a cloud; but to you it will look like a regular  datacenter.&#8221;</span></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://somic.org/2010/07/20/russell-paradox-and-cloud-computing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CohesiveFT VPN-Cubed as Networking Fabric of the Intercloud</title>
		<link>http://somic.org/2010/06/23/cohesiveft-vpn-cubed-as-networking-fabric-of-the-intercloud/</link>
		<comments>http://somic.org/2010/06/23/cohesiveft-vpn-cubed-as-networking-fabric-of-the-intercloud/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 17:19:15 +0000</pubDate>
		<dc:creator>Dmitriy</dc:creator>
				<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[cohesiveft]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://somic.org/?p=1542</guid>
		<description><![CDATA[This post is about stuff I work on at my current job. I do not speak for my employer on this blog though, therefore please consider thoughts and opinions below as strictly my own, not necessarily endorsed or approved by CohesiveFT.
It has been about 6 months since I last blogged about work, so I figured [...]]]></description>
			<content:encoded><![CDATA[<p><em>This post is about stuff I work on at my current job. I do not speak for my employer on this blog though, therefore please consider thoughts and opinions below as strictly my own, not necessarily endorsed or approved by CohesiveFT.</em></p>
<p>It has been about 6 months since I <a href="http://somic.org/category/cohesiveft/">last blogged about work</a>, so I figured an update may be in order, especially since today <a href="http://cohesiveft.com/">CohesiveFT</a> <a href="http://blog.elasticserver.com/2010/06/vpn-cubed-brings-virtual-private-clouds.html">announced</a> availability of <a href="http://cohesiveft.com/vpncubed">VPN-Cubed</a> on <a href="http://www.flexiant.com">Flexiant</a>&#8217;s cloud offerings.</p>
<p>We&#8217;ve been very busy on VPN-Cubed engineering side. Along with features already on the roadmap, we delivered several enhancements that were directly driven or requested by VPN-Cubed users. On the product support side, we continued to expand a range of devices with which VPN-Cubed can do IPsec interop, which now include even ones I personally have never heard about before. We grew our experience and expertise in the area of troubleshooting intra-cloud and cloud-to-datacenter connectivity issues (there are many!). We&#8217;ve also worked on a few projects that required non-trivial topologies or interconnects, successfully mapping customer requirements to VPN-Cubed capabilities.</p>
<p>One theme that I have had in my head for some time now, is <strong>VPN-Cubed as the networking fabric of the Intercloud</strong>. Let me explain.</p>
<p>VPS was a predecessor of modern IaaS clouds. In VPS land, boxes are usually provisioned individually, one by one. Typical setups in VPS consisted of 1, 2 or 3 boxes. Networking 3 independent boxes together is relatively straightforward.</p>
<p>At the beginning of IaaS era, I imagine most setups were also 1 or 2 boxes. <strong>But as IaaS is gaining ground, topologies headed to the cloud are getting bigger, more complex and more dependent on access to external resources.</strong> Setting up networking consistently is becoming a bigger deal. But it&#8217;s not the end.</p>
<p>One of the roles of Intercloud is providing customers with an alternative (competition, in other words) &#8211; if one doesn&#8217;t like cloud A, she may take entire topology to cloud B. I&#8217;d say 99 of 100 public cloud justification documents being submitted to CIOs worldwide today include a statement saying something like this: &#8220;If this cloud provider fails to deliver what we need at a level we need it, we will switch to another provider.&#8221; This is actually not as easy in practice as it may sound.</p>
<p>Each cloud&#8217;s networking has unique aspects, no two are alike. Public IPs, private IPs, dynamic or not, customer assignable or not, eth0 private or public, cloud-provided firewall exists or not, peculiarities of firewall &#8211; these are some of the differences (as of today, I have set up boxes in 6 IaaS clouds with admin endpoints facing public Internet &#8211; I have seen many network setups). <strong>Taking images of N boxes from one cloud and dropping them in another cloud is well understood, recreating one cloud&#8217;s networking in another cloud is where the challenge is.</strong></p>
<p>It is here where I think <strong>VPN-Cubed shines as a <span style="text-decoration: underline;">customer-controlled network abstraction</span> &#8211; it&#8217;s an <span style="text-decoration: underline;">overlay built on top of service provider&#8217;s network</span>, which allows it to be identical no matter what the underlying infrastructure looks like.</strong></p>
<p>Same story plays out when an application is <a href="http://somic.org/2009/08/18/the-concept-of-hyper-distributed-application/">hyper-distributed</a> and runs in multiple clouds or multiple regions of one cloud (where regions are connected via public Internet). And here as well VPN-Cubed provides an abstraction that allows one to treat all compute resources as being on the same network, regardless where they are actually located at the moment.</p>
<p>At the same time, VPN-Cubed can be appealing to topologies that don&#8217;t care about Intercloud. Networking and network security are areas that don&#8217;t get enough attention from cloud developers today, because developers are used to working within a perimeter. Excessively wide-open security group setups, using public IPs instead of private for communications, disabled local firewalls &#8211; these are all time bombs. They don&#8217;t affect the app right now (&#8221;look, it works!&#8221;) but they can be catastrophic over time when they could become an attack vector. For such topologies, <strong>VPN-Cubed provides a virtual perimeter that confines authorized communications to a mutually-authenticated tunnel encrypted end-to-end</strong> (are you sure you want to continue forcing your incoming web traffic to HTTPS but not encrypting writes and reads from app servers to database? or do you think application-level encryption could be better, faster or easier to maintain than transport-level?)</p>
<p>To get started with VPN-Cubed, visit <a href="http://cohesiveft.com/vpncubed">http://cohesiveft.com/vpncubed</a>. If you have a question about how VPN-Cubed can help in your particular use case, you can ask <a href="http://www.cohesiveft.com/Contact_CFT/Forms/VPN-Cubed_Contact/">here</a>.</p>
<p><strong>UPDATE 08/21/2010</strong>: <a href="http://twitter.com/randybias">Randy Bias</a> in his <a href="http://cloudscaling.com/blog/cloud-computing/does-openstack-change-the-cloud-game">excellent new post</a> touches on the very similar theme:</p>
<blockquote><p>Where is the lock-in then? If it’s not the hypervisor, what makes moving  from one cloud to another so difficult? Simply put, it’s architectural  differences. Every cloud chooses to do storage and networking  differently.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://somic.org/2010/06/23/cohesiveft-vpn-cubed-as-networking-fabric-of-the-intercloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Probing Ports in Remote Security Groups in EC2</title>
		<link>http://somic.org/2010/03/30/probing-ports-in-remote-security-groups-in-ec2/</link>
		<comments>http://somic.org/2010/03/30/probing-ports-in-remote-security-groups-in-ec2/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 09:00:00 +0000</pubDate>
		<dc:creator>Dmitriy</dc:creator>
				<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[security groups]]></category>

		<guid isPermaLink="false">http://somic.org/?p=1347</guid>
		<description><![CDATA[This is the third part of my series on Amazon EC2 security groups. In part 1, I described how security groups are possibly the most underappreciated feature in EC2. In part 2, I described a UDP hole punching technique, which led to some interesting conclusions.

On several occasions, when troubleshooting a connectivity issue or verifying a [...]]]></description>
			<content:encoded><![CDATA[<p><em>This is the third part of <a href="http://somic.org/tag/security-groups">my series on Amazon EC2 security groups</a>. In <a href="/2009/09/21/security-groups-most-underappreciated-feature-of-amazon-ec2/">part 1</a>, I described how security groups are possibly the most underappreciated feature in EC2. In <a href="/2009/11/02/punching-udp-holes-in-amazon-ec2/">part 2</a>, I described a UDP hole punching technique, which led to some interesting conclusions.<br />
</em></p>
<p>On several occasions, when troubleshooting a connectivity issue or verifying a deployment&#8217;s security, I needed to check local and/or remote security group rules from within my instances. I never have AWS credentials on the instances, so I couldn&#8217;t use the API. And EC2 metadata server (169.254.169.254) returns only the names of security groups, not the rules themselves. In other words, I needed to answer the following question &#8211; &#8220;do remote instance&#8217;s security groups allow or not allow communications from this instance on TCP/UDP port X.&#8221; Note that trying to open a connection and not getting a response doesn&#8217;t answer this question &#8211; packets could be blocked by security groups or by remote instance&#8217;s local firewall (iptables). It turns out there is a way&#8230;</p>
<p>Let me first start with a warning. You probably are OK using this technique against your own instances, or instances of your friends, partners, vendors and customers with their permission and when you know specific ports you need to probe, for verification or troubleshooting purposes. Probing someone else&#8217;s instances or random ports may get you in trouble &#8211; such activities could fall into a category prohibited by <a href="http://aws.amazon.com/aup/">AWS Acceptable Use Policy</a>. <strong>You have been warned.</strong></p>
<p><strong>Summary</strong></p>
<p>This technique works using private IP addresses, so both instances must be running within the same EC2 region.</p>
<p>To check if remote instance&#8217;s security groups allow communications from your instance on UDP port $X, do this:</p>
<p><strong>traceroute -p $X -w 1 -q 1 -m 1 $REMOTE_INSTANCE_PRIVATE_IP</strong></p>
<p>To check if remote instance&#8217;s security groups allow communications from your instance on TCP port $X, do this:</p>
<p><strong>tcptracerute -w 1 -q 1 -m 1 $REMOTE_INSTANCE_PRIVATE_IP $X</strong></p>
<p>(tcptraceroute is not a standard tool installed by default; you can get it from <a href="http://michael.toren.net/code/tcptraceroute/">here</a> or <em>apt-get install tcptraceroute</em> on Debian or Ubuntu)</p>
<p>If you see &#8220;<strong><em>1 {IP address of first hop} XX.XXX ms</em></strong>&#8220;, remote instance&#8217;s security groups allow such communications from your private IP address. If you see <strong>&#8220;<em>1 *</em></strong>&#8220;, they don&#8217;t.</p>
<p><strong>Background</strong></p>
<p>This technique is based on one of the conclusions of my <a href="http://somic.org/2009/11/02/punching-udp-holes-in-amazon-ec2/">UDP hole punching post</a>.</p>
<p>In it, it looked to me like each dom0 in the region knows about all security group rules in this region. Additionally, it looked like when dom0 knows that remote dom0 will not accept traffic, it doesn&#8217;t bother even sending it. If we <a href="http://openfoo.org/blog/amazon_ec2_underlying_architecture.html">assume they do it on dom0 with iptables</a>, they probably simply DROP such traffic (at least I would if I were them). And if they do, they won&#8217;t send <a href="http://en.wikipedia.org/wiki/ICMP_Time_Exceeded">ICMP Time Exceeded</a> packet back to us &#8211; and hence, traceroute won&#8217;t be able to report the first hop.</p>
<p>If we do get that ICMP packet from dom0 back, it means it didn&#8217;t drop our packet. Which means it knows the other dom0 currently has a rule in security groups allowing it.</p>
<p>I set max_ttl to 1, since first hop in traceroute is believed to represent dom0.</p>
<p>Obviously, I verified this theoretical hypothesis on a pair of EC2 instances in us-east-1, and didn&#8217;t see any indication that it could be wrong.</p>
<p><strong>Protecting Against Such Probes</strong></p>
<p>If you have instances in EC2, you may be wondering if you could somehow protect them from such probes. After all, AWS network monitoring is top-notch, but they have a lot of hosts to watch over, so some small amount of probing may still occur and you may not even know it.</p>
<p>I&#8217;ve got good and bad news on this front. The good news is that you can do it, the bad news is it&#8217;s going to be ugly. Essentially, to avoid disclosing the ports open in your security groups to such probes, you must configure your security groups not to allow connections from arbitrary instances in your EC2 region. In other words, you must exclude 10.0.0.0/8 from all IP-address-based rules (rules granting access by name of security group are not affected). It means that you have to replace each rule that references 0.0.0.0/0 with multiple rules individually referencing 128.0.0.0/1, 64.0.0.0/2, 32.0.0.0/3, 16.0.0.0/4, 1.0.0.0/5 (I would avoid 0.0.0.0 just in case &#8211; hence 1 as first octet), 12.0.0.0/6, 8.0.0.0/7 and 11.0.0.0/8. Yep, 8 rules instead of 1. You have to also repeat the same exercise for all IP subnets referenced in your rules that include 10.0.0.0/8.</p>
<p><strong>Conclusion</strong></p>
<p>In the future, of course, I hope security groups API could be extended to support functionality &#8220;allow connections from Internet excluding private IPs in this region&#8221;. I am going to add it to my <a href="http://somic.org/2009/09/21/security-groups-most-underappreciated-feature-of-amazon-ec2/">previous wishlist</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://somic.org/2010/03/30/probing-ports-in-remote-security-groups-in-ec2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IaaS, Hype and Marginal Cost</title>
		<link>http://somic.org/2010/03/23/iaas-hype-and-marginal-cost/</link>
		<comments>http://somic.org/2010/03/23/iaas-hype-and-marginal-cost/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 18:56:34 +0000</pubDate>
		<dc:creator>Dmitriy</dc:creator>
				<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[iaas]]></category>

		<guid isPermaLink="false">http://somic.org/?p=1395</guid>
		<description><![CDATA[Theo Schlossnagle published a great piece titled The cloud is great. Stop the hype. As a technologist, I totally agree that hype is what&#8217;s killing it. In fact, on several occasions I mentioned to my co-workers that often I get the feeling that cloud computing is already a bubble that will burst sooner rather than [...]]]></description>
			<content:encoded><![CDATA[<p>Theo Schlossnagle published a great piece titled <a href="http://omniti.com/seeds/the-cloud-is-great-stop-the-hype">The cloud is great. Stop the hype</a>. As a technologist, I totally agree that <a href="http://somic.org/2009/11/17/costs-vs-agility-as-drivers-for-cloud-computing/">hype</a> is what&#8217;s killing it. In fact, on several occasions I mentioned to my co-workers that often I get the feeling that cloud computing is already a <a href="http://somic.org/2009/02/04/api-forever-look-at-cloud-computing-as-bubble/">bubble</a> that will burst sooner rather than later.</p>
<p>Speaking of public IaaS vs datacenter virtualization runoff, however, I would like to point out that Theo&#8217;s points make a lot of sense for someone who already has an established well-functioning server hardware and network bandwidth operation. If you do, indeed in a lot of cases, as Theo shows in his post, IaaS cloud may be a weak alternative.</p>
<p>But reality however is that not all organizations fall into that category. I needed to borrow a pen (!) the other day in the office, let alone have a screwdriver to rack up all those servers and insert more RAM into them. And I am not even talking about having a network cable punchdown tool at work. If I get tasked with building out a hardware platform to support business, I&#8217;d be quite stuck.</p>
<p>Dealing with hardware is a complicated process. Having an established relationship with vendors to get better service, building up volume to earn better prices, etc are not things that get accomplished overnight (btw, I have never dealt a lot with hardware, you can probably tell). Having space in a rack, having enough power cords, and so on and so forth &#8211; the list goes on and on.</p>
<p>Bandwidth is the same. It&#8217;s not like you can go to Best Buy to pick up whatever you need to get more bandwidth for the marketing campaign you are about to do.</p>
<p>It&#8217;s all about <a href="http://en.wikipedia.org/wiki/Marginal_cost">marginal cost</a> &#8211; cost of adding one more server or one more Mbps of bandwidth. If you have nothing (or it&#8217;s dysfunctional due to required approvals, or ridiculous wait times, etc), IaaS cloud very well may look like a better alternative.</p>
<p>I hope you all follow Theo&#8217;s advice &#8211; &#8220;Use the cloud where it makes sense.&#8221; And please &#8211; stop the hype!</p>
]]></content:encoded>
			<wfw:commentRss>http://somic.org/2010/03/23/iaas-hype-and-marginal-cost/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Workloads in Cloud Computing</title>
		<link>http://somic.org/2010/02/16/workloads-in-cloud-computing/</link>
		<comments>http://somic.org/2010/02/16/workloads-in-cloud-computing/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 06:00:14 +0000</pubDate>
		<dc:creator>Dmitriy</dc:creator>
				<category><![CDATA[cloud computing]]></category>

		<guid isPermaLink="false">http://somic.org/?p=1083</guid>
		<description><![CDATA[In computer science, according to Wikipedia, abstraction is a &#8220;mechanism to reduce and factor out details so that one can focus on a few concepts at a time.&#8221;
When you hear about abstraction in the context of virtualization-based IaaS cloud computing, the most well known abstraction is computing resources themselves (encapsulation is at play here as [...]]]></description>
			<content:encoded><![CDATA[<p>In computer science, according to Wikipedia, <a href="http://en.wikipedia.org/wiki/Abstraction_%28computer_science%29">abstraction</a> is a &#8220;mechanism to reduce and factor out details so that one can focus on a few concepts at a time.&#8221;</p>
<p>When you hear about abstraction in the context of virtualization-based IaaS cloud computing, the most well known abstraction is computing resources themselves (<em>encapsulation</em> is at play here as well). You don&#8217;t need to know exact hardware on which your instance is running, or exact network setup &#8211; you only need to be able to treat your compute instances as nearly identical units that respond to certain set of signals in a predictable way.</p>
<p>With emergence of multiple IaaS clouds however, there is a second abstraction that is going to play a big role &#8211; <em>workload</em>.</p>
<p>Workload is an abstraction of the actual work that your instance or a set of instances are going to perform. Running a web server or a web server farm, or being a Hadoop data node &#8211; these are all valid workloads. I am treating a workload as an abstraction, because I intentionally leave out a huge component &#8211; exact way how work in a given workload gets mapped to resources offered by a given cloud. When speaking in terms of workloads, I want to focus on <em>what</em> needs to be done, as opposed to <em>how</em> it&#8217;s going to be done in the context of a particular cloud (remember that from technical architecture perspective, clouds are far from identical).</p>
<p>For example, &#8220;run this blog for 1 year, for up to 100 visitors a day&#8221; is a <em>what</em> (workload), while &#8220;run this blog on m1.small EC2 instance in us-east-1 for 1 year&#8221; or &#8220;run this blog on Terremark instance with 1 VPU and 1 GB of RAM for 1 year&#8221; are a <em>how</em> (for lack of a better word, I am going to call them <em>deployments</em>).</p>
<p>I think such an abstraction is very helpful. Running this blog may take 1 small instance in one cloud, half of a small instance in another, a third of an instance plus a dedicated load balancer in third. As you can see, once you map a workload to a set of compute, storage and network resources offered by one cloud, you can no longer move it to another cloud &#8211; your <em>deployments</em> are non-transferable from one cloud to another. Workloads here serve as transferable equivalents of your cloud deployments.</p>
<p>Secondly, workloads by themselves may have properties or attributes that could dictate where workload can or can&#8217;t run. This justifies existence of a workload as a separate entity &#8211; it is in theory possible to construct a workload for which no deployment can exist in any of the clouds available today.</p>
<p>There are many examples what kind of attributes a workload may possess. A workload may have a compliance attribute, which says that this workload must run in an environment with a certain certification. Another attribute may be a geo location requirement, whereas it must run within a certain geographic region for a legal reason.</p>
<p>A workload may be time-bound (&#8221;runs for 5 hours&#8221;) or time-unbound. A workload may have a specific start time or flexible start time, in which case it may have a hard stop time (for example, must finish by a certain time in the future). It can be interruptable or must run without interruptions.</p>
<p>A workload may have a certain lower limit of resources that it needs, expressed in work-independent form. For example, serving Wordpress blog for 1 visitor a day as opposed to 100 visitors an hour are two very distinct workloads (note that workloads are different, while the application inside the workload is the same). The latter will certainly end up consuming more resources than the former.</p>
<p>Workload may have a budget associated with it, it may have redundancy requirements. It may require a certain OS or distribution. It may require a certain feature (for example, persistent disk or non-private IP address directly attached to eth0). It may require a certain minimal access speed to some data source (for example, if my data are in S3 on the East coast, I may want my workload to run somewhere near). Each requirement is a restriction &#8211; the more requirements a workload has, the fewer clouds can potentially run it.</p>
<p>Conclusion</p>
<p>The answer to the question &#8220;Where is the best place to run this task?&#8221; used to be treated as a binary decision (&#8221;on premises&#8221; vs &#8220;in the cloud&#8221;) but not any more &#8211; because there are many different and incompatible implementations of the latter. Looking at your tasks via workloads/deployments prism may open new horizons for computing mobility. There is a saying &#8220;select the right tool for the job.&#8221; It can be now extended to &#8220;select the right tool <em>and the right location</em> for the job.&#8221;</p>
<p>If you like the idea of cloud computing workloads, you may find this <a href="http://news.cnet.com/8301-19413_3-10440799-240.html">post</a> by James Urquhart interesting as well.</p>
<p><em>P.S. Believe it or not, this is my 100th post on this blog. Not bad. Hope at least some of you enjoy reading my posts as much as I enjoy writing them.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://somic.org/2010/02/16/workloads-in-cloud-computing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Digging into EC2 Spot Price History</title>
		<link>http://somic.org/2010/01/26/digging-into-ec2-spot-price-history/</link>
		<comments>http://somic.org/2010/01/26/digging-into-ec2-spot-price-history/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 15:32:15 +0000</pubDate>
		<dc:creator>Dmitriy</dc:creator>
				<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[math]]></category>
		<category><![CDATA[statistics]]></category>

		<guid isPermaLink="false">http://somic.org/?p=1118</guid>
		<description><![CDATA[In December 2009, Amazon Web Services team introduced yet another innovation &#8211; spot pricing for EC2 instances. Several sites were created shortly to track spot price history by creating price charts. But price charts are relatively boring &#8211; juicy meat is in the dynamics hidden inside series of numbers which represent the price history. Let&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>In December 2009, Amazon Web Services team introduced yet another innovation &#8211; <a href="http://aws.amazon.com/ec2/spot-instances">spot pricing</a> for EC2 instances. <a href="http://aws.typepad.com/aws/2009/12/thirdparty-aws-tracking-sites.html">Several sites</a> were created shortly to track spot price history by creating price charts. But price charts are relatively boring &#8211; juicy meat is in the dynamics hidden inside series of numbers which represent the price history. Let&#8217;s do some exploring!</p>
<p>Several notes first.</p>
<ol>
<li>All references to times and dates below are GMT for all regions.</li>
<li>Spot instances went live on December 14, therefore I ignore all data points before that (for simplicity, my cutoff was set at UNIX timestamp 1260777600 &#8211; it&#8217;s 8am on December 14 GMT, which translates to midnight in Seattle where AWS is headquartered).</li>
<li>Spot price history was obtained on January 25, 2010 at 10:54pm via API and cached locally for analysis.</li>
<li>In order to be able to deal with integers instead of floats, all prices below are represented in points where 1,000 points = $1 per compute hour.</li>
<li>Each product is specified as [region, instance_type, product_description] tuple.</li>
<li>I am only going to outline facts below, all interpretation is up to you.</li>
<li><strong>These results have not been exhaustively verified, my analysis code may have bugs. Use at your own risk.</strong></li>
</ol>
<p><strong>#1 Price averages<br />
</strong></p>
<p>Here is a chart of average spot price for each product relative to regular price for the same product (averages take into consideration for how long each price was valid). Percentage next to a product identification represents the ratio between average spot price and regular price.</p>
<p><img src="http://spreadsheets.google.com/oimg?key=0Ap7JXwFLDd41dHk1dWpuU3pNZ1M5ZnA1QXVIVEFmWWc&amp;oid=5&amp;v=1264468929973" alt="" /></p>
<p><strong>#2 Price increases in a row</strong></p>
<p>Maximum number of price increases in a row was 6. It occurred on January 23-24 for [us-west-1, m1.large, Windows] and the price went up from 256 to 273.</p>
<p>5 price increases in a row happened also once, 4 in a row &#8211; 16 times, 3 in a row &#8211; 95 times, 2 in a row &#8211; 643 times, and a single increase immediately followed by price reduction happened 2,433 times. Of the latter, 684 times (28%) were a single price increase followed by price returning to where it used to be right before the increase (X -&gt; X+Y -&gt; X).</p>
<p><strong>#3 Individual price increases</strong></p>
<p>Maximum single price increase in absolute terms was 928 &#8211; it occurred for [us-east-1, m2.2xlarge, Windows] when the price went up from 572 to 1,500. Second biggest was 890 for [us-east-1, m1.large, Linux/UNIX] and third biggest &#8211; 551 for [us-east-1, m1.small, Windows]. Note that all of these occurred in us-east-1.</p>
<p>The biggest price increase as percentage of the regular price was 460% when a price for [us-east-1, m1.small, Windows] jumped from 49 to 600 on January 24. The second and third biggest in the category were 262% increase for [us-east-1, m1.large, Linux/UNIX] (110 -&gt; 1000) and 64% increase for [us-east-1, m2.2xlarge, Windows] (572 -&gt; 1500).</p>
<p>The same two biggest increases were also the biggest price increases as percentage of current spot price &#8211; 1,124% and 809%, respectively. Third place in this category was a 186% increase for [eu-west-1, m1.small, Linux/UNIX] when the price went up from 28 to 80.</p>
<p>Here is a chart showing price increases and reductions day by day.</p>
<p><img src="http://spreadsheets.google.com/oimg?key=0Ap7JXwFLDd41dHk1dWpuU3pNZ1M5ZnA1QXVIVEFmWWc&amp;oid=6&amp;v=1264471437914" alt="" /></p>
<p><strong>#4 Number of datapoints per product and/or product family</strong></p>
<p>There were a total of 4,469 spot price revisions for Windows and 3,885 for Linux/UNIX. By region, us-east-1 had the least price revisions in total &#8211; 2,491, of which 1,254 were for Windows and 1,237 for Linux/UNIX (50.3% vs 49.7%). A total of 2,809 price revisions in eu-west-1 were distributed 1,518 for Windows vs 1,291 for Linux/UNIX (54% vs 46%). A total of 3,054 price revisions in us-west-1 were distributed 1,697 for Windows vs 1,357 for Linux/UNIX (56% vs 44%).</p>
<p>[eu-west-1, m1.small, Windows] had the most price revisions &#8211; 287. [us-east-1, m2.4xlarge, Windows] had the least &#8211; 40.</p>
<p>Across all regions combined, the most price revisions per day happened on January 22, 2010 &#8211; 351 price revisions.</p>
<p><strong>#5 Percentiles</strong></p>
<p>Here is a <a href="http://tables.googlelabs.com/DataSource?dsrcid=120244">Google Fusion table</a> with percentile estimates for each product. I tried to calculate percentiles from 50th through 95th (step 5) and 99th, but since a price function consists of discrete values, not all percentiles could be estimated. For each percentile, a nominal price is provided along with its percentage of the regular instance price for a given product. Percentiles take into consideration for how long a given price was valid.</p>
<p><strong>#6 Spot price over regular price</strong></p>
<p>Situations when a spot price is equal or exceeds regular price are especially interesting. Most such situations occurred in us-east-1, and none of them occurred in eu-west-1.</p>
<p>Spot price has reached but not exceeded the regular price for [c1.xlarge, Linux/UNIX] twice, [c1.medium, Windows] twice, [m1.small, Windows] 6 times, [m1.large, Windows] once &#8211; all in us-east-1.</p>
<p>In us-west-1, spot price for [m1.large, Linux/UNIX] exceeded the regular price by 20 for under 2 hours on December 29.</p>
<p>Spot price for [us-east-1, m2.2xlarge, Windows] exceeded the regular price by 60 for over 20 hours on January 11-12.</p>
<p>Spot price for [us-east-1, m1.large, Linux/UNIX] exceeded the regular price by 64 on December 17 and by 660 twice on December 18.</p>
<p>And finally, spot price for [us-east-1, m1.small, Windows] exceeded the regular price by 480 once and by 430 once &#8211; both on January 24.</p>
<p><strong>Conclusion</strong></p>
<p>There are hardly any surprises in the spot price history so far, but it&#8217;s only been less than 2 months since the feature was launched. As the usage ramps up, I expect it will become more interesting. Kudos to AWS team for coming up with this innovative pricing mechanism and being the first to introduce it at such a large scale in a real environment. Only time will tell if it will stick in its current form or if it will morph into something else (I have a couple of ideas), but the first small step towards dynamic pricing of computing resources has been made.</p>
]]></content:encoded>
			<wfw:commentRss>http://somic.org/2010/01/26/digging-into-ec2-spot-price-history/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cloud Overlay Networks Demystified &#8211; Holiday Edition</title>
		<link>http://somic.org/2009/12/18/cloud-overlay-networks-demystified-holiday-edition/</link>
		<comments>http://somic.org/2009/12/18/cloud-overlay-networks-demystified-holiday-edition/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 17:22:56 +0000</pubDate>
		<dc:creator>Dmitriy</dc:creator>
				<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[cohesiveft]]></category>
		<category><![CDATA[infrastructure development]]></category>
		<category><![CDATA[failover]]></category>
		<category><![CDATA[overlay]]></category>
		<category><![CDATA[overlay network]]></category>
		<category><![CDATA[vpncubed]]></category>

		<guid isPermaLink="false">http://somic.org/?p=999</guid>
		<description><![CDATA[As most of you probably know, I work at CohesiveFT where I focus on VPN-Cubed product. In short, it&#8217;s a solution to build overlay networks in third-party clouds. Overlay networks in this case are based on redundant encrypted point-to-point connections from your regular servers to your VPN-Cubed servers called &#8220;managers&#8221; (that you run in the [...]]]></description>
			<content:encoded><![CDATA[<p>As most of you probably know, I work at <a href="http://cohesiveft.com/">CohesiveFT</a> where I focus on <a href="http://cohesiveft.com/vpncubed">VPN-Cubed</a> product. In short, it&#8217;s a solution to build overlay networks in third-party clouds. Overlay networks in this case are based on redundant encrypted point-to-point connections from your regular servers to your VPN-Cubed servers called &#8220;managers&#8221; (that you run in the cloud); managers then act as virtual switches and routers of this overlay, which essentially sits above your physical network. In other words, an overlay network gives a customer effectively a LAN-like network where the servers can be located pretty much anywhere, including in the cloud.</p>
<p>However, not all people know what an overlay network is or what its benefits and strengths are. This holiday season, as we were putting up our outdoor decorations and holiday lighting, I realized that what my wife and I were doing was essentially building an overlay network. Let&#8217;s follow the similarities.</p>
<p>Imagine a regular house with a front yard where for the holidays you want to set up a bunch of lighted Christmas trees, deer and other holiday figures. All of them require electricity &#8211; but there is no power installed in the ground (<span style="color: #0000ff;"><em>parallel with VPN-Cubed overlay network: you are deploying servers to third-party cloud and want to continue using your IP addressing schemes, want to ensure that all communications are encrypted &#8211; but provider doesn&#8217;t offer any of these services out of the box</em></span>).</p>
<p>You don&#8217;t need power out on your front yard all year around &#8211; so there is usually no point in investing money in installing one. <span style="color: #0000ff;"><em>Cloud computing is all about elasticity. As a complement to clouds, VPN-Cubed is easy to set up and take down if necessary for an experiment, or it can be running for long periods of time.</em></span></p>
<p>There are several outdoor outlets on the front wall so you are deciding to power your decorations from these outlets (<span style="color: #0000ff;"><em>you have VPN devices installed on the edge of your network &#8211; you will use them to offer connectivity to your servers from your network using VPN</em></span>). The first obvious solution is to run a power cord from each piece towards an outlet. While it&#8217;s possible in theory, it will turn out ugly in practice. Firstly, a lot of long outdoor power cords are expensive. Secondly, it will create a cabling mess near the outlet. Thirdly, if a cord goes bad, you need to trace where exactly it&#8217;s plugged in and replace it. Fourthly, the more stuff you have to power up, the more difficult this octopus made of power cords is going to be. <span style="color: #0000ff;"><em>Absolutely the same problems apply in our parallel use case.</em></span></p>
<p>So you come up with optimization #1 &#8211; you go out and buy several outdoor power strips with several outlets each. By placing these power strips where your lighted trees and deer are, you are reducing cabling issues, gain ability to use shorter power cords and most likely save money on power cords. <span style="color: #0000ff;"><em>That&#8217;s your VPN-Cubed manager server instance. When you place it next to your cloud-based servers, you reduce latency for your endpoints and cut down on VPN connections from the edge of your network that you need to build and maintain.</em></span></p>
<p>If you are well prepared (i.e., have enough of everything), your composition will drive how many power cords and strips you will need and how long your cords need to be, not the other way around. <span style="color: #0000ff;"><em>Same with VPN-Cubed &#8211; you mold it to fit your use case, your desired topology or application &#8211; you don&#8217;t adjust your application to be able to work within VPN-Cubed overlay network.</em></span></p>
<p>Outdoor power strips have additional protection to let them function outdoors in low temperatures. <span style="color: #0000ff;"><em>And so are VPN-Cubed manager instances &#8211; they are running a hardened OS, with minimal set of enabled services, behind firewall protection.</em></span> You can grab a regular switch and make it work outdoors &#8211; but why waste your time when these things don&#8217;t cost that much? <span style="color: #0000ff;"><em>Same with VPN-Cubed.</em></span></p>
<p>But power strips may fail &#8211; and if they do, entire section of your composition will be turned off. So you get a cold standby sitting in your garage in case a primary goes out. Or better &#8211; you install 2 power strips next to each other, connect them and evenly plug in your endpoints. If one goes out, you switch all connections to the other strip and it&#8217;s back. <em><span style="color: #0000ff;">VPN-Cubed allows you to deploy a hot spare with automatic failover capability, which can help balance the load as well.</span> </em>Your outdoor lighted Christmas tree is connected to one power strip at any given time, but if one fails it can be reconnected to another within a power cord distance. <span style="color: #0000ff;"><em>Same with VPN-Cubed &#8211; your servers are connected to a single manager at any given time, but if a manager becomes unavailable, your servers can automatically re-connect to another manager.</em></span></p>
<p>And what happens if one of your outlets goes bad? Moving a handful of cables to another outlet is much easier than moving a whole lot. <span style="color: #0000ff;"><em>Same with VPN-Cubed &#8211; if your network loses one entry point, you just re-connect VPN-Cubed to another.</em></span></p>
<p>There are many more parallels between the two. Most of us have been building overlay networks of decorations for quite some time. Building overlay networks for the cloud may be new, but CohesiveFT VPN-Cubed product makes it easy and fun. Don&#8217;t be stuck with long power cords &#8211; <a href="http://www.cohesiveft.com/vpncubed/">get</a> <a href="http://www.cohesiveft.com/Cube/VPN/VPN-Cubed_IPsec_to_Cloud/">yourself</a> <a href="http://www.cohesiveft.com/Cube/VPN/VPN-Cubed_SSL/">some</a> <a href="http://www.cohesiveft.com/Cube/VPN/VPN-Cubed_Custom_Enterprise_Configurations/">nice</a> outdoor power strips. And enjoy the holidays!</p>
]]></content:encoded>
			<wfw:commentRss>http://somic.org/2009/12/18/cloud-overlay-networks-demystified-holiday-edition/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>My Thoughts After CloudCamp Boston 2009</title>
		<link>http://somic.org/2009/12/13/my-thoughts-after-cloudcamp-boston-2009/</link>
		<comments>http://somic.org/2009/12/13/my-thoughts-after-cloudcamp-boston-2009/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 20:09:23 +0000</pubDate>
		<dc:creator>Dmitriy</dc:creator>
				<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[cloudcamp]]></category>

		<guid isPermaLink="false">http://somic.org/?p=1065</guid>
		<description><![CDATA[This past Thursday I had a chance to attend CloudCamp Boston that took place in Microsoft research center in Cambridge, as a representative of CohesiveFT. The event was very well attended, and I was able to meet a lot of smart interesting people working in cloud computing space.
The lightning talks section started with Microsoft representative [...]]]></description>
			<content:encoded><![CDATA[<p>This past Thursday I had a chance to attend <a href="http://cloudcamp-boston2-09.eventbrite.com/">CloudCamp Boston</a> that took place in Microsoft research center in Cambridge, as a representative of <a href="http://cohesiveft.com/">CohesiveFT</a>. The event was very well attended, and I was able to meet a lot of smart interesting people working in cloud computing space.</p>
<p>The lightning talks section started with Microsoft representative giving an overview of Azure. Then, <a href="http://johnmwillis.com/">John Willis</a> gave a talk titled What color is your cloud in which he talked about various types of IaaS clouds. <a href="http://twitter.com/georgereese">George Reese</a> gave a talk where he compared a successful cloud deployment to reaching the Emerald City and pointed out that the yellow brick road to this goal is not always an easy one (great analogy!). Iron Mountain representative gave a talk about how one needs to be aware where their data are in the cloud, and emphasized security measures at their datacenter. Intuit representative talked about <a href="https://ipp.developer.intuit.com/">their PaaS</a>, which allows developers to easily reach millions of small businesses already running Intuit products. PaaS is not my thing, but the idea makes sense and if I understand correctly, is very similar to idea behind Salesforce platform &#8211; develop against something which many organizations already use. And finally, Cory Von Wallenstein of <a href="http://dyn.com">Dyn</a>, operators of a well-known DynDNS.org, gave a talk about their enterprise features like anycast DNS, CDN etc. Interestingly, now that I think about it, DynDNS offered a way to update DNS programmatically way back when, which definitely qualifies them as one of the earliest cloud APIs out there.</p>
<p>After a break, I attended a cloud security talk titled Cloudifornication by <a href="http://www.rationalsurvivability.com/blog/">Chris Hoff</a>. I&#8217;ve seen the slides and video of this talk before (for example, see <a href="http://www.sector.ca/presentations.htm">here</a>), but seeing it live was more than worth it. This is a very good and important talk for all cloud practitioners and especially architects and developers, and I highly recommend it. I personally had 3 main takeaways. Firstly, information security is based on C-I-A (confidentiality, integrity, availability). Therefore, any outage or service disruption is classified by a customer as a security issue, not only as an SLA issue. I didn&#8217;t know about this until a couple of weeks ago when Chris explained it to me on Twitter, and the talk also emphasized this fact. Secondly, I loved a series of slides about increasing complexity of interconnects as more and more vendors, intermediaries and brokers are added to one&#8217;s cloud mix. We at CohesiveFT are very aware of this as an emerging issue, and our <a href="http://cohesiveft.com/vpncubed">VPN-Cubed</a> product is targeted at such cases, among other things.</p>
<p>And thirdly, Chris very skillfully highlighted the brittleness of the foundation on top of which we collectively as an industry are currently building out our cloud offerings. When Internet was designed as it was for world wide web and static pages, it was all good. When we started doing e-commerce and social media on top of the same infrastructure, the risk increased many-fold but was still somewhat manageable (after all, it&#8217;s only buying stuff online). But now with cloud computing we are putting absolutely everything (!) on top of the same brittle foundation, and the risks are truly enormous.</p>
<p>Then, I attended a session on private cloud led by John Willis, where we discussed various private cloud technologies and ideas. My main takeaway was that there is or there will be a huge demand for private externally-operated clouds for mid-sized organizations, and that&#8217;s where I think future of colo and hosting is going to be.</p>
<p>All in all, this was a great event and thanks to all organizers and sponsors for putting it together, and to all participants for interesting discussion.</p>
]]></content:encoded>
			<wfw:commentRss>http://somic.org/2009/12/13/my-thoughts-after-cloudcamp-boston-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
