Archive

Archive for November, 2010

Google vs. Microsoft

November 23, 2010 Leave a comment

ballmer schmidtI came across this article in SFGate about Google introducing a new plug-in to extend Microsoft Office to offer a more convenient online syncing experience than Microsoft’s own product using Google’s Cloud Connect technology. It is an interesting read about how Microsoft has to make a business decision.

This isn’t just a technical limitation, it’s a business decision. Microsoft doesn’t want cloud services to cannibalize software sales, so it goes to great lengths to make sure that its cloud services work best (or only) with the latest versions of its software. Google can take advantage of Microsoft’s quandary by making its online services work with whatever version of Microsoft software you happen to use.

Microsoft has been all over the place with its new advertisement – “To the Cloud” and try to gain ground in the cloud computing market. It is definitely going to take some time for them to gain foothold with competitors like Amazon, Google and Salesforce. Microsoft will have to work on a pricing strategy as well as a distribution strategy considering that they have vast distrbution channels to sell their conventional software. We will need to wait and see how that plays out for one of the biggest software giants.

(Picture taken from SFGate article – love it!)

Cloud Computing definition

November 22, 2010 Leave a comment

I had a great time at the Internet Summit and met amazing people with expertise in various Internet technologies. There was one session on cloud computing where that actual definition of cloud computing was given as stated by NIST. Some of the characteristics and models have been discussed previously, but lets see what the real definition is.

Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model promotes availability and is composed of five essential characteristics, three service models, and four deployment models.

Essential Characteristics:

On-demand self-service. A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service’s provider.

Broad network access. Capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

Resource pooling. The provider’s computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter). Examples of resources include storage, processing, memory, network bandwidth, and virtual machines.

Rapid elasticity. Capabilities can be rapidly and elastically provisioned, in some cases automatically, to quickly scale out and rapidly released to quickly scale in. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be purchased in any quantity at any time.

Measured Service. Cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported providing transparency for both the provider and consumer of the utilized service.

Service Models:

Cloud Software as a Service (SaaS). The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure. The applications are accessible from various client devices through a thin client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.

Cloud Platform as a Service (PaaS). The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly application hosting environment configurations.

Cloud Infrastructure as a Service (IaaS). The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, deployed applications, and possibly limited control of select networking components (e.g., host firewalls).

Deployment Models:

Private cloud. The cloud infrastructure is operated solely for an organization. It may be managed by the organization or a third party and may exist on premise or off premise.

Community cloud. The cloud infrastructure is shared by several organizations and supports a specific community that has shared concerns (e.g., mission, security requirements, policy, and compliance considerations). It may be managed by the organizations or a third party and may exist on premise or off premise.

Public cloud. The cloud infrastructure is made available to the general public or a large industry group and is owned by an organization selling cloud services.

Hybrid cloud. The cloud infrastructure is a composition of two or more clouds (private, community, or public) that remain unique entities but are bound together by standardized or proprietary technology that enables data and application portability (e.g., cloud bursting for load-balancing between clouds).

Hadoop and Cloud

November 13, 2010 Leave a comment

When I first heard of Hadoop, it was in conjunction with cloud computing. After reading extensively about cloud technology, I had to wonder how Hadoop was related to cloud. To find that, let me first talk about what Hadoop is.

Apache Hadoop is a framework for running applications on large clusters built of commodity hardware. The Hadoop framework transparently provides applications both reliability and data motion. Hadoop implements a computational paradigm named Map/Reduce, where the application is divided into many small fragments of work, each of which may be executed or reexecuted on any node in the cluster. In addition, it provides a distributed file system (HDFS) that stores data on the compute nodes, providing very high aggregate bandwidth across the cluster. Both Map/Reduce and the distributed file system are designed so that node failures are automatically handled by the framework.

But the main thing to keep in mind is that Hadoop does not replace a database. Hadoop stores data in files, and does not index them. It works with very large datasets by using a distributed filesystem.

All of the major cloud players are working with Hadoop in their cloud environment. Yahoo has a great presentation on Hadoop at http://www.slideshare.net/darugar/cloud-computing-hadoop-presentation

