Earlier we saw useful design techniques for a cloud-enabled application. In this blog, we are going to look at various guidelines that help in the selection of Cloud Provider and Cloud Type for an organization.
Typically, an organization’s Technical as well as Business needs drive this selection. Here is a list of few such aspects.
The organizations technology choices as well as criticality of information, user load, etc, will play a role in provider selection as follows:
- Use of Framework / API: The application can be cloud enabled by using API available from the provider (e.g. AWS ) or by using frameworks like AppHarbor or Heroku. These API as well frameworks many times support specific cloud providers.
- Language of Application Development: Currently, the providers and frameworks favor specific development languages. E.g. Azure platform typically favors .Net based applications. Or Heroku framework currently supports Ruby and Java based development. So the choice of development language will in turn determine the provider.
- Security: Security Vulnerability is a major consideration especially in case of Hybrid and Public clouds. Focus on Access control and Authentication/ Authorization is essential for a successful provider. Most of the providers follow various security practices, and support techniques like identity management. They also offer multiple security certifications. The choice of right provider may depend on presence or absence of any of these.
- Portability: The choice of cloud platform may change over the period of time. So the ease of getting out as well as availability of tools supporting such porting can be an important consideration.
- Integration with Private Cloud: Many times the enterprises start with small Private Clouds. With time, there may be a need to expand the infrastructure. A common scenario here is formation of Hybrid Cloud. As a result, the ability to integrate Private Cloud with the public solution can also be a deciding factor.
- Easy access to other cloud features and tools: The cloud providers as well as frameworks provide access to many types of databases. They also support a wide range of tools for gauging cloud performance, finding memory leaks etc. They may come with easy deployment options as well as best practices like test driven development. All of this may influence the final selection.
First and foremost of the business consideration is overall cost of the solution. This cost will depend on the architecture, cloud type as well as provider. Almost all providers offer a wide choice of solutions offering a range of costs.
Various other administrative criteria that apply while selecting the provider are:
- SLA: The service level agreement should be carefully studied and negotiated before deploying the application to the cloud.
- Support: The quality of technical support can be a deciding factor for ongoing relationship.
- Billing Models and Accuracy: As the major benefit of cloud deployment is pay per use billing, the provider selection can depend on various payment options as well as claimed accuracy in the billing.
Cloud Type Selection
Selecting a Cloud Type suitable for your business need is very critical, as it determines the overall architecture and in-turn the cost of the solution. Possible options for cloud types are Public Cloud, Private cloud and Hybrid cloud.
On one hand where Public Clouds are cost effective, easy and efficient in sharing resources, they also provide lesser control over operations and storage and can be more vulnerable to security threats. In this case, no infrastructure is owned by the enterprise. Understandably, typical clientele for this option is applications with less sensitive data, less budget and higher user loads. They are also preferred for projects having a lot of collaboration work.
Other end of the spectrum is the Private Cloud. As the name suggests, it provides maximum security and better control as enterprises own their infrastructure. Both services and infrastructure is maintained on a private network. Obviously, this is a costly preposition, usually favored by large enterprises.
Hybrid Cloud presents the ‘in between’ approach, and tries to provide the user with best of both worlds. A portion of the infrastructure is owned by the enterprise and public cloud space is used for the remaining. This spreading allows each business aspect to be in most effective environment. The challenge here is the communication between private and public cloud, without introducing security loop holes. The Hybrid cloud also needs to have its virtualization policies defined. There can be a high risk, if public infrastructure is used for sensitive data during virtualization.
In the next blog-post, we will look at High Availability and Cloud.