Chapter 2: Computing Services Flashcards
What are GCP’s services in 7 categories?
- Computing resources
- Storage resources
- Databases
- Networking services
- Identity management and security
- Development tools
- Management tools
- Specialised services
What are the engines used in Computing resources?
- Compute Engine
- Kubernetes Engine
- App Engine
What is Compute Engine?
A service that allows users to create VMs. attack persistent storage to those VMs, and make use of other GCP services such as Cloud Storage.
What do VMs run within?
VMs run within a low-level service called a hypervisor. GCP uses a security hardened version of the KVM hypervisor. (Kernel Virtual Machine).
What are hypervisors? And how do they run VMs as instances of operating systems?
Low level service that runs on an operating system like Linux or Windows server.
Can run multiple operating systems (guest operating systems), while keeping the activities of each isolated from other guest operating systems.
Each instance of an executing guest operating system is a VM instance.
What do VMs have as parameters?
- The operating system
- Size of persistent storage
- Adding GPUs for compute-intensive operations like ML.
- Making the VM preemptible. (charged significantly less than normal, but could be shut down any time by Google)
What is Kubernetes Engine for?
Allows users to easily run containerised applications on a cluster of servers.
How do containers run?
Uses features of the host operating system. No need for a hypervisor.
The host operating system maintains isolation.
A container manager is used. Containers make use of the host operating system functionality, while the operating system and container manager ensure isolation between the running containers.
What is App Engine? And what are the 2 types of App Engine?
It’s GCP’s PaaS offering.
Serverless.
- Standard
- Flexible
What can do you with a standard App Engine environment?
run applications in a language-specific sandbox, so that the application is isolated from the underlying server’s operating system as well as other apps running.
Suited for apps written in one of the supported languages and do not need operating system packages or other compiled software that would have to be installed when running the code.
What can do you with a flexible App Engine environment?
Run Docker containers in the App Engine environment.
Works well in cases where I have application code that need libraries or other third-party software installed.
Gives more flexibility, including the ability to work with background processes and write to local disk.
What is Cloud Functions?
lightweight computing option that is well suited to event driven processing. Not designed to execute long-running code.
Serverless.
What is Cloud Storage?
Object storage system.
Objects can be any type of file or binary large object, organised into buckets.
Cloud Storage is NOT a file-system. It is a service that receives, stores and retrieves files or objects from a distributed storage system.
Accessible from VM.
What are Persistent Disks?
Storage service attached to VMs in Compute Engine or Kubernetes Engine.
Provides block storage.
What are SSDs and HDDs?
solid-state drives
hard disk drives
SSDs are used for low latency apps, more expensive than HDDs.
What is Cloud Storage for Firebase for?
For mobile app development.
cloud object storage.
support uploads and downloads from mobile devices with possibly unreliable network connections.
What is Cloud Filestore?
access to a file system housed on network-attached storage.
Provides a shared file system for use with Compute Engine and Kubernetes Engine.
Provides high numbers of input-output operations per second and variable storage capacity.
What databases types does GCP provide?
relational databases and NoSQL databases.
Some are serverless and some not.
Some support atomic transactions, some are better with apps with less stringent consistency and transaction requirements.
What are the databases provided by GCP? (6 of them)
- Cloud SQL
- Cloud Bigtable
- Cloud Spanner
- Cloud Datastore
- Cloud Memorystore
- Cloud Firestore
What is Cloud SQL?
Managed relational database service.
Allows users to set up MySQL or PostGreSQL databases on VMs without having to attend to database administration tasks (such as backing up databases or patching database software)
What are relational databases well suited to? And give one example.
Applications with relatively consistent data structure requirements.
e.g. A banking database may track account numbers, customer names, addresses, and so on. All records in the database will need the same information, making it a good fit for a relational database.
What is Cloud Bigtable?
Used for petabyte-scale applications that can manage up to billions of rows and thousands of columns.
Based on a NoSQL model known as a wide-column data model.
Suited for applications that require low-latency write and read operations. Designed to support millions of operations per second.
Bigtable integrates with other Google Cloud services as well as open source tools for data processing etc.
What is Cloud Spanner?
Globally distributed relational database that combines the key benefits of relational databases:
such as strong consistency and transactions.
Ability to scale horizontally like a NoSQL database.
high availability database, good option for enterprise apps that demand scalable, highly available relational database services.
What is Datastore?
NoSQL document database.
Uses the concept of a document as the basic building block.
Documents allow for flexible schemas, e.g. a document about a book may have key-value pairs listing author, title and date.
Useful when the app must accommodate a range of attributes.
Although it is a NoSQL database, it supports transactions, indexes and SQL-like queries.
suited for apps that demand high scalability and structured data and do not always need strong consistency when reading data.