Understanding Cloud Computing

Amazon EC2, Google App Engine, and Microsoft Azure

This Refcard will walk you through the basics, from where exactly clouds are located, to deciphering the differences between cloud service types (IaaS, PaaS, SaaS), and the key benefits you can expect to receive.

Understanding Cloud Computing

Amazon EC2, Google App Engine, and Microsoft Azure

This Refcard will walk you through the basics, from where exactly clouds are located, to deciphering the differences between cloud service types (IaaS, PaaS, SaaS), and the key benefits you can expect to receive.

About Cloud Computing

Cloud computing as an idea encapsulates a wide range of business and consumer services. At its most basic, cloud computing refers to using resources over the Internet that are housed somewhere else in the world for specific purposes.

Interacting with a cloud service is usually done through a web browser or command line interface. There is usually no software to install, no hardware to set up, and no data center to rent space from.

Google and Amazon were two of the earliest to the field of cloud computing, soon followed by Microsoft. The portfolio of products offered by cloud companies has matured and evolved over time, and so has the competition. Firms such as IBM and Rackspace, among others, have joined the fray. The field of cloud computing now includes a myriad of companies all offering services. This card will focus on Google, Amazon, and Microsoft since they are the market leaders at the time of this writing, and have the most mature product sets.

Section 2

Types of Cloud Computing

Cloud computing can be broken down into three main categories: IaaS, PaaS, and SaaS. Each is discussed below in more detail.

IaaS (Infrastructure as a Service)

Infrastructure as a Service is what people usually think of when discussing cloud computing. IaaS emulates the hardware that companies traditionally purchased to create internal and external networks. The chore of installing hardware and connecting it to physical networks has been replaced with the task of creating robust configurations. Almost every part of a traditional network is offered as a cloud service.

Examples

Servers

Firewalls

Routers

Load Balancers

CDN (Content Delivery Network)

Benefits

No Hardware: No need to invest in equipment

Cost is a Function of Usage: Initial investments are much cheaper than equipment acquisition

Scalability: A network can easily scale, retract, or transform without taking a financial impact from leasing clauses or acquisition

Learning Curves are Steep: It takes time and effort to be able to use an IaaS service to its fullest potential

Outside your control: The resources supporting the network are controlled by another company

Service Agreement: The agreement controlling your use of the service might require legal review

Subject to Network Reliability: Most IaaS vendors can boast of uptime in the 99% area so there is very little to worry about, but outages do occur

SaaS (Software as a Service)

Software as a Service is so common in the modern Internet age that it is almost overlooked as part of the cloud computing field. Software as a Service describes any Internet-based product that provides a specific set of operations. This includes everything from email to contact management.

Interacting with a SaaS product had traditionally been done through a web browser. This has been slowly changing with the ubiquity of mobile devices. Most SaaS products now include web and mobile device clients.

Examples

Email services: Gmail, Outlook.com

Customer Relationship Management (CRM): Salesforce

Business Productivity: Office.com, Dropbox, Box.com, Google Docs

Application Support: InsideOps, Logentries, Google Forms

Benefits

Managed Service: Customers of a SaaS product are able to focus on using it; there is no need to worry about the software or hardware required to make it run

Quick and Regular Updates: The product is the main focus of the company; the vendor is constantly improving, fixing, and patching to improve their tool’s usefulness

Portability: Enterprise-grade SaaS products will usually work on all modern browsers and a wide range of mobile devices

Dedicated Customer Support: If something needs to be fixed, your internal resources don’t have to slow their work down to fix it

Cons

Product Growth is Outside Your Control: The roadmap of the tool’s development and the features being added are outside your control. However, most vendors have a method for customers to request features

Service Agreement: The agreement controlling your use of the service might require legal review

Customization Can Be Difficult: Customizing the product to specifically meet your company’s needs might not be possible or might be costly

Reliability: Most SaaS products have uptime in the high 90% range, but outages do happen

PaaS (Platform as a Service)

Platform as a Service products has received less attention than their SaaS and IaaS siblings until recently. The power that a platform can provide is becoming much more appreciated in recent days, which has led to a boom in PaaS products. PaaS products sit in the middle between IaaS and SaaS. PaaS services allow customers to create a customized experience on top of an existing set of tools.

Examples

Customized Interactive Running Tournaments: RaceLink

Application Building: Google App Engine, SAP Hana, Cloud Foundry

Benefits (similar to SaaS products)

Quick and Regular Updates: The product is the main focus of the company; the vendor is constantly improving, fixing, and patching to improve their tool’s usefulness

Portability: Applications built on enterprise-grade PaaS products will usually work on all modern browsers and a wide range of mobile devices

Customization: The ability to use the PaaS product as a starting point means the applications built on it can be more closely tied to your business and its processes

RAD (Rapid Application Development): Getting applications built, and in the hands of your employees or customers happens much more quickly than traditional application development