A fellow cloud enthusiast raised that same question – What does Hadoop have to do with Cloud?

In short, Hadoop is a great framework that works well with cloud environment and complements it, but that does not mean you cannot have Hadoop on your Linux OS.

Internet Summit ’10

November 11, 2010 Leave a comment

I am excited to attend the Internet Summit 2010 being held in Raleigh, North Carolina on November 17th and 18th. There are going to be over 1000 Internet Executives, senior marketers, entrepreneurs and investors at the summit.  There will be over 70 speakers talking about the latest trends and topics such as Social Media, Mobile, Online Video, Cloud Computing, Real-time, Analytics, Online Advertising, e-commerce and much more!

I am hoping to learn about the latest internet technologies especially cloud computing. If you are going to be attending the summit, leave a comment and let me know why you look forward to attending the event.

Categories: Cloud Computing

Microsoft and Cloud

November 10, 2010 Leave a comment

Windows Azure is a cloud services operating system that serves as the development, service hosting and service management environment for the Windows Azure platform. Windows Azure provides developers with on-demand compute and storage to host, scale, and manage web applications on the internet through Microsoft datacenters. Windows Azure is a flexible platform that supports multiple languages and integrates with your existing on-premises environment.

The Windows Azure website provides some good information on their platform and its applications. There are number of different products under the Windows Azure umbrella which work together to provide the user a holistic cloud experience. This is similar to Amazon‘s offerings to support their EC2 environment. Besides the Azure Compute, Storage, Virtual Network and CDN products, Microsoft’s AppFabric provides a comprehensive cloud middleware platform for developing, deploying and managing applications on the Windows Azure Platform. It delivers additional developer productivity adding in higher-level Platform-as-a-Service (PaaS) capabilities on top of the familiar Windows Azure application model.

Besides the Windows Azure platform, Microsoft’s SQL Azure which  is a cloud-based relational database service built on SQL Server technologies. It is a highly available, scalable, multi-tenant database service hosted by Microsoft in the cloud. SQL Azure Database helps to ease provisioning and deployment of multiple databases. Microsoft also provides data sync and reporting services to support the SQL Azure database.

Microsoft can distinguish itself in the PaaS field of cloud offerings since it already has a strong user base with its operating system and large developer community that wants to work with Microsoft products on the Windows platform. Microsoft can take advantage of its already successful products such as SQL Server and Microsoft Visual Studio. Though, Microsoft has been a late entrant in the cloud computing race, but its immensely popular and familiar products and comprehensive windows based cloud solutions might just make it the forerunner.

Google Apps

November 9, 2010 Leave a comment

We all know about various Google services such as Gmail, Google Docs, Google Calendar and so on that are available for personal use. These are provided free of charge and are universally popular. But, I want to delve more into Google Apps for enterprises and educational institutions. Google offers the same suite of applications to business users while providing more storage, features for nominal charge. However, Google Apps for educational institutions such as universities and K-12 schools is free.

But Google’s true cloud offering is the App Engine which allows companies to run their web apps on Google’s infrastructure. While providing reliability, support and security, Google’s app engine runs using Java and Python environments. This can be a limitation compared to Amazon’s varied offerings in multiple environments. Google is in a good position to build its clout in the cloud arena and diversify its revenue resources from its advertising model. However, the support and services for the cloud offering need to be more comprehensive especially in the IaaS and PaaS section of cloud market.

Amazon Web Services

November 8, 2010 Leave a comment

AWS is the big umbrella under which Amazon offers various cloud computing products and services. Amazon’s main product is the Elastic Compute Cloud or EC2. Many other services provided by Amazon support EC2 so it enables users to easily store, transfer, compute, monitor and maintain in the EC2 cloud environment.

Providing comprehensive solution to users working with cloud services has given Amazon an edge over other competitors in this arena. Users would prefer getting all the support from one place and not having to worry about working with multiple cloud vendors. Amazon also has been one of the first companies to invest majorly and succeed in the cloud computing arena, and effectively diversifying its business model.

