Cloud Computing Applications

Introducing Cloud Computing Applications

Cloud computing is a rapidly emerging technology. With this technology, everyone using the World Wide Web can enjoy flexible computing power on-demand.

As this alleviates the pressure on organizations investing in and maintaining costly computer hardware and software, it has become the new standard of computing.

There are many firms that provide cloud environments for development, management, and provision of software.

Primarily, cloud computing allows people to use their PCs as well as various portable devices to access high-level computing power using an array of software and hardware infrastructure via a wide area network, without having to understand the cloud architecture.

Numerous cloud service providers exist, but the top six cloud computing platforms are :

  • Google
  • Dropbox
  • Apple
  • Microsoft
  • Amazon

The following diagram shows the dominant cloud computing service providers.

Cloud Service Providers

Cloud Service Providers

There are three cloud service models, namely, Software-as-a-Service (SaaS), Platform-as-a-Service (PaaS), and Infrastructure-as-a-service (IaaS).

As the basic service provided by each cloud vendor is discussed, reference will be made to either SaaS, PaaS, or IaaS.

Google App Engine

Web applications are created daily and circulated over the internet for public consumption. Accordingly, environments for building, hosting, and running custom applications are needed by web app developers.

Google App Engine (GAE) provides a fully managed application development platform (PaaS) that enables software developers to run on programming languages such as Java, Ruby, and Python written code on Google infrastructure.

Like other cloud platform service providers, GAE supports well-known web programming languages with an array of software development tools that allow developers to effortlessly create, deploy, and maintain their web applications.

This allows developers to be more versatile while focusing on writing their code without being concerned with the underlying computing hardware and system software that their apps run on. Moreover, GAE is highly flexible and can automatically scale up or down when encountering fluctuations in web traffic and high data storage needs.

When considering costs, it is important to understand that there are no set up fees and no recurrent expenses when using GAE. The computing resources (storage and bandwidth) used by the hosted applications are measured in gigabytes and billed at reasonably modest ratees.

All web apps are allowed a maximum of 500 MB of free storage and enough processing power and bandwidth to support about 5 million page view per month.

Anything above this threshold must be paid for based on the exact storage or bandwidth usage.

Google App Engine Services

GAE has a variety of services that function seamlessly to form the whole environment structure. These include:

Application environment : This service allows developers to build web applications that can handle substantial amount of data traffic.

Sandbox : This service permits the hosting of a developer’s web app in a safe online environment and can only be viewed via the Internet through the URL by making an HTTP or HTTPs request.

Python runtime environment : This service provides the means to understand various programming languages and execute the code written in them.

Datastore : This service utilizes Structured Query Language (SQL) to offer a vast database repository to store and manage collections of data in virtual machine logs, scripts, and configuration files.

Google account : This service authorizes clients to access all Google applications using a single Google account.

URL fetch : This service permits the hosted web app’s scripts to communicate with other apps or access various computing resources on Google’s network infrastructure to issue HTTP and HTTPs requests and receive responses.

Mem Cache : This service speeds up datastore queries in order to increase performance and decrease chances of session malfunction.

Image manipulation : This service provides users with basic image editing capabilities

GAE Architecture

Developers utilize GAE to streamline the creation and deployment of web apps. These applications use the auto scaling computing power of an app engine as well as the integrated features like distributed in-memory cache, task queues and datastore to create dynamic applications rapidly and effortlessly as compared to stand-alone software development environments.

The following diagram shows the Google App Engine standard environment:

Google App Engine Architecture

Google App Engine Architecture

Google Apps

More prevalent in today’s online computing environment, software is often provided to end users as a recurring service from vendor (SaaS).

This service provision is commonly referred to as ‘Apps’ which is an abbreviated form of ‘Applications’. Though they are one and the same, Apps are technically different because they are web-based (only accessible via the internet) and cane be launched on any PC or mobile device irrespective of its underlying operating system.

This is a key advantage of this ubiquitous computing that cloud computing provides.

Google, one of the leading online information service providers, offers a suite of SaaS services known as Google Apps.

Gmail

Gmail is a free web-based messaging system developed by Google. Not only does Gmail provide basic email service, but it also offers file sharing, video chatting, Google search, scheduling, and so on.

This App an be accessed through any web browser irrespective of the user’s geographic location as long as an Internet connection is present. After creating a google account, a user can access their Gmail and many other Google apps.

Gmail

Gmail

The following diagram shows a Google account being created.

Google's account creator page

Google’s account creator page

Google Docs

Google Docs is a free web-based document management.

