Google Cloud Database Services
The database is a vital part of any Software Product. There are so many databases available in this era. Many organizations are offering a database as a service. The major giants are Google Cloud Platform and Amazon Web Services. Both the platforms are rich in services and features. This article will cover the information about the Database services offer by Google Cloud Platform.
Google Cloud Platform is enriched with so many ready to use services. When it comes to Database, no service can compete with Google Database Services. GCP offers both Relational and Non-Relational databases as a service. From Atomicity to High Scalability, GCP Database Services cover all the requirements need to develop a world-class software product.
Types of Databases:
Usually, we divide databases into two groups: Relational Database and Non-Relational Database.
Relational Database:
If we think about the data organized in tables, columns, and bound into the relationships, the relational database system comes into our mind. It is a highly organized, very reliable, and a robust database system. GCP offers the following products as relational database services:
(a) Cloud Spanner:
Cloud Spanner boosts database administration and management in a unique way and make mobile app development solutions more efficient. It offers the following features:
- Global Scale: Horizontally scalable across rows, regions, and continents, among thousands of nodes.
- Fully Managed: Ease of deployment at every scale and every stage. Synchronous replication and maintenance are automatic and built-in.
- Relational Semantics: Everything you would expect from a relational database schema, ACID transactions, and SQL queries.
- Multi-Language Support: Client libraries in C#, Go, Java, Node.js, PHP, Python, and Ruby. JDBC driver for connectivity with popular third-party tools.
- Transactional Consistency: Purpose-built for external, strong, global transactional consistency.
- Enterprise-Grade Security: Data-layer encryption, IAM integration for access and controls, and audit logging.
- Highly Available: Whenever, wherever, your data is highly available.
(b) Cloud SQL:
Cloud SQL is a very popular, highly maintainable, and manageable database offered by GCP. It is available with MySQL, PostgreSQL, and SQL-Server as a backend engine. Cloud SQL offers the following features:
- Fully managed MySQL Community Edition databases in the cloud.
- Second Generation instances support MySQL 5.6 or 5.7, and with the option to automatically increase the storage size as needed.
- Create and manage instances in the GCP Console.
- Instances available in US, Europe, or Asia.
- Customer data encrypted on Google’s internal networks and in database tables, temporary files, and backups.
- Support for secure external connections with the Cloud SQL Proxy or with the SSL/TLS protocol.
- Support for private IP (private services access).
- Data replication between multiple zones with automatic failover.
- Automated and on-demand backups, and point-in-time recovery.
- Logging and monitoring with the ability to integrate with Stackdriver.
Non-Relational Database:
These type of databases does not store the data in tabular form. These use a specific storage model for each type of requirement and data. GCP offers the following type of Non-Relational database forms:
(a) Cloud Bigtable:
Cloud Bigtable is a fully managed database service for analytical and operational workload data. It offers the following features:
- Low latency and Massively scalable NoSQL: Cloud Bigtable is highly being favored by ad-tech, fin-tech, and IoT products with sub-10ms latency. Replication provides higher availability, durability, and resilience in the face of zonal failures. This is designed with a storage engine for AI/ML applications.
- Fast and Performant: Use Cloud Bigtable as the storage engine for large-scale, low-latency with the throughput-intensive data processing used for analytics.
- Seamless scaling and replication: Cloud Bigtable can smoothly handle millions of operations per second. The deployment configuration is immediate, with no downtime during reconfiguration. Replication adds high availability for live serving apps, and workload isolation for serving and analytics.
- Simple and Integrated: Cloud Bigtable integrates easily with popular big data tools like Hadoop, Cloud Dataflow, and Cloud Dataproc. In addition, it supports the open-source industry-standard HBase API, which makes it easy for the development process.
- Fully Managed: Development teams only have to focus on the development process with no worry about managing it. GCP automatically handles the configuring and tuning. This makes Cloud Bigtable a fully managed service.
(b) Cloud Firestore:
Cloud Firestore is a flexible, scalable NoSQL cloud database for the client and server-side development. It keeps the data in-sync across client apps through realtime listeners and provides offline support for mobile and web. Cloud Firestore also offers seamless integration with other Firebase and GCP products. Cloud Firestore offers the following features:
- Flexibility: The Cloud Firestore data model supports flexible, hierarchical data structures. It stores the data in the documents and organized into collections.
- Expressive querying: In Cloud Firestore, queries can be used to retrieve the specific documents or to retrieve all the documents in a collection that match the query parameters. The queries can include multiple, chained filters and combine filtering and sorting. They’re also indexed by default, so query performance is proportional to the size of the result set, not the data set.
- Realtime updates: Cloud Firestore uses data synchronization to process data on any connected device. It is also designed to make simple, and one-time fetch queries efficiently.
- Offline support: Cloud Firestore caches data that the application is actively using, so the app can write, read, listen to, and query data even if the device is offline. When the device comes back online, Cloud Firestore synchronizes any local changes back to Cloud Firestore.
- Designed to scale: Cloud Firestore brings you the best of Google Cloud Platform’s powerful infrastructure: automatic multi-region data replication, strong consistency guarantees, atomic batch operations, and real transaction support. This enables the application to handle the massive workloads.
(c) Firebase Realtime Database:
The Firebase Realtime Database is a cloud-hosted database. Data is stored as JSON and synchronized in realtime to every connected client. The cross-platform apps world shares one Realtime Database instance to process the data. Firebase Realtime Database offers the following features:
- Realtime: Instead of typical HTTP requests, the Firebase Realtime Database uses data synchronization backed up by PUB-SUB architecture — every time data changes, any connected device receives that update. This provides collaborative and immersive experiences.
- Offline: Firebase apps remain responsive even when they are offline as the Firebase Realtime Database SDK persists data to disk. Once connectivity is reestablished, the client device receives any changes it missed, synchronizing it with the current server state.
- Accessible from Client Devices: The Firebase Realtime Database can be accessed directly from a mobile device or web browser; there’s no need for an application server. Security and data validation are available through the Firebase Realtime Database Security Rules, expression-based rules that are executed when data is read or written.
- Scale across multiple databases: Firebase Realtime Database supports scaling by splitting the data across multiple database instances in the same Firebase project. Streamline authentication with Firebase Authentication on the project and authenticate users across the database instances. This also supports custom rules for the database instance to control the access.
(d) Cloud Memorystore:
Cloud Memorystore manages the Redis instances on the Google Cloud. This is fully compatible with the Redis protocol and allows the easy migration. Cloud Memorystore offers the following features:
- Fully Managed: This is a fully managed service providing provisioning, replication, failover, and patching with the automated process.
- Highly Available: Standard Tier Cloud Memorystore for Redis instances provide a 99.9% availability SLA with automatic failover to ensure that the instance is highly available.
- Security: Cloud Memorystore is protected from the internet using VPC networks and private IP and comes with IAM integration — all designed to protect the data. Systems are monitored 24/7/365, ensuring the applications and data are protected.
- Monitoring: It provides easy integration with Stackdriver and OpenCensus for alarming, monitoring, and client-side metrics insights.
- Migration: Cloud Memorystore is compatible with Redis protocol, which makes it easy to switch the applications with no code changes. It provides the import/export feature to migrate the current Redis instance to Google Cloud.
The following table distinguishes all the above-explained GCP Database products with respect to widely identified parameters:
References:
(a) https://cloud.google.com/spanner
(b) https://cloud.google.com/sql/docs
(c) https://cloud.google.com/bigtable
(d) https://firebase.google.com/docs/firestore