Cloud Computing: Although risky for new projects and inappropriate for existing solutions, the reduced maintenance costs and infinite scalability potential are impossible to ignore.
October 3rd, 2008
As detailed in the technical presentation to a group of Jacksonville software architects by our technical director, Eugene Chuvyrov, cloud computing is the “phrase du jour.” What exactly is meant by the term “cloud computing,” however, is often left open for interpretation. For instance, Business Week defines cloud computing as a delivery of supercomputing power over the Internet. This supercomputing power may be accomplished by assigning tiny parts of the large computational problem to many computers on the Internet and then centrally summarizing the results of this distributed computation. Wikipedia, on the other hand, deems cloud computing as an updated version of utility computing: virtual servers available over the Internet that host shared file folders and databases available for access from desktop PCs. Yet other sources deem any service consumed outside the firewall, including conventional outsourcing services, as “cloud computing.”
Here at Cyberia, we believe that Information Week has the best definition of what cloud computing is. Essentially, cloud computing encompasses all of the seven things listed below:
1. Software as a Service (SaaS), where a single application is delivered through the browser to thousands of users. Salesforce.com is one of the most well-known providers of SaaS services.
2. Utility Computing, which refers to disk storage and virtual servers accessible on demand over the Internet. One example of utility computing is Microsoft’s Live Mesh, which enables a user to have virtual shared folders accessible from a variety of devices and by different users. Other examples are SQL Server Data Services and Amazon’s SimpleDB, both of which are database engines hosted “in the cloud,” i.e. somewhere on the Internet.
3. Web Services in the Cloud, such as Google Maps, ADP Payroll Services, or credit card processing services.
4. Platform as a Service (PaaS), where entire applications can be built on PaaS provider’s infrastructure. In theory, customers of PaaS offerings are only required to have access to the Internet from any of the supported devices (iPhone could be one of them) and all of the application, file, and data hosting will be performed by a PaaS provider.
5. Managed Service Providers, such as e-mail virus scanning services.
6. Service Commerce Platforms
7. Integration of Cloud-Based services
Of the seven components of cloud computing discussed above, Utility Computing, SaaS and PaaS are perhaps the newest entrants into the arena and the ones that get most frequently associated with “cloud computing” in the minds of most people today. Let’s examine each one of these component in a little greater detail:
Software as a Service (SaaS) category includes any software that can be used through the Internet browser. Google Apps, which include online word processor and spreadsheet, as well as Adobe’s BuzzWord Word Processor with its very rich user interface, are examples of SaaS. Chances are, all of us use SaaS offering daily, be it for online accounting, contact management, or even word processing. The vast majority of projects implemented by Cyberia, Inc. are in the form of SaaS offerings. The convenience offered by SaaS applications in the form of access from anywhere, anytime will only make the market for these applications broader and even more appealing. And while we are not dismissive of the huge computing power embedded in the present-day desktop PCs and, therefore, the continued demand for desktop applications with their rich user interfaces, we believe that new technologies for delivering SaaS applications, such as Microsoft Silverlight and Adobe Flash/Flex/AIR will continue to blur the line between the desktop and the SaaS offerings.
Utility Computing category is often compared to the electricity and its availability to virtually every household through a simple electrical outlet. Many pundits predict that virtually all computing in the future will be a utility-based (refer to Nicholas Carr’s famous IT Doesn’t Matter article in Harvard Business Review for one such example). It is our opinion at Cyberia, Inc. that, although some IT services readily lend themselves to be consumed as utilities (such as file storage and database hosting), core business applications should not be turned into utilities if an enterprise is to maximize the value from its investment in Information Technology. Utility by definition means everyone has equal access to the resource; if Information Technology is viewed as strategic within the enterprise, then only an enterprise should possess that strategic advantage embedded in the business logic of information systems. Here, the term enterprise is used loosely and refers to any business venture seeking to maximize its profits. Of the current utility computing offerings, most notable ones are Microsoft’s Live Mesh (file storage and device sharing), Amazon’s SimpleDB, Microsoft SQL Services, and Google App Engine Datastore (database hosting in the “cloud”). At Cyberia, we have started an experimental phase of developing applications against data stores in the cloud. It is our opinion that these services are not mature enough for building production applications on them. Taking an existing database and hosting it in the “cloud” is not an option, since all of the current “database in the cloud” offerings require a new programming model that differs drastically from the relational model found in Oracles and SQL Servers of today. Technical support is very poor (almost non-existent), and rapid evolutionary changes characteristic of products in their infancy risk breaking applications. At Cyberia, we do not believe in breaking production applications.
With Platform as a Service category, the computing platform itself is not sold to customers. Rather, the value that can be derived by hosting services on the platform is marketed. There are many benefits to completely forgetting about the computing platform. PaaS offerings enable enormous scalability: any business application can start small and then grow very quickly without crashing or becoming unusable due to capacity limitations, since PaaS will simply grant application access to greater amount of resources. With PaaS, any enterprise would pay only for the resources used and there is never a need to worry about the infrastructure. As such, PaaS is a very attractive value proposition for companies building web applications from scratch: use only what is needed and scale up/down on demand and within minutes. Additional space, CPU cycles, and more data throughput could be acquired on as-needed basis. And while the reliability of platforms hosted by such giants as Google, Amazon, or Microsoft is unquestionable, recent outages in Amazon’s “cloud” indicate potential challenges to betting the business on a single cloud provider.
To summarize Cyberia’s strategy regarding cloud computing: our staff has been developing SaaS applications for approximately 10 years now (albeit as part of different organizations), and most of the current production implementations are SaaS in nature, using proven application development platforms and technologies. We are in the experimentation mode with the newer entrants into the cloud computing market (utility computing and PaaS), and will be implementing solutions based on those technologies once they stabilize and mature. Like with anything, however, not all business solutions are appropriate for moving into the “cloud;” each business domain needs to be evaluated separately and decision regarding the architecture most appropriate for the problem must be made on a case-by-case basis.
2. Utility Computing, which refers to disk storage and virtual servers accessible on demand over the Internet. One example of utility computing is Microsoft’s Live Mesh, which enables a user to have virtual shared folders accessible from a variety of devices and by different users. Other examples are SQL Server Data Services and Amazon’s SimpleDB, both of which are database engines hosted “in the cloud,” i.e. somewhere on the Internet.
3. Web Services in the Cloud, such as Google Maps, ADP Payroll Services, or credit card processing services.
4. Platform as a Service (PaaS), where entire applications can be built on PaaS provider’s infrastructure. In theory, customers of PaaS offerings are only required to have access to the Internet from any of the supported devices (iPhone could be one of them) and all of the application, file, and data hosting will be performed by a PaaS provider.
5. Managed Service Providers, such as e-mail virus scanning services.
6. Service Commerce Platforms
7. Integration of Cloud-Based services