Archive for February, 2009

Amazon Web Services EC2 – Part 1: Introduction and Availability Zones

February 26th, 2009 Comments off

Cloud Computing Info

Elastic Compute Cloud (EC2)

EC2 is the computing part of the Amazon services. EC2 provides the CPU, memory, operating system and transient storage. EC2 is the equivalent of a barebones PC. You get to pick the amount of RAM you need (from a predefined list of configurations), the amount of transient storage you need (also from a list) and the number of CPUs you need (from a series of compute options). For the operating system, you can choose from various flavors of Linux, Solaris or Microsoft Windows Server.

If you can use a web browser and understand basic computer technology, you can use EC2. The basis if EC2 is the Amazon Machine Image (AMI). An AMI is a virtual machine with your chosen operating system and applications bundled together. You can create your own AMIs from scratch if you want to. To get started though, Amazon offers hundreds of public AMIs with many operating systems and pre-installed applications.

Once you’ve chosen, or built, your AMI, you will start it up. This starts a virtual machine in an Amazon data center. You won’t know where your machine is running beyond some generic “regions” and “availability zones”.

Regions and Availability Zones

A region is an actual geographic area. Currently, you can choose the US or Europe as regions. As Amazon adds additional data centers around the world, you will be able to choose from a list of them.

An availability zone is a distinct location within a region. Each availability zone is insulated from failures in any other zone. By running multiple AMIs across several zones, you can protect your databases and applications from a single point of failure. Each zone has its own power sources and cooling and are designed to be insulated from floods and fires.

Availability Zones are logical identifiers and are unique to an account. That means that two people who map to the same zone name may not actually be running in the same physical location.

Currently, Amazon offers three availability zones in the US: us-east-1a, us-east-1b, us-east-1c and two availability zones in Europe: eu-west-1a, eu-west-1b. Amazon recommends not choosing an availability zone unless you actually need protection from failure between instances. That allows AWS to choose the best zone based on performance and availability.

If you are running a replicated environment or any other kind of high availability or failover environment, you would want to start any secondary instances in different zones. That will allow you to have minimal downtime should your primary zone suffer any kind of an outage.


Technorati : , , , , ,

Defining Cloud Computing: Part 6 – IaaS

February 23rd, 2009 3 comments

Infrastructure as a Service

Amazon AWS is the largest of all the IaaS providers. Where SaaS offers a complete application as service and PaaS offers the ability to develop an application, IaaS doesn’t care about the application at all. IaaS provides the underlying hardware and operating system resources to do anything you want. IaaS has also been referred to as Everything as a Service.

IaaS offers CPU, memory, storage, networking and security as a package. IaaS is the virtual machine in the sky. In general, with IaaS, you choose from a range of operating systems (usually some flavor of open source), a size for your hardware (number of CPUs and CPU power) and an amount of storage.

There are a number of successful IaaS providers: Amazon, Joyent, GoGrid and FlexiScale. While Amazon is the best known of the providers, Joyent is also huge. Joyent hosts many Facebook applications and they host the social network LinkedIn, among others. In addition to proving that Amazon is not the only game in town, this also proves that real businesses (although without much of a business plan) are running in the cloud. It also shows that businesses with a need to scale are doing so.

The benefits of IaaS, in addition to the ability to scale, are the costs to get started and the ability to pay only for what you use. For a startup or small business, one of the most difficult things to do is keep capital expenditures under control. By moving your infrastructure to the cloud, you have the ability to scale as if you owned your own hardware and data center (which is not realistic with a traditional hosting provider) but you keep the upfront costs to a minimum.

What does Cloud Computing change?


Technorati : , , ,

Defining Cloud Computing – Part 5: Desktops as a Service

February 20th, 2009 Comments off

Desktops as a Service

Falling some somewhere between software and a platform are Cloud Desktops (also called a Cloud OS). These desktops run inside a browser and are accessible from any desktop with an internet connection.

A cloud desktop offers word processing, spreadsheets, development tools, networking tools and more. While relatively immature at this time, we can expect this market to grow significantly in the coming years, especially as more and more smart phones and ultraportables hit the real world.

Microsoft LiveMesh offers free storage, machine synchronization and a cloud based desktop. iCloud and both offer complete, robust desktops (including browsers, applications and storage) completely in the cloud. The greatest benefit to a cloud desktop is that all of your applications and data is accessible from any computer. The downside is that with no internet access, you have access to none of your data or applications.

EyeOS is a completely open source cloud OS that you can download and install in your own data center. It offers all of the expected functionality and installs as a simple PHP application on your Apache web server.

