V2 Cloud Servers

V2Master

Cloud Provide Business Scenario and Hosting Recommendation

Possible V2 hosting scenarios: Host V2 application instances on:

  1. Our own hardware, which we purchase and place in data centers
  2. Rent dedicated servers from data centers
  3. Virtual hosts provided by cloud providers

Given that we uncertain how rapidly our V2 business will evolve, we cannot make definitive plans for how much hardware capacity we will require in the shgort term. The own hardware and rented dedicated scenarios listed cannot be seamlessly scaled, as there is leadtime for purchasing and provisioning hardware.

There is a risk that V2 will go viral and that the number of demo and paying systems will increase beyond our ability to purchase and provision the computing infrastructure required to support our customers. The means that, at least at the start, we must have a plan for deploying to cloud based systems that scales with the actual demand. Essentially we must be be able to setup infrastructure for hosting application instances instantly, without purchase and delivery lead times.

Given a infinitely scalable deployment and provisioning solution based on cloud based servers, there is no compelling need to also setup a own hardware deployment (as we had originally planned). Therefore we should focus our initial deployment strategy on cloud based hosting.

We must recognize that the cloud provider solution may be, in the long term, more expensive than a solution based on purchasing hardware and housing it at one or more data centers. Migrating applications to an in-house solution could increase our profit margin.

Clients might also want their systems to be hosting in Switzerland, or other specific place.

Defining solutions for these needs should be delayed until the actual need arises.

Requirements

V2 Appplication Use Cases

Our V2 use case is:

  1. Many small application instances, each of which has a relatively low traffing requirement, but a potentially large storage requirement

(Note that in the future we may provide other applications that have different requirements, but this shouldn't affect the could provider selection.)

There are two possible deployment scenarios:

  1. Single - Each application instance is hosted on its own VM

  2. Multiple - Multiple application instances hosted on a single VM

In our specific use case it is unlikely that a single application instance will grow much beyond the capacity of the smallest (or next to smallest) VM offering of the typical cloud provider.

Since cloud providers charge on a per VM basis, this has implications on how we deploy applications on VM. E.g. our costs will be lower if we can deploy multiple applications in a single VM.

Our use case differes from the typical use cases of cloud based servers, which is a single instance of a large web site or web application, where scaling is provided by using larger (and multiple) cloud based VMs. In this use case the scaling requirement is to provide support for a large transaction volume to a single application instance.

Clould Provider Selection Criteria

Major Selection Criteria

  1. Uptake in the development community and availability of on-line knowledge and support forums
  2. Ease of sys administration and compatibility with our procedure. E.g. compatible with puppet and capistrano

  3. Price - Avoid high-priced solutions
  4. Geographical location - Prefer providers with sites outside of the US
  5. Reputation of provider - Avoid risk of new and relatively unknown providers

Minor Selection Criteria

  1. Flexibility of scaling systems - Can an existing small system be upgraded to a larger system with little effort
  2. Abilty to idle servers - Can we create have a pool of idle pre-provisioned servers that we don't have to pay for
  3. Vendor lock-in
  4. Propritary vs. OpenStack based infrastructure

Short List of Providers

Large Well-Know Providers (Recommended)

  1. Amazon EC2
    • http://aws.amazon.com/#pricing

    • http://en.wikipedia.org/wiki/Amazon_Elastic_Compute_Cloud

    • Smallest VM offering (1.0-1.2 GHz, 1.7 GB RAM, 160 GB SSD, ) ranges from 20-35 USD/month
      • Commiting to one or three year contracts gets you into the cheaper end of the price range
    • Pricing is complex, and there are many additional components to the price, including:
      • Data storage, typically 0.11 USD per GB / month
      • Data transfer, typically 0.11 USD per one million I/O requests
    • Has may data centers: US (3x), Europe (Ireland), Asia (3x) and S. America (Sao Paulo)
    • Many other offerings: DB servers, backups, ability to idle systems, etc.
    • Appears to have the most on-line support via forms (including numerous complaints too)
    • Able to idle systems (the 35 USD/month) and not pay while they are stopped
  2. Rackspace
  3. Engine Yard
    • https://www.engineyard.com

    • Engine yard offers instances that run on Amazon EC2
    • Smallest offering (1 CPU, 1.6 GB RAM, 160 GB disk) 36 USD.month
  4. Linode
  5. Digital Ocean

Smaller and Less Well-Know Proividers (Not Recommended)

  1. Heuoku
    • Dedicate to hosting Rails applications
    • Expensive: Costs 47 USD per month for an application
  2. Google Compute
  3. Fasthosts
  4. Softlayer
  5. CloudSigma

  6. Netcetera
    • IBM based?
    • Datacenter coming to Winterthur in Q3-2013

Recommendation

Use Amazon EC2

Advantages:

  1. Mature offering
  2. Positive reputation
  3. Lots on online forum and other documentation (not from Amazon) available online

Disadvantages:

  1. Amazon is not the cheapest provider
  2. Amazon is serves major customers, meaning:
    • We are unlikely to get personal support
    • Technically we will be depending on Amazon's documentation and support from on-line forums
  3. Amazon's own document is not the best and is frequently out of date

As our business evolves, and our VM hosting requires become more clearly defined, we should consider re-evaluating suppliers. Including:

  1. Using larger VM offerings for hosting (very-)large numbers of applications
  2. Hosting large application instances on our own hardware

Next Steps

Suggestions for new PostIts:

  1. Sign up for free Amazon AWS account
  2. Setup a system, by hand, suitable for hosting a v2p0 system
  3. Automate system instantiation and deployment of base operating system
  4. Automate application installation and setup

V2CloudServers (last edited 2013-07-01 17:26:43 by 10)

Copyright 2008-2014, SoftXS GmbH, Switzerland