Cloud Resources

What is cloud computing?

From Wikipedia: “Cloud computing is the on-demand availability of computer system resources, especially data storage and computing power, without direct active management by the user. The term is generally used to describe data centers available to many users over the Internet.”

“The cloud” often refers to either:

  • the public availability of these systems through companies such as AWS, Google, Oracle, Microsoft, etc.; or,
  • The virtualization of computing resources which can be scaled to meet demand

The private cloud allows an organization to create a walled of infrastructure for its members

IAAS (Infrastructure As A Service)

IAAS is access to the basic computing power on a remote system. The developer or user would likely be in control of all aspects of the system. Effectively similar to having a blank linux computer and loading and running applications.

Computer Instances: AWS EC2, Google Cloud Compute, etc. Data Storage: S3,Elastic Block Storage, Firebase

This is a basic offering. You can “build” your own machine based on your needs or choose an “image” of a per-built machine. “Images” are created both by cloud companies and the public. You can also save an ”image” and make a new one from it, for example a computer built out specifically to run python applications.

PAAS (Platform As A Service)

Often used by developers, some basic infrastructure has been put in place to allow easier development. Function As A Service and serverless computing also are types of PAAS.

Systems that provide a workflow with a fair amount of admin availability but start with some parts built out, Google Cloud APPs PAAS means that the developer is shielded from having to interact with, or directly set up the server. Developers can write code blocks and directly implement them without needing to provision, scale, or manage any servers. When the code is triggered, the appropriate amount of resources is utilized.

SAAS (Software As A Service)

Running software in the cloud. sers can reach the software through the internet and it is being run on a remote system. The user has no ability or interaction with the system on which the software is being run.

Data

Generally keeping data “close to computation” will increase the speed and reduce cost of cloud resources. Cloud companies have a variety of both IAAS and PAAS systems for keeping data in the cloud.

A variety of database types (SQL, NOSQL, static file repositories sucha as AWS Athena) and ways to interact between data and cloud resources exist. Similarly each system may have specific API’s for querying this data and pulling it. When considering where to store data, security, and easy of access need to be evaluated.