The nice part about these platforms at the moment is that most are completely free. Sign up, login and you have a virtual desktop off in the clouds. The business model of most of these (such as iCloud or are subscriptions for enhanced services and extra capabilities (such as bandwidth or disk space).

The other significant aspect of these cloud desktops is the ability to run desktop quality applications, such as word processors and spreadsheets, from a phone. Business at internet speeds and internet availability.

It remains to be seen whether cloud desktop catch on but SaaS in general is here to stay. It’s easy to use, cheap and covers just about any category of software that you might use.

Throw in a pair of virtual world gloves and goggles and it’s almost like science fiction.


Technorati : , , , ,

Defining Cloud Computing – Part 4: PaaS

February 18th, 2009 Comments off

Platform as a Service (PaaS)

The next step up into the cloud from SaaS is the Platform as a Service. While SaaS offers applications for end users, PaaS offers a development platform for developers. Developers do not need to worry about the operating system, storage or hosting. Developers write the code and the PaaS provider provides a very simple method to upload that code and present it on the internet.

The PaaS provider gives provides the hardware, operating system, software upgrades, security and everything else related to the day to day hosting of an application. Most PaaS providers are limited to specific languages and IDEs. In some cases, the IDE is web based and in others, the IDE provides features for uploading code.

In most cases, developers do not have any access to the underlying operating system. Applications that run on PaaS platforms have to conform to some limitations that protect the provider from abuse (such as malicious software or run away resource usage).

Google App Engine (GAE) was one of the first PaaS offerings. GAE only supports python (Google promises additional languages in the future) and comes with an IDE. A developer writes an application and tests it locally. When ready to deploy the application to the world, the developer presses a button and it is automagically hosted on the Google infrastructure.

All developers get to use a common domain ( but can use a custom domain if also signed up for Google Apps. Google also gives developers, for free, 500MB of storage and up to 5 million page views per month. Google expects to start charging for feature upgrades (such as storage and extra CPU) in the future.

Other PaaS providers are (which builds on top of the engine – which in itself is SaaS), Engine Yard (Ruby on Rails), Coghead (GUI drag and drop), and Aptana Cloud (PHP, Ruby and JavaScript). The Aptana Could is a bit different in that it is built on top of the Joyent IaaS but provides PaaS features through its Aptana Studio IDE.


Technorati : , , ,

What Does Cloud Computing Change?

February 15th, 2009 1 comment

Does Cloud Computing Change Anything?

Cloud computing, aka utility computing, aka SaaS, aka PaaS, aka IaaS, etc. is definitely the buzz word du jour (or buzz word 2009). Cloud computing is pretty much whatever a particular vendor wants it to be as long as it will allow them to be 100% buzz word compliant. For the sake of this article, let’s say that cloud computing is a service based offering that allows dynamic allocation of virtualized resources from remote (and centralized) hardware farms, accessed via the internet.

You Can Fire Your Administrators

Well, not really. If you use an infrastructure service like AWS, your administrators (system and database) won’t see much change in the day to day job. For system administrators it may be a bit more time in the OS and less time on hardware but for DBAs, it’s an almost transparent move.

If you choose a platform service like Google Apps, or a SaaS offering, you can fire your administrators. The service provider will employee the administrators. If you go with SaaS, you don’t even need to employee programmers. The SaaS provider will even employ them.

Your Applications Will Scale Automatically

If you go with SaaS or PaaS, the service provider will scale the applications for you. If you choose SaaS, you are limited to specific features and abilities and you can only scale as far as your provider will enable. If you choose PaaS, you can add features and abilities as you see fit but you are still limited to the scalability of the platform you choose. In addition, to scale with a PaaS provider, you will have to use the frameworks and tools (such as custom database engines) offered by the provider.

If you go with an IaaS provider like AWS, you can scale as far as you like. The problem is that you are responsible for creating the applications, and designing the data stores, so that they will allow you to scale. Moving to a cloud platform does not miraculously cause your applications or your database to scale. You don’t have any abilities in your application in the cloud that you don’t have in your own data center. You do, however, have access to scalable hardware without any upfront costs.

Cheap and Easy Hardware

The big selling point to cloud computing, beyond access to vast hardware resources, is the ability to get started at what ever level of resources (CPU, memory, storage and bandwidth) that you might need with a minimal capital outlay.

To start up a web 2.0 application the old way, you might need to drop $50k on hardware and rent space in a data center. Once the hardware arrives and is provisioned, you can let the developers et to work. When you’re ready to go to production, you drop another $50k for additional hardware. You may even drop $100k just in case your customer base grows. You might end up with thousands of dollars in underutilized hardware.

When you go with the cloud, you sign up for a service like AWS and startup a virtual machine. Your developers are productive within an hour and you are out less than $100 per month. When you’re ready for production, ramp up a larger virtual machine and put it on the web. Production and development hardware (remember this is the hardware, the data center, the electricity and cooling, none of which you need to worry about) will cost you a few hundred dollars a month.

If you grow beyond your wildest imagination, you (having designed and written scalable software) can start up additional virtual machines and scale to your heart’s content. This is what the cloud changes. Everyone, anyone, can now take the leap. Anyone who has an idea can put it out there with a minimal expenditure.

The Democratization of Business

The internet gives a voice to everyone. It’s changing publishing, TV, movies and every other kind of media. The internet offers a cross country, cross culture social environment for consumers. Now, with cloud computing, that democratization is being offered to anyone with a good idea (and even bad ones).


Technorati : ,