Cons (similar to SaaS products)

Product Growth is Outside Your Control: The roadmap of the tool’s development and the features being added are outside your control. However, most vendors have a method for customers to request features

Service Agreement: The agreement controlling your use of the service might require legal review

Reliability: Most PaaS products have uptime in the high 90% range, but outages do happen

In-House Development Still a Factor: Internal employees might need to spend time tweaking, fixing, or enhancing applications

Section 3

Cloud Basics

What is The Cloud?

The Cloud is shorthand to describe the huge interconnected network of servers designed to deliver computing resources without a sense of location. In other words, The Cloud feels to users like a giant formless mass of computing power that runs everything from email to mapping to mobile applications.

In business terms, there is no “The Cloud.” Cloud computing is really a collection of licensed services provided by different vendors. Cloud services take technology management and technology acquisition away, and replace it with products that are managed elsewhere and are only active when needed.

In order to better understand what cloud services provide, let’s compare cloud to other traditional technology location options:

On-premise

Describes software and hardware that is housed and directly managed inside a business’ physical location. On-premise hardware and software is usually always on and available.

Off-premise

Physical hardware and software tied to a particular location, often leased space. Off-premise hardware and software is usually on and devoted to the customer using it. This can refer to offsite data centers, tape archive locations, etc.

Cloud

Physical and virtualized hardware and software that is hosted as needed on any available resource inside a farm of resources. A company may be using a server to run an application but it is not a physical server leased by the company. The particular server being used changes as needed by the provider and can be in any number of locations.

Where Are Clouds Located?

Consumers and businesses use different cloud services with such ease and for so many purposes that clouds can feel very ephemeral. When you begin using cloud computing with vendors directly, you are very quickly reminded that geography does matter. Although it may be true that most applications can be reached anywhere, unless geography is taken into account, it will not be the same experience everywhere.

Cloud computing products are generally region aware. All providers will give you some control over where to locate your environments. The location and scope of a region will differ per provider.

The number and location of regions you need will largely depend on the scope of your application, network, latency tolerance, and SLAs. The particular services required will also impact the choice of regions. Not all services are available in all regions.

The biggest factor that often creeps into conversations about regions is latency. The amount of time it takes data and resources to travel from the server to the client can make the difference between an application being adopted or abandoned. An application serving static web content can probably be in fewer zones. The lighter data load means transit will be faster. However, an application serving large datasets should probably be located in the region closest to the user base. Larger data sizes traveling farther distances will accrue more latency.

Latency is an important factor for networks as well as applications. The number of hops that network packets need to take can quickly impact system response time. A load balancer can help with controlling traffic but if traffic has to go through several networks hops before hitting the load balancer, then the balancer’s impact is minimal. Consider network latency as well as application latency when choosing regions to host your network.

Amazon Regions (as of 3/2017)

Asia Pacific

Mumbai

Seoul

Singapore

Sydney

Tokyo

Canada

Central

China

Beijing

Europe

Frankfurt

Ireland

London

South America

São Paulo

US East

Northern Virginia

Ohio

US West

Northern California

Oregon

GovCloud

GovCloud

Google Regions (as of 3/2017)

Central US

Council Bluffs

Iowa

Eastern US

Berkeley County

South Carolina

Eastern Asia-Pacific

Changhua County

Taiwan

Northeastern Asia-Pacific

Tokyo

Japan

Western Europe

St. Ghislain

Belgium

Western US

The Dalles

Oregon

Microsoft Regions (as of 3/2017)

Americas

Virginia

Iowa

Illinois

Texas

West Central US

California

West US 2

Quebec City

Toronto

Sao Paulo State

Asia-Pacific

Beijing

Busan

Chennai

Hong Kong

Mumbai

New South Wales

Osaka

Pune

Saitama

Shanghai

Singapore

Tokyo

Victoria

Government

Iowa

Virginia

US DoD East

US DoD Central

Europe

Cardiff

Frankfurt

Ireland

London

Magdeburg

Netherlands

Section 4

Hybrid Clouds

Cloud computing has evolved a lot over the last few years. What was once an external addition to business’ infrastructure has become an integral component. The concept of the hybrid cloud is a reflection of that evolution.

A hybrid cloud is one that integrates cloud resources with other on-premise, off-premise, and third-party resources. In most cases, these integrations are transparent to the user. For example, a local file server might host tomorrow’s presentation, but employees working on it are using Office.com’s cloud-based Powerpoint product.

Some cloud services even allow physical integrations to meet security, latency, and other business needs. Vendors often refer to these connections as connecting to a cloud’s edge. Amazon’s AWS Direct Connect, Google’s Interconnect, and Microsoft’s Express Gateway are all examples of this configuration.

Section 5

Cloud Services