According to a report, Amazon Web Services (AWS) revenue will reach $500 million in 2010 and $750 million in 2011, going all the way up to $2.54 billion in 2014. In a February 2010 report, Goldman Sachs said that 77% of companies it surveyed using cloud computing development tools were using Amazon’s Elastic Compute Cloud service. About 17% were using software from Google and Salesforce.com, and 10% chose Microsoft’s Windows Azure. [article]. Amazon’s customers include not only small startups, but well established and larger organizations such as Zynga, Netflix, Adobe Systems and more. One can safely say that even sky is not the limit for Amazon’s cloud computing capabilities.

Here is some brief information on Amazon’s cloud products and services –

Compute

Amazon Elastic Compute Cloud (EC2)
Amazon Elastic Compute Cloud delivers scalable, pay-as-you-go compute capacity in the cloud.
 
Amazon Elastic MapReduce
Amazon Elastic MapReduce is a web service that enables businesses, researchers, data analysts, and developers to easily and cost-effectively process vast amounts of data.

Auto Scaling
Auto Scaling allows you to automatically scale your Amazon EC2 capacity up or down according to conditions you define.

Content Delivery

Amazon CloudFront
Amazon CloudFront is a web service that makes it easy to distribute content with low latency via a global network of edge locations.

Database

Amazon SimpleDB
Amazon SimpleDB works in conjunction with Amazon S3 and Amazon EC2 to run queries on structured data in real time.

Amazon Relational Database Service (RDS)
Amazon Relational Database Service is a web service that makes it easy to set up, operate, and scale a relational database in the cloud.

Storage

Amazon Simple Storage Service (S3)
Amazon Simple Storage Service provides a fully redundant data storage infrastructure for storing and retrieving any amount of data, at any time, from anywhere on the Web.

Amazon Elastic Block Store (EBS)
Amazon Elastic Block Store provides block level storage volumes for use with Amazon EC2 instances. Amazon EBS volumes are off-instance storage that persists independently from the life of an instance.

AWS Import/Export
AWS Import/Export accelerates moving large amounts of data into and out of AWS using portable storage devices for transport.

E-Commerce

Amazon Fulfillment Web Service (FWS)
Amazon Fulfillment Web Service allows merchants to deliver products using Amazon.com’s worldwide fulfillment capabilities.

Messaging

Amazon Simple Queue Service (SQS)
Amazon Simple Queue Service provides a hosted queue for storing messages as they travel between computers, making it easy to build automated workflow between Web services.

Amazon Simple Notification Service (SNS)
Amazon Simple Notification Service is a web service that makes it easy to set up, operate, and send notifications from the cloud.

Monitoring

Amazon CloudWatch
Amazon CloudWatch is a web service that provides monitoring for AWS cloud resources, starting with Amazon EC2

Networking

Amazon Virtual Private Cloud (VPC)
Amazon VPC enables enterprises to connect their existing infrastructure to a set of isolated AWS compute resources via a Virtual Private Network (VPN) connection, and to extend their existing management capabilities such as security services, firewalls, and intrusion detection systems to include their AWS resources.

Elastic Load Balancing
Elastic Load Balancing automatically distributes incoming application traffic across multiple Amazon EC2 instances.

Payments & Billing

Amazon Flexible Payments Service (FPS)
Amazon Flexible Payments Service facilitates the digital transfer of money between any two entities, humans or computers.

Amazon DevPay
Amazon DevPay is a billing and account management service which enables developers to collect payment for their AWS applications.

Support

AWS Premium Support
AWS Premium Support is a one-on-one, fast-response support channel to help you build and run applications on AWS Infrastructure Services.

Web Traffic

Alexa Web Information Service
Alexa Web Information Service makes Alexa’s huge repository of data about structure and traffic patterns on the Web available to developers.

Alexa Top Sites
Alexa Top Sites exposes global website traffic data as it is continuously collected and updated by Alexa Traffic Rank.

Workforce

Amazon Mechanical Turk
Amazon Mechanical Turk enables companies to access thousands of global workers on demand and programmatically integrate their work into various business processes.

Cloud Players

November 5, 2010 Leave a comment

There are many big and small players in the cloud computing arena. Since the emergence of cloud technology, many cloud service providers have differentiated themselves by offering strengths in different areas such as PaaS, SaaS and IaaS. I will discuss each of these providers in detail in subsequent posts. For now, here is a look at who is part of the cloud race.