The SaaS app allows users to create, edit, and view presentations, word documents, and spreadsheets.

This app is compatible with a majority of word processing and presentation applications. One of its key features is the ability for users to simultaneously work on the same document which is extremely advantageous in collaborative work.

Google docs

Google docs

How to use Google Docs : The following is a brief description of a typical instance of Google Docs. Note: You must first create a google account to access Google Docs.

Starting a new document : On your PC or mobile device, click on the document type icon on the home screen at docs.google.com. The document will open and all edits will be saved in the Google Drive.

Editing and formatting : On your PC or mobile device, open a document in Google Docs. You can edit and format the document in the same manner as you would do on any standard desktop word processing document such as MS Word.

Sharing and working with others : You can share files and folders with people and choose whether they can view, edit, or comment on them.

The following diagram shows a snapshot of a Word document in Google Docs.

Google Docs Word Processing

Google Docs Word Processing

Google Calendar

Google Calendar is a free time management and SaaS app that allows users to create and modify calendars in order to keep track of their personal and professional events.

A snapshot of Google Calendar is shown in the following diagram:

Google Calendar

Google Calendar

Google Drive

Google Drive is a free file storage SaaS that allows users to store and access files located in the cloud. This app is revered as one of the most resourceful cloud storage services because of its ability to synchronize stored files across all the users’ PCs and mobile devices.

Another key advantage of using Google Drive is that it seamlessly integrates with the entire ecosystem of Google SaaS apps.

A snapshot of Google Drive is shown in the following screenshot:

Google Drive

Google Drive

Google Cloud Datastore

Google Cloud Datastore is an extremely scalable, fully managed NoSQL database service (PaaS) used to store and retrieve non-relational data for use in big data analytics and real-time web applications.

Google Cloud Datastore

Features of Google Datastore

Atomic transactions : Cloud Datastore can perform a set of operations where every transaction is regarded as ‘atomic’, which means that either all the executed operations succeed or none of them occur.

High availability of reads and writes : Cloud Datastore runs in secure Google data centers with a redundancy system design that ensures that in the event of any problem arising from one or more failed computing resource, retrieval of stored data as well as non-interrupted cloud service provision is certain.

Massive scalability with high performance : Cloud Datastore automatically manages scaling using a combination of indexes and query constraints so that queries scale with the size of user query result sets and not the size of user data sets.

Flexible storage and querying of data : Cloud Datastore runs on SQL-like query language and maps logically to object-oriented and scripting languages.

Balance of strong and eventual consistency : Cloud Datastore ensures that entity queries constantly receive consistent data with every other query ultimately following that same consistency. This allows applications to run smoothly while handling large amount of data and users.

Encryption at rest : Cloud Datastore automatically encrypts each bit of data prior to it being written to the disk and automatically decrypts the data when ready by an certified/licensed user.

Fully managed with no planned downtime : Google manages the Cloud Datastore with no interruptions in the service.

Google Cloud Database versus relational databases : Although the Cloud Datastore contains a lot of the same characteristics as conventional databases, as a NoSQL database, it contrasts from them because it defines relationships between data objects rather than relating them using tabular columns and rows.

This means that entities that are similar do not necessarily need to have a consistent set of properties.

What really distinguishes Datastore from relational databases is its ability to autonomously scale extremely large sets of data, thereby permitting applications to sustain optimal performance as they receive extreme levels of web traffic.

Dropbox Cloud

Dropbox is a cloud storage service (SaaS) that allows users to store practically any kind of file on remote cloud servers with the ability to share these files in a synchronized format across all PCs or mobile device. It is one of the prevailing online storage solutions used mainly for small businesses.

Dropbox

Dropbox

Like most cloud applications, Dropbox runs on an array of both desktop and mobile operating systems. A basic Dropbox account is free and includes 2 GB of storage space. Additional space can be purchased on a subscription basis.

To access the storage service, users need to install the Dropbox app on various devices which prompts an automatic appearance of a dedicated Dropbox folder on the device’s desktop. Then, all you have to do is save ‘drop’ whatever files you would like to back up in it in the same manner you would do on local file system. The application immediately uploads the data/files to the Amazon Web Services (AWS) cloud.

On dropping items into the Dropbox folders, the app immediately synchronizes the data within these dedicated folder(s) across all your devices so that they appear to be in the identical folder (with the exact contents).

The uploaded files can then be accessed from the installed application on the devices or through on online control panel as long as there is an internet connection present. The user only needs to log in to his/her Dropbox account to manage, upload, download, or share files.

To share files and folder, a user can make URL requests for them from the Dropbox website and send them to others who have Dropbox accounts.

