August 16, 2010
Will Dell launch a packaged private cloud solution?

Dell are without doubt the masters of taking complex IT hardware and software solutions and turning it into a simple matter of ordering a complete solution through a website, with little or no sales team interaction. While Dell do have a direct sales force, their channel partnerships are much more limited, and you’re unlikely to find a major IT services company pushing Dell as their hardware supplier of choice.

For the last year and a bit, Cisco have been making a splash in the high-end server market with their UCS system, a blade computing system with a highly integrated management platform which can plug into your Cisco network and storage switches and EMC disk arrays to build a dynamic computing platform especially suited to rapidly deploying public or private cloud computing platforms. These UCS systems have generally been sold direct by Cisco, through large IT services companies, and through their Acadia cloud computing joint-venture.

While IBM and HP both have somewhat limited alternatives to Cisco UCS and the fully managed virtualisation “vBlock” package sold by Cisco, EMC and VMware, noone has released a fully developed alternative yet.

In the mean-time, Dell have made some big strides in the public cloud market, with the Dell Data Center Solutions team building custom cloud solutions for customers, andmore recently they’ve purchased Scalent, which provides a high-end system management tool which can configure servers, storage and networking from multiple suppliers. Today they’ve announced their plans to buy 3Par, one of the mid-sized fibre channel storage array suppliers.

3Par may not have the size or financial clout of EMC or NetApp, they definitely have the fundamental technology to compete with them both, and with Dell as the financial backers their R&D budgets should be increased to help them compete both with technology and with pricing.

Post-acquisition, Dell will have almost all the in-house technology to launch an off-the-shelf vBlock competitor, so perhaps the real question is will you be able to buy your new private cloud from the Dell.com online configuration tool, or would Dell rather you engage with a sales team before you buy your new IT platform from them?

Bookmark and Share
August 6, 2010
Public clouds and the right to terminate

If you pay much attention to IT people on Twitter, blogs, and at conferences you’ll hear a lot of arguments about public vs private clouds, essentially around whether or not a “Private Cloud” can really exist, make any sense, and achieve the level of pricing and scalability that a “Public cloud” (like Amazon EC2 or Rackspace Cloud) can achieve. There’s also plenty of people who’d say that a private cloud can achieve better security than a public cloud, though I’m not sure I’d agree fully with that.

What I do think though is that there is one fundamental difference between a public and private cloud, and it’s not a technical but a contractual one - the right of the public cloud supplier to terminate your service.

In the Amazon Web Services Customer Agreement, section 3.3.2 currently states:

3.3.2. Paid Services (other than Amazon FPS and Amazon DevPay). We may suspend your right and license to use any or all Paid Services (and any associated Amazon Properties) other than Amazon FPS and Amazon DevPay, or terminate this Agreement in its entirety (and, accordingly, cease providing all Services to you), for any reason or for no reason, at our discretion at any time by providing you sixty (60) days’ advance notice in accordance with the notice provisions set forth in Section 15 below.

To me, this is a fundamental difference between a public and private cloud, and why private clouds are being built, and will continue to be built for the foreseeable future.

In a public cloud, the supplier will always want to retain the right to terminate your service if you are doing something they don’t like, and right now there’s no easy way to migrate your services to a new supplier.

Perhaps once the cloud migration tools have achieved a level of functionality and stability that a 60 day notice period isn’t an issue, then public clouds will take another step towards becoming the dominant form of IT services provision.

Bookmark and Share
August 4, 2010
The future of clouds - “Cheap and cheerful” or “Big Iron”?

Ever since the 1980s there’s been a split in computing hardware, on one side the new “cheap and cheerful” world of PC hardware, and on the other side the old school of “Big Iron”, IBM mainframes which run for years or even decades with no downtime.

If you speak to a mainframe engineer, they’ll tell you that 90% of cloud computing isn’t new, they’ve been doing on-demand workloads, billing based on resource usage, multiple customers on one system, and unified system management since the 1960s.

