<?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>Flexiant Ltd &#187; Tony Lucas</title>
	<atom:link href="http://www.flexiant.com/author/tony-lucas/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.flexiant.com</link>
	<description></description>
	<lastBuildDate>Thu, 26 Jan 2012 15:58:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>The nature of affinity</title>
		<link>http://www.flexiant.com/2011/04/the-nature-of-affinity-2/</link>
		<comments>http://www.flexiant.com/2011/04/the-nature-of-affinity-2/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 13:32:07 +0000</pubDate>
		<dc:creator>Tony Lucas</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://blog.flexiant.com/?p=1238</guid>
		<description><![CDATA[We’ve been busy here at Flexiant regularly turning out new features for Extility, our Cloud software stack, at the rate of about one major new feature a month in fact (alongside numerous other improvements and bug fixes of course). One of the biggest I’ve been looking forward to us releasing is Affinity, and that day [...]]]></description>
			<content:encoded><![CDATA[<p>We’ve been busy here at Flexiant regularly turning out new features for Extility, our Cloud software stack, at the rate of about one major new feature a month in fact (alongside numerous other improvements and bug fixes of course).</p>
<p>One of the biggest I’ve been looking forward to us releasing is Affinity, and that day has finally arrived.</p>
<p>We already have an advanced scheduler inside Extility, ensuring that virtual machines are optimally placed considering the load of the overall platform.  However, load is not the only consideration for machine placement. Our new affinity system provides a flexible key-based multifactor placement algorithm. This enables licensees to control the placement of VMs based on a number of different factors, controlled both by the customer and by the licensee. Here are some use cases:</p>
<h3>Licensing</h3>
<p>For our customers who license certain software per physical CPU or server, it can make sense to restrict placement of VMs running certain image types to a given group of machines, to be most cost effective. The Microsoft Windows SPLA, for example, encourages this.</p>
<h3>Redundancy</h3>
<p>Customers running multiple webservers may want to ensure they are running on seperate physical servers, or in seperate physical racks, or even in completely different datacentres. Such servers can be configured by the customer to &#8220;repel&#8221; each other &#8211; we call this negative affinity. This is an example of a customer provided affinity.</p>
<h3>Performance</h3>
<p>In some ways the opposite use case of redundancy, some customers may want to ensure certain machines are clustered as close together as possible for performance (DB servers in the example below).  We call this positive affinity.</p>
<h3>Privacy</h3>
<p>Cloud multi-tenancy is an amazing thing, but for customers taking slow steps into the cloud, being able to offer a ‘private cloud of resources’ within the public cloud eases a significant burden in the journey to all the cloud has to offer.  Being able to allocate specific physical machines upon which only certain virtual machines can be launched delivers that.  This can also allow for better budgeting if the resources are more regulated.</p>
<h3>Advanced Rules</h3>
<p>We also appreciate there is circumstances where more than one of these rules could apply at the same time.  That’s why we’ve built Affinity into what we think is an industry leading technology.</p>
<p>Licensees and customers (to the extent permitted by the Licensee) can set a series of arbitrary rules and weightings against customers, images and virtual machines, allowing a combination of weightings to be used, and at the same time still delivering a truly on-demand self service offering. Multiple sets of rules can be set up at the same time and the Affinity system will automatically deal with them and allocate accordingly.</p>
<h3>In Summary</h3>
<p>So if you want to build a windows platform in a pseudo private cloud with negative affinity for webservers to each other but positive affinity to their backend databases, all on an on-demand reactive basis, now you can. (Oh, and a million other possible combinations as well of course!)</p>
<p>A diagram below shows the possibilities described above, the blue lines show segregation of physical machines to run Windows Virtual Machines, the black lines show segregation to a particular customers &#8216;private&#8217; machines.</p>
<p>For simplicities sake this diagram only shows one or two virtual machines per physical one, but of course this could be much larger numbers depending on the specification of the physical machines:</p>
<p><a href="http://109.231.72.179/wp-content/uploads/2011/04/affinity.jpg" rel="prettyPhoto[1238]"><img title="Affinity" src="http://109.231.72.179/wp-content/uploads/2011/04/affinity.jpg" alt="Affinity" width="666" height="453" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexiant.com/2011/04/the-nature-of-affinity-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IPv6</title>
		<link>http://www.flexiant.com/2011/04/ipv6-2/</link>
		<comments>http://www.flexiant.com/2011/04/ipv6-2/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 21:29:54 +0000</pubDate>
		<dc:creator>Tony Lucas</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://blog.flexiant.com/?p=1244</guid>
		<description><![CDATA[The world has run out of IP Addresses &#8211; panic!  Ok, well it’s not quite that bad, but with the last IPv4 addresses being allocated to their local registries, that time is certainly getting very close. This site suggests we have only got until 21st April before IPv4 address space runs out. Only last week Microsoft [...]]]></description>
			<content:encoded><![CDATA[<p>The world has run out of IP Addresses &#8211; <strong>panic</strong>!  Ok, well it’s not quite that bad, but with the last IPv4 addresses being allocated to their local registries, that time is certainly getting very close. <a href="http://www.potaroo.net/tools/ipv4/">This site</a> suggests we have only got until 21st April before IPv4 address space runs out. Only last week Microsoft paid Nortel $11 per IPv4 address for 660,000 IP addresses ($7.5m in total) so they could ensure they had enough to keep going.</p>
<p>Excuse me while I look down the back of the sofa for some IP addresses &#8230; OK, I’m back now, no IP addresses, but I did find 27p and an old dog chew.</p>
<p>Anyway, on a serious point, the solution to this problem is IPv6, which has been around forever in internet terms &#8211; since December 1995 in fact when RFC1883 was published.</p>
<p>IPv6 means that every man, women, dog and insect can have their own ip address (or block of IP address), because it uses a different numbering system to IPv4, allowing for far more addresses. IPv4 uses a 32 bit addressing system (theoretically allowing a miniscule maximum of 4,294,967,296 addresses, though in practice many are wasted), whereas IPv6 uses a 128 bit system, theoretically allowing for 340,282,366,920,938,463,463,374,607,431,768,211,456 addresses, or very roughly one trillion per grain of sand on the earth (grains of sand are big users of IP).</p>
<p>Despite IPv6 being around for about 16 years now, there hasn&#8217;t been much pressure for network or hosting providers to take it up, but with IPv4 running out, that’s all changing.</p>
<p>Extility 1.3 has full capabilities for IPv6 built in, including assigning individual subnets to customers and a complete firewall service. We are one of the first in the world to offer this capability.</p>
<p>If you would be interested in finding out more, please let us know at <a href="mailto:sales@flexiant.com">sales@flexiant.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexiant.com/2011/04/ipv6-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction to Extility</title>
		<link>http://www.flexiant.com/2011/04/introduction-to-extility-2/</link>
		<comments>http://www.flexiant.com/2011/04/introduction-to-extility-2/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 21:25:35 +0000</pubDate>
		<dc:creator>Tony Lucas</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://blog.flexiant.com/?p=958</guid>
		<description><![CDATA[I&#8217;ve just arrived back from a successful week launching Extility to the US market at Cloud Connect, and have been blown away by the response to it.  I think it&#8217;s worth spending some time explaining Extility, how it works, and what it does in a little more detail. Extility is Flexiant&#8217;s software that powers the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just arrived back from a successful week launching Extility to the US market at Cloud Connect, and have been blown away by the response to it.  I think it&#8217;s worth spending some time explaining Extility, how it works, and what it does in a little more detail.</p>
<p>Extility is Flexiant&#8217;s software that powers the FlexiScale cloud platform, which we also license directly to service providers and companies building their own public or private clouds. Extility is a little unusual, as we provide a complete end-to-end solution. You can start with a few of your own physical servers a switch and some storage, add our software on top, and you have a complete working end-to-end cloud platform, including server/storage/network management, customer management, billing/chargeback, customer self-service, reporting etc.  You name it, we&#8217;ve pretty much written support for it.</p>
<p>But that&#8217;s not all. We have designed Extility in a very modular fashion, which allows us to integrate easily with any of your existing CRM/Billing/Management systems.  The one thing we are not is a &#8216;black box&#8217;, quite the opposite in fact.</p>
<p>Anyway, that&#8217;s what we do, and below is a brief outline of the key components of the platform, which we will cover in more detail in future posts.</p>
<h3>Hypervisor Support</h3>
<div id="_mcePaste">Extility is &#8216;hypervisor agnostic&#8217; &#8211; i.e. we don&#8217;t depend on any particular hypervisor.  Xen 3 and KVM are fully supported, Xen 4 and VMWare are coming soon.</div>
<h3>Customer UI/API</h3>
<div>Extility provides a complete web-based end-user interface, which in turn uses our API (also exposed to customers).  This allows for licensees to customise and integrate it into their existing systems, and for customers to directly integrate into their systems if they require it.</div>
<h3>Customer Management</h3>
<div>Extility has a complete customer management system, allowing you to handle anything required during a customer&#8217;s lifecycle quickly and easily. We call it the &#8216;Admin Control Panel&#8217;, or AdminCP for short. I&#8217;ll post more on AdminCP later.</div>
<h3>Automatic Signup</h3>
<div>As part of the customer management system, we offer a readymade signup system that deals with verifying and validating customers that is easily integrated into your existing website.</div>
<h3>Fraud Detection</h3>
<div>One of the problems with any on-demand automatic signup platform (for cloud or anything else) is the increased risk of fraud.  To combat that Extility has multiple fraud detection features built in, including address checking, 3DSecure, Geo-IP checking and more.</div>
<h3>Metering/Billing</h3>
<div>Extility has an advanced metering and billing service that allows you to configure the products available to customers and/or users, complete with detailed usage statistics and reporting capabilities.</div>
<h3>Reporting</h3>
<div>Speaking of reporting, Extility includes the ability to produce a wide range of reports to show how the platform is operating, including signups, billing, usage etc.</div>
<h3>Resellers</h3>
<p>Our whole UI can be white labelled, and we provide full reseller capability.</p>
<h3>Networks</h3>
<div>Extility fully supports public and private VLANs, and also includes VLAN Interworking, allowing direct integration into existing physical datacentre networks.</div>
<div></div>
<h3>Storage</h3>
<div>Extility has deep integration into a growing number of storage systems, including Oracle 7000 Series, NetApp, 3PAR and more.</div>
<h3>Extility Storage Gateway</h3>
<div>We appreciate that not every customer wants to build their cloud when they are starting off using expensive SAN technology, so we have build support for a generic ZFS filesystem into the software using OpenSolaris.  This allows customers to build their own storage array using whichever hardware suits them best or they already have invested in.</div>
<h3>Servers</h3>
<div>Extility supports all servers that have Intel VT or equivalent support in their processors.  We recommend a minimum of 8gb of Ram, and no upper limit.</div>
<h3>APIs</h3>
<div>Extility uses APIs both for external communication and internally between different modules.  This enables customers to deeply integrate their existing systems directly into the platform.</div>
<h3>High Availability</h3>
<div>Because of the unique way we build the platform with network storage, Extility supports live migration and live recovery as standard.  This allows us to perform virtual machine recovery with little or no interruption to customers if any hardware was to fail.</div>
<div id="_mcePaste">That&#8217;s a summary of the key underlying technologies in the platform, there will be a series of posts going into this in more detail soon.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.flexiant.com/2011/04/introduction-to-extility-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AWS / Eucalyptus Metadata Compatibility</title>
		<link>http://www.flexiant.com/2010/12/aws-eucalyptus-metadata-compatibility/</link>
		<comments>http://www.flexiant.com/2010/12/aws-eucalyptus-metadata-compatibility/#comments</comments>
		<pubDate>Wed, 08 Dec 2010 16:02:06 +0000</pubDate>
		<dc:creator>Tony Lucas</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://blog.flexiant.com/?p=1213</guid>
		<description><![CDATA[A small number of public cloud providers have a metadata service that allows virtual machines to configure themselves. We launched ours a few months ago. Today we are announcing that we have made it easier for customers to share images between FlexiScale, AWS and Eucalyptus, and thus have also made it easier to move servers [...]]]></description>
			<content:encoded><![CDATA[<p>A small number of public cloud providers have a metadata service that allows virtual machines to configure themselves. We <a href="http://blog.flexiant.com/?p=939">launched</a> <a href="http://www.flexiant.com/reference/metadata/">ours</a> a few months ago.</p>
<p>Today we are announcing that we have made it easier for customers to share images between FlexiScale, AWS and Eucalyptus, and thus have also made it easier to move servers between them. In addition to our native metadata service, we now provide an AWS compatible metadata service.</p>
<p>This experimental feature is currently in beta test, and we recognise that it isn&#8217;t yet fully functional. We don&#8217;t, for instance, currently support user-data. However, you can boot most unbundled AMIs, once you have put them into a disk image with a kernel and a partition table. See our <tt>fsmaker</tt> utility <a href="http://www.flexiant.com/reference/image-creation/">here</a> for one way to do this, though there are many others.</p>
<p>To access AWS compatible metadata, you can either use existing tools  (e.g. the <tt>euca2ools</tt> suite), or parse it yourself by accessing the following URL from your VM (note that this link will not work from outside a VM):</p>
<p style="padding-left: 30px;"><tt>http://169.254.169.254/latest/meta-data</tt></p>
<p>If you access our metadata service using AWS compatibility mode, you will not get the full richness of data we offer. Our native meta-data service includes far more extensive configuration options. However, it should certainly help with making images compatible.</p>
<p>As an example, we have been booting the <a href="http://uec-images.ubuntu.com/releases/natty/alpha-1/">Ubuntu UEC Natty Narwhal images</a> (download the tarball and untar to get the unbundled image). These correctly populate the openssh key stores and so forth.</p>
<p>Watch this space for more updates!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexiant.com/2010/12/aws-eucalyptus-metadata-compatibility/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scheduling Servers</title>
		<link>http://www.flexiant.com/2010/12/scheduling-servers/</link>
		<comments>http://www.flexiant.com/2010/12/scheduling-servers/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 10:41:22 +0000</pubDate>
		<dc:creator>Tony Lucas</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://blog.flexiant.com/?p=966</guid>
		<description><![CDATA[Have any of the following ever happened to you? You don&#8217;t actually need all of your servers on 24/7, but whilst you try to remember shut them down at the end of the day, you keep forgetting; You need to organise a reboot for 3am to complete an upgrade, and really don&#8217;t fancy staying up [...]]]></description>
			<content:encoded><![CDATA[<p>Have any of the following ever happened to you?</p>
<ol>
<li>You don&#8217;t actually need all of your servers on 24/7, but whilst you try to remember shut them down at the end of the day, you keep forgetting;</li>
<li>You need to organise a reboot for 3am to complete an upgrade, and really don&#8217;t fancy staying up until then; or</li>
<li>You regularly need to run servers at specified times for specified periods and want to keep track of them.</li>
</ol>
<p>Well, if so, you&#8217;re not alone. It turns out these do happen to lots of our customers. So, we have introduced a new feature in the API which you will find useful, called <tt>CreateScheduledServerJob</tt> (more details via the <a href="http://www.flexiant.com/reference/api">API</a> page). This call allows you to schedule server stops and starts at any time in the future quickly and easily.</p>
<p>In a future release we will add support for this in the UI as well, so if you have any feedback on how you would like to see that done, please let us know.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexiant.com/2010/12/scheduling-servers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FreeBSD on FlexiScale &#8211; Clever Customers</title>
		<link>http://www.flexiant.com/2010/11/freebsd-on-flexiscale-clever-customers/</link>
		<comments>http://www.flexiant.com/2010/11/freebsd-on-flexiscale-clever-customers/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 17:30:19 +0000</pubDate>
		<dc:creator>Tony Lucas</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://blog.flexiant.com/?p=1184</guid>
		<description><![CDATA[Just a quick post to let anyone interested in FreeBSD on FlexiScale that the clever guys at Hybrid Logic have written a really easy guide on how to get it up and running, which is available here. We&#8217;d add that once you&#8217;ve used Luke&#8217;s method once, you can use FlexiScale&#8217;s &#8220;Make Image&#8221; functionality to produce [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick post to let anyone interested in FreeBSD on FlexiScale that the clever guys at Hybrid Logic have written a really easy guide on how to get it up and running, which is available <a href="http://www.hybrid-cluster.com/#/blog/2010/11/running-freebsd-8-1-as-a-xen-hvm-domu-on-flexiant/">here</a>. We&#8217;d add that once you&#8217;ve used Luke&#8217;s method once, you can use FlexiScale&#8217;s &#8220;Make Image&#8221; functionality to produce a FreeBSD image you can use again and again.</p>
<p>We don&#8217;t officially support FreeBSD at the moment, but if there is a reasonable demand for it we&#8217;d be happy to look further at it, so please let us know.</p>
<p>We are discovering neat tips, tricks and technologies that our customers are building on top of our platform all the time. If you would like to be featured please drop us an e-mail via the support channel.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexiant.com/2010/11/freebsd-on-flexiscale-clever-customers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Image Verification</title>
		<link>http://www.flexiant.com/2010/11/image-verification/</link>
		<comments>http://www.flexiant.com/2010/11/image-verification/#comments</comments>
		<pubDate>Thu, 25 Nov 2010 09:02:59 +0000</pubDate>
		<dc:creator>Tony Lucas</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://blog.flexiant.com/?p=1000</guid>
		<description><![CDATA[Today, as part of the FlexiScale 2.2 release, we have rolled out a feature called Image Verification. Images often need to make a call-out to the image vendor on boot, for instance to obtain licence keys. One challenge image vendors have is to determine whether that call-out comes from a real image, or someone impersonating [...]]]></description>
			<content:encoded><![CDATA[<p>Today, as part of the <a href="http://blog.flexiant.com/?p=1002">FlexiScale 2.2 release</a>, we have rolled out a feature called Image Verification. Images often need to make a call-out to the image vendor on boot, for instance to obtain licence keys. One challenge image vendors have is to determine whether that call-out comes from a real image, or someone impersonating that image, i.e. to verify the identify of the image. Whilst image vendors can use passwords or client side certificates to do this, there&#8217;s always a risk that if these are discovered, someone has &#8220;the keys to the castle&#8221;. Image verification circumvents that.</p>
<p>Every Image that exists on our platform is assigned a unique and secret key, which is only available to the image owner. Each server is also assigned a unique key, which is available to the owner of the server, and through the server&#8217;s metadata. We also compute a hash of these two (called the Image Server Hash), and present that to the image using the metadata. Assuming the image is appropriately locked using our Image Permissions feature, this can be passed to the image vendor together with the server&#8217;s own key and the image&#8217;s id number (in case the image vendor has multiple images). The image vendor can then ascertain whether it is the right image making the call out. Obtaining one Image Server Hash would only allow impersonation of a single server.</p>
<p>The steps involved are explained in more detail below.</p>
<h3>Image Creation</h3>
<p>On creation of an image, the image is assigned a random Image Key (a 256 bit number represented as a 64 character hexadecimal string). The Image Key is available to the Image Owner (only) to read through the API using the ListImageTemplates call, but never appears within the metadata presented to any VM. This ensures it is private to the image owner.</p>
<pre>Sample Image Key:  542246391f5ef2de58c66c21165c39672b703a272c9493b122edc75e47ba9d7a</pre>
<h3>Server Creation</h3>
<p>On creation of a server, the server is assigned a random Server Key (once again, a 256 bit number represented as a 64 character hexadecimal string). The Server Key forms part of the Server/System metadata and is available to read through the API by the server owner using the <tt>GetServer</tt> API call. This is private to the server owner except (as set out below), but as it forms part of the system metadata, it is also exposed to the server (and thus, potentially, the image provider).</p>
<pre>Sample Server Key: 56dc5eb4661dac003f6019a07349d2b326c02ee2aca93e502fa0017f7cd0a6e0</pre>
<p>On creation of the server, we also create an Image Server Hash. This is an SHA-256 hash of the ASCII concatenation of the hexadecimal Image Key and the hexadecimal Server Key. It too is presented as a 64 character hexadecimal string. Like the Server Key, this forms part of the Server/System meta-data. As such it is available to read through the API by the server owner using the <tt>GetServer</tt> API call. Again, as it forms part of the system metadata, it is also exposed to the server (and thus, potentially, the image provider). Due to the one way nature of hashing, knowledge of the Image Server Hash, even when combined with the knowledge of the Server Key, will not allow a deduction of the Image Key.</p>
<pre>Sample Image Server Hash: 74d796f800f7dfa8b40be760d207eede752e029556a7cd2927a53b01713a9659</pre>
<p>TIP: You can test these to show this works by rehashing the keys and comparing them <a href="http://www.xorbin.com/tools/sha256-hash-calculator">here</a></p>
<h3>Why is this useful?</h3>
<p>The Image may need to authenticate to the image provider’s system. By this we mean make some call out to the image provider&#8217;s own systems (e.g. to obtain a license key) perhaps using http. The image would provide the image_id from the metadata (and that will allow the image provider, who knows all the Image Keys she has generated, to deduce the Image Key), the Server Key and the Image Server Hash. The image provider can then compare the Image Server Hash it generates with the one presented to authenticate the user. As only the server concerned can read the Image Server Hash, presentation of the (Server Key, Image Server Hash) tuple verifiably indicates that the Image Server Hash has been obtained from a server created with that image.</p>
<p>For instance, the image provider might use a concatenation of the Image ID and the Server Key (possibly plus a prefix indicating “flexiscale”) as a username, and the Image Server Hash as a password, and use simple https authentication, verifying the image provider&#8217;s SSL certificate to ensure that the VM is actually talking to the image provider.</p>
<p>As the Server Keys are unique, if this authentication is done periodically (rather than just on first boot) an Image Provider can get a good idea how many of her images are running simultaneously.</p>
<h3>But what stops a user just copying the Image Server Hash?</h3>
<p>Firstly, the machine should be appropriately locked to ensure this does not happen. Our <a href="http://blog.flexiant.com/?p=995">Image Permissions</a> functions help here. The Image Server Hash should be sent over an encrypted session to ensure it isn&#8217;t snooped.</p>
<p>However, even if a customer (or a third party) obtains a copy of the Image Server Hash, it&#8217;s not a disaster. Whilst the (Server Key, Image Server Hash) tuple may be ported by a user with access to that virtual machine to another machine, the fact that multiple IP addresses are now requesting simultaneous authentication with the same server ID is both detectable and traceable, and can result in a refusal to authenticate; abusers can be quickly locked out by black-listing their Server Key.  Compare this to the situation without this protection, where a shared secret of some sort is stored in the image. Revealing that effectively gives away a &#8216;master license key&#8217;.</p>
<h3>Possible uses</h3>
<p>This feature has a wide variety of applications. Any situation where an image provider needs to know that it&#8217;s their own image that&#8217;s talking to them, and not someone synthesizing a fake authentication call can use this as part of their cryptographic armory. Of course, the image itself needs to be appropriately locked down or the authentication call could simply be removed. That&#8217;s what our new <a href="http://blog.flexiant.com/?p=995">image permissions</a> feature is for.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexiant.com/2010/11/image-verification/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Image Permissions</title>
		<link>http://www.flexiant.com/2010/11/image-permissions/</link>
		<comments>http://www.flexiant.com/2010/11/image-permissions/#comments</comments>
		<pubDate>Thu, 25 Nov 2010 09:02:47 +0000</pubDate>
		<dc:creator>Tony Lucas</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://blog.flexiant.com/?p=995</guid>
		<description><![CDATA[Wev&#8217;e been doing a lot of work on enhancements to our image management system. This is partly to make it easier for third party image providers to provide appliances for our platform (psst, if you are interested in providing your virtual appliance on our platform drop us a e-mail and we can tell you more), [...]]]></description>
			<content:encoded><![CDATA[<p>Wev&#8217;e been doing a lot of work on enhancements to our image management system. This is partly to make it easier for third party image providers to provide appliances for our platform (psst, if you are interested in providing your virtual appliance on our platform drop us a e-mail and we can tell you more), but is also useful for end users. Some of these improvements are included in the <a href="http://blog.flexiant.com/?p=1002">FlexiScale 2.2 release</a>. The remainder will be released in early 2011.</p>
<p>We&#8217;ve added some rather clever new functionality that along with the <a href="http://blog.flexiant.com/?p=1000">Image Verification</a> system allows you a fine degree of control on what can be done with your images. If you are an image provider, that translates into what the users of your images can do once your images are made public.</p>
<h2>Capabilities</h2>
<p>You can now customize exactly what someone using your image can and can&#8217;t do with it.</p>
<p>FlexiScale by default allows customers to do all sorts of things that they wouldn&#8217;t normally be able to do as an end user e.g. detach disks, resize them, add additional capacity, take snapshots, create new images and so on.</p>
<p>Whilst that&#8217;s normally a good thing, it isn&#8217;t necessarily a good thing for image providers, who might have proprietary software on the disks for which they charge using licence keys, or might simply want to protect their configuration to ensure support can be given consistently.</p>
<p>Well our Capabilities system is the answer to this. You can now limit customers&#8217; ability to perform a wide variety of options against a server created from your image. The operations you can control are as follows:</p>
<ul>
<li>Can Clone: They are able to create clone disks from the existing one;</li>
<li>Can Snapshot: They are able to take snapshots of a disk;</li>
<li>Can Image: They are able to create a new image from their server;</li>
<li>Can Have Additional Disks: Allows them to add additional disks to a server;</li>
<li>Can be Secondary Disk: Allows another disk to become the boot disk on a server;</li>
<li>Can Console: Allows them to start a console to the server;</li>
<li>Can Start: Allows them to start the server;</li>
<li>Can Create Server: Allows them to create a server from the image; and</li>
<li>Can be detached from Server: Allows them to detach the disk from the original server.</li>
</ul>
<p>Obviously some of these capabilities are dependent on one another, and some can be used to circumvent other ones, so you need  to pick your capabilities carefully.</p>
<p>These capabilities do not apply to the image owner, so the image owner can still do any of the above tasks irrespective of the capabilities set. Capabilities only affect other users of a public image. Note that allowing someone to make a new image from your existing image will wipe any and all permission restrictions from their new image, as they will be the owners of that new image.</p>
<p>To illustrate this, we have set out a few use cases below:</p>
<h3>Case 1: ISV with a Licensed Virtual Appliance</h3>
<p>We are currently working with a number of ISVs who wish to use FlexiScale (or Extility) as a route to market for their software.  They provide a virtual appliance with full support, and without customer access, except perhaps via a web-based configuration page. They thus want to ensure:</p>
<ul>
<li>That customers don&#8217;t tamper with and change things they shouldn&#8217;t;</li>
<li>That customers can&#8217;t breach any protection that might be in place for their IPR;</li>
<li>That the machine can&#8217;t be cloned/manipulated to avoid paying multiple license fees; and</li>
<li>That the customer customer can still add additional diskspace and take snapshot backups if required.</li>
</ul>
<p>In this case the ISV would set the following capabilities:</p>
<ul>
<li>Can Snapshot: End customers are able to take snapshots of a disk;</li>
<li>Can Have Additional Disks: Allows them to add additional disks to a server;</li>
<li>Can Start: Allows them to start the server;</li>
<li>Can Create Server: Allows them to create a server from the image.</li>
</ul>
<p>They would then leaving the remaining capabilities disabled.</p>
<h3>Case 2: ISV With MAC Address Licensing System</h3>
<p>If (as a number of ISVs do) they use individual server MAC (Network Card) addresses as validation for a license key, they would be less concerned about a VM being cloned into more servers, but still retain concerns about the image being manipulated.  They also gives customers access to a non-privileged SSH account for adding the key and charge based on the disk capacity supplied in the server.</p>
<p>In that instance they would allow the following capabilities:</p>
<ul>
<li>Can Clone: End users are able to create clone disks from the existing one;</li>
<li>Can Snapshot: They are able to take snapshots of a disk;</li>
<li>Can Console: Allows them to start a console to the server;</li>
<li>Can Start: Allows them to start the server; and</li>
<li>Can Create Server: Allows them to create a server from the image.</li>
</ul>
<h3>Case 3: GPL Based Image</h3>
<p>If an image provider was to provide a GPL based image that they were happy for other people to redistribute, they would leave all capabilities enabled. The image provider might then earn a revenue stream from support.</p>
<h2>Image Verification</h2>
<p>Image permissions and capabilities go hand in hand with another feature we&#8217;ve rolled out: <a href="http://blog.flexiant.com/?p=1000">Image Verification</a>.  See an upcoming blog post for that.</p>
<h2>The future</h2>
<p>We&#8217;ve got a lot more work in this area under way. Check back in a month or two and you will be pleasantly surprised.</p>
<h2>Summary</h2>
<p>Capabilities play an important part in the tools we are launching for image providers and ISVs. Combined with the meta-data service, image verification and other features to be launched soon, it really is the perfect platform to use!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexiant.com/2010/11/image-permissions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSH Keys</title>
		<link>http://www.flexiant.com/2010/11/ssh-keys-2/</link>
		<comments>http://www.flexiant.com/2010/11/ssh-keys-2/#comments</comments>
		<pubDate>Thu, 25 Nov 2010 09:02:36 +0000</pubDate>
		<dc:creator>Tony Lucas</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://blog.flexiant.com/?p=999</guid>
		<description><![CDATA[As you may have read in our FlexiScale 2.2 blog post we have just rolled out a feature that lets you add your own SSH public keys into servers you create using FlexiScale. So how does it all work? Well it&#8217;s quite simple really.  Your SSH keys are assigned to your customer account, so you [...]]]></description>
			<content:encoded><![CDATA[<p>As you may have read in our <a href="http://blog.flexiant.com/?p=1002">FlexiScale 2.2</a> blog post we have just rolled out a feature that lets you add your own SSH public keys into servers you create using FlexiScale.</p>
<p>So how does it all work? Well it&#8217;s quite simple really.  Your SSH keys are assigned to your customer account, so you can easily add multiple keys for different users.</p>
<p>You add them via the API or UI, then our own Linux images will retrieve them on first boot up and populate the relevant ssh directories. You can then ssh to the box without using a password, safe in the knowledge that this operation requires your ssh private key.</p>
<p>The keys are transported using our meta-data service, so you can also use our <a href="http://www.flexiant.com/reference/image-creation/">first boot scripts</a> in  your own images to achieve similar functionality.</p>
<h2>Adding SSH Keys</h2>
<p>To add an SSH key into your account via the UI you need to follow these steps:</p>
<ul>
<li>Login to your account (it helps to do this!)</li>
<li>Click settings in the top bar.</li>
<li>Click List SSH Keys in the box near the bottom (screenshot below)</li>
</ul>
<p><a href="http://109.231.72.179/wp-content/uploads/2010/11/screenshot-0-e1290440489273.jpg" rel="prettyPhoto[999]"><img src="http://109.231.72.179/wp-content/uploads/2010/11/screenshot-0-e1290440489273.jpg" alt="SSH Keys" width="587" height="471" /></a></p>
<p>This will then bring up a page that looks like this:</p>
<p><a href="http://109.231.72.179/wp-content/uploads/2010/11/screenshot-1-e1290440511942.jpg" rel="prettyPhoto[999]"><img src="http://109.231.72.179/wp-content/uploads/2010/11/screenshot-1-e1290440511942.jpg" alt="SSH Screenshot" width="580" height="370" /></a></p>
<p>From here you can add your first SSH Key by clicking Add SSH Key.</p>
<p>It will bring up a further window, that looks like this:</p>
<p><a href="http://109.231.72.179/wp-content/uploads/2010/11/screenshot-2-e1290440539432.jpg" rel="prettyPhoto[999]"><img src="http://109.231.72.179/wp-content/uploads/2010/11/screenshot-2-e1290440539432.jpg" alt="SSH Screenshot" width="591" height="430" /></a></p>
<p>You then have three fields to fill in:</p>
<ul>
<li>Username (Linux/Unix username that this key is attached to)</li>
<li>SSH Key (the encryption identifier, the key itself, and the label, i.e. a single line such as you would find in your <tt>authorized_hosts</tt> file)</li>
<li>Description (A unique description for your own use)</li>
</ul>
<p>If you leave the user name blank, it will add the key to the default user for the image (so &#8216;ubuntu&#8217; on Ubuntu, &#8216;root&#8217; on the others). Note that we don&#8217;t create users, so any user that isn&#8217;t present on first boot will not have ssh keys populated.</p>
<p>Once you&#8217;ve added this, any server you start using our images will be automatically populated with those keys. Your own images can retrieve these via a special section of the <a href="http://www.flexiant.com/reference/metadata">metadata service</a>.</p>
<p>It&#8217;s as simple as that!  As usual we continue to develop features that are there to make your life easier.  We receive feature requests all the time, and keep track of each and every one of them, so please do let us know if there is a feature you are desperate for!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexiant.com/2010/11/ssh-keys-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FlexiScale 2.2 Release</title>
		<link>http://www.flexiant.com/2010/11/flexiscale-2-2-release/</link>
		<comments>http://www.flexiant.com/2010/11/flexiscale-2-2-release/#comments</comments>
		<pubDate>Thu, 25 Nov 2010 09:02:21 +0000</pubDate>
		<dc:creator>Tony Lucas</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://blog.flexiant.com/?p=1002</guid>
		<description><![CDATA[It feels like no time has passed since we released FlexiScale 2.1 (about 6 weeks or so actually), but there are so many great things happening here it was time for a roll-out of even more new features. SSH public key support You can now add SSH public keys to your customer account using either [...]]]></description>
			<content:encoded><![CDATA[<p>It feels like no time has passed since we released FlexiScale 2.1 (about 6 weeks or so actually), but there are so many great things happening here it was time for a roll-out of even more new features.</p>
<h2>SSH public key support</h2>
<p>You can now add <a href="http://blog.flexiant.com/?p=999">SSH public keys</a> to your customer account using either the UI or the API. These keys are then installed on any server you create, allowing you securely to log into any such server without having to type a password.</p>
<p>This is something that we&#8217;ve been keen to do for a while, and we know how useful it is, as copying and pasting a cryptic password is not very convenient. There is no need to generate new keys, you are able to use your existing keys and just add them into FlexiScale. We&#8217;ve used our meta-data service to transit the ssh public keys, so you can use this method to populate the keys on your own images too.</p>
<h2>Image Permissions and Image Verification</h2>
<p>Speaking of the meta-data service, we&#8217;ve added another couple of new features.</p>
<p>Firstly, the ability to set granular <a href="http://blog.flexiant.com/?p=995">permissions on images</a>.  An image can be locked prior to being made public, which can prevent a user of that image doing certain types of action with it, for instance cloning the disks or even opening a console. This allows, for instance, image vendors to provide appliance images securely to customers. We believe this is a first (yet again) for any Cloud software provider.</p>
<p>Secondly, we&#8217;ve have rolled out a feature called <a href="http://blog.flexiant.com/?p=1000">Image Verification</a>. This allows image providers to make a call out from their image, and securely verify that the call comes from an instance of that image. There&#8217;s some funky cryptography behind this that we&#8217;ll explain in another blog post.</p>
<p>These two features form part of a range of image management improvements we are making, the remainder coming with a major upgrade we&#8217;ll be releasing in the new year.</p>
<h2>UI Improvements</h2>
<p>Alongside this release we&#8217;ve made a number of improvements to the UI:</p>
<ul>
<li>Integration of the meta-data service into the UI;</li>
<li>Ability to manage configuration of servers while they are running;</li>
<li>Improved image management functionality;</li>
<li>Improved Network management; and</li>
<li>Improved responsiveness of the server start/stop screen (less waiting around to tell whether your server has started).</li>
</ul>
<h2>And as always</h2>
<p>We&#8217;ve also implemented over eighty minor feature enhancements and bug fixes, ranging from performance enhancements, through business logic improvements, to new API calls. As usual, our API documentation has been updated and can be found in the <a href="http://www.flexiant.com/reference/">reference section</a> of our web site.</p>
<p>That&#8217;s all for now &#8211; more updates coming soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexiant.com/2010/11/flexiscale-2-2-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

