Google Cloud Platform
Google Cloud Platform (GCP) is a cloud computing platform and infrastructure that provides a set of modular cloud-based services. These services include computing, data storage, data analytics and machine learning.
GCP Services
- Data Storage (Cloud Storage, Cloud SQL, Cloud Bigtable, Cloud Datastore, Cloud Firestore, Cloud Spanner, Cloud Memorystore, Cloud Filestore)
- Messaging Publish/Subscribe (Pub/Sub)
- Compute (App Engine, Compute Engine, Kubernetes Engine, Cloud Functions)
- Data Processing (Big Data).
Data Storage
- Disk storage:
- Persistent Disk: disk storage that is attached to a virtual machine instance;
- Filestore: network attached storage (NAS) that can be mounted on virtual machine instances;
- Cloud storage: BLOBs (Binary Large Objects);
- NoSQL:
- Relational:
- Memory storage:
- Memorystore;
- Redis.
Pub/Sub
- Implementation of the Pub/Sub pattern;
- Pub/Sub is a fully-managed messaging service that allows you to send and receive messages between independent applications;
- Publishers send messages to a topic;
- Subscribers receive messages from a subscription.
Compute
- Compute Engine: virtual machines;
- Different configurations (nr. of CPUs, RAM, etc.);
- Regular (start/stop controlled by the user) or preemptible (short-lived, low-cost, can be terminated at any time by Google);
- Groups of virtual machines can be created using instance groups for load balancing and auto-scaling;
- Cloud Functions: serverless computing;
- Containers:
- Kubernetes Engine: managed Kubernetes cluster;
- Cloud Run: serverless computing for containers;
- App Engine: serverless computing for web applications;
Event-driven serverless computing
- Execution of code in response to events, in multiple languages, with auto-scaling;
- The cost only depends on the number of executions and the execution time;
- Cloud Functions: serverless computing;
- The server is only active during the execution of the code (no idle time);
- Scalability is automatic, based on the number of executions;
- Scaling is horizontal (more instances) and vertical (more resources per instance);
- This is possible because the code is stateless (no session, no local storage).
Data Processing (Big Data)
-
Artificial Intelligence:
-
Data Analytics:
Web Console
The Google Cloud Platform Console is a web-based user interface that allows you to manage resources for your Google Cloud Platform projects.
Accounts and Projects
- Any user with a Google account can access the GCP console;
- A user can have multiple projects;
- The projects exist in an organization;
- A user can have multiple billing accounts;
- One project has one billing account, but one billing account can be used by multiple projects.
Budgets
- A billing account can zero or more budgets;
- A budget emits a notification when the budget is exceeded;
- A notification does not stop the billing, it just notifies the user.
Access Control
- Based on RBAC (Role-Based Access Control);
- A project can have multiple members, that can represent a user, a group or a service account;
- A service account is used to provide programmatic access to the GCP resources - managed in the IAM & Admin section.
- Service accounts have an email and one or more key pairs (public and private keys), generated by the GCP;
- The application uses the private key to authenticate with the GCP, and access the resources defined in the service account permissions/roles.