Posts Tagged 'IaaS'

Google Compute Engine Revisited

It has been awhile since I have written anything about Google Cloud Computing. I started to take a look at Google Compute Engine over a year ago but I was stopped because it was in limited preview and I could not access it. It looks like GCE has been made generally available since May so I thought I’d check back to see what has happened.

To use GCE you sign into Google’s Cloud Console using your Google account. From the Cloud Console you can also access the other Google cloud services: App Engine, Cloud Storage, Cloud SQL and BigQuery. From the Cloud Console you can create a Cloud Project which utilizes the various services.

Figure 1. Google Cloud Console

Unlike App Engine, which lets you create projects for free, GCE requires billing to be enabled up front. This, of course, will require you to create a billing profile and provide a credit card number. After that is done you can walk through a series of steps to launch a virtual machine instance. This is pretty standard stuff for anyone who has used other IaaS offerings.

Figure 2. Creating a new GCE instance

The choice of machine images is certainly much more limited than other IaaS vendors I’ve used. At this time there seems to be only four available and they are all Linux based. Probably Google and/or the user community will add more as time passes. It is nice to see the per-minute charge granularity which, in actual fact, is based on a minimum charge of 10 minutes and then 1 minute increments beyond that. The smallest instance type I saw, though, was priced at $0.115 per hour which makes GCE considerably more expensive than EC2, Azure and Rackspace. When you click the Create button it only takes a couple of minutes for your instance to become available.

Connecting to the instance seemed to me to be a little more complicated than other providers. I am used to using PuTTY as my ssh client since I work primarily on a Windows machine. I had expected to be able to create a key pair when I launched the instance but I was not given that option. To access the newly created instance with PuTTY you have to create a key pair using a third party tool (such as PuTTYgen) and then upload the public key to GCE. You can do this through the Cloud Console by creating an entry in the instance Metadata with a key of sshKeys and a value in the format <username>:<public_key> where <username> is the username you want to create and <public_key> is the actual value of the public key (not the filename) you create. This can be copied from the PuTTYgen dialog. A bit of extra work but arguably a better practice anyway from a security perspective.

Figure 3. Creating Metadata for the public key

After that is done it is straightforward to connect to the instance using PuTTY.

Figure 4. Connected to GCE instance via PuTTY

At this point I do not believe that Google Compute Engine is a competitive threat to established IaaS providers such as Amazon EC2, Microsoft Azure or Rackspace. To me the most compelling reason to prefer GCE over other options would be the easy integration with other Google cloud services. No doubt GCE will continue to evolve. I will check back on it again soon.

Kevin Kell

IaaS on Azure

Okay, this post may be a bit of a rant. Things should not be unnecessarily complicated … but they are.

I just wanted to launch a VM instance on Windows Azure Virtual Machines to take a look at the Visual Studio 2013 preview. Seems simple enough, right? Just log in to the Azure portal and spin up a new VM from the gallery from an image configured with VS 2013. Then, just step through the Wizard and connect with RDP.

Figure 1. Select VS 2013 Image

Give the machine a name, select instance size (small, in my case), and specify a username and password and we should be good to go.

Well, yes, and no.

Okay, the instance launches and appears to be running. As far as I know I am being charged for this resource now.

Figure 2. Instance is running

Cool. My instance seems to have a public IP address and I should be able to connect to it via RDP, login using the username and password I specified and party on. Just like Amazon EC2 and Rackspace.

But no! There is a problem.

Try and connect using RDP to actually use the instance and there is an error.

Figure 3. Denied!

So, what is going on here?

Right now I haven’t the slightest idea. Maybe it is something simple or obvious. Maybe they didn’t enable RDP on the image. Maybe I am doing something stupid.  Maybe I need to open a port or set a security group or something.  But … at this point I don’t care.  I don’t have the time or patience to troubleshoot it.


I’m going to spin up a Windows Sever 2012 instance on Amazon EC2, install the VS 2013 preview myself and take it from there. At least I know I will have no problem connecting to the instance.  Amazon IaaS is, imho, much more straightforward to use.