When files or folders are shared, they instantly appear in the folder system of all the recipients who have the authority to access and if need be, edit the files.

The following screenshot shows a Dropbox account being created:

Dropbox user account creation

Dropbox user account creation

Apple iCloud

The iCloud, provided by Apple, is a cloud-based storage suite system that allows Apple device users to securely store documents, media files, and application data on dedicated Apple servers.

As files are put on each iOS powered device, iCloud automatically synchronizes all the data amidst the range of a user’s Apple devices that are connected to the Internet.

A typical example of this synchronization is when someone takes photos with his/her iPhone. If the phone is connected to the internet, as each photo is taken, it is immediately uploaded to the iCloud in which he/she can view the exact photos using his/her MacBook or iPad, assuming that either of these devices is also connected to the Internet.

Also, if an iPad owner downloads some songs from iTunes, as each song is downloaded, it will immediately be ready for listening on his/her iPod if it is connected to the internet. Even games or other applications that are downloaded are synchronized across other Apple devices owned by the particular user.

Apple devices can integrate various kinds of application data, including contacts, calendars, documents as well as various multimedia files. The seamless integration is intended to provide easy back up and access to files.

However, a notable limitation of iCloud is that it is does not support cross-platform compatibility with other mobile operating systems such as Google’s Android and Windows Mobile. Nonetheless, it does support the standard Windows PC platform.

The following screenshot shows the iCloud log in screen.

Apple iCloud user sign in

Apple iCloud user sign in

Microsoft Windows Azure Cloud

Windows Azure is the Microsoft version of the cloud computing application development environment (PaaS). Azure provides developers with a development platform to create, test, manage, and deploy new web-based apps or to improve existing applications with cloud-based capabilities.

Azure also makes provision for users to utilize virtual machines (IaaS) of both Microsoft Windows and Linux operating systems for a broad spectrum of reasons.

The following diagram illustrates the five crore elements that Azure encompasses:

Windows Azure main components

Windows Azure main components

The main components of Windows Azure are discussed in more detail as follows:

Compute : Azure compute can run multiple instances of various types of applications. Each instance is comprised of a pair of Roles. The first is a Web Role, which is responsible for real-time screenshot captures shown to users as they view files or work on documents. The other role is a Worker Role which does real-time processing of data.

Cloud Storage : Storage comprises blobs, tables, ang queues. Blobs are types of files; tables serve as key-value-pair type data storage slots, and queues integrate Web Role and Worker Role for a fluent user experience.

Fabric Controller : Fabric controller, also referred to as an Application Fabric, takes care of verification and data transport among Windows Azure applications and hardware resources like servers.

Content Delivery Network (CDN) : The CDN stores copies of a blob at servers farms closer to the user’s geographical location. For example, if a video recording of breaking news is uploaded to Windows Azure from a cloud facility in France, a user who tries watch video on Bing from somewhere in the US won’t get the benefit of the CDN since the blob isn’t yet cached in North America. Others watching the video on Bing in Western Europe will see better performance as using the cached copy allows the video to load more quickly.

Connect : Running applications in the Microsoft cloud is essential. But connecting to the on-premises environments with Windows Azure is advantageous.

Windows Azure Connect is designed to help do this. By providing IP-level connectivity between a Windows Azure application and machines running outside the Microsoft cloud, it can make this arrangement more efficient.

Azure Cloud Storage Types

The foundation of Microsoft Azure Storage is , undeniably, the storage types to select from. There are five storage solutions in Microsoft Azure which can be segmented into two groups by their design and function.

The first storage subdivision is available via the REST APIs (Application Programming Interface) which means storage resources may be accessed from within a service running in Azure, or directly over the Internet from any application that can send an HTTP/HTTPS request and receive and HTTP/HTTPS response.

REST APIs offer programmatic access to blobs, tables, and queue services which facilitate file storage, scalability , and communication.

The second subdivision exclusively enhances the environment of Azure Virtual Machines which means that Azure virtual networks of scalable computing resources can easily be connected to a firm’s existing network on-demand.

These virtual machines offer organizations more flexibility of virtualization for application development, testing, deployment, file storage, and disk storage with support for Linux, Windows Server, SQL Server, Oracle, IBM, and SAP.

The following flow diagram shows the Azure Cloud Storage types:

Microsoft Windows Azure Storage types

Microsoft Windows Azure Storage types

REST APIs

Blog Storage : BLOB is an acronym for Binary Large Object, which is essentially a file. Blob storage is utilized for storing large amount of unstructured data which can be stored in three ways:

  • Block Blob : To store files at 4.77 TB per file
  • Append Blobs : To store logs or metadata which require perpetual updating
  • Page Blobs : To store HDD and SSD disks

