Part 3: Cloud Computing – A Complex Ecosystem?
Sourced originally from Peter Laird’s work published September, 2008 here (and later updated and presented at the Enterprise Cloud Summit in May, 2009 here).
Infrastructure
- Public Clouds – the poster children of Cloud Computing. These vendors offer computers as a service. If you need 50 computers in 15 minutes, these guys will take care of that. Differentiators include the provisioning model (virtualized instances vs. actual machines) and the host OS versions that are supported.
- Private Clouds – these solutions help enterprises build private clouds within the firewall. If privacy and control is a big concern, or you want to increase utilization in an existing data center, a private cloud may be what you want.
- Compute and Data Grids – while these solutions are also useful outside of a cloud, they can play an important role for applications that are deployed within a cloud. The key difference with Cloud applications from traditional on-premise applications is in how they must scale. With an on-premise application, you can scale vertically when the load gets too high – by buying a bigger machine. In the cloud, applications must scale horizontally – by adding more machines in a cluster. Compute and Data Grid products can help achieve horizontal scalability.
- Virtualization and Appliances – when deploying OS stacks to public and private clouds, you will find it helpful to have a library of virtualized OS images. The vendors in these buckets will help in this area. Also, depending on the cloud being used, any number of Virtualization technologies will be used.
Platform
- Business User Platforms – these platforms are cloud based application development environments. The focus of these platforms are on non-programmers as the application developers. To make this happen, these platforms offer rich visual tools to enable the developers to define data models and application logic. The differentiators for these platforms are their features – which is important to investigate during software selection as there is no coding allowed, so developers cannot code around feature outages.
- Developer Platforms – these platforms are cloud based application development environments that support custom coding. Developers can build highly customized applications with these platforms, without having to worry about scalability, OS configuration, load balancing, operations, etc as they would with a public cloud offering. The differentiators for these platforms include the supported programming languages (Java, python, custom, etc), and data storage capabilities (RDMBS, key-value stores, etc).
Services
- Storage – these vendors offer hosted storage that are API accessible. Meaning, any application can get/set objects into these Cloud storage solutions. The solutions vary in the supported data access models – key-value stores, file stores, etc.
- Integration – solutions that provide integration facilities between multiple Cloud applications, or Cloud applications with on-premise applications. Major features offered are: messaging queues, business process modeling (BPM), and application adapters (like NetSuite adapter, SAP adapter).
- Metering and Billing – building your own billing and invoicing system is highly discouraged. This is a great operation to outsource to a specialist. These vendors offer expertise in how to structure billing plans, plus all of the back office capabilities behind invoicing and collection. By outsourcing to one of these PCI compliant vendors, you will reduce the level of compliance your Cloud application will need to attain.
- Security – The Cloud infrastructure and platform vendors must provide security, and so a base level can be assumed. But for value-add features, like application authorization features, encryption, and Single Sign On capabilities across multiple applications – look to these vendors.
- Fabric Management – this is a space that evolves quickly, so you will need to keep up to date on new developments with these vendors. Generally, these vendors help you manage and deploy your application in the Cloud. This varies from features that allow you to design a virtual data center in a cloud, to auto-scaling an application when load increases, to monitoring Cloud servers to restart them if they fail.
Applications
- SaaS – these vendors represent the ultimate end-game to all of this – Cloud based applications. There are thousands of them, and are traditionally known as Software as a Service (SaaS) applications. SaaS applications are available over the internet, are quick to provision a new account, are offered in a pay-as-you-go model, and allow some level of customization. NetSuite, Salesforce.com, Taleo, Concur, Workday and many others have established the space as a viable way to deliver software.
Part 4: Cloud Computing – A complex Ecosystem?
3 thoughts on “Part 3: Cloud Computing – A Complex Ecosystem?”
Comments are closed.