Google Cloud Run
Author: Ronald Fung
Creation Date: 12 June 2023
Next Modified Date: 12 June 2024
A. Introduction
Build and deploy scalable containerized apps written in any language (including Go, Python, Java, Node.js, .NET, and Ruby) on a fully managed platform.
B. How is it used at Seagen
Google Cloud Run is a fully managed serverless platform that allows developers to deploy and run containerized applications without the need for managing the infrastructure. Here are some ways Seagen can use Google Cloud Run:
Porting existing applications: Seagen can port existing containerized applications from Microsoft Azure to Google Cloud Run. This can be done by building a Docker image of the application and deploying it to Google Cloud Run.
Developing new applications: Seagen can develop new applications using the programming language and framework of their choice and containerize them using Docker. These containerized applications can then be deployed to Google Cloud Run.
Running microservices: Seagen can use Google Cloud Run to deploy and run microservices that are part of a larger application architecture. This can help Seagen to scale individual microservices independently and improve the overall performance of the application.
Running serverless functions: Seagen can use Google Cloud Run to run serverless functions that are triggered by events, such as HTTP requests or cloud storage events. This can help Seagen to reduce costs and improve scalability by only paying for the resources used by the function at runtime.
Integrating with other Google Cloud services: Seagen can integrate their applications running on Google Cloud Run with other Google Cloud services, such as Google Cloud Storage, Google Cloud Pub/Sub, and Google Cloud SQL. This can help Seagen to build more robust and scalable applications that can take advantage of the features and capabilities offered by Google Cloud Platform.
Overall, by using Google Cloud Run, Seagen can benefit from a fully managed, serverless platform that can help them deploy and run containerized applications quickly and efficiently. With its support for porting existing applications, developing new applications, running microservices, running serverless functions, and integrating with other Google Cloud services, Google Cloud Run provides a range of options that can meet the needs of a variety of workloads and use cases.
C. Features
Any language, any library, any binary
Use the programming language of your choice, any language or operating system libraries, or even bring your own binaries.
Leverage container workflows and standards
Containers have become a standard to package and deploy code and its dependencies. Cloud Run pairs great with the container ecosystem: Cloud Build, Cloud Code, Artifact Registry, and Docker.
Pay‐per‐use
Only pay when your code is running, billed to the nearest 100 milliseconds.
D. Where Implemented
E. How it is tested
Testing Google Cloud Run involves ensuring that the containerized application is properly configured and optimized for performance, reliability, and security. Here are some steps to test Google Cloud Run:
Create a test environment: Create a test environment that mimics the production environment as closely as possible, including the container image, machine types, and storage options. Ensure that the application and its dependencies are properly configured and that the security policies are in place.
Deploy the containerized application: Deploy the containerized application to Google Cloud Run. Ensure that the application is properly configured and that it can communicate with other resources, such as databases or APIs.
Test application performance: Test the application performance by sending HTTP requests to the deployed application using web testing tools, such as Google Cloud Console or Postman. Ensure that the application is responding to requests properly and that there are no errors or timeouts.
Test application scaling: Test the application scaling by increasing the number of requests sent to the application and observing how Google Cloud Run automatically scales up the application to handle the increased load. Ensure that the application is scaling properly and that there are no performance or availability issues.
Test application security: Test the application security by using web security testing tools, such as OWASP ZAP or Google Cloud Security Scanner. Ensure that the application is secure and compliant with industry and regulatory standards.
Test application optimization: Test the application optimization by using web optimization testing tools, such as Google Cloud Load Testing or Google PageSpeed Insights. Ensure that the application is optimized for performance, reliability, and security.
Test application integration: Test the application integration with other Google Cloud services or third-party tools by using web integration testing tools, such as Google Cloud Pub/Sub or Microsoft Azure Event Grid. Ensure that the application is integrated properly and that there are no integration issues or errors.
Overall, by thoroughly testing Google Cloud Run, users can ensure that their containerized applications are properly configured and optimized for performance, reliability, and security. Additionally, users can reach out to Google Cloud support for help with any technical challenges they may encounter.
F. 2023 Roadmap
????
G. 2024 Roadmap
????
H. Known Issues
While Google Cloud Run is a powerful and reliable serverless platform for deploying and running containerized applications, there are some known issues that users may encounter. Here are some of the known issues for Google Cloud Run:
Cold start issues: When a new instance of a containerized application is created, there may be a delay in its response time due to the time it takes to start up. This issue can often be resolved by optimizing the container image size, using lightweight frameworks, or implementing warm-up requests.
Memory allocation issues: Users may encounter memory allocation issues, especially for workloads that require large amounts of memory or that have memory leaks. This issue can often be resolved by optimizing the container image size, using the appropriate machine types, or implementing memory profiling and debugging tools.
Networking issues: Users may encounter networking issues, such as high latency or low throughput, especially for workloads that require low latency or high throughput. This issue can often be resolved by optimizing the network configuration, such as using the appropriate machine types, adjusting the routing tables, or enabling network load balancing.
Security issues: Users may encounter security issues, such as unauthorized access or data breaches, especially for workloads that require high security. This issue can often be resolved by using the appropriate security policies and access controls, such as firewall rules and VPN connections.
Integration issues: Users may encounter integration issues with other cloud services or third-party tools, such as databases or APIs. This issue can often be resolved by using industry-standard protocols and APIs to enable interoperability between different cloud services and tools.
Cost issues: Users may encounter cost issues, such as unexpected charges or inefficient resource utilization, especially for workloads that require high network bandwidth or complex networking capabilities. This issue can often be resolved by optimizing the container image size, using the appropriate machine types, storage options, and pricing models.
Overall, while these issues may impact some users, Google Cloud Run remains a powerful and reliable serverless platform that is widely used by businesses and organizations around the world. By monitoring their performance and security alerts and logs, reviewing their container image size and policies, and using best practices and industry standards, users can ensure that their containerized applications running on Google Cloud Run are optimized for performance, reliability, and security. Additionally, users can reach out to Google Cloud support for help with any known issues or other technical challenges they may encounter.
[x] Reviewed by Enterprise Architecture
[x] Reviewed by Application Development
[x] Reviewed by Data Architecture