The Cloud Flashcards
The Introduction
What is Cloud Computing?
It is the practice of using a network of remote servers hosted on the Internet to store, manage, and process data, rather than using a local server or personal computer.
What is a Cloud Provider?
Someone else owns the server, hires the IT people, rents the real estate for the data centers, and takes care of the rest. All you are responsible for, as a customer, is to configure the cloud services to your needs and be responsible for your code.
AWS - Amazon Web Services
Amazon Web Services is a collection of cloud services that can be used together under a single unified API to build a lot of different kinds of workloads.
CSP - Cloud Service Provider
A company which provides multiple cloud services that can:
- chain together to create cloud architectures
- be accessible via Single Unified API
- utilize metered billing based on usage
- have rich monitoring built in
- have IaaS offering
- offer automation via IaC
IaaS - Infrastructure as a Service
A cloud computing model that provides on-demand access to computing resources such as servers, storage, networking, and virtualization.
IaC - Infrastructure as Code
The ability to provision and support your computing infrastructure using code instead of manual processes and settings.
Cloud Platform
If a company offers multiple cloud services under a single UI but does not meet most of the CSP requirements, it is referred to as a Cloud Platform.
4 Cores for IaaS
- Compute: Imagine having a virtual computer that can run application, programs, and code
- Networking: Imagine having a virtual network defining Internet connections or network isolations between services or outbound to the Internet.
- Storage: Imagine having a virtual hard-drive that can store files
- Databases: Imagine having a virtual database for storing and reporting data or a database for general purpose web-app
Key word: VIRTUAL
Evolution of Computing
Dedicated -> VM -> Containers -> Functions
Dedicated
Having a physical server utilized by one customer. If you are that customer, you will have to guess the capacity you need. You will end up overpaying for an underutilized server. You can’t vertically nor horizontally scale your server size, AKA you are stuck with what you start with unless you want to do manual migration! UGHH. Replacing your server will be a pain in the butt and you are limited by your Host OS (what is on there is on there). Multiple apps on the same server can result in resource share conflict. You are most of the times guaranteed security, privacy, and full utility of underlying resources. It is DEDICATED to you drum sound effect
VM - Virtual Machine
There can be multiple VMs in one machine. Hypervisor is the software layer that allows you to run those VMs. A physical server is shared by multiple customers, so you end up dutch paying with everyone who uses that server. You will still be overpaying for an underutilized server and this time you will be limited by your Guest OS. Multiple apps on a single VM can lead to resource sharing conflicts. With VMs it is easier to export/import images for migration. You can vertical or horizontal scale the size of the VM.
Containers
VMs run multiple containers. Docker Deamon is the name of the software layer that allows you to run multiple containers. You can max out the available capacity, which is more cost effective because you are not overpaying for underutilized server. Your Containers share the same underlying OS, which means they are more efficient than VMs. Multiple aps can run side by side without being limited to the same OS requirements and it doesn’t cause resource sharing conflicts. However, it is a lot of work to manage.
Functions
They are managed VMs running managed Containers. Serverless Compute. You can upload a piece of code, choose the amount of memory and duration. You are only responsible for code and data, nothing else! Very cost effective, only pay for the time code is running. VMs only run when there is code to be executed. Cold Starts are a side effect of this set up (AKA it may take some time to start up).
Types of Cloud Computing
SaaS, PaaS, IaaS
SaaS - Software as a Service
Meant for regular customers. A product that is run and managed by the service provider. Don’t worry about how the service is maintained. It just works and remains available.