The Complete Guide to 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.

 Table of Contents

  • About Cloud Computing
  • Types of Cloud Computing
  • Cloud Basics
  • Hybrid Clouds
  • Cloud Services
  • Key Benefits of Cloud Services

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.

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
  • Swift Management: Ability to react to network problems or improve network configurations quickly

Cons

  • 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

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:

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)

Google Regions (as of 3/2017)

Microsoft Regions (as of 3/2017)

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.

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.

Computing - Virtual servers, information processing, and event handling

Storage - Data storage structures akin to disks and tapes

Databases - Wide range of organized data repositories from relational SQL to NoSQL to cloud caching

Networking - Everything a modern small, medium, or large business needs to build and deploy robust networks

Big Data and Big Data Analytics - Data warehouses and tools to analyze the data

And That’s Not All ...

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.

Cloud computing platforms allow applications to access additional resources immediately and as needed without additional configuration..

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:

Mission critical applications, networks, and processes that cannot risk being affected by regular virtualization or co-hosted processes

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:

Openstack Public Cloud

IBM Cloud & BlueMix

Heroku

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:

Google Cloud Status Page:

https://status.cloud.google.com/

AWS Status Page:

https://status.aws.amazon.com/

Microsoft Azure Status Page:

https://azure.microsoft.com/status/

IBM Cloud Status Page:

https://www.ibm.com/cloud-computing/social/maintenance/

Rackspace Status Page:

https://status.rackspace.com/

Cloud Computing Team Blogs

In order to keep abreast on the latest offerings made by cloud computing providers, we recommend you consult each platform's team blog.

Google Cloud Platform Blog:

https://cloudplatform.googleblog.com/

AWS blog:

https://aws.amazon.com/blogs/aws/

Microsoft Azure team blog:

https://azure.microsoft.com/blog/

IBM Cloud blog:

https://www.ibm.com/blogs/cloud-computing/

Rackspace blog:

https://blog.rackspace.com/

Thanks for reading

If you liked this post, share it with all of your programming buddies!

Follow us on Facebook | Twitter

Further reading AWS

AWS Certified Solution Architect Associate

AWS Lambda vs. Azure Functions vs. Google Functions

Running TensorFlow on AWS Lambda using Serverless

Deploy Docker Containers With AWS CodePipeline

A Complete Guide on Deploying a Node app to AWS with Docker

Create and Deploy AWS and AWS Lambda using Serverless Framework

Introduction To AWS Lambda




#cloud #aws #web-service #serverless #microservices

The Complete Guide to Cloud Computing
2 Likes15.95 GEEK