Now that we’re entering the cloud computing era, IBM mainframes are seeing a big rise in popularity, with IBM producing specialised mainframes designed for running 1000s of Linux virtual machines, and Cisco, EMC and VMware are working together on their VBlock systems, which are essentially their interpretation of a modern mainframe - very serious hardware and software mixed together to get a platform that should essentially never fail. This is the modern “Big Iron”, designed to provide service providers and enterprises the security and confidence to move their most critical systems onto a single unified platform powering a private cloud.

In the public clouds though, cheap and cheerful has already taken the lead, with Amazon, Google and others running their systems on what are essentially the cheapest systems they can get their hands on, going so far as to design their own custom systems without components they don’t need, and easily replaceable power supplies and hard drives because they know these components will fail regularly.

The question now is will one concept take a hold in the opposite marketplace - will service providers start buying VBlock systems in large numbers and building large public clouds of 100,000 machines, or will enterprises start buying 1000s of customised PCs from people like Dell Cloud Computing Solutions and putting open-source solutions like Ubuntu Enterprise Cloud on to it?

Personally, while I can see some cross-over of both, I think in general the 2 solutions will remain largely separate - in the largest of public clouds, it’ll be worth the customisation effort of the service provider to build their own solution, but for enterprise and smaller service provider systems, the cost of customisation and on-going support outweighs the savings of cheaper hardware and software, plus of course the trust factor of buying a complete solution from a supplier like IBM or Cisco is crucial for most enterprise environments.

Bookmark and Share
August 4, 2010
A Kindle or a house extension?

There’s been lots of discussion only recently about ebooks and the new Kindle in particular, covering all the downsides of the Kindle and it’s competitors in the ebook market.

All the downsides of ebooks are real and valid:

  • You lose the look, smell and feel of the books we grew up with
  • You can’t resell or give away your books once you’re finished with them
  • Library borrowing is awkward at best, impossible on the Kindle
  • You own your own books, noone can take it away unlike Amazon did with George Orwell’s 1984
  • You can take a book in the bath or the rain, worst case, you damage one book
  • Regular paperback books are generally cheaper than ebooks - this is true, and very silly

And I’m sure there’s dozens of others that are equally valid, but they don’t outweigh one single huge upside of ebooks for me:

  • Space is expensive!

I’ve recently given boxes and boxes of books to charity, after I moved house and had nowhere to put my old books. At first, I kept them in the perfect storage space - my parents house, but that’s not really a long-term solution is it? A Kindle will store over 3000 books, and if you somehow fill it, then you can delete some of books from the device and re-download them in the future, Amazon retain your purchase list and let you retrieve the files whenever you want.

Of course there’s other nice things about the Kindle, the 3G web access in 100 countries is a fantastic feature for people who like to travel while keeping in touch with people, text searching of books to find a quote you’re hunting for, the flexibility of being able to access 500,000 or more books on demand, but fundamentally it’s the space.

So if someone else tells you the Kindle is too expensive and ebooks cost too much, ask them how much it would cost to build a library extension to my house so I can keep 3000 books in it :)

Bookmark and Share
July 20, 2010
OpenStack - The future of private and public clouds?

This week, Rackspace and NASA (a cloud computing pioneer), annouced a major contribution of source code to the open-source community, with the launch of OpenStack - a project to develop the software needed to deploy and operate a fully operational cloud computing solution.

Combining work from Rackspace, who run a large public cloud system, and NASA who were among the first to develop private cloud systems, the new OpenStack system currently consists of “OpenStack Object Store”, a cloud-scale storage solution based on Rackspace Cloud Storage, and the newly developed “OpenStack Compute”, the basis for an Amazon EC2 competitor providing computing infrastructure on demand.

So what do Rackspace get out of this? Well, if things go to plan for Rackspace, then in 5 years you’ll be running your applications on an OpenStack cloud, which Rackspace will manage either in their own data centre as part of the Rackspace public cloud or as a dedicated set of machines in a private cloud they host for you, or even as a hybrid cloud with a baseline cloud computing capacity in an enterprise’s own data centre, with extra capacity available on demand in the Rackspace cloud. Of course, you could choose to work with someone else on OpenStack, but Rackspace will be hoping you choose to stick with a company that obviously knows the code well and has been running it successfully for several years. There’s a video interview with one of the Rackspace Cloud founders on Redmonk where this subject comes up.

While these contributions from Rackspace and NASA are significant pieces of the cloud puzzle, the real work of OpenStack is still to come - they have signed up 25 partner organisations, and are now working hard on completing the development and testing of the systems, and adding functionality.

The possibilities for “OpenStart Compute” in particular are significant, with cooperation from across the industry, we could see the rapid inclusion of technologies like CloudAudit, which helps companies verify the security capabilites of a cloud computing platform, and “Open vSwitch”, a network switch that operates inside the cloud, providing the management and security capabilities of a physical network switch but without many of the limitatioons that go with physical cabling.

Assuming OpenStack develops positively, it’s likely that there will be rapid additions of new systems like an “OpenStack Message Queue”, and “OpenStack Block Storage”, though much of the development will depend on the willingness of contributors to either hand over code that is currently closed source, or to start again with a clean slate and re-develop solutions based on the lessons they’ve previously learnt.

The other possibility is that Amazon continues to take the majority share of the cloud computing market, continues to grow their economies of scale and overall cost leadership, adds functionality to match any new additions to OpenStack (currently Amazon S3 and EC2 more than match OpenStack’s capabilities), and people learn to live with the limitations of a public cloud secutiy model.

Either way, the future of computing is significantly different from the way it operates today for most organisations.

Bookmark and Share
April 21, 2010
Converting longwords.org from Postgres to MongoDB

I couldn’t find the time to get down to the No:sql(eu) Conference in London this week, but I did want to learn more about NoSQL databases, so I decided the best way to learn would be to move one of my existing websites from a traditional SQL database, to a nosql one.

I picked MongoDB almost at random, and my longwords.org website seemed to be the best option to switch, since I wrote it a couple of years ago and haven’t looked at it since, so it would be good to get to know it again. The site gets about 2500 unique visitors a month, so the traffic isn’t insignificant.

I split the migration process into 3 phases:

  1. Converting the data from Postgres to MongoDB
  2. Converting SQL queries into MongoDB Javascript
  3. Implementing MongoDB Javascript in MongoDB PHP statements

Converting the data from Postgres to MongoDB

Data conversion turned out to be the easiest part of the process.

Exporting data in Postgres is very easy, and longwords is based around 1 single table, so this command ran in psql dumped the data out into a CSV file:

\copy words to ‘/tmp/outputfile.csv’ delimiters ‘,’ with null as ‘0’

The next step was to import that data, which again took just 1 command

/usr/local/mongodb/bin/mongoimport -d wordsdb -c words -f word,number,votes,score —file /tmp/longwordslist.txt —type csv

Easy!

Creating the same indexes as had been in Postgres was simple too, from the mongo console I ran these commands in the new wordsdb database.

db.words.ensureIndex({score:-1});

db.words.ensureIndex({number:1}, {unique: true});

Converting SQL queries into MongoDB Javascript

This part took the longest, simply because I didn’t know the MongoDB syntax beforehand. The longwords site used 3 main select statements, one which pulled out the next word to display, one to return the top 10 list of most popular words, and one to return the count of total votes.

MongoDB query to return single word:

db.words.find({number:1000});

MongoDB query to return top 10 words:

db.words.find().sort( { score : -1 }).limit(10);

MongoDB query to return sum of votes:

db.words.group( { reduce: function(obj,prev) { prev.votes += obj.votes; }, initial: { votes: 0 } } );

Notice the last query makes use of the group function in MongoDB, which is a simplified interface to the MapReduce functionality, and can be used to produce the same result as the “sum(value)” function in SQL.