Cloud company product offerings tend to be wide, specific, and designed to fill niches. Collectively, it is possible to run an entire organization’s technology stack on the cloud. The more common case is to use cloud providers to enhance existing pieces of infrastructure, or add pieces that are missing. Google, Amazon, and Microsoft all provide a combination of IaaS, SaaS, and Paas products for companies to pick and choose from.

The tables below attempt to identify the most widely applicable offerings in each of the big three that perform similar operations. Some of the categories may differ slightly as not all providers use all the same nomenclature. The table uses the category that matches the majority when there is a discrepancy.

And That’s Not All ...

Other Services - There are a wealth of offerings that are designed to complement the above services, are very niche in nature, or are implemented too uniquely to each service for generalization here.

Developer Tools

Management Tools

Security, Identity, and Compliance

Artificial Intelligence

Mobile Services

Application Services

Messaging

Business Productivity

Desktop & App Streaming

Internet of Things

Game Development

Machine Learning

Identity & Security

Management Tools

Developer Tools

Genomics

Web + Mobile

Internet of Things

Enterprise Integration

Security + Identity

Developer Tools

Monitoring + Management

Section 6

Key Benefits of Cloud Services

Pay Only What You Consume

Until a few years ago, the costs of providing off-site services were similar to a leasing plan; a certain amount of allocated resources and an incurred cost whether such resources were consumed or not. Cloud computing as it's known today has changed this. The various offerings provided by all major cloud computing platforms function on a consumption-based plan. The use of services is charged based on the applicable resources of that service. For example, a virtual machine will incur cost based on the computing power used and the server uptime. Meanwhile, a data warehouse service might charge based on the amount of data stored and the frequency with which reports are run against it.

This pricing structure may seem convoluted, but it greatly benefits the customer. Cost incurred for use means companies of all sizes can use resources that would be cost prohibitive if they had to acquire all the hardware, software, physical space, and connectivity on their own. An on-premise data warehouse can be extremely costly. A cloud based, consumption priced data warehouse is much more affordable.

One Time & Alternative Pricing

Cloud services are often subject to traffic spikes due to one time events (e.g. National broadcast exposure, SuperBowl commercial, etc.). Not only can this type of provisioning be expensive, but oftentimes difficult to achieve.

In addition to peak and one time pricing, some services allow for other alternative pricing structures. One example is pricing that becomes cheaper after peak hours. If operations can occur when there is a predictable lull in resource use, such as midnight to early morning for that region, then those operations can sometimes be done at a cheaper rate.

Alternatively, if operations have very flexible usage requirements, then some providers allow customers to bid on access to resources only when they become available for however long they are available at a price calculated by current resource use. For example, a large batch process can be scheduled to occur when computing resources at that region become available for $0.x/minute due to transitory low usage windows until resource usage returns to normal or the batch process completes.

Finally, there is sometimes the option of dedicated resources. These are often the most costly of cloud resources. For some resources, such as disk storage or servers, it is possible to engage a lease type pricing model where a company pays for a resource to be dedicated only to them. This is useful for:

Regulatory situations where the benefits of cloud computing are necessary but co-hosting would break regulatory requirements

Automated Growth & Scalable Technologies

Cloud resources are virtualized and configured for specific requirements but not a physical piece of hardware. This means that it is very easy to launch more of any specific resource needed by the company. If a customer is in a period of rapid growth, then the cloud can easily increase the amount of resources available without intense installation or configuration. This is also true in reverse. If a company needs to reduce cost, then turning off resources or using less of a resource does not require much effort.

Scaling is also extremely easy to do since cloud services can be as permanent or temporary as needed. An application designed for high usage on a cloud provider can easily scale from a small amount of used resource to a large amount without little extra configuration. The cloud service will often instantiate additional resources as needed, for only as long as needed.

Other Cloud Computing Providers

Amazon’s, Google’s, and Microsoft's cloud computing platforms may dominate the cloud computing space, but other providers have also emerged. Some of these providers include:

Many of these providers rely on industry standard virtualization and operating system technology making them competitive to the other cloud computing platforms. However, comparing these other providers to Google's, Microsoft's, or Amazon’s cloud computing platforms can be more difficult due to the maturity and robustness of the big three’s platforms.

Nevertheless, some of these other cloud computing providers have carved out niche markets in the cloud computing market. Some do so by adopting more aggressive pricing structures, catering to the specific needs of certain communities (e.g. Ruby/Rails, or Linux), or providing better customer service than their larger rivals.

Clouds Do Get Disrupted (Rarely)

Customers should hold their cloud providers to a 99+% uptime. Cloud providers are well aware of customer expectations on this point, and do everything to meet that threshold. However, if the mind-boggling number of hours that services are available is considered, then even a 1% downtime is likely to affect you. No technology is perfect.

All Cloud providers offer status pages so customers can be aware of any disruptions that occur: