Monthly Archives: April 2014

Cloud Computing Services Taxonomy

In this topic you will learn about cloud computing services taxonomy. For each category of services, links and quick summaries are provided. This should give you a road map that might help to untangle a web (pun intended) of words and acronyms. So, brace yourself for this wide dive in a fascinating topic.

Category Description
Compute Services Provide dynamically scalable compute capacity
Storage Services Allow storage and retrieval of any data, at any time from anywhere
Database Services Allow to configure and operate relational or non-relational databases.
Application Services Provide services such as application runtimes and frameworks, queuing, email, notification and media services.
Content Delivery Services Serve content to end users with high availability and performance.
Analytics Services Allow analyzing massive data sets stored either in cloud storages or cloud databases.
Deployment and Management Services Allow to deploy and manage applications in the cloud.
Idendity and Access Management Services Allow managing authentication and authorization of users in order to provide secure access to cloud resources.

Compute Services

The compute services provide dynamically scalable compute capacity which allow the following:

  • Creation of virtual machines from standard images, provided by the compute service provider, such as Ubuntu image, Windows image and so on. Custom images can also be created. A machine image is a template for an operating system, application server and applications.
  • Service access via a Web interface for provisioning, managing and monitoring tasks.
  • Interaction with the service via various programming language APIs.

The following are some of the most common compute services and their main characteristics.

Service Name Description
Amazon Elastic Compute Cloud (EC2) This is a web service that provides resizable compute capacity in the cloud allows to perform the following:

  • Create a virtual machine instance and select your Amazon Machine Image (AMI).
  • Specify the instance size: micro, small, medium, large and so on.
  • Establish the number of instances to launch based on the AMI and zone availability.
  • Define the metadata tags to simplify the administration of the of EC2 instances.
  • Select a key pairs to securely connect to an instance.

An EC2 instance has one public Domain Name System (DNS) and Internet Protocol (IP) address and one private DNS and IP. The public DNS can be used to connect securely to an instance via Secure Shell (SSH).

Google Compute Engine This is a web service that enables users to create and manage compute instances. It allows the following:

  • Create a virtual machine instance and select a machine image for the instance.
  • Select a zone in which the instance must be activated.
  • Provide instance name, instance tags and metadata.

Every instance has a disk resource and depending on the instance the disk can be:

  1. A scratch disk which is deleted when the machine instance terminates.
  2. A persistent disk which persists beyond the life of an instance.

Network options allow to control instance traffic. By default, traffic between instances in the same network is enabled. You can enable other connections, using additional firewall rules.

Windows Azure Virtual Machines This is a web service that enables users to create and manage compute instances. It allows the following:

  • Create a virtual machine instance and select machine image and instance type.
  • Provide user name and password or upload a certificate for securely connecting to the instance.

Any changes made to a virtual machine are persistently stored. New virtual machines can be created from previously stored machine images.

Storage Services

The storage services allow storage and retrieval of any data, at any time from anywhere. The majority of the services organize the data in buckets (containers) which store objects (individual pieces of data).

The following are some of the most common storage services and their main characteristics.

Service Name Description
Amazon Simple Storage Service (S3) This web service provides a cloud based infrastructure for storing and retrieving any amount of data. The following are its main characteristics:

  • Highly reliable, scalable, fast and fully redundant affordable storage.
  • Data stored on S3 is organized in buckets. You must create a bucket before storing any data.
  • Ability to upload any kind of file.
  • Support for redundancy, encryption options and access permissions.
Google Cloud Storage This is a web service for storing and retrieving any amount of data. The following are its characteristics:

  • The service uses Google’s proprietary network and datacenter technology. Google spent several years building proprietary infrastructure and technology to power Google’s sites, When you use the service, the same network goes to work for your data.
  • The service replicates data to multiple data centers and serves end-user’s requests from the nearest data center that holds a copy of the data. You have a choice of regions (currently U.S. and Europe) to allow you to keep your data close to where it is most needed. Data is also replicated to different disaster zones to ensure high availability.
  • When you upload an object and mark it as cacheable (by setting the standard HTTP Cache-Control header), The service automatically figures out how best to serve it using Google’s broad network infrastructure, including caching it closer to the end-user if possible.
Windows Azure Storage This web service provides various storage capabilities such as blob storage, table and queue services. The blobs have the following properties:

  • They are organized into containers.
  • There are two kinds of blobs: block and page blobs.
  • A block blob can be divided into some number of blocks.
  • If failure occurs while transferring a blob, retransmission can resume with the most recent block.
  • Page blobs are divided into some number of pages, which are designed for random access.

Database Services

The database services allow to operate relational and non-relational databases in the cloud. An important advantage is that they relieve an application developer from time consuming administration tasks. The following are some of the database services provided:

  1. Relational databases. They include MySQL, Oracle, SQL Server and so on.
  2. Non-relational databases. They include mostly proprietary solutions. They are fully managed to deliver seamless throughput and scalability.

The following are some of the most common database services and their main characteristics.

Service Name Description
Amazon Relational Data Store (RDS) Relational database web service. It enables the user to easily configure, operate and scale a relational database in the cloud. The related console allows the following:

  • Select the type of database to create such as MySQL, Oracle, or SQL Server.
  • Define database size, allocated storage, database identifier.
  • Define user name and password.

The database instance has an end point that the user can use to securely connect to the instance.

 Amazon DynamoDB Non-relational database service. It includes tables, items and attributes. The following are its main characteristics:

  • A table is a collection of items.
  • Each item is a collection of attributes.
  • To store data you must create one or more tables and specify how much throughput must be provisioned for reading and writing operations.
  • The service is fully managed and automatically distributes the data and the traffic over a number of servers to meet the throughput requirements.
  • All the stored data is automatically replicated across multiple zones to allow for durability.
 Google Cloud SQL Relational database service which allows the user to host MySQL database in the cloud. The following are its main characteristics:

  • Synchronous and asynchronous geographic replication.
  • Ability to import and export databases.
  • Selection of a region, database tier, billing plan and replication modality.
  • Scheduling daily backups and restoring backups.
 Google Cloud Datastore Fully managed non-relational database service. The following are its main characteristics:

  • ACID transactions and high availability of read and write operations.
  • Data model consists of entities.
  • Each entity has one or more properties.
  • Properties (key-value pairs) can be of one supported data types.
  • Each property has a kind and a key. The key uniquely identifies the entity, while the kind is used to categorize the entity for query purposes.
 Windows Azure SQL Database  Relational database service which is based on the SQL server. The following are its main characteristics:

  • The SQL database is a multi-tenant service.
  • Each customer has a logical SQL server assigned.
 Windows Azure Table Service  Non-relational database service which consists of tables having multiple entities. The following are its characteristics:

  • The tables are divided in a number of partitions.
  • Each partition can be stored on a different machine.
  • A partition holds a specified number of entities each containing several properties.
  • Each property can be one of the several supported data types.
  • Tables do not have a fixed schema, so different entities in table can have different properties.

Application Services

The application services provide services such as application runtimes and frameworks, queuing, email, notification and media services.

The following are some of the most common application services and their main characteristics.

Service Name Description
Application Runtimes and Frameworks services allow developers to build and host apps in the cloud. The runtimes provide the following:

  • Support for programming languages such as Java, Python, Ruby and so on.
  • Automatically allocate resources.
  • Handle scaling without the need to run and maintain servers.
Google App Engine This platform as a service (PaaS) includes an application runtime and a web framework. Its main characteristics include:

  • Runtimes. App Engine provides runtime environments for Java, Python, PHP, Go programming languages.
  • Sandbox. Applications run in a secure sandbox environment isolated from other applications. Limited access to the underlying OS is allowed.
  • Web Frameworks. App Engine provides a simple Python web application framework called webapp2. It also supports frameworks written in Python that use WSGI, which include Django, CherryPy, Pylons, web.py and web2py.
  • Datastore. A no-SQL data storage service is provided.
  • Memcache. High performance in-memory key-value cache service is provided.
  • Tasks. App Engine provides task queues to allow work in the background. It also provides a cron service for scheduling.
Windows Azure Web Sites This platform as a service (PaaS) allows hosting of web applications in the cloud. Its main characteristics include:

  • Shared and standard options.
  • In the shared option, a web site runs on virtual machines that can contain multiples sites by multiple users.
  • In the standard option, a web site runs on virtual machines that belong to a single user.
  • Applications written in ASP.NET, PHP, Node.js and Python are supported.
  • Multiple copies of an application can run on different virtual machines and requests are automatically load-balanced among them.
Queuing Services allow the decoupling of application components by enabling them to communicate through messages queues. The following are the main queues advantages:

  • They allow for asynchronous processing.
  • Provide overflow buffers to handle temporary volume spikes or to handle the mismatch between message generation and consumption.

Messages can be queued and read from queues simultaneously. The message latency can go from a couple of days to a couple of weeks.