Kevin Kell

Implementing a Private Cloud Solution

Last week I attended Learning Tree’s “Implementing a Private Cloud Solution” course at our Reston Education Center. It is a great course for anyone seeking in-depth technical details on how to build their own on-premises private cloud. The course also covers using a hosted private cloud solution and building secure connections to your own data center.

This course is not for the faint of heart! It is also not for the technically challenged! When you show up Tuesday morning you need to be prepared to work very hard for the next four days. The course author, Boleslav Sykora, has put together a fast paced session that gives you as much technical detail as you would ever want on the subject. It is the type of course where you will want to come early and stay late each and every day so you can work through all the extensive bonus exercises that are offered. I loved it and I think you will too!

We feature building two private clouds, one using Eucalyptus and another using Microsoft System Center, completely from scratch. There is a lot of Linux command line stuff and quite a bit of detailed networking configuration. This is exactly the reality of what is involved if you want to build your own private cloud. Over the four days you come to understand that private cloud computing is not some mystical, magical hype but is an evolution of solid fundamental concepts that have been around for some time. This course will appeal to technical professionals who want to gain real experience implementing solutions that will define the future of the on-premises data center.

For those who would prefer not to bother with the complexity of an internal private cloud implementation there are many hosted solutions to choose from. Probably the best known is Amazon’s Virtual Private Cloud (VPC). Once you use VPC on Amazon you will likely never go back to using EC2 without it.

In fact as I write this blog I am on a train heading to New York. There I will teach Learning Tree’s “Cloud Computing with Amazon Web Services” course. That, also, is a great course!

Because there are many private cloud implementations based on the Amazon EC2 model and API (particularly Eucalyptus) Amazon has kind of become the de facto standard for how Infrastructure as a Service (IaaS) is done. Even if you believe you would never use a public cloud for a production system there is much to be learned about cloud computing from Amazon. Beyond that the public cloud is a great place to do testing, development and proof-of-concept before investing the time and capital required to build your own private cloud. Public clouds such as Amazon can also become part of a hybrid solution that features the best of what private clouds and public clouds have to offer. Learning Tree’s Amazon Web Services course gives you hands-on experience with many aspects of Amazon’s cloud and shows you how to build solutions using the various services offered there.

So if you are a hardcore techie who wants to have end-to-end control over all aspects of a cloud solution come to Learning Tree’s private cloud course. If you would like to understand how to leverage the Amazon public cloud or to understand the service models of arguably the most dominant cloud provider in the world then come to Learning Tree’s Amazon Web Services course. Either way I hope to see you soon!

Kevin Kell

Google Enters IaaS Market

Last week I was teaching Learning Tree’s Introduction to Cloud Computing course in Schaumburg, Illinois. During the course we spent some time talking about the differences between PaaS and IaaS. We feature Google App Engine as a representative example of a PaaS and Amazon EC2 as an example IaaS. It looks like going forward we will need to talk about Google in the context of IaaS as well!

On June 28th Google announced the launch of Google Compute Engine. As an Infrastructure as a Service (IaaS) offering this product will compete head-to-head with the likes of Amazon EC2, Rackspace and others. Industry pundits and analysts alike are digesting the implications that this new cloud choice will have on consumers of cloud services.

At present the Compute Engine IaaS appears to be more limited than some others. For example it only supports Linux instances at this point. Whether or not GCE ever supports Windows will remain to be seen. Support for Linux is also limited. Currently only CentOS and Ubuntu images are offered.

That said the GCE seems to be very similar to what other IaaS vendors offer:

  1. Compute services – launch virtual machine instances on demand. VMs can be 1, 2, 4 or 8 cores with 3.75 GB RAM per core.
  2. Storage services – persistent block storage devices that can be attached to instances.
  3. Virtual networking – managed connectivity with configurable firewall rules.
  4. Multiple ways to work with the service – including an API, scriptable command-line tools and a browser-based console.

