Table of Contents

Understanding the Cloud

There are three primary types of Cloud Services:

Here are three brief explanations of each of these technologies:

Whenever you are running an application, such as EverNote, it is fairly obvious that you are dealing with an SaaS. It can, however, be more confusing to understand the difference between Platform as a Server and Infrastructure as a Server.

You can run a database or web server on PaaS. You can also run a database or web server on top of IaaS. They are both databases, but in the latter case you are responsible for configuring the database.

An IaaS is just an OS in the cloud. Since you need to configure a database on an OS running on a physical machine, then you also need to configure it on an OS running in the cloud.

With a PaaS such as Amazon S3, you get a preconfigured, and fully maintained web server, but you are not completely in control of it. It is, in a sense, easier to use than an Apache server that you set up yourself, but it is not as flexible.

Take a moment to consider the difference between a cloud application like Microsoft SkyDrive or Google Docs, and a platform like Apache on Linux:

The lines between these things get fuzzy at times, but the fundamental differences between a tool like EC2 (IaaS) , a tool like S3 (PaaS) and SkyDrive (SaaS) should be clear:

As a general rule, IaaS is the most powerful, and costs the most. PaaS is easier to use, cost less, but is not usually as powerful or flexible. It is, however, still a development platform. SaaS is frequently free, or very low cost, but it lacks the flexibility of PaaS, since it is not a development platform. As I said above, the lines may become a bit blurred at times, but this is the basic overview.

If you grew up with Windows, or major products such as Microsoft Office, you are probably used to thinking in terms of versions. You expect a product to increment its version number once every one to two years, and you expect major changes to happen at that time. This is not the way it works in the cloud. Most, or at any rate many, cloud applications are under continuous development in an agile development cycle. This means that new features might appear at any time. This can be confusing.

We have grown accustomed to installing an application, examining its features, and finding them either adequate or inadequate for our needs. If you are using an cloud application such as Google Docs, however, you might examine it in June and find that it is good, but not quite good enough because it is missing one or two key features that you need. The odd thing about cloud applications is that the feature you want might show up next week, next month, six months from now, two years from now, or never. The same is true for bugs. You might hit a bug in a product. All your training tells you that the bug is a serious issue, in large part because you will have to wait a year or two for the next release before you will see it fixed. but in the cloud, a bug can be fixed much more readily. Sometimes bugs are even fixed incrementally. For instance, you might find that a document does not display correctly. You come back in two weeks and find that its display is improved, but still not perfect. Come back in six months, and the problem may be almost entirely gone. In a year's time, there is no longer so much as a trace.

But how do we know when a bug will be fixed or when a new feature will appear? Sometimes a vendor gives us detailed information about their development plans, but even when they do, we frequently don't have time to follow such matters. Overall, the ability of a team to iterate frequently and to continue publish new releases is a good thing, but it comes at a price.

Types of Cloud Applications

Images: Blob Storage

Scaling: App Fabric Cache

Authentication: ACS (Do this last so you don't have to fuss with it during development.

Key Issues



Begin with an inventory

Entry point:


Don't react to problems, first create a plan and then implement it. Virtualization and the cloud won't solve a lot of problems.


Free Invoicing for Freelancers: BillingBoss.com is a free online invoicing tool designed for small business owners and freelancers to create, send and