Amazon Simple Queue Service (SQS) Amazon Simple Queue Service (SQS) is a fast, reliable, scalable, fully managed message queuing service. SQS makes it simple and cost-effective to decouple the components of a cloud application. You can use SQS to transmit any volume of data, at any level of throughput, without losing messages or requiring other services to be always available. With SQS, you can offload the administrative burden of operating and scaling a highly available messaging cluster, while paying a low price for only what you use.To assure high availability for message delivery, SQS performs a trade-off on FIFO capability and does not guarantee that messages are delivered on first in first out (FIFO) order.
Google Task Queue Service Tasks queues are an efficient and powerful tool for background processing; they allow your application to define tasks, add them to a queue, and then use the queue to process them in aggregate. You name queues and configure their properties in a configuration file named queue.xml.Push queues function only within the App Engine environment. These queues are the best choice for applications whose tasks work only with App Engine tools and services. With push queues, you simply configure a queue and add tasks to it. App Engine handles the rest. Push queues are easier to implement, but are restricted to use within App Engine. For more information about push queues and examples of how to use them, see Using Push Queues.
Windows Azure Queue Service Windows Azure Queue allows decoupling of different parts of a cloud application, enabling cloud applications to be easily built with different technologies and easily scale with traffic needs.

Windows Azure Queues

Windows Azure Queues

The figure above illustrates a simple but common scenario for cloud applications. There are a set of web servers hosting the frontend logic of handling web requests. There are a set of backend processing servers implementing the business logic of the application. The web server frontend nodes communicate with the backend processing nodes via a set of queues. Persistent state of the application can be stored in Windows Azure Blob storage and Windows Azure Table storage.

Email Services allow applications hosted in the cloud to send emails.
Amazon Simple Email Service Amazon Simple Email Service (Amazon SES) is a cost-effective outbound-only email-sending service built on the reliable and scalable infrastructure that Amazon.com has developed to serve its own customer base. With Amazon SES, you can send transactional email, marketing messages, or any other type of high-quality content and you only pay for what you use.Along with high deliverability, Amazon SES provides easy, real-time access to your sending statistics and built-in notifications for bounces and complaints to help you fine-tune your email-sending strategy.SES service can be accessed and used from the console, the Simple Mail Transfer Protocol (SMTP) interface, or the SES API.
Google Email Service This service is part of the App Engine platform, which allows applications to send email messages on behalf of the app’s administrators, and on behalf of users with Google Accounts. Apps can receive email at various addresses. Apps send messages using the Mail service and receive messages in the form of HTTP requests initiated by App Engine and posted to the app. Apps can send messages using the Mail service and receive messages in the form of HTTP requests initiated by the App Engine and posted to the app.
Notification Services allow applications to push messages to Internet connected devices such as smartphones, tablets and so on.
test test
Media Services provide various media service types used by applications to transform or transcode images, videos and so on.
test test

Content Delivery Services

The content delivery services include Content Delivery Networks (CDNs). A CDN is a distributed system of servers located across multiple geographic locations to serve content to users with high availability and performance. CDNs are useful to serve static content and have a number of edge locations deployed in multiple locations. CDNs cache popular content on the edge servers which helps in reducing bandwidth costs and improving response time.

The following are some of the most common content delivery services and their main characteristics.

Service Name Description
Amazon CloudFront Amazon CloudFront is a content delivery web service. It integrates with other Amazon Web Services to give developers and businesses an easy way to distribute content to end users with low latency, high data transfer speeds, and no commitments.
Windows Azure Content Delivery Network The Microsoft Azure Content Delivery Network (CDN) offers developers a global solution for delivering high-bandwidth content that’s hosted in Azure. The CDN caches publicly available objects at strategically placed locations to provide maximum bandwidth for delivering content to users.

Analytics Services

The analytics services allow to analyze massive amount of data stored either in cloud storages or in cloud databases using programming models such as MapReduce. Applications can perform data intensive tasks such as data mining, log file analysis, machine learning, web indexing and so on.

The following are some of the most common analytics services and their main characteristics.

Service Name Description
Amazon Elastic MapReduce

Amazon Elastic MapReduce (Amazon EMR) is a web service that makes it easy to quickly and cost-effectively process vast amounts of data.

Amazon EMR uses Hadoop, an open source framework, to distribute your data and processing across a resizable cluster of Amazon EC2 instances. Amazon EMR is used in a variety of applications, including log analysis, web indexing, data warehousing, machine learning, financial analysis, scientific simulation, and bioinformatics. Customers launch millions of Amazon EMR clusters every year.

Google MapReduce Service

