Thursday, November 24, 2011

Cloud jargon

Having been deeply involved in the cloud revolution, I thought it would be good to actually take a step back and unpick some of the cloud computing jargon I've heard over the last twelve months. What does it all actually mean?

I like to keep things simple, so let me try to simplify the tangle of definitions currently floating out there.


Iaas, Paas, Saas


Well, here's a confusing one to begin with! Why Iaas over Paas? Why Saas over Iaas? Do we all understand the difference? Maybe, maybe not. Here's my interpretation, for what it's worth.

IaaS is 'Infrastructure as a Service'. It means service providers provide an infrastructure to you, the customer, as an ongoing service and not as a one-off hardware purchase. OPEX versus CAPEX for you accountants out there. That infrastructure includes data storage, CPU, memory and networking. However, what a self-service cloud lmeans is that this is all available through a user interface where the customer has instant access to provision and configure the infrastructure instantly.

PaaS is 'Platform as a Service'. This is similar but not quite the same as IaaS as it is still about providing a virtual cloud computing infrastructure. PaaS differs by having a software layer on top of the IaaS as an intermediary between the customer and the infrastructure itself. Therefore, although the software may make some tasks easier, it may lack the flexibility that comes with direct access.

SaaS is 'Software as a Service'. This is a further step above Iaas and PaaS where you use software that happens to be powered by the cloud and is accessible online. Salesforce is a great example of SaaS.



Public, Private and Hybrid clouds


Public cloud computing is where you run a virtual infrastructure entirely through an external cloud provider. This would be a typical scenario for startups or people who have fully migrated their data centres into the cloud.

Private cloud is where a cloud computing environment is run internally on your own hardware infrastructure. This can often be as simply as running KVM, VMware or Citrix Xenserver to configure your infrastructure to offer cloud flexibility to your internal IT department.

A hybrid cloud leverages both private and public cloud.

As customer accounts are kept entirely separate and all virtual resources are dedicated (ie; are not impacted by the activities of other users), there is often very little benefit to a private cloud but plenty of additional hardware expense. We might call it public cloud computing, but it's still virtually (pun intended) as private as your traditional server infrastructure.
 

Online Storage versus Compute Storage


Online and compute storage are two very different service offerings. Compute (your virtual servers) obviously needs storage to run the operating system and is bundled as part of the offering. However what happens when you want to just use offsite storage - to backup or archive your files, for example - without the expense of running virtual servers to access the necessary storage? Would you buy a new computer just because you needed more hard drive space?

True public cloud storage can be used completely independently of compute and costs a lot less as a result. By connecting either your public, private or hybrid cloud to online cloud storage, you can simply extend your local storage setup to a safe and secure offsite location. With an API, you can also do lots of cool things with it, such as storing all your website assets (images, video, etc) in cloud storage instead of driving more expensive compute server requests every time someone visits one of your web pages.
Horizontal and vertical cloud compute

This really can be simplified as the difference between the number of cloud servers you're running compared to how powerful these servers are. If you have ten web servers and you need to accommodate a period of heavy traffic, then you may want to add another ten servers to your server farm to deal with this increased demand. This is horizontal scaling. However, if you decide to scale the size - and therefore the memory and CPU of those servers - from 2GB to 4GB, then this is vertical scaling. Most providers enables you to do both. Of course, you can also scale down the resources you use once demand dies down. You could shutdown the ten VMs and keep them on standby or decease the vCPUs and memory on each server. This can be done via our API or using our UI interface.


Cloud bursting


Cloud bursting is a term often thrown around that I particularly like. This is really the gem in the crown for cloud computing in my opinion.

Remember you only pay for what you use. Imagine this: it's nearly Christmas and you sell customised Christmas cards. Your busy period is unlikey to be January, but December is likely to be a mad rush. You need compute resources to deal with increased customer demand in the weeks up to Christmas but for the other ten months of the year you won't need anywhere nearly the same level of resources. A more efficient way is to burst into the cloud. Cloud bursting enables you to spin up, manually or automatically, cloud compute resources to cover your busy period and then once this period is over simply power down or completely remove the compute instances.

You can spin up on demand and only be charged for the period you ran the servers. It can be as little as an hour or as much as a year.
 

Cloud Compute versus VPS


VPS stands for virtual private server. A VPS runs on compute hardware with allocated resources, shared or explicit. Sometimes a VPS server can run on one dedicated physical server. It can be configured with high availability but doesn't always allow you to easily manage your compute resources. So VPS is similar to cloud computing, but not as scalable or flexible.