The top five major players are:

Amazon: Amazon Web Services (AWS) has number of products such as EC2, CloudFront, SimpleDB, SQS, S3 and more. Amazon has been the leader in cloud technology and at the forefront, definitely getting the first-mover advantage. 

Google: Google Apps has been around for a while and we have all used Google’s various services such as Gmail, Docs, Calendar and so on.  Google Apps also provides enhanced services for business users and is now stepping more formally into the cloud arena.

Microsoft: Azure is Microsoft’s latest offering with windows platform based cloud system and offering developer services. Microsoft is going after the top player to become the cloud computing leader.

IBM:  Blue Cloud is IBM’s computing platform designed to enhance software development and delivery capabilities, particularly in large enterprises. IBM also provides one of the largest private clouds and is certainly trying to make its mark.

Salesforce.com: Salesforce’s CRM platform has been around for a long time providing  software as a service and has been a leader in that area. Its new Force.com platform geared towards businesses provides more than just software aiming for collaboration and development platform along with cloud infrastructure.

 Some of the other smaller but definitely powerful and growing players in this field are:

Cloud Computing vs Hosting

November 4, 2010 Leave a comment

Ever since I started my research on cloud computing, I have wondered what exactly was the difference between hosting software services and cloud computing. I was glad to know that others too had similar questions. So, by popular request, here is my attempt to resolve this burning query.

The main difference between traditional hosting and cloud hosting is the number of servers dedicated to the user. As we have seen, cloud computing is all about scalability using multiple servers to for increased performance and scalability. So cloud hosting uses multiple servers. Traditional hosting was done using just a single dedicated server. This posed a problem when there was lot of traffic generated on the hosted site causing the site to come down. Technically, cloud hosting is an extension of web hosting providing much more robust functionality to the user. Or we can say that web hosting is a very low-level cloud. A website owner doesn’t care how their site is hosted. All they care about is that, it can withhold to the traffic generated to the website and provide a good user experience. Cloud hosting helps the website owner have seamless access to scalable hosting backend.

Cloud hosting has evolved from the drawbacks of traditional hosting systems. Therefore, hosting is also a part of cloud computing or subset of cloud’s capabilities.

Cloud Computing – the dark side

November 3, 2010 1 comment

The advantages of cloud computing is what makes it so popular with users and businesses. The scalability, reliability and low-cost makes cloud a very attractive option compared to traditional data centers and server model. But every technology has disadvantages and cloud computing too has its share of cons. While some issues are handled differently by different service providers and are constantly being worked on, there are two main problems I want to discuss here about working with cloud:

Network Connectivity: To access any cloud-based software or system, you need internet connection. Without that, you are stuck especially if you don’t have copies of the data for local use. You also need a high-speed connection as slower bandwidth means poor performance and increasing lag times. So while cloud makes it easy to access software and services from anywhere, you still need an internet connection to do so. No connection is similar to power outage with no generator backup. This requirement hinders the universal acceptance of cloud especially in countries with data connectivity is limited or non-continuous.

Security and Privacy: The second biggest issue with cloud computing is the security and privacy of data stored in the cloud. It is difficult to trust a system which exists somewhere but you don’t know where. The majority of data stored by businesses is sensitive information and keeping it safe is of prime importance. If you can access the data using Internet, so can a hacker if s/he has the right credentials. How do you know whether you cloud provider has taken all the steps necessary to protect your data.

While the benefits of cloud computing far exceed the negatives, the two drawbacks mentioned are of major concern and what makes difference between universally acceptable and widely acceptable technology.

But I see another issue with cloud replacing all traditional systems, and that is lack of seamless integration. When working with cloud, user should not be aware that they are using a cloud-based system. Currently, a lot of cloud services are not feature-rich and performance issues can hamper the user experience. If I am working with cloud service, I don’t want the feeling of working with remote desktop connection or a virtual machine. I want a seamless experience like working from within my own personal computer. The unity mode feature in Vmware Server tries to do something similar by integrating guest applications into the host machine. If cloud-based systems can be successful at seamless integration with host machines and enhancing user experience, popularity of such systems is bound to rise.