Google has been doing a lot of work lately on Big Data and they are certainly known for their search engine. These capabilities will no doubt continue to be incorporated into the suite of services Google offers in the cloud. It also appears that Google will attempt to compete on price by offering similar compute power at slightly lower prices than Amazon EC2. It will be interesting to see if this competition results in lower prices from Amazon.

Currently Google Compute Engine is being offered in a limited edition preview mode. I have signed up for access and hope to have more to report on this new cloud service very soon!

Kevin Kell

Cloud Service Models: Comparing SaaS PaaS and IaaS

Defining what comprises Cloud Computing is hard because it is so many things. Many vendors do not help clarify it because labelling products as Cloud Computing makes them appear current and more relevant. Despite all the marketing hype, Cloud Computing can be readily broken down into one of three delivery models as defined by NIST and known as the SPI model. SPI stands for Software, Platform and Infrastructure. When all the hype is stripped away, these just represent hardware and software !

Cloud computing enables hardware and software to be delivered as services, where the term service is used to reflect the fact that they are provided on demand and are paid on a usage basis – the more you use the more you pay. Draw an analogy with a restaurant. This provides a food and drinks service. If we would like to eat at a restaurant, we do not buy it, just use it as we require. The more we eat the more we pay. Cloud Computing provides computing facilities in the same way as restaurants provide food, when we need computing facilities, we use them from the cloud. The more we use the more we pay. When we stop using them we stop paying.

Although the above analogy is a great simplification, the core idea holds. Since computing is many many things, Cloud Computing has a lot of things to deliver as a service.This is where the SPI model helps organise things. Lets consider these in turn.

Software as a Service This is typically end user applications delivered on demand over a network on a pay per use basis. The software requires no client installation, just a browser and network connectivity. An example of SaaS is MicroSoft Office365. Until its launch, if a user required say Word, they would have to purchase it, install it, backup files etc. With Office365 Word can be acquired for a small monthly fee, with no client installation, the files are automatically backed up, software upgrades are automatically received and the software can be accessed from anywhere. Decide you do not require Word anymore – stop paying the monthly fee. It is that simple.

Platform as a Service Used by software development companies to run their software products. Software products need physical servers to run on, with database software, often Web servers too. These are all the platform that the application runs on. Building this yourself is a time consuming task and needs to be continually monitored and updated. PaaS provides all of the platform out of the box enabling software applications to be given to the platform which will execute them with no requirement for administration of the lower level components.

InfraStructure as a Service This covers a wide range of features, from individual servers, to private networks, disk drives, various long term storage devices as well as email servers, domain name servers as well as messaging systems. All of these can be provisioned on demand and often include software license fees for operating systems and associated software installed on the servers. Organisations can build a complete computing infrastructure using IaaS on demand.

So all the services provided by Cloud Computing fit into one of the three delivery models above. End users typically use SaaS, software development teams PaaS and IT departments whose responsibility is the infrastructure use IaaS. There is much more to Cloud Computing, including aspects such as the automatic scaling and security for example, but as a starting point, categorising the deliver models should help to understand that all aspects of computing are covered and it can be potentially useful for everybody involved in, or using IT.

Chris Czarnecki

As cloud computing continues to make information technology headlines, vendors are aggressively promoting the many benefits it can provide organizations.  Our White Paper, Cloud Computing Promises: Fact of Fiction , addresses the claims and questions that are often raised in relation to cloud computing and provides a clear view of what the cloud can—and can’t—deliver in reality.

Elastic IP in Amazon EC2

As part of the EC2 service Amazon offers a feature called “Elastic IP Addresses” (EIP). Exactly what are these and how can we use them to our advantage?

The idea behind Elastic IPs (which really are static addresses) in AWS is that you can reserve an IP address.  Then you can assign that IP address to any AMI instance that you have running. The assignment can be changed to a different instance at any time if it suits your purposes.

According to Amazon this feature is designed for “dynamic cloud computing”. Once an EIP has been associated with an instance it remains tied to that instance until you decide to release it. EIPs can be assigned to or released from a running instance programmatically, with command line tools or via the browser based console.  You pay for an EIP when it is not associated with an instance but not when it is.