There were also 2 update statements for when people vote yes or no to a word. These queries needed to increment the number of votes that word has received, and to increment or decrement the score of that word, depending on if the person clicked yes or no.

MongoDB query to increase score and increase votes values:

db.words.update( { word:”ascosporous” }, { $inc: { score : 1, votes : 1 } } );

MongoDB query to decrease score and increase votes values:

db.words.update( { word:”ascosporous” }, { $inc: { score : -1, votes : 1 } } );

With these statements in place, I was ready to implement them in the MongoDB PHP module.

Implementing MongoDB Javascript in MongoDB PHP statements

This took a little bit of time, but really the format changes are pretty obvious once you get used to it.

MongoDB PHP code to return single word:

$totalwords=$words->count();

$randomlength=rand(1,$totalwords);

$result=$words->find(array(‘number’ => $randomlength));

MongoDB PHP code to return top 10 words:

$toprated = $words->find()->sort(array(“score” => -1))->limit(10);

$count=0;

while ($count<10)

{

$row = $toprated->getNext();

$rowword = ucfirst($row[word]);

echo $rowword;

$count++;

}

MongoDB PHP code to return sum of votes:

$keys = array();

$reduce = “function(obj,prev) { prev.votes += obj.votes; }”;

$initial = array(“votes” => 0);

$g = $words->group($keys,$initial,$reduce);

$votecount = $g[retval][0][votes];

MongoDB PHP code to increase score and increase votes values:

$words->update(array(“word” => $longword), array(‘$inc’ => array(“score” => 1,”votes” => 1)));

$words->update(array(“word” => $longword), array(‘$inc’ => array(“score” => -1,”votes” => 1)));

Results

There was really only 1 issue with the conversion, and it’s one that I still haven’t overcome - the query to return the sum of votes causes significant CPU usage, unlike the original SQL statement which was a simple “select sum(votes) from words” query.

Until I come up with a solution, I’ve disabled that small section of the longwords page, but hopefully I’ll find a suitable replacement statement. If you’ve got any suggestions, I’d love to hear them!

Other than that query, CPU and memory usage is minimal, as is disk I/O - there’s certainly nothing which would make me think that MongoDB isn’t a practical replacement for MySQL or Postgres for many websites.

Bookmark and Share
April 21, 2010
MongoDB init.d script for Linux

If you’re thinking of trying MongoDB, one thing you’ll notice that doesn’t come with the binary downloads is an mongodb init.d script for Linux distributions, so here’s mine. It’s based on having mongodb installed in /usr/local/mongodb with the binaries in the /bin directory under there, but if you’ve got the binaries somewhere else you just need to change one line at the top of the file.

All you need to do is download the file to your Linux server, rename it from mongodb.txt to mongodb and copy it to /etc/init.d, then fix the permissions. The following commands should do it

cp mongodb.txt /etc/init.d/mongodb

chmod 755 /etc/init.d/mongodb

chown root:root /etc/init.d mongodb

Finally, you just need to run the following 2 commands to set mongodb to start on boot:

chkconfig —add mongodb

chkconfig mongodb on

The script works on Centos, but should work fine on Ubuntu, RHEL, etc with minimal changes.

Bookmark and Share
April 20, 2010
"Our original goal was a switch that could connect 10,000 servers with a simple, 2-stage network, that would deliver predictable Gigabit performance for each server, and do this at a price point that is compatible with web and cloud business models. Just to be clear, such a network requires 10 Terabits/second throughput (10,000 x 1 Gbps), active-active load-sharing redundancy to avoid any single point of failure, and the ability to run 24×7 since there are no maintenance windows in the cloud world."

Arista Network-Blog: Arista 7500 (via abnerg)

I’m glad the 7500 is finally out. It should light a fire under anyone who claims to care about ethernet performance and value. The first time I saw the specs on a roadmap, I was pretty well blown away. It looks like what they brought to market is as good. Look forward to seeing some benchmarking and test results.

(via irq)

Bookmark and Share
March 8, 2010
Google offering free “Backups”, nothing of the sort

