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 The virtualization of computing resources which can be scaled to meet demand Private vs Public Cloud: The private cloud allows an organization to create a walled of infrastructure for its members
IAAS (Infrastructure As A Service)
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,.. 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. Ex: 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 or serverless computing also falls in thus category
Systems that provide a workflow with a fair amount of admin availability but start with some parts built out, Google Cloud APPs Functions As A System: Serverless- It is not really server-less. 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 a software in the cloud. Users can reach the software through the internet and it is being run on a remote system ( for the most part). The user has no ability or interaction with the system on which the software is being run.
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.