Why might this be useful? Well, for one thing, it allows considerable flexibility in implementing a web-based solution. Instance failures can be handled by simply remapping the EIP to any healthy instance you control. This removes the need to wait for someone to possibly have to replace hardware. There is also no delay as would be the case if you had to use a new IP address and have that propagate through DNS. Finally, you have control over the specific technology you use to implement your solution. You can change your solution stack at any time and not disrupt your customer’s ability to connect to your site.

An additional benefit that EIP gives you is the ability to configure for reverse DNS lookup. This is recommended if you intend to send email from your account. To limit spam Amazon, by default, puts limits on the amount of email that can be sent from EC2 accounts. Providing EIPs and the associated domain name can reduce the chance that your emails will be flagged as spam (unless, of course you violate the terms of service!).

This screencast shows how to use Amazon Elastic IPs addresses to flexibly manage a website in your own domain:

There are certainly lots of features to explore and exploit in EC2 and AWS. By utilizing this infrastructure (IaaS) effectively the developer gains a lot of flexibility and control when implementing a solution. In Learning Tree’s Cloud Computing course we consider IaaS in context with the other services defined in the SPI model (Software, Platform and Infrastructure as a Service).


Comparing PaaS and IaaS

One of the most common questions I am asked when consulting or teaching Learning Tree’s Cloud Computing course is “What is the difference between Platform as a Service (PaaS) and Infrastructure as a Service (IaaS). This is an excellent question that the cloud computing vendors do little to help clarify.

Let’s consider IaaS first…
As the name suggests, what is provided here is an infrastructure delivered as a service. This includes hardware (servers, networks, load balancers etc) and software (operating systems, databases, application servers etc). The largest provider of IaaS is Amazon AWS and they have a wide variety of hardware and software combinations to choose from.

Now lets consider PaaS…
What we are gaining here is a platform as a service. This includes hardware (servers, networks, load balancers etc) and software (operating systems, databases, application servers etc). There are a number of PaaS providers including Google App Engine, Microsoft Azure and’s

Is the difference clear now ?
I thought not. On the surface the feature set of both IaaS and PaaS are the same but delving a little further a major difference is the amount of control a user has over the service. Take for example Microsoft Azure. Using Azure, the user has no control over the operating system, security features or the ability to install software applications – other than your own applications developed specifically for Azure. The same can be said for Google App Engine and All operating system updates, versions, patches, security etc are controlled and implemented by the PaaS vendor.

Now considering IaaS. With IaaS, the user selects a configuration which defines server size, operating system, application software etc and then has complete responsibility for the maintenance of the system. If an operating system upgrade is required – its your responsibility. A security patch – its your responsibility. Want to install a new application or a database – feel free, its your server.

So in summary…
A major difference between IaaS and PaaS is the amount of control over the system available to users of the services. IaaS provides total control, PaaS typically provides no control. This also means virtually zero administration costs for PaaS whereas IaaS has administration costs similar to a traditional computing infrastructure.

There are many other differences between IaaS and PaaS of course. It is these kind of things that we investigate and evaluate as well as provide hands-on experience of in the Learning Tree Cloud Computing introduction course.

Chris Czarnecki

As cloud computing continues to make information technology headlines, vendors are aggressively promoting the many benefits it can provide organizations.  Our White Paper, Cloud Computing Promises: Fact of Fiction , addresses the claims and questions that are often raised in relation to cloud computing and provides a clear view of what the cloud can—and can’t—deliver in reality.

Learning Tree Logo

Cloud Computing Training

Learning Tree offers over 210 IT training and Management courses, including Cloud Computing training.

Enter your e-mail address to follow this blog and receive notifications of new posts by e-mail.

Join 53 other followers

Follow Learning Tree on Twitter


Do you need a customized Cloud training solution delivered at your facility?

Last year Learning Tree held nearly 2,500 on-site training events worldwide. To find out more about hosting one at your location, click here for a free consultation.
Live, online training
.NET Blog

%d bloggers like this: