Hide
Cloud SQL

Launch Checklist for Google Cloud SQL

Introduction

This Launch Checklist for Cloud SQL gives recommended activities that you should complete for launching a commercial application that uses Google Cloud SQL. This checklist focuses on Cloud SQL-specific activities. You should also use the platform checklist, Launch Checklist for Google Cloud Platform, to understand the activities you should also complete that apply to all services.

This Launch Checklist for Cloud SQL is designed for developers who are proficient with Cloud SQL. If you are just starting out with Cloud SQL, these instructions will not teach you how to use Cloud SQL; instead, new users should start with the Getting Started.

This checklist is broken down into three sections:

  • Architecture Design and Development
  • Alpha Testing
  • Final Launch

The sections are presented in the order we recommend that you use them as you prepare to launch your application. For example, you should start with the Architecture Design and Development Checklist; it contains activities that we recommend you do early in your app's development lifecycle. Similarly, the Alpha Testing Checklist contains activities we recommend when you are closer to launch. However, the exact timeline of the checklist activities and the time required for them depends on your application development time frame.

Architecture Design and Development Checklist

We recommend that you use this checklist in the early stages of the development of your application. You can work on the checklist activities in parallel; however, we recommend that you start the software architecture-related activities as early as possible as they require more time to complete.

Activity
❑  
Architect your solution to leverage Cloud SQL. Don't think of it as MySQL on a virtual machine (VM). InnoDB is the Google recommended database engine for Cloud SQL. If your project requires MyISAM, please mention this in the “additional questions or concerns” when you notify Google of your launch with this template (g.co/GCPLaunch), which is discussed in the platform launch checklist. Be mindful of the differences related to user-defined functions, replication, and the performance schema between the two storage engines. For more information, see the FAQ What storage engine should I use?.
❑  
Carefully assess the performance characteristics of Cloud SQL, a managed and replicated MySQL service, and the service’s limitations and restrictions (for example, 500GB maximum storage, no SUPER privilege, etc.). If you want the benefits of Google managing updates to MySQL, replicating your data automatically, and high availability, then Cloud SQL is likely the best choice for your application. If your goal is pure performance and you’re prepared to manage databases and data, then MySQL on a Google Compute Engine VM is likely a better choice for your application.
❑  
Ensure your DevOps team is familiar with the Developers Console and the Cloud SDK (gcloud). Both tools use the public Cloud SQL API. Either tool may be used to manage (create, edit, delete) instances, update the root password, trigger a restore, promote a read replica to primary, and other management tasks. Tools that are likely already familiar to your DevOps team may continue to be used to connect to the Cloud SQL database including MySQL Client, MySQL Workbench, Toad for MySQL, and SQuirreL SQL. Test the integration between Cloud SQL and your existing management and monitoring tools.
❑  
Consult Google Cloud SQL community support on Stack Overflow. Its a great source of information and practical advice.
❑  
Subscribe to the Google Cloud SQL announce group. Posts are made to this group for service updates and issue and incident reports. The Cloud Status Dashboard mirrors the issue and incident reports.

Alpha Testing Checklist

Use the Alpha Testing Checklist when you are close to code complete and want to get initial metrics about your application.

Activity
❑  
Remain current on the drivers that provide data access for your development platform, for example, see driver help for Python, Java, and PHP. For database instance management, use the latest version of the Cloud SQL API.
❑  
Load-test early, often and realistically. Verify that your application can survive restarts of the Cloud SQL instance during maximum load. If your application is making a lot of connections, make sure the reconnect after a server restart has the right amount of backoff to avoid hitting the cap on the number of pending connections. For more information, see the FAQ Are there any size or QPS limits? Be aware that a big, cold buffer will take quite some time to fill. Whenever possible, you should optimize queries to avoid the creation of temporary tables because operations involving temporary tables can be especially slow.
❑  
If using Google Compute Engine VMs, make sure the firewall behavior related to idle connections doesn’t harm the application. If necessary, make sure to make the changes to TCP Keepalive persistent across VM reboots. For more information, see Connecting to Google Cloud SQL from Google Compute Engine.
❑  
Make sure the Cloud SQL instance is following the right Google App Engine application or is in the right Google Compute Engine zone. The latency should be less than 2ms most of the time. Establishing a database connection is expensive (10ms or more). Whenever possible, use connection pools to amortize this cost.
❑  
Make sure that App Engine apps don’t go over the limit of 12 Cloud SQL connections per App Engine instance. Connection pools are the recommended way to achieve this.
❑  
Make sure there is a strategy in place for doing schema changes and the impact of doing them is well understood. We recommend that you create a clone of an instance to test a schema change.
❑  
Any import or export is not allowed to take more than 24 hours so, if you use them, make sure that they fit within that limit. For more information, see Working with long-running import and export processes.

Final Launch Checklist

Use the Final Launch Checklist shortly before and during your launch.

Activity
❑  
There are no Cloud SQL specific activities for launch. If you have followed this checklist to this point, your project’s Cloud SQL service will be ready for your application’s launch. We recommend that you also review the Final Launch Checklist in the Launch Checklist for Google Cloud Platform.
❑  
Please help us make this checklist more useful by proposing improvements.