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.
PaaS - Platform as a Service
Meant for Developers. Focus on the deployment and management of your apps. Don’t worry about provisioning, configuring, or understanding the hardware or OS.
Cloud Computing Deployment Models
Public Cloud, Private Cloud, Hybrid, Cross Cloud
Public Cloud
Everything is built on the CSP Cloud Service Provider. AKA Cloud First
Use Case:
Companies that are starting out today, or small enough to make the leap from VPS to CSP. Ex: Start Ups, SaaS offerings
Private Cloud
Everything is built on a company’s datacenters. The cloud would be open stack. AKA On-Premise
Use Case:
Organizations that can’t run on cloud due to strict regulatory compliance or the sheer size of their organization. Ex: Public Sector/Government, Large Enterprise with heavy regulations
Hybrid
Using both On-Premise and CSP
Use Case:
Organizations that started with On-Premise, can’t fully move to cloud due to effort of migration or security compliance. Ex: Banks, Fintech, Large Professional Service Providers
Cross Cloud
Using multiple CSPs. AKA Multi-Cloud
K-Wave (Kondratiev Wave)
Cycle-like phenomena in the global world economy. It is closely connected with technology life cycles. Each wave irreversibly changes society on a global scale. The latest wave is Cloud Tech.
Burning Platform
When a company abandons old tech for new tech with uncertainty of success and can be motivated by fear that the new org future depends on it’s digital transformation. AKA keeping up with the trends/competition
Computing Power
The throughput measured at which a computer can execute a computational task.
6 Advantages to Cloud
- Trade Capital Expense: You can pay on-demand (no upfront-cost, pay for what you use)
- Benefit from Massive Economies of Scale: Share costs with other customers (cheaper)
- Stop Guessing Capacity: Scale up or down as you need (no more idle or underutilized servers)
- Increase Speed and Agility: Launch resources within a few clicks in minutes
- Stop Spending Money on Running and Maintaining Data Centers: Focus on you customers, developing and configuring your applications. Server tasks are taken care of for you.
- Go Global in Minutes: Develop you app in multiple regions around the world with a few clicks. Provide lower latency and a better experience for your customers at a minimal cost.
7 Advantages to Cloud
- Cost Effective: You pay for what you consume. Pay as you go (PAYG)
- Global: Launch workloads anywhere in the world. Just choose a region
- Secure: Cloud Providers take care of physical security. Cloud Services can be secure by default or you have the ability to configure access down to the T
- Reliable: Data Backup, Disaster Recovery, Data Replication, and Fault Tolerance
5.Scalable: Increase/Decrease resources and services based on demand
- Elastic: Automate scaling during spikes and drops (in real time)
- Current: Hardware and software is patched, upgraded, and replaced by the cloud provider without interruption to you