There’s lots of stories floating around the web this weekend about Google offering free backups with their Google Apps product, which on the face of it seems a great additional feature for people worried about data loss.

However, even the quickest read of what Google are offering shows it’s not backup, but online replication, 2 fundamentally different solutions.

Backups protect against the following things amongst others:

  • User error - deleting or overwriting 1 or more files
  • User error - deleting or overwriting entire system including account details, etc
  • Hardware error - hardware loss causes failure/corruption of entire system
  • Hardware error - hardware loss causes deletion/corruption of 1 or more files
  • Software error - software error causes failure/corruption of entire system
  • Software error - software error causes deletion/corruption of 1 or more files

Of these 6 general events that backups protect against, Google’s new online replication service seems to protect against only 2 of them - the hardware error events.

In the event of a user deleting a file or their whole account, Google state that for every action you take “in the background we go and write that data to multiple servers within one data center and also in other data centers”, so if you delete your original file, every other “backup” copy will be deleted too. Same with over-writing it, if your file is protected using revisions in Google Docs then you’ll be ok, but that’s the same offering Google has already provided.

If you delete your account (a fairly stupid move for a user, but something a malicious administrator could do), then you are stuck again - your account deletion will not be protected by these backups.

And finally we get to software errors - we have to look at Google’s statements on the changes again, and according to them the replication is online and instant, so any system caused corruptions or deletions of files in one location will most likely be replicated in the other locations.

That’s not to say what Google is offering isn’t a great addition to the service, it really is, but with these articles you’ll end up with a bunch of mislead users who think their getting something they’re not.

Please, don’t call it a backup if you can’t do a restore!

Bookmark and Share
February 23, 2010
The death of tiering? Disk storage in 5 years

There’s been lots of discussion in the last few days about disk storage’s tiering model, based on using solid-state storage, high-speed Fibre channel disks, and low-speed SATA disks to deliver consistent performance to different applications on a shared area, and the mention by NetApp of the death of tiering, to be replaced by a single layer of SATA disks and a large cache.

To me, a cache is a relatively small but very fast storage area which is used for temporary workloads.

However, I know a good number of people wouldn’t agree with this simple definition of a cache vs a fast tier so I’d go with something like this:

  • If I can move data into the fast storage in advance of it being read from the slower disk, it’s a tier.
  • If data permanently resides on the fast storage, with a copy on slower disk only used as a backup in case of hardware failure, it’s a tier.
  • If the data remains in the fast storage area, even when the storage area is full, rather than being deleted, due to some kind of classification rules keeping it there, it’s a tier.

However I agree with the concept of manual “tiering” having a limited life-span, I certainly hope it goes away soon, to be replaced with policy based decisions made by the array management software.

Having a “Tier1 (Flash) -> Tier2 (15K RPM SAS/FC) -> Tier3 7.2K RPM SATA)” model doesn’t work as well in the new structures of IT delivery, where things can change on a daily/weekly basis.

Instead I think a model of “High, Medium and Low Priority” and “High, Medium and Low Reliability” which can be applied to data belonging to specific applications, and which can be changed dynamically works much better.

Simplistic examples could be:

  • Production Oracle Database - High Priority, High Reliability
  • Images for Sharepoint Server - Low Priority, Low Reliability

But slightly more complicated policies like this one should be equally easy to use:

  • Oracle Database - High Priority during working hours (9-5 Mon-Fri), Med Priority otherwise, High Reliability 24x7

Once we’ve got these kind of policy-based management tools, the method that the array uses to achieve them become fairly irrelevant to anyone, the only thing left to work on would be the target SLAs that you’d want the array to achieve, something like:

  • High Priority = 0.01ms Response time
  • Medium Priority = 0.5ms Response time
  • Low Priority = 5ms Response time
  • High Reliability = 99.99% Data Availability

This probably isn’t going to happen very quickly, but I hope it does, and I look forward to it.

Bookmark and Share
Bookmark and Share