Cloud Computing

From BC$ MobileTV Wiki
Revision as of 19:47, 16 April 2022 by Bcmoney (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Cloud Computing is computing resources and access platforms which are stored, hosted and carried out in a foreign (3rd party) data server configuration. A Cloud Computing service provider is sometimes also referred to as a Managed Services Provider (MSP)[1] as literally they are providing the management of a variety of technology services traditionally managed by a single company's internal IT department.


With Cloud Computing, companies can scale up to massive capacities in an instant without having to invest in new infrastructure, train new personnel, or license new software. Cloud Computing is of particular benefit to small and medium-sized businesses who wish to completely outsource their data-center infrastructure, or large corporations who wish to get peak load capacity without incurring the higher cost of building larger data centers internally. In both instances, service consumers use what they need on the Internet and pay only for what they use.

The service consumer no longer has to be at a PC, use an application from a powerful OS with large computing resources and processor speeds, or purchase a specific version that's configured for each SmartPhone, PDA, or other device on which they intend to subscribe to or utilize the service. The consumer does not own the infrastructure, software, or platform in the cloud. He has lower upfront costs, capital expenses, and operating expenses. He does not care about how servers and networks are maintained in the cloud. The consumer can access multiple servers anywhere on the globe without knowing which ones and where they are located.

While Cloud Computing eliminates many of the initial costs and complexities of buying, configuring, and managing the hardware and software needed to build and deploy applications, and the applications are conveniently delivered on-demand, as a service over the Internet (the cloud), there are other pitfalls and hidden costs associated with moving to a cloud-based solution. First and foremost (and probably most obvious of the "hidden" costs is the learning curve required to deploy an application to a cloud-based solution as opposed to on a locally controlled and managed server, or, a hosted solution (although this barrier is getting smaller and smaller every day, as the interfaces for controlling cloud-based solutions improve). Another big hidden cost to consider is the pricing model, in particular if a Cloud Computing service provider calculates billing based on storage, network bandwidth consumed, time deployed (all too commonly misleadingly referred to as "compute time"), or actual compute time (i.e. time spent utilizing memory and computing resources, accessing a database or transferring data over a network). Lastly, whether a provider charges more like a traditional utility (i.e. Electricity) based on actual usage, or, whether the meter is running regardless of the state of a deployment or its usage (like a taxi-cab from hell that has huge upfront/after-service fees and/or one that charges whether the person is in the car or not, or does not at least slow down the meter while idling).[2]


Architecture

Virtualization

Virtualization is probably the core component of Cloud Computing as offering a way to intelligently divide and manage the available resources on a given hardware/software configuration into specific representations for specific users, organizations or communities.

Cluster

Cluster computing is one subset of Cloud Computing. It is most commonly used for bursty, high bandwidth ativities (such as streaming a live video feed to thousands of users from several different temporarily replicated endpoints).

Grid

Grid computing is another main subset of Cloud Computing. Grid focuses on sharing (distributing) computing resources (for example, processing experiment data output by a highly advanced lab instrument). Grids tend to be more loosely coupled, heterogeneous, and geographically dispersed compared to conventional cluster computing systems. Forming a Grid is commonly done in Academia and in the Scientific Research community, as it helps to analyze and store massive amounts of data across a network of computing resources.[3] It is commonly done for intensive compute jobs such as crunching numbers (i.e. massive statistical analysis) or processing a massive amount of data output from a particular device (such as a Mass Spectrometer in a lab, underwater sensors on a submarine, etc).


Orchestration

TOSCA

Topology and Orchestration Specification for Cloud Applications (TOSCA) is a specification that aims to standardize how we describe software applications, its dependencies, supporting libraries and everything else that is required for them to run within "Cloud" infrastructure.


Types of Cloud Services

SaaS

PaaS

CaaS

DBaaS

FaaS

Scalability

Scalability is the measure of an organization or individual's ability to adapt to some conditions and over time increase vital characteristics of a product or service through higher efficiency, higher capacity and/or higher availability to larger segments of the market. One of the primary selling point of Cloud-based services is that scalability to increasingly large number of customers can be achieved much more quickly than architecting and building out internally/on-premise all the required hardware, network, security and other required infrastructure.


Cloud APIs

Generally there are three types of Cloud API's.

1. Blind APIs - API's that don't tell you their restrictions. Amazon Web Services is the best example. (Personally I'd rather know what I can or can't do then not know at all)

2. Closed APIs - API's that do tell you their restrictions. Google App Engine is a good example using a highly restrictive license. The Google terms state in section 7.2. that "you may not (and you may not permit anyone else to): (a) copy, modify, create a derivative work of, reverse engineer, decompile or otherwise attempt to extract the source code of the Google App Engine Software or any part thereof, unless this is expressly permitted" Which would make things like AppScale which is an open-source implementation of the Google AppEngine illegal under Google's terms of use.

3. Open APIs - API's that generally let you do whatever you want as long as you give attribution. Rackspace, GoGrid and Sun are the best examples. A major issue facing a lot of these so called open API's is although you maybe free to remix and use the API, you could be limited by the use of a company's name or trademark. Making the attribution clause a potential mine field.


Services

List of Open .vs. Closed Cloud Computing Providers

Open Cloud

Open Cloud Computing services are defined as those which allow full not only read/write access to their paying users but also the ability to download the entire environment, as well as to customize which software and platforms are installed in the environment. In addition, the full source code for the Cloud platform is made available so that more advanced users could potentially run their own instances on their own commodity servers/hardware.

Amazon Web Services

Rackspace

OpenStack

Collaboration between Rackspace and NASA to build an open source public/private cloud computing infrastructure.

[5][6]

Apache CloudStack

Apache's leading open source public/private cloud computing architecture and management software. It has been "designed to deploy and manage large networks of virtual machines, as a highly available, highly scalable Infrastructure as a Service (IaaS) cloud computing platform".


RedHat

OpenShift

[8] [9] [10] [11] [12] [13] [14] [15] [16] [17]

Xen

The Xen® hypervisor, the powerful open source industry standard for virtualization, offers a powerful, efficient, and secure feature set for virtualization of x86, x86_64, IA64, ARM, and other CPU architectures. It supports a wide range of guest operating systems including Windows®, Linux®, Solaris®, and various versions of the BSD operating systems


Closed Cloud

Closed Cloud Computing services are defined as those which allow only partial (or possibly full) read/write access to their paying users but differ drastically from Open Clouds in that they do not provide the capability to download the entire environment, and the options for customizzation are limited to preset options for which software and platforms are installed in the environment (in particular, that company's own technology would likely feature prominently; as in the case of Windows Azure which only runs Microsoft technologies such as C# and ASP.net on a Windows Server and/or IIS, or, Oracle MyCloud which runs only Java-based technologies on Solaris and/or Glassfish). In addition, the source code for the Cloud platform itself is not available thus customers typically do not have the option of running an instance of the cloud platform on their own commodity servers/hardware.

Google AppEngine

[18] [19] [20] [21]

Google Drive
Google Cloud Platform

Google Cloud Platform (GCP).

[22]

Windows Azure

[26] [27] [28] [29]


SkyDrive

SkyDrive is Microsoft's consumer-focused cloud storage solution for personal media files and documents.

Apple iCloud


Oracle MyCloud


IBM BlueMix


SalesForce


Heroku

The following commands can be used to deploy to Heroku, which has a "free tier" for JavaEE WebApps.[35][36]

heroku login
heroku git:remote -a APP_NAME
git remote -v
git status
git add .
git commit -m "message"
git status
git checkout master
git merge develop
git merge --no-ff develop
git status
git push heroku master
heroku open
heroku logs --tail

[37][38]

[39] [40] [41]

Cloud Storage

  • Micrsoft OneDrive: OneDrive (renamed from "SkyDrive" to "OneDrive" in 2014[42])
  • Google Drive (heavily used by Android device users for additional storage, and pushed by Google's mobile OS services)
  • Apple iCloud (heavily used by iOS device users for additional storage, and pushed by Apple's mobile OS services)
  • Dropbox: https://www.dropbox.com
  • Box: https://www.box.net

[43]

Public Clouds

Also known as a shared cloud, such services are provided "as a service" over the Internet with little or no control over the underlying technology infrastructure. This cloud is appealing to many decision-makers as it reduces complexity and long lead times in testing and deploying new products. It is generally cheaper, too.

Ubuntu

[44] [45]

Eucalyptus

Eucalyptus is an open-source system for implementing on-premise private and hybrid clouds using the hardware and software infrastructure that is in place, without modification. Eucalyptus adds capabilities such as end-user customization, self-service provisioning, and legacy application support to data center virtualization features, making IT customer service easier, more fully featured, and less expensive. Eucalyptus can be downloaded for free and used forever. It includes Amazon Web Services API (EC2, S3, EBS) and support for Xen and KVM, and allows you to build a cloud in 6 steps.

The Eucalyptus slogan is:

Your Hardware. Your Data. Your Cloud.

EyeOS

Unified Cloud Interface

Unified Cloud Computing is an attempt to create an open and standardized cloud interface for the unification of various cloud api's. A singular programmatic point of contact that can encompass the entire infrastructure stack as well as emerging cloud centric technologies all through a unified interface. One of the key drivers of the unified cloud interface is to create an api about other api's. A singular programmatic point of contact that can encompass the entire infrastructure stack as well as emerging cloud centric technologies all through a unified interface.

In this vision for a unified cloud interface the use of the resource description framework (RDF) is an ideal method to describe a semantic cloud data model (taxonomy & ontology). The benefit to an RDF based ontology languages is they act as general method for the conceptual description or modeling of information that is implemented by web resources. These web resources could just as easily be "cloud resources" or API's. This approach may also allow us to easily take an RDF -based cloud data model and use it within other ontology languages or web services making it both platform and vendor agnostic. Using this approach we're not so much defining how, but instead describing what.

OpenNebula

OpenNebula is a Virtual Infrastructure Manager that orchestrates storage, network and virtualization technologies to enable the dynamic placement of multi-tier services (groups of interconnected virtual machines) on distributed infrastructures, combining both data center resources and remote cloud resources, according to allocation policies.

CloudLoop

cloudloop is a universal, open-source Java API and command-line tool for cloud storage, which lets you store, manage, and sync your databetween all major providers.

CloudFoundry

Cloud Foundry SpringSource Cloud Foundry is the first self-service, pay-as-you-go, public cloud deployment platform for full-feature Java web applications that unifies the entire build, run, and manage application lifecycle for Java.

vCloud

VMware (upon purchase of SpringSource) announced their own Cloud Environment with the following characteristics:

  1. RESTful with full programmatic control
  2. Open Virtualization Framework (OVF) standards based
  3. Platform independent
  4. Pure virtual
  5. Supports multi-tenancy

VMware also provides critical Virtualization software for partitioning your own Operating System and Hardware.


Private Cloud

Also called an internal cloud or enterprise cloud, this also offers activities and functions "as a service" but is deployed over a company intranet or internally hosted and managed datacenter. This is private product for a company or organization offering advance security and highly available or fault tolerant solutions not possible in a public cloud. In this scenario, the private cloud owner shares few, if any, resources with other organizations. Hence, multi-tenancy is not an issue.

JoliCloud

NASA's Nebula Cloud


Hybrid Clouds

This is an integrated approach, combining the power of both public and private clouds. Customized rules and policies govern areas such as security and the underlying infrastructure. In this scenario, activities and tasks are allocated to internal or external clouds as required. [46] [47]

Cisco CloudEnablement

Dasein Cloud API




Tools


Resources


Tutorials


External Links


References

  1. ThinkGrid MSP: http://www.thinkgrid.com/msps.aspx
  2. Cloud .vs. Grid: http://www.ibm.com/developerworks/web/library/wa-cloudgrid/index.html?ca=drs-
  3. Difference - Cloud Computing vs Grid Computing: http://www.thepicky.com/tech/difference-cloud-computing-vs-grid-computing/
  4. OpenStack and Linux Foundations plan OpenStack skills certification: http://www.zdnet.com/article/openstack-and-linux-foundations-plan-openstack-skills-certification-by-early-2016openstack-and-linux/
  5. IBM launches OpenStack services: http://www.zdnet.com/article/ibm-launches-openstack-services/
  6. 8 new tutorials for OpenStack users and developers: http://opensource.com/business/15/8/new-guides-mastering-openstack-cloud
  7. OpenStack - Core Components: https://dzone.com/articles/openstack-core-components
  8. Installing OpenShift RHC Client Tools (on your local DEV environment): https://www.openshift.com/developers/rhc-client-tools-install
  9. Deploying a Java EE Web Application to OpenShift Express: http://developinjava.weebly.com/deploying-a-java-ee-web-application-to-openshift-express.html
  10. TicketMonster - OpenShift (SAMPLE APP): http://www.jboss.org/jdf/examples/ticket-monster/tutorial/WhatIsTicketMonster/
  11. Using OpenShift 3 on your local environment: https://blog.openshift.com/using-openshift-3-on-your-local-environment/
  12. The Red Hat Ecosystem (with OpenShift) for Microservice & Container Development: http://rhelblog.redhat.com/2016/02/23/the-red-hat-ecosystem-for-microservice-and-container-development/
  13. Day 13 -- Dropwizard — The Awesome Java REST Server Stack: https://blog.openshift.com/day-13-dropwizard-the-awesome-java-rest-server-stack/
  14. How to "enable SCL" in PodTemplate with Maven & NodeJS?: https://github.com/openshift/jenkins/issues/582
  15. OpenShift quick start -- Build, Deployment, Pipeline: https://dzone.com/articles/openshift-quick-start-build-deployment-and-pipelin
  16. Deploying Java EE Microservices on OpenShift: https://dzone.com/articles/deploying-java-ee-microservices-on-openshift
  17. 4 Ways to Build Applications in OpenShift : https://dzone.com/articles/4-ways-to-build-applications-in-openshift-1
  18. Google App Engine for Java, Part 1 - Rev it up!: http://www.ibm.com/developerworks/java/library/j-gaej1/
  19. Google App Engine for Java, Part 2 - Building the killer app: http://www.ibm.com/developerworks/java/library/j-gaej2/
  20. Google App Engine for Java, Part 3 - Persistence and relationships: http://www.ibm.com/developerworks/java/library/j-gaej3/
  21. Install Google App Engine on Ubuntu 12.10: http://cloud.dzone.com/articles/install-google-app-engine
  22. Compare Google App Engine (WebApp hosting/server) .vs. Google Cloud Platform (container-based full OS): https://comparisons.financesonline.com/google-app-engine-vs-google-cloud-platform
  23. Microsoft needs to stop scamming MSDN Subscribers with Azure: http://social.msdn.microsoft.com/Forums/en-ZW/windowsazurepurchasing/thread/0edca3f0-874e-4e53-ae86-7ba2740a277c?prof=required
  24. How much is Microsoft making from Azure?: http://www.zdnet.com/article/how-much-is-microsoft-making-from-azure/
  25. Internet Information Services (IIS) 7.0 installation for working with Windows Azure: http://msdn.microsoft.com/en-us/library/hh403991.aspx#IIS
  26. Microsoft Azure tutorials -- (Cross-Platform) Rock, Paper, Scissors, Lizard, Spock game example: https://docs.microsoft.com/en-us/samples/microsoft/rockpaperscissorslizardspock/azure-rock-paper-scissors/
  27. Microsoft Azure tutorials -- Choose the right Azure service for deploying your Java application: https://docs.microsoft.com/en-us/learn/modules/java-target-destinations/
  28. Microsoft Azure tutorials -- Deploy a Spring app to App Service with MySQL: https://docs.microsoft.com/en-us/azure/developer/java/spring-framework/spring-app-service-e2e?tabs=bash
  29. Using XML Policies to Log and Analyze API Calls from Azure API Management: https://dzone.com/articles/how-log-and-analyze-api-calls-from-azure-api-manag
  30. About iCloud: http://www.apple.com/icloud/
  31. IBM is a leader in cloud open standards: http://www.ibm.com/cloud-computing/us/en/open-standards.html
  32. IBM's open cloud architecture: http://www.ibm.com/developerworks/cloud/library/cl-open-architecture/
  33. Salesforce for HR aims to be front end of employee engagement: http://www.zdnet.com/article/salesforce-a-play-for-hr-aims-to-be-front-end-of-employee-engagement/
  34. Salesforce Makes Hard Push Into Human Resources With New Platform: http://techcrunch.com/2015/04/23/salesforces-new-hr-platform-could-be-part-of-wider-enterprise-expansion/
  35. Getting Started on Heroku with Java: https://devcenter.heroku.com/articles/getting-started-with-java#deploy-the-app
  36. Deploying Tomcat-based Java Web Applications with Webapp Runner: https://devcenter.heroku.com/articles/java-webapp-runner#configure-maven-to-download-webapp-runner
  37. Why am I seeing "Couldn't find that process type" when trying to scale dynos?: https://help.heroku.com/W23OAFGK/why-am-i-seeing-couldn-t-find-that-process-type-when-trying-to-scale-dynos
  38. Deploying with GIT on Heroku: https://devcenter.heroku.com/articles/git
  39. GitHub Integration (Heroku GitHub Deploys): https://devcenter.heroku.com/articles/github-integration
  40. Automating a conference submission workflow - deploying to production (on Heroku): https://blog.frankel.ch/automating-conference-submission-workflow/3/
  41. How to Create Review Apps on Heroku (using "AutoIdle Heroku add-on" show how to cut down on monthly costs): https://dzone.com/articles/how-to-create-review-apps-on-heroku
  42. Microsoft renames SkyDrive to OneDrive: https://www.pcworld.com/article/2091412/microsoft-renames-skydrive-to-onedrive.html
  43. What Happened When I Told Marie Kondo I Have a Better, Higher-Tech Method of Tidying Up: https://getpocket.com/explore/item/what-happened-when-i-told-marie-kondo-i-have-a-better-higher-tech-method-of-tidying-up?utm_source=pocket-newtab
  44. Ubuntu promises DIY Amazon cloud: http://www.theregister.co.uk/2009/03/25/ubuntu_amazon_cloud/
  45. Why Microsoft should fear Ubuntu’s cloud efforts: http://www.ubuntu-news.net/2009/02/23/why-microsoft-should-fear-ubuntus-cloud-efforts/
  46. Comparing Public, Private, and Hybrid Cloud Computing Options: http://www.dummies.com/how-to/content/comparing-public-private-and-hybrid-cloud-computin.html
  47. Public vs. Private Cloud - Best of Both Worlds a Reality?: http://www.wired.com/insights/2012/11/public-vs-private-cloud-best-of-both-worlds-a-reality/
  48. Microsoft "Sustainability Calculator" helps enterprises analyze the carbon emissions of their "Cloud" IT infrastructure: https://azure.microsoft.com/en-gb/blog/microsoft-sustainability-calculator-helps-enterprises-analyze-the-carbon-emissions-of-their-it-infrastructure/
  49. New ​Linux Foundation's guide to the open-source cloud: http://www.zdnet.com/article/new-linux-foundations-guide-to-the-open-cloud/
  50. National Institute of Standards and Technology, (NIST) Information Technology Laboratory has published an updated version of their Working Definition of Cloud Computing: http://csrc.nist.gov/groups/SNS/cloud-computing/index.html
  51. Oracle's Ellison nails cloud computing": http://news.cnet.com/8301-13953_3-10052188-80.html

See Also

VM | CDN | SOA | SaaS | PaaS | IaaS | Energy