Notes /
CloudServiceProvidersIntroductionNeed lots of server power, but don't want to buy it and maintain it yourself? Have a program that is in high demand sometimes, and low demand at other times? Cloud computing may be right for you. There are MANY cloud providers. The intent of this wiki is not to collect a list of all providers, but rather to give an overview of common features, pricing and academic discounts by looking at 4 providers as a test sample (Amazon, IBM, Google, and Microsoft).
Cloud providers differ in their approach to how much platform is automatically provided. On one end, Amazon provides a fairly blank slate for developing a new instance. Clients load packages similar to setting up a conventional server. This allows for high customization but could take more time. At the other end, IBM Bluemix has predefined "buildpacks" which detect the type of application (e.g. a web app) and automatically set up supporting programs (e.g. a web server). This shortens start-up time for typical applications, but can cause problems for applications that don't fit the mold. Other providers lie somewhere in between.
Cost is complicated. Providers charge for pretty much everything, from storage to number of API calls to service fees. To make matters worse, providers use different cost criteria making direct comparisons difficult. And, Google is the only provider I found so far that offers billing limits (some more offer billing alerts). For all others, clients are responsible for whatever cost is incurred. Some providers offer free or discounted service for courses and/or academic research. Please see the cost section for more info.
Scripting is a must for cloud clients. Scripts should be written to handle setup and teardown of instances, so that each instance does not have to be setup by hand, and multiple people can reproduce the same setup. Some providers charge by instance allocation (meaning any content that exists on the cloud cost money), whereas others charge by runtime only. In the case of instance allocation charges, the client is responsible for tearing down instances to avoid charges. Teardown scripts are very important here.
The build process is typically separate and not managed on the cloud, unless an additional DevOps service is purchased. The developer typically uploads e.g. a .war or .jar file. For large files, this may take many minutes. So, this time should be weighed against the cost of the DevOps service. Nightly build scripts could minimize wait time.
Some providers offer additional features such as:
A dedicated set of resources that only a specified client can use. This may include servers owned by the client, but operated by the cloud provider.
Allows clients to specify the server environment that will be used, without virtualization. Supporting servicesAnsible is an automation tool that replaces scripts with "playbooks" of actions for managing instances. See the testbed Ansible Notes for more info. Ansible academic pricing is $500/year for 100 nodes. Cloudera helps bring together data stored in disparate locations and provides data analytics. CloudPhysics is a service that uses predictive analytics to simplify resource management in the cloud, saving money and time. Docker is an "open platform for distributed applications for developers and sysadmins". Docker provides a standardized container format so that apps may be easily run on a variety of platforms. See the testbed Docker wiki and Ansible + Docker Notes for more info. Docker is free for unlimited public repositories plus one private repository, and extra cost for more private repositories starting at $7/month for 5 private repositories. Campus servicesThe UC Berkeley Infrastructure Services is a cloud provider option. The advantage of a campus solution is easy billing. Christopher notes:
"..setting up billing with a non-campus provider is very difficult. In theory, the contract needs to be vetted by campus and campus has some very onerous contract requirements that most corporations will not accept. So, what happens is that individuals agree to the contract and then get reimbursed." Berkeley also has a campus license for the VMWare Academic Program, for "non-production and research use". This program includes VMware Workstation, Fusion, vCenter, vCloud Suite, vSphere, and more. For universities that might not participate yet, departments can join for only a $250 annual fee. PricingBecause there are so many kinds of charges and different service offerings, it's difficult to make a statement about which provider has the overall "best" pricing. Amazon offers the longest free trial (12 months vs 1 month others) and the greatest variety of pricing options. It would be helpful to specify the requirements for the applications to be hosted in the cloud and create an estimate for those applications. Many providers offer cost estimators. Total cost is based on:
All of these providers offer free trials. However, each provider uses a different metric for its free trial, making comparisons difficult. Only Google offers billing limits for all accounts. Microsoft offers limits for select trial accounts. Amazon offers alerts, but no limits. IBM offers neither alerts nor limits. Pricing summary
(This is half of Amazon's 750 hours/month for 1 GB if your instance uses the whole GB; but Amazon ends at 12 months and charges for non-running apps.)
Academic licensingSome providers offer free or discounted services for faculty that use cloud services in a class, and some providers offer research grants for research projects.
SecurityApp developers should be very careful to protect their cloud account credentials. Otherwise, hackers may access the account and have virtually unlimited ability to start new instances at your expenses. Bitcoin miners routinely scan Github and other public pages for credentials that are accidentally checked in. This can lead to thousands of dollars in charges. Even security researchers have made this mistake. DocumentationAmazon and Microsoft offer free Kindle books. Here are a few:
Bluemix Java program setup instructionsComing soon! |