Table Storage : Table is optimized for storing highly scalable, structured NoSQL (non-relational) data in a tabular form to be used in big data analysis.

Queue Storage : Queue storage is intended to connect decoupled and independent components of an application by automatically creating backlogs of asynchronous messages to process from Azure web roles to Azure worker roles.

Virtual Machines

Disk Storage : Disk  storage is a service that allows users to create virtual hard disks (VHDs) to be accessed from a virtual machine to be used as the user’s local drive.

File Storage : File storage is designed to support the storage of files that can be accessed from various virtual machines.

Amazon Web Services (AWS)

Amazon, the most prominent online retailer, has established the most dominant data center infrastructure consisting of a vast array of virtualized computing resources. It rents portions of these virtual cluster of computers through the internet as Amazon Web Services (AWS), which is a cloud computing platform provided to individuals, companies, and governments on a paid subscription basis.

AWS is made up of numerous remote computing services which from its all inclusive cloud computing platform, but its most recognized services are Amazon Elastic Cloud Computing (EC2) and Amazon Simple Storage Service (S3).

The following diagram shows the comprehensive nature of AWS.

Amazon Web Services Cloud Platform

Amazon Web Services Cloud Platform

Amazon Elastic Compute Cloud (Amazon EC2)

It is a web application service that provides adjustable computing capacity in the cloud. It provides web-scale computing for developers.

Amazon EC2’s intuitive web service interface allows users to acquire and configure computing capabilities effortlessly, providing them with complete control over Amazon’s impressive computing resources in the form of on-demand access to server instances (applications). Like other cloud providers, AWS only charges customers or the resources that they actually use.

Amazon EC2 provides the following features:

  • Amazon Elastic Block Store
  • Multiple locations
  • Elastic IP Addresses
  • Amazon Virtual Private Cloud
  • Amazon Cloud Watch
  • Auto Scaling
  • Elastic Load Balancing
  • High Performance Computing (HPC) clusters
  • VM Import

Amazon Elastic Block Store : EBS provides highly available block-level storage volumes for Amazon EC2 application boot partition instances by keeping instance data persistently on a file system even in the event of a component failure.

Multiple locations : Amazon EC2 provides the capacity for users to place computing resources in multiple locations called Availability zones to safeguard against failures in other geographic regions and provide low-latency network connectivity.

Elastic IP Addresses : Elastic IP addresses are static IPv4 addresses that are intended to protect against any failure of an instance by rapidly remapping the instance IP address to another functioning instance’s IP address within the user’s AWS account.

Amazon Virtual Private Cloud (VPC) : VPC permits organizations to securely integrate their on-premise infrastructure to a set of dedicated AWS compute resources through a Virtual Private Network (VPN) connection, while seamlessly facilitating their existing security protocol systems to include AWS resources.

Amazon Cloud Watch : Amazon Cloud Watch monitors AWS, hybrid, and on-premise applications and hardware utilization, operational performance, network traffic, and other metrics in real time.

Auto Scaling : Auto scaling automatically increases or decreases AWS EC2 computing capacity depending on conditions defined by the user’s setting stipulated within the Amazon Cloud Watch parameters.

Elastic Load Balancing : Elastic Load Balancing automatically distributes inbound application traffic across multiple AWS EC2 instances which allows applications to achieve better fault tolerance irrespective of the amount of incoming application traffic.

High Performance Computing (HPC) clusters : HPC clusters are comprised of numerous distinct nodes (servers), sometimes filling an entire data center with a lot of power-hungry racks which leverage parallel processing techniques for running advanced applications efficiently, consistently, and swiftly.

Virtual Machine (VM) Import/Export : VM Import allows uses to import VM images from your existing environment to Amazon EC2 instances and export them back to your on-premise environment.

Amazon Simple Storage Service (S3)

It is a web storage service that users can leverage to store and retrieve any quantity of data on-demand, anywhere as long as they are connected to the internet. It offers users access to the same data storage infrastructure that Amazon utilizes in its own international network of web sites.

Cloud computing continues to evolve. Cloud-based systems have infiltrated a wide variety of business and industries as more and more people discover the technology’s potential to revolutionize economic, political, and social relations.

In the not too distant future, cloud platforms will be capable of addressing a majority of the world’s data problems while delivering better platforms and infrastructure environments to host and manage data and applications.

Accordingly, when organizations migrate to the cloud better equipped, they will be in this dynamically integrated world.