Cloud compute gathers a large number of resources, compute, network, storage etc and presents this to the end user so they can leverage the entire service to scale and provision quickly using either a user interface or an API. Cloud compute runs on large and powerful clusters, configured with redundancy and high availability as standard, enabling virtualisation of compute assets on demand over the internet.
 

Cloud storming


This is similar to cloud bursting, but is really for the dedicated cloud user or cloud junkie. Cloud storming is when you leverage a number of different cloud service offerings for your own compute environment.

Why would one do this? Benefits such as redundancy, reduced latency in different geographical locations, or to be in a relevant operating time zone.

These are just some of the most common terms and I'm sure some of you may disagree on my definitions. Let me know what bits of cloud jargon I've missed or offer your alternative definitions in the comments below.

Sunday, October 9, 2011

Moving to the cloud


Recently I've attended a few cloud forums and have listened to some very interesting discussions. Why interesting? Well, discussions seem to have moved on from the cloud computing technology to how it affects the consumer. However, as similar questions are popping up again and again, I thought I would provide some insight to some of the most common consumer questions from these forums.

 

 

Security

The question about security never seems to go away. The feeling I get, as ever, is that common sense prevails. It’s not really the responsibility of any one particular person to cover the security aspect of cloud computing, but it is down to both the consumer and the provider to adhere to best practice. It should also be ongoing. I work for a cloud provider and we do have in-house skills to keep our cloud secure. We also have external third party professionals testing our security on a regular basis to see if we are as good as we think we are! However, the consumer should still take some responsibility to implement security best practice; including good firewall config, good anti-virus tools, regular OS patching, and - importantly - hardening the security of the OS and the applications you run in the cloud. Also, it's advisable for the consumer to monitor their systems. 

The IT Department


The IT department obviously takes ownership of infrastructure issues. But when access to the cloud becomes so simple,  why bother asking the IT department for a server when you can get your own computer resource from the cloud within minutes? Assuming a certain skill level, it is often quicker and less hassle to go to the cloud than to wait for the IT department to configure a server on your behalf. However it is still important to recognise that your IT department has a vast amount of experience which should not be bypassed – especially where security is concerned. Spinning up your own server will most likely need to comply with your internal IT policies so as to avoid conflicts or bugs. Also, ongoing management of cloud compute resources can be dealt with by your IT provider and often falls in line with their processes they have in place. Therefore, the feedback I keep hearing is that IT departments need to change the way they operate to deal with what cloud computing offers - adapting their processes to allow the speed and flexibility other departments require. 

How and Why?


The other interesting question that still crops up is how and why do you move to the cloud?  'Why' is really down to your specific use case. One of the big wins is the fact that you can manage your cost. OPEX compared to CAPEX is a great win for finance people. Instead of the cost of a new server and the associated resources, you can have the cost split up across the relevant months, which you can easily forecast. Questions will keep coming, I'm sure. And this is just a very high-level view of just three key topics. If you still have more questions or need more detail about whether the cloud is right for your business, drop me a line - @oliverleach

Tuesday, August 30, 2011

Working in an opensource dev ops world



Over the last few years, I have been working in more of a devops world and I thought it was about time I wrote about some of my experiences and more to the point, how I did it some of the projects I have been working on! I have been working in the public cloud space and there is no doubt that this has opened my imagination with whats possible using open source software. It has been a complete eye opener in terms of learning about whats rocks in the open source world. A few years back I was working for corporate companies where it was windows windows windows, and to be fair Microsoft do have some fantastic products. Exchange for example is key to corporates.. and when I say key, like a orange is to orange juice - without it, corporates can't live. There are other great products - active directory - often overlooked as 'it just works' but it is a fantastic product. SQL server, one of my favourites and really great when you include SSIS and SSRS as part of your DB solution. So when I turned my back on the corporate world and dived in to opensource, I was always trying to find the equivilent solution and I must admit, they are there with a bit of skill fine tuning/. To list a few, here are some of the key products I have been working with:

1 - XenServer

2 - Mysql

3 - Jasper reports server

4 - Jenkins

5 - Python and Django

6 - Cloudstack

7 - Puppet

8 - CentOS

The list can go on, but there is enough to blog about. The main difference with open source versus the windows world is it is definitely more code orientated. Now I was VB VB VB in my windows world and learning python was one of the best tings I have done. I am not going to say I am a python expert by any chance, but I have written a few scripts now and can achieve what I need to do.

So all in all it a good world in open source. It is amazing how one can do quite a bit so I will add to this blog, and don'y worry for those reading on, it will be focused purely on technical solutions as blogs of words doesn't generally help those look for solutions.

To the devops world!