Google MapReduce service is an open-source library that is built on top of App Engine services, including Datastore and Task Queues. You must download the MapReduce library and include it with your application. The library provides:

  • A programming model for large-scale distributed data processing
  • Automatic parallelization and distribution within your existing codebase
  • Access to Google-scale data storage
  • I/O scheduling
  • Fault-tolerance, handling of exceptions
  • User tunable settings to optimize for speed/cost
  • Tools for monitoring status

There are no usage charges associated with the MapReduce library. As with any App Engine application, you will be charged for any App Engine resources that the library or your MapReduce code consumes (beyond the free quotas) while running your job. These can include instance hours, Datastore and Google Cloud Storage usage, network, and other storage.

Google BigQuery

Querying massive datasets can be time consuming and expensive without the right hardware and infrastructure. Google BigQuery solves this problem by enabling super-fast, SQL-like queries against append-only tables, using the processing power of Google’s infrastructure. Simply move your data into BigQuery and let us handle the hard work. You can control access to both the project and your data based on your business needs, such as giving others the ability to view or query your data.

You can access BigQuery by using a browser tool or a command-line tool, or by making calls to the BigQuery REST API using a variety of client libraries such asJavaPHP or Python. There are also a variety of third-party tools that you can use to interact with BigQuery, such as visualizing the data or loading the data.

Get started now with creating an apprunning a web query or using the command-line tool, or read on for more information about BigQuery fundamentals and how you can work with the product.

Windows Azure HDInsight

HDInsight is a Hadoop-based service from Microsoft that brings a 100 percent Apache Hadoop solution to the cloud. A modern, cloud-based data platform that manages data of any type, whether structured or unstructured, and of any size, HDInsight makes it possible for you to gain the full value of big data.

With HDInsight you can seamlessly process data of all types through Microsoft’s modern data platform, which provides simplicity, ease of management, and an open Enterprise-ready Hadoop service all running in the cloud. You can analyze your Hadoop data with PowerPivot, Power View and other Microsoft BI tools, thanks to integration with Microsoft data platform.

Deployment and Management Services

The deployment and management services allow to manage and deploy application in the cloud. They allow to perform tasks such as capacity provisioning, load balancing, auto-scaling and application health monitoring.

The following are the most common analytics services and their main characteristics.

Service Name Description
Amazon Elastic Beanstalk Amazon Elastic Beanstalk is an easy way for you to quickly deploy and manage applications in the cloud. You simply upload your application, and Elastic Beanstalk automatically handles the deployment details of capacity provisioning, load balancing, auto-scaling, and application health monitoring. At the same time, with Elastic Beanstalk, you retain full control over the resources powering your application and can access the underlying resources at any time. Elastic Beanstalk leverages services such as Amazon Elastic Cloud Compute (Amazon EC2), Amazon Simple Storage Service (Amazon S3), Amazon Simple Notification Service (Amazon SNS), Elastic Load Balancing, and Auto Scaling to deliver the same highly reliable, scalable, and cost-effective infrastructure that hundreds of thousands of businesses depend on today. 
Amazon CloudFormation

Amazon CloudFormation gives developers and systems administrators an easy way to create and manage a collection of related AWS resources, provisioning and updating them in an orderly and predictable fashion.

You can use AWS CloudFormation’s sample templates or create your own templates to describe the AWS resources, and any associated dependencies or runtime parameters, required to run your application. You don’t need to figure out the order for provisioning AWS services or the subtleties of making those dependencies work. CloudFormation takes care of this for you. After the AWS resources are deployed, you can modify and update them in a controlled and predictable way, in effect applying version control to your AWS infrastructure the same way you do with your software.

You can deploy and update a template and its associated collection of resources (called a stack) by using the AWS Management Console, AWS Command Line Interface, or APIs. CloudFormation is available at no additional charge, and you pay only for the AWS resources needed to run your applications.

Identity and Access Management Services

The identity and access management services provide the following:

The following are some of the most common identity and access management services and their main characteristics.

Service Name Description
Amazon Identity and Access Management

AWS Identity and Access Management (IAM) enables you to securely control access to AWS services and resources for your users. Using IAM, you can create and manage AWS users and groups and use permissions to allow and deny their access to AWS resources.

To get started using IAM, click on the Create New Account; or if you have already registered with AWS, sign into the AWS Management Console and get started with these IAM Best Practices.

IAM is free so start using it today!

Windows Azure Active Directory Azure Active Directory is a comprehensive identity and access management cloud solution that provides a robust set of capabilities to manage users and groups and help secure access to applications including Microsoft online services like Office 365 and a world of non-Microsoft SaaS applications. Azure Active Directory is offered in two tiers: Free and Premium.