# google-cloud-platform

Published articles for google-cloud-platform.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Building a Local, Multimodal AI Terminal Agent with Gemma 4

DevFeed: [Building a Local, Multimodal AI Terminal Agent with Gemma 4](<https://devfeed.tech/articles/building-a-local-multimodal-ai-terminal-agent-with-gemma-4-22852.md>)

Original publisher: [Read original article](<https://medium.com/google-developer-experts/building-a-local-multimodal-ai-terminal-agent-with-gemma-4-4fbaa50eb14b?source=rss----a67bd6fa7d58---4>)

Author: Arjun Prabhulal

Published: 2026-08-12T09:25:11Z

Content type: tutorial

Language: en

Sources: [Google Developer Experts - Medium](<https://devfeed.tech/sources/google-developer-experts-medium.md>)

Topics: [gemma4](<https://devfeed.tech/topics/gemma4.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [multimodal-ai](<https://devfeed.tech/topics/multimodal-ai.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Local AI](<https://devfeed.tech/topics/local-ai.md>), [Code](<https://devfeed.tech/topics/code.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [artificial-intelligence](<https://devfeed.tech/tags/artificial-intelligence.md>), [code](<https://devfeed.tech/tags/code.md>), [function-calling](<https://devfeed.tech/tags/function-calling.md>), [gemma](<https://devfeed.tech/tags/gemma.md>), [gemma-4](<https://devfeed.tech/tags/gemma-4.md>), [google](<https://devfeed.tech/tags/google.md>), [google-cloud-platform](<https://devfeed.tech/tags/google-cloud-platform.md>), [local-ai](<https://devfeed.tech/tags/local-ai.md>), [multimodal](<https://devfeed.tech/tags/multimodal.md>), [ollama](<https://devfeed.tech/tags/ollama.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [terminal](<https://devfeed.tech/tags/terminal.md>)

### AI overview

A tutorial introduces Gemma 4 and builds a local multimodal terminal agent named gemma4-agent. It covers function calling, tool orchestration, text, image, and voice processing, plus Gemma 4's model variants and architecture.

### Source excerpt

Introduction Open-source LLM models have been improving rapidly with tool calling, extended context windows, and native vision and audio capabilities, all while delivering strong benchmark performance. Gemma 4, recently introduced by Google Deepmind brings all of these features together in sizes efficient enough to run locally. In this article, we'll look at the capabilities of Gemma 4 and build a multimodal (Text, Vision, Voice) CLI agent (gemma4-agent) with function-calling capabilities. By the end, you'll have an agent that can chat, write, execute code, analyze images, and process voice instructions to deliver highly grounded responses. What is Gemma 4 Model ? Gemma 4 is Google DeepMind's open model family, released in April 2026 under the Apache 2.0 license. Built from the same research and technology behind Gemini 3, Gemma 4 is designed for high-performance reasoning, coding, multimodal understanding, and local AI execution across different model sizes. Features of Gemma 4 Models Improved Tool calling : Native function calling and tool orchestration, letting agents act autonomously without bloating prompt instructions Thinking mode : Built-in step-by-step thinking mode via the <|think|> token for complex multi-turn logic Context Windows : Up to 256K tokens on the 12B and larger models (128K on the edge-sized E2B/E4B) for processing long document and tool outputs Extended Multimodality : Gemma 4 models can process text,voice and images simultaneously like extracting data from charts, analyzing screenshots , and reviewing UI mockups. Gemma 4 Model Variants & SpecificationsGemma 4 Architecture Gemma 4 comes in five model sizes built around four architectural variants, each making different trade-offs between performance, inference speed, compute, and memory. Gemma4 Unified 12B vs Effective Parameters Effective-parameter models (E2B and E4B) are dense transformer models optimized for edge and on-device deployment. The "E" stands for effective parameters use Per-La

## Batch-Evaluating LLM Agent Trajectories for Responsible AI Checks on Cloud TPU v5e

DevFeed: [Batch-Evaluating LLM Agent Trajectories for Responsible AI Checks on Cloud TPU v5e](<https://devfeed.tech/articles/the-score-was-right-the-agent-was-wrong-22858.md>)

Original publisher: [Read original article](<https://medium.com/google-developer-experts/the-score-was-right-the-agent-was-wrong-59efb6a1f1fe?source=rss----a67bd6fa7d58---4>)

Author: Noble Ackerson

Published: 2026-08-04T23:28:06Z

Content type: tutorial

Language: en

Sources: [Google Developer Experts - Medium](<https://devfeed.tech/sources/google-developer-experts-medium.md>)

Topics: [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [vllm](<https://devfeed.tech/topics/vllm.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [hugging face](<https://devfeed.tech/topics/hugging-face.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Claude](<https://devfeed.tech/topics/claude.md>), [gemma](<https://devfeed.tech/topics/gemma.md>), [Security](<https://devfeed.tech/topics/security.md>), [Benchmark](<https://devfeed.tech/topics/benchmark.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [incident](<https://devfeed.tech/topics/incident.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [artificial-intelligence](<https://devfeed.tech/tags/artificial-intelligence.md>), [benchmark](<https://devfeed.tech/tags/benchmark.md>), [claude](<https://devfeed.tech/tags/claude.md>), [cybersecurity](<https://devfeed.tech/tags/cybersecurity.md>), [evaluation](<https://devfeed.tech/tags/evaluation.md>), [gemma](<https://devfeed.tech/tags/gemma.md>), [google-cloud-platform](<https://devfeed.tech/tags/google-cloud-platform.md>), [hugging-face](<https://devfeed.tech/tags/hugging-face.md>), [incident](<https://devfeed.tech/tags/incident.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [responsible-ai](<https://devfeed.tech/tags/responsible-ai.md>), [security](<https://devfeed.tech/tags/security.md>), [vllm](<https://devfeed.tech/tags/vllm.md>)

### AI overview

This article describes batch-evaluating LLM agent trajectories for responsible-AI checks before incidents occur. It connects reported production-system breaches with Hugging Face's use of LLM-driven analysis over more than 17,000 attacker events, then presents a scheduled approach using Gemma through vLLM on Cloud TPU v5e.

### Source excerpt

Batch-evaluating agent trajectories on Cloud TPU v5e (compliance-at-scale, part 2) Trajectory batch eval pipeline for rai-checklist-cli A week or so ago, Hugging Face disclosed that an autonomous agent had broken into its production infrastructure. Five days later, OpenAI confirmed the agent was theirs: a combination of its own models, running an internal cyber-capability eval with the production safety classifiers switched off. The models were being tested on a benchmark called ExploitGym. The fastest observable path to a solution ran through the answer key. They escaped the isolated environment through a package-registry proxy, chained stolen credentials with zero-day vulnerabilities, and pulled the test solutions out of Hugging Face's production database. Per Axios, the agent kept pursuing its assigned objective even after it had escaped the test environment. Nine days later, Anthropic said hold my beer, checked its own logs and found three more. It reviewed 141,006 runs and found three cases where Claude models had reached the open internet and breached real production systems, the earliest dating to April. Two of the three organizations learned about it when Anthropic notified them. One lab looked and found something. A second lab looked and found something. That is the whole story here, and it should be the uncomfortable part: none of this surfaced through production monitoring. It surfaced because somebody went back and read the trajectories. Nobody has published what score that run produced. It doesn't matter. The part of this story that matters for this series is what Hugging Face did next with their findings. To reconstruct the intrusion, Hugging Face's security team ran LLM-driven analysis agents over the full attacker action log: more than 17,000 recorded events. Reporting indicates they did that analysis with an open-weight model on their own infrastructure, partly so no hosted safety classifier sat between the responders and the attack data, and partly

## Dart Client for Genkit

DevFeed: [Dart Client for Genkit](<https://devfeed.tech/articles/dart-client-for-genkit-23886.md>)

Original publisher: [Read original article](<https://medium.com/firebase-developers/dart-client-for-genkit-call-genkit-flows-from-flutter-dart-b5a2c9b9400e?source=rss----8e8b7dc6774d---4>)

Author: Nozomi Koborinai

Published: 2025-10-23T10:49:27Z

Content type: tutorial

Language: en

Sources: [Firebase Developers - Medium](<https://devfeed.tech/sources/firebase-developers-medium.md>)

Topics: [Genkit](<https://devfeed.tech/topics/genkit.md>), [Dart](<https://devfeed.tech/topics/dart.md>), [client library](<https://devfeed.tech/topics/client-library.md>), [Flutter](<https://devfeed.tech/topics/flutter.md>), [AI Development](<https://devfeed.tech/topics/ai-development.md>), [Cloud Functions](<https://devfeed.tech/topics/cloud-functions.md>), [Cloud Run](<https://devfeed.tech/topics/cloud-run.md>)

Tags: [ai-development](<https://devfeed.tech/tags/ai-development.md>), [apis](<https://devfeed.tech/tags/apis.md>), [client-library](<https://devfeed.tech/tags/client-library.md>), [dart](<https://devfeed.tech/tags/dart.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [genkit](<https://devfeed.tech/tags/genkit.md>), [google-cloud-platform](<https://devfeed.tech/tags/google-cloud-platform.md>), [http](<https://devfeed.tech/tags/http.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [server-sent-events-sse](<https://devfeed.tech/tags/server-sent-events-sse.md>), [streaming](<https://devfeed.tech/tags/streaming.md>)

### AI overview

This article introduces a Dart client library for calling Genkit flows deployed on a server from Flutter or other Dart applications. It explains that the library handles Genkit request and response conventions, reduces repeated HTTP client code, supports authentication mechanisms, and simplifies streaming responses through Server-Sent Events. The client can call flows implemented with Genkit JS, TypeScript, or Go when their server endpoints are accessible.

### Source excerpt

Introducing the Dart Client for GenkitCalling Genkit Flows from Flutter/DartDart client for Genkit I'm a big fan of Firebase and often choose Flutter as my front-end framework. Since Google I/O 2024, I've been continuously exploring Genkit. Developed by the Firebase team, Genkit is an open-source framework from Google that simplifies the definition of AI-powered processing sequences on the server-side as Flows. Genkit | Open-source AI development framework by Google However, calling a server-defined flow from a Dart/Flutter client application required some extra effort. To bridge this gap, I developed the Dart client for Genkit package. genkit | Dart package Note: This library is not for defining Genkit flows themselves. It is specifically designed for easily and securely calling flows deployed on a server from a Dart client.Library overview As mentioned above, this library is a dedicated client for easily calling Genkit flows deployed on a server (e.g., as Web APIs on platforms like Cloud Functions for Firebase, Cloud Run, or GKE). It is not for implementing Genkit flows in Dart. The challenges before Previously, calling a Genkit flow from Dart/Flutter required manually implementing an HTTP client according to a set of conventions. For example, here's a typical piece of code using the dio package to call an image generation flow defined in Genkit. Future<String> generateImage({required String imageDescription}) async { try { final response = await dio.post( 'https://<YOUR_GENKIT_ENDPOINT>/generateImage', data: { 'data': { 'imageDescription': imageDescription, }, }, ); if (response.statusCode == 200) { return response.data['result']['url'] as String; } throw Exception('Failed to generate image: ${response.statusCode}'); } on DioException catch (e) { throw Exception('Failed to generate image: ${e.message}'); } } This code presents several challenges: When sending a request, the input must be wrapped in {'data': ...}, and when receiving a response, the result must be ex

## Deploy Angular & Next.js apps with App Hosting, now GA!

DevFeed: [Deploy Angular & Next.js apps with App Hosting, now GA!](<https://devfeed.tech/articles/deploy-angular-next-js-apps-with-app-hosting-now-ga-16587.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2025/04/apphosting-general-availability>)

Author: Julia Reid; Jeff Huleatt

Published: 2025-04-09T06:01:00Z

Content type: release

Language: en

Sources: [Firebase Blog](<https://devfeed.tech/sources/firebase-blog.md>)

Topics: [Firebase](<https://devfeed.tech/topics/firebase.md>), [hosting](<https://devfeed.tech/topics/hosting.md>), [Angular](<https://devfeed.tech/topics/angular.md>), [Next.js](<https://devfeed.tech/topics/next-js.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Cloud Run](<https://devfeed.tech/topics/cloud-run.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Google Cloud Platform (GCP)](<https://devfeed.tech/topics/google-cloud.md>)

Tags: [angular](<https://devfeed.tech/tags/angular.md>), [api-keys](<https://devfeed.tech/tags/api-keys.md>), [app-hosting](<https://devfeed.tech/tags/app-hosting.md>), [apps](<https://devfeed.tech/tags/apps.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [cloud-next](<https://devfeed.tech/tags/cloud-next.md>), [cloud-run](<https://devfeed.tech/tags/cloud-run.md>), [domain](<https://devfeed.tech/tags/domain.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [github](<https://devfeed.tech/tags/github.md>), [google-cloud-platform](<https://devfeed.tech/tags/google-cloud-platform.md>), [hosting](<https://devfeed.tech/tags/hosting.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [launch](<https://devfeed.tech/tags/launch.md>), [next-js](<https://devfeed.tech/tags/next-js.md>), [security](<https://devfeed.tech/tags/security.md>), [ssr](<https://devfeed.tech/tags/ssr.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

Firebase App Hosting has reached General Availability. The service provides managed hosting for Angular and Next.js web apps, including automated CI/CD, Cloud Run deployment for server-rendered content, global CDN caching, domain migration, and API-key secret management.

### Source excerpt

Ready to host your production server-rendered web apps on Google Cloud.

## TPU vs. GPU: Differences in Performance, Applications, Cost, and Ecosystem

DevFeed: [TPU vs. GPU: Differences in Performance, Applications, Cost, and Ecosystem](<https://devfeed.tech/articles/what-is-tpu-vs-gpu-31200.md>)

Original publisher: [Read original article](<https://tailscale.com/learn/what-is-tpu-vs-gpu>)

Published: 2025-03-11T23:10:26Z

Content type: comparison

Language: en

Sources: [Learn on Tailscale](<https://devfeed.tech/sources/learn-on-tailscale.md>)

Topics: [GPU](<https://devfeed.tech/topics/gpu.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [AI Infrastructure](<https://devfeed.tech/topics/ai-infrastructure.md>), [Deep learning](<https://devfeed.tech/topics/deep-learning.md>), [Google](<https://devfeed.tech/topics/google.md>), [Google Cloud Platform (GCP)](<https://devfeed.tech/topics/google-cloud.md>), [High-Performance Computing](<https://devfeed.tech/topics/high-performance-computing.md>), [Neural Network](<https://devfeed.tech/topics/neural-network.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [applications](<https://devfeed.tech/tags/applications.md>), [deep-learning](<https://devfeed.tech/tags/deep-learning.md>), [efficiency](<https://devfeed.tech/tags/efficiency.md>), [google](<https://devfeed.tech/tags/google.md>), [google-cloud-platform](<https://devfeed.tech/tags/google-cloud-platform.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [high-performance-computing](<https://devfeed.tech/tags/high-performance-computing.md>), [speed](<https://devfeed.tech/tags/speed.md>), [tpu](<https://devfeed.tech/tags/tpu.md>), [vs](<https://devfeed.tech/tags/vs.md>)

### AI overview

This comparison explains how Google TPUs and GPUs differ in AI processing. TPUs are designed for high-speed, low-precision deep-learning computation on Google Cloud, while GPUs provide more flexible parallel processing and broad framework compatibility.

### Source excerpt

Two key players dominate the efficiency and speed of AI applications: the Graphics Processing Unit (GPU) and the Tensor Processing Unit (TPU). Both have their strengths and weaknesses.

## internal AI: A Genkit-Based Internal AI Chat Released as Open Source!

DevFeed: [internal AI: A Genkit-Based Internal AI Chat Released as Open Source!](<https://devfeed.tech/articles/internal-ai-a-genkit-based-internal-ai-chat-released-as-open-source-23891.md>)

Original publisher: [Read original article](<https://medium.com/firebase-developers/internal-ai-a-genkit-based-internal-ai-chat-released-as-open-source-37795896a106?source=rss----8e8b7dc6774d---4>)

Author: tanabee

Published: 2025-02-17T17:14:41Z

Content type: article

Language: en

Sources: [Firebase Developers - Medium](<https://devfeed.tech/sources/firebase-developers-medium.md>)

Topics: [Genkit](<https://devfeed.tech/topics/genkit.md>), [AI Chat](<https://devfeed.tech/topics/ai-chat.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [Retrieval-Augmented Generation](<https://devfeed.tech/topics/retrieval-augmented-generation.md>), [Generative AI](<https://devfeed.tech/topics/generative-ai.md>)

Tags: [emulator](<https://devfeed.tech/tags/emulator.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [firestore](<https://devfeed.tech/tags/firestore.md>), [function-calling](<https://devfeed.tech/tags/function-calling.md>), [gemini](<https://devfeed.tech/tags/gemini.md>), [genkit](<https://devfeed.tech/tags/genkit.md>), [google-cloud-platform](<https://devfeed.tech/tags/google-cloud-platform.md>), [llm](<https://devfeed.tech/tags/llm.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [rag](<https://devfeed.tech/tags/rag.md>), [vertex-ai](<https://devfeed.tech/tags/vertex-ai.md>)

### AI overview

This article introduces internal AI, an open-source Genkit-based internal chat implementation. It describes its usage-based pricing, customizable RAG and function-calling support, Firebase deployment, monitoring, domain restrictions, and local testing with the Firebase Emulator.

### Source excerpt

internal AI: An open-source Genkit-based internal AI chat implementation I have released internal AI, an AI chat solution you can easily and cost-effectively run internally, under an open-source license! Recently, Firebase Genkit reached version 1.0 and became stable for production use. With Genkit, you can quickly build applications that leverage generative AI. However, Genkit itself does not include a user interface. As a use case for an internal AI chat, I decided to make internal AI available as open source. Because internal AI uses a pay-as-you-go model instead of charging per user, you can optimize costs by only paying for the amount of usage. Moreover, thanks to Genkit's extensibility, you can combine RAG (Retrieval-Augmented Generation) and Function Calling to tailor AI features to your organization's needs. This opens the door to more practical AI applications, such as specialized internal information retrieval or automated workflow processes! GitHub - tanabee/internal-ai internal AI -- ChatKey Features Open-source project, allowing customization to fit your organization's needs Abstracted interface with generative AI via Genkit Deployable on Firebase Firebase AI Monitoring for monitoring requests to generative AI Restricting Usage to Specific Domains Usage-based pricing, independent of the number of users Open-source project, allowing customization to fit your organization's needs internal AI is provided as a boilerplate, which you can freely fork and customize according to your organization's requirements. Genkit can be extended in many ways, such as using RAG for accessing internal data or utilizing Google Search for grounding. To keep things simple for initial adoption, this example just communicates with Gemini 2.0. const ai = genkit({ // ... model: gemini20Flash001, }) export const chatFlow = ai.defineFlow( // ... async (messages) => { const response = await ai.generate({ messages }) return response.messages }, ) internal-ai/functions/src/genkit/chatFlow.t

## Image Migration to Google Cloud Platform

DevFeed: [Image Migration to Google Cloud Platform](<https://devfeed.tech/articles/image-migration-to-google-cloud-platform-28045.md>)

Original publisher: [Read original article](<https://tech.trivago.com/post/2024-05-14-image-migration-to-gcp/>)

Author: Praneeth Peiris I want

Published: 2024-05-14T00:00:00Z

Content type: article

Language: en

Sources: [Trivago](<https://devfeed.tech/sources/trivago.md>)

Topics: [Google Cloud Platform (GCP)](<https://devfeed.tech/topics/google-cloud.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [data](<https://devfeed.tech/topics/data.md>), [Image processing](<https://devfeed.tech/topics/image-processing.md>), [Machine learning](<https://devfeed.tech/topics/machine-learning.md>)

Tags: [amazon-web-services](<https://devfeed.tech/tags/amazon-web-services.md>), [backend](<https://devfeed.tech/tags/backend.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [data](<https://devfeed.tech/tags/data.md>), [data-pipelines](<https://devfeed.tech/tags/data-pipelines.md>), [google-cloud](<https://devfeed.tech/tags/google-cloud.md>), [google-cloud-platform](<https://devfeed.tech/tags/google-cloud-platform.md>), [image-processing](<https://devfeed.tech/tags/image-processing.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [migration](<https://devfeed.tech/tags/migration.md>)

### AI overview

This article explains how trivago migrated its image infrastructure from AWS and an on-premises data centre to Google Cloud. It describes the image-processing and machine-learning pipelines involved, the limitations of a lift-and-shift migration, and the need to redesign the pipelines for a single cloud environment.

### Source excerpt

Migration projects can be hard, especially when we were not around when the original projects were built. We migrated our images infrastructure to Google Cloud which was spread across multiple environments and here is how we did that.

## A decoder-only foundation model for time-series forecasting

DevFeed: [A decoder-only foundation model for time-series forecasting](<https://devfeed.tech/articles/a-decoder-only-foundation-model-for-time-series-forecasting-28545.md>)

Original publisher: [Read original article](<http://blog.research.google/2024/02/a-decoder-only-foundation-model-for.html>)

Author: Google AI (noreply@blogger.com)

Published: 2024-02-02T19:07:00Z

Content type: article

Language: en

Sources: [Google Research](<https://devfeed.tech/sources/google-research.md>)

Topics: [Time Series](<https://devfeed.tech/topics/time-series.md>), [foundation-models](<https://devfeed.tech/topics/foundation-models.md>), [Google](<https://devfeed.tech/topics/google.md>), [Deep learning](<https://devfeed.tech/topics/deep-learning.md>)

Tags: [deep-learning](<https://devfeed.tech/tags/deep-learning.md>), [forecasting](<https://devfeed.tech/tags/forecasting.md>), [google](<https://devfeed.tech/tags/google.md>), [google-cloud-platform](<https://devfeed.tech/tags/google-cloud-platform.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [model](<https://devfeed.tech/tags/model.md>), [time-series](<https://devfeed.tech/tags/time-series.md>)

### AI overview

Google Research introduces TimesFM, a decoder-only foundation model for time-series forecasting. The model is pretrained on 100 billion real-world time-points and is reported to provide zero-shot forecasts on unseen datasets across domains and temporal granularities, with 200 million parameters.

### Source excerpt

Posted by Rajat Sen and Yichen Zhou, Google Research Time-series forecasting is ubiquitous in various domains, such as retail, finance, manufacturing, healthcare and natural sciences. In retail use cases, for example, it has been observed that improving demand forecasting accuracy can meaningfully reduce inventory costs and increase revenue. Deep learning (DL) models have emerged as a popular approach for forecasting rich, multivariate, time-series data because they have proven to perform well in a variety of settings (e.g., DL models performed well in the M5 competition). At the same time, there has been rapid progress in large foundation language models used for natural language processing (NLP) tasks, such as translation, retrieval-augmented generation, and code completion. These models are trained on massive amounts of textual data derived from a variety of sources like common crawl and open-source code that allows them to identify patterns in languages. This makes them very powerful zero-shot tools; for instance, when paired with retrieval, they can answer questions about and summarize current events. Despite DL-based forecasters largely outperforming traditional methods and progress being made in reducing training and inference costs, they face challenges: most DL architectures require long and involved training and validation cycles before a customer can test the model on a new time-series. A foundation model for time-series forecasting, in contrast, can provide decent out-of-the-box forecasts on unseen time-series data with no additional training, enabling users to focus on refining forecasts for the actual downstream task like retail demand planning. To that end, in "A decoder-only foundation model for time-series forecasting", we introduce TimesFM, a single forecasting model pre-trained on a large time-series corpus of 100 billion real world time-points. Compared to the latest large language models (LLMs), TimesFM is much smaller (200M parameters), yet we

## Publishing Kotlin Multiplatform Swift Packages Using Google Cloud Storage and Cloud Run

DevFeed: [Publishing Kotlin Multiplatform Swift Packages Using Google Cloud Storage and Cloud Run](<https://devfeed.tech/articles/publishing-kotlin-multiplatform-swift-packages-using-google-cloud-storage-and-cloud-run-23879.md>)

Original publisher: [Read original article](<https://engineering.premise.com/publishing-kotlin-multiplatform-swift-packages-to-google-cloud-storage-be5c6987e5d?source=rss----c5fada0a103d---4>)

Author: Nate Ebel

Published: 2023-10-18T05:28:28Z

Content type: tutorial

Language: en

Sources: [Engineering at Premise - Medium](<https://devfeed.tech/sources/engineering-at-premise-medium.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Cloud Run](<https://devfeed.tech/topics/cloud-run.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [kotlin-multiplatform-libraries](<https://devfeed.tech/topics/kotlin-multiplatform-libraries.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>)

Tags: [cloud](<https://devfeed.tech/tags/cloud.md>), [cloud-run](<https://devfeed.tech/tags/cloud-run.md>), [github](<https://devfeed.tech/tags/github.md>), [google-cloud-platform](<https://devfeed.tech/tags/google-cloud-platform.md>), [google-cloud-run](<https://devfeed.tech/tags/google-cloud-run.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-multiplatform-libraries](<https://devfeed.tech/tags/kotlin-multiplatform-libraries.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [swift](<https://devfeed.tech/tags/swift.md>)

### AI overview

This tutorial describes Premise's approach to publishing and consuming Kotlin Multiplatform Swift Packages. It uses a custom Gradle plugin to publish XCFrameworks to Google Cloud Storage and a Cloud Run service to download the Swift Package binaries requested by Xcode, reducing the need to store large binaries in GitHub.

### Source excerpt

By Nate Ebel, Android developer In this post, we'll detail our solution for publishing, and consuming, Kotlin Multiplatform Swift Packages. Our solution leverages a custom Gradle plugin publishing XCFrameworks to Google Cloud Storage and a Google Cloud Run service to download Swift Package binaries requested by XCode. With this solution in place, we've been able to more efficiently serve multiple Kotlin Multiplatform libraries to our iOS application. This is a part of an ongoing series on our usage of Kotlin Multiplatform at Premise: Part 1: Kotlin Multiplatform at Premise Part 2: Kotlin Multiplatform Project Structure for Integrating with Brownfield Applications Part 3: Building a CI Pipeline for Kotlin Multiplatform Mobile Using GitHub Actions Part 4: Publishing Kotlin Multiplatform Swift Packages Using Google Cloud Storage and Cloud Run -- This Post Part 5: Generating BuildConfig Files for a Kotlin Multiplatform Library -- Coming Soon Part 6: Optimizing Local Build Times for Kotlin Multiplatform Mobile Projects -- Coming Soon Premise and Kotlin Multiplatform Swift Packages We've been using Kotlin Multiplatform in production since early 2021 in the form of our mobile-shared project. During that time, we've consumed our shared code as a Swift Package within our iOS application. The integration of that Swift Package has gone through several iterations. v1: Use the multiplatform-swiftpackage plugin to build the Swift Package and store the XCFramework binary in GitHub v2: Use our own custom Gradle plugin to build the Swift Package and store the XCFramework binary in GitHub These two solutions were very similar. Build the XCFramework. Generate the Package.swiftfile. Check both into git with the desired version tag. These approaches worked fine for a while, but eventually we started to pay the price for our simple initial solution. An XCFramework binary can be pretty large. Ours were in the ballpark of 100MB. So checking 2-3 of these into each commit (1 for each iOS archit

## Easily Manage IAM Policies for Serverless REST Applications in GCP with Goblet

DevFeed: [Easily Manage IAM Policies for Serverless REST Applications in GCP with Goblet](<https://devfeed.tech/articles/easily-manage-iam-policies-for-serverless-rest-applications-in-gcp-with-goblet-23877.md>)

Original publisher: [Read original article](<https://engineering.premise.com/easily-manage-iam-policies-for-serverless-rest-applications-in-gcp-with-goblet-f1580a97b74?source=rss----c5fada0a103d---4>)

Author: Austen Novis

Published: 2023-07-10T20:09:55Z

Content type: tutorial

Language: en

Sources: [Engineering at Premise - Medium](<https://devfeed.tech/sources/engineering-at-premise-medium.md>)

Topics: [Google Cloud Platform (GCP)](<https://devfeed.tech/topics/google-cloud.md>), [IAM](<https://devfeed.tech/topics/iam.md>), [Serverless](<https://devfeed.tech/topics/serverless.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [Python](<https://devfeed.tech/topics/python.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [cloud-computing](<https://devfeed.tech/tags/cloud-computing.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [framework](<https://devfeed.tech/tags/framework.md>), [gcp](<https://devfeed.tech/tags/gcp.md>), [goblet](<https://devfeed.tech/tags/goblet.md>), [google-cloud-platform](<https://devfeed.tech/tags/google-cloud-platform.md>), [iam](<https://devfeed.tech/tags/iam.md>), [identity-and-access](<https://devfeed.tech/tags/identity-and-access.md>), [permission](<https://devfeed.tech/tags/permission.md>), [python](<https://devfeed.tech/tags/python.md>), [serverless](<https://devfeed.tech/tags/serverless.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This tutorial explains how the Goblet Python framework automates IAM policy management for serverless REST applications on Google Cloud Platform. It covers identifying deployment permissions, enabling required APIs, creating custom roles and service accounts, and adding invoker bindings for connected services.

### Source excerpt

By Austen Novis, Staff Software Engineer Photo by Akhilesh Sharma on Unsplash Writing and deploying serverless applications has never been easier, especially on Google Cloud Platform (GCP). With a few clicks developers are able to deploy their application to the cloud and then trigger calls in a variety of ways from Cloud Schedulers and Pubsub Subscriptions to API Gateways. Deploying your resources to GCP seems straightforward until you get a 403 error, permission denied. This error causes frustration as the root cause can be a number of issues, and often the solution requires knowing GCP roles and permissions in an in depth manner. The issue can be caused by the user not having the correct permissions to deploy their services or the services themselves not having the correct permissions to connect to each other. Once you have identified the problem you will need to understand what roles have the required permissions, how to apply those roles, and where to apply them. Instead of application developers wasting their time researching GCP documentation, searching stack overflow, or reaching out to devops teams, IAM access should be as automated as much as possible. Using the Goblet framework, we are now able to view exactly what permissions are needed to deploy our serverless applications, enable required GCP service API's, create a new custom role with these permissions, create a service account with this role, and add the correct invoker bindings so that all serverless services can connect to each other. Goblet is a python framework for writing serverless applications in GCP with the goal of making it as simple as possible to write and deploy REST applications. Goblet uses simple decorators, similar to flask, to create the necessary configurations and automatically deploy the required services and infrastructure. For example, with code below we can deploy a simple cloudfunction that is triggered by a pubsub subscription and a cloud scheduler. Goblet will also take ca

## Analyzing My Commute Data to Find the Best Time to Go to Work

DevFeed: [Analyzing My Commute Data to Find the Best Time to Go to Work](<https://devfeed.tech/articles/analyzing-my-commute-data-to-find-the-best-time-to-go-to-work-40839.md>)

Original publisher: [Read original article](<https://mutto.fyi/posts/2023/07/analyzing-commute-data-using-google-api/>)

Published: 2023-07-07T00:00:00Z

Content type: article

Language: en

Sources: [Mutt0-ds Notes](<https://devfeed.tech/sources/mutt0-ds-notes.md>)

Topics: [Google Maps](<https://devfeed.tech/topics/google-maps.md>), [API](<https://devfeed.tech/topics/api.md>), [Google Cloud Platform (GCP)](<https://devfeed.tech/topics/google-cloud.md>), [Simulation](<https://devfeed.tech/topics/simulation.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [data](<https://devfeed.tech/tags/data.md>), [google-cloud-platform](<https://devfeed.tech/tags/google-cloud-platform.md>), [google-maps](<https://devfeed.tech/tags/google-maps.md>), [simulation](<https://devfeed.tech/tags/simulation.md>)

### AI overview

This article analyzes personal commute data using Google Maps traffic predictions and the Google Distance Matrix API. It simulates departure times in five-minute intervals across morning and evening travel windows, finding that the results generally align with the author's prior experience while noting seasonal traffic limitations.

### Source excerpt

When my commute buddy and I find ourselves stuck in traffic during our car journeys, we often daydream about finding the ideal route and...

## Deploy and Handle GCP CloudTasks with Goblet in minutes.

DevFeed: [Deploy and Handle GCP CloudTasks with Goblet in minutes.](<https://devfeed.tech/articles/deploy-and-handle-gcp-cloudtasks-with-goblet-in-minutes-23875.md>)

Original publisher: [Read original article](<https://engineering.premise.com/deploy-and-handle-gcp-cloudtasks-with-goblet-in-minutes-ee138e9dd2c5?source=rss----c5fada0a103d---4>)

Author: Mauricio Wittenberg

Published: 2023-04-18T13:55:58Z

Content type: tutorial

Language: en

Sources: [Engineering at Premise - Medium](<https://devfeed.tech/sources/engineering-at-premise-medium.md>)

Topics: [Google Cloud Platform (GCP)](<https://devfeed.tech/topics/google-cloud.md>), [Python](<https://devfeed.tech/topics/python.md>), [Microservices](<https://devfeed.tech/topics/microservices.md>), [Serverless](<https://devfeed.tech/topics/serverless.md>), [IAM](<https://devfeed.tech/topics/iam.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Docker Image](<https://devfeed.tech/topics/docker-image.md>)

Tags: [cloud-computing](<https://devfeed.tech/tags/cloud-computing.md>), [cloud-tasks](<https://devfeed.tech/tags/cloud-tasks.md>), [cloudrun](<https://devfeed.tech/tags/cloudrun.md>), [container-registry](<https://devfeed.tech/tags/container-registry.md>), [docker](<https://devfeed.tech/tags/docker.md>), [docker-image](<https://devfeed.tech/tags/docker-image.md>), [gcp](<https://devfeed.tech/tags/gcp.md>), [goblet](<https://devfeed.tech/tags/goblet.md>), [google-cloud](<https://devfeed.tech/tags/google-cloud.md>), [google-cloud-platform](<https://devfeed.tech/tags/google-cloud-platform.md>), [iam](<https://devfeed.tech/tags/iam.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [permissions](<https://devfeed.tech/tags/permissions.md>), [python](<https://devfeed.tech/tags/python.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [serverless](<https://devfeed.tech/tags/serverless.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This tutorial explains how Goblet can deploy and manage Google Cloud Tasks for serverless microservices on Google Cloud Platform. It covers defining a queue, enqueuing and handling tasks in Python, configuring IAM permissions, and deploying related infrastructure, Docker images, and Cloud Run revisions.

### Source excerpt

by Mauricio Wittenberg. Goblet DeployIntroduction CloudTasks is a Google Cloud Platform (GCP) service that allows users to enqueue tasks in a queue. It is somewhat similar to PubSub, but with CloudTasks, the queue has features such as rateLimits and retryConfig. This can be very useful when having to enforce a rate limit over an external API or retrying tasks that have a known probability of failure. If you want to use CloudTasks you will have to manually deploy cloud infrastructure, understand the CloudTask object, deal with client libraries and figure out multiple IAM role bindings. Or you can use Goblet for all the heavy lifting and in just a few minutes be able push a task and later process the task in a Python function of our choosing. Goblet is a Python based cloud framework for building serverless microservices on Google Cloud Platform. It enables developers to quickly and reliably deploy cloud resources together with the code that will make use of those resources. In this blog post we will review how Goblet deploys CloudTaskQueues and provides the user with an simple code interface to enqueue and handle CloudTasks⁶. Using the short snipped of code below we can define a queue, create a client, push a task to the queue, and handle tasks from the queue! https://medium.com/media/d81fb2d8bd47a3f69479708d61dd5230/href See the rest of the tutorial for setting up your Goblet environment, setting permissions, and deploying you infrastructure and application in a few quick steps. Infrastructure For this tutorial we will use an example GCP project called goblet-cloudtask and deploy region specific resources to us-central1. If you would like to follow along the complete code can be found at gcp-tutorials. The account used to run this example must have enough IAM role binding to run all the gcloud commands described in the Set-Up section below. Now, let's take a look at the infrastructure Goblet will create. We won't have to take care of any of these steps ourselves. All

## Hosting a fully Serverless Web-Based Postgres Admin Client on GCP using Pgweb, Cloud Run, & IAP

DevFeed: [Hosting a fully Serverless Web-Based Postgres Admin Client on GCP using Pgweb, Cloud Run, & IAP](<https://devfeed.tech/articles/hosting-a-fully-serverless-web-based-postgres-admin-client-on-gcp-using-pgweb-cloud-run-iap-23878.md>)

Original publisher: [Read original article](<https://engineering.premise.com/hosting-a-fully-serverless-web-based-postgres-admin-client-on-gcp-using-pgweb-cloud-run-iap-cff0ce8f471b?source=rss----c5fada0a103d---4>)

Author: Austen Novis

Published: 2023-03-06T13:17:20Z

Content type: tutorial

Language: en

Sources: [Engineering at Premise - Medium](<https://devfeed.tech/sources/engineering-at-premise-medium.md>)

Topics: [Cloud Run](<https://devfeed.tech/topics/cloud-run.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Google Cloud Platform (GCP)](<https://devfeed.tech/topics/google-cloud.md>), [Serverless](<https://devfeed.tech/topics/serverless.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [container](<https://devfeed.tech/topics/container.md>)

Tags: [authentication](<https://devfeed.tech/tags/authentication.md>), [cli](<https://devfeed.tech/tags/cli.md>), [cloud-computing](<https://devfeed.tech/tags/cloud-computing.md>), [cloud-run](<https://devfeed.tech/tags/cloud-run.md>), [cloud-sql](<https://devfeed.tech/tags/cloud-sql.md>), [cloudrun](<https://devfeed.tech/tags/cloudrun.md>), [container](<https://devfeed.tech/tags/container.md>), [deploy](<https://devfeed.tech/tags/deploy.md>), [gcp](<https://devfeed.tech/tags/gcp.md>), [google-cloud-platform](<https://devfeed.tech/tags/google-cloud-platform.md>), [identity-aware-proxy](<https://devfeed.tech/tags/identity-aware-proxy.md>), [pgweb](<https://devfeed.tech/tags/pgweb.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [serverless](<https://devfeed.tech/tags/serverless.md>), [vpc](<https://devfeed.tech/tags/vpc.md>)

### AI overview

A tutorial explains how to deploy Pgweb, a Go-based PostgreSQL administration client, as a serverless web application on Google Cloud. It uses Cloud Run, CloudSQL, a CloudSQL connector, Secret Manager, Artifact Registry, and optionally an HTTP load balancer with Identity-Aware Proxy for authentication.

### Source excerpt

By Austen Novis, Staff Software Engineer Pgweb example screenshot There are a number of quality Postgres open source administration tools such as pgAdmin or DBeaver, but these tools require a persistent server to run. This means that each user needs to install the tool locally and setup their connections, or you need to host the tool in a cloud server, which can get expensive. A much cheaper alternative is to use Pgweb, a lightweight web-based database explorer for PostgreSQL written in Go, and deploy to Cloud Run. This allows you to utilize a web-based tool, for minimal cost, that can scale for any number of users. We will leverage several Google Cloud Platform services for the complete setup starting with a http load balancer to allow for a custom DNS name as well as enable Identity Aware Proxy (IAP), which is what we will be using for authentication. We will host the service in Cloud Run and connect directly to CloudSQL using a CloudSQL connector. You can bypass the load balancer and IAP if you would like to use username and passwords for authentication. Cloud componentsCloud Setup The first step is setting up your CloudSQL instance. This can be done via terraform or in the GCP console. The main requirement is that you enable a public ip address, which will allow us to use the CloudSQL Auth proxy to connect our Cloud Run instance to our CloudSQL instance. If this is not possible you can still connect to your CloudSQL instance to Cloud Run through a VPC Connector instead. Next we will need to save our database connection credentials in GCP's Secret Manger by creating a new secret called PGWEB_DATABASE_URL in the format of postgres:///DB_NAME?host=/cloudsql/PROJECT:REGION:INSTANCE_NAME&user=DB_USER&password=DB_PASSWORD . Now that we have our CloudSQL instance and connection secret we will deploy our Cloud Run instance using the gcloud cli. First we will need to push the desired Pgweb container to GCP's Artifact Registry, which we can do using the following commands

## Threat Modeling Google Cloud (Threat Model Thursday)

DevFeed: [Threat Modeling Google Cloud (Threat Model Thursday)](<https://devfeed.tech/articles/threat-modeling-google-cloud-threat-model-thursday-37037.md>)

Original publisher: [Read original article](<https://shostack.org/blog/threat-modeling-google-cloud/>)

Author: Adam

Published: 2023-03-01T00:00:00Z

Content type: opinion

Language: en

Sources: [Shostack & Friends Blog](<https://devfeed.tech/sources/shostack-friends-blog.md>)

Topics: [Google Cloud Platform (GCP)](<https://devfeed.tech/topics/google-cloud.md>), [Security](<https://devfeed.tech/topics/security.md>), [Google](<https://devfeed.tech/topics/google.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>)

Tags: [assets](<https://devfeed.tech/tags/assets.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [cloud-platform](<https://devfeed.tech/tags/cloud-platform.md>), [data](<https://devfeed.tech/tags/data.md>), [diagram](<https://devfeed.tech/tags/diagram.md>), [google](<https://devfeed.tech/tags/google.md>), [google-cloud](<https://devfeed.tech/tags/google-cloud.md>), [google-cloud-platform](<https://devfeed.tech/tags/google-cloud-platform.md>), [processes](<https://devfeed.tech/tags/processes.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

The article reviews NCC's threat model for Google Cloud Platform, examining its methodology, diagrams, assets, boundaries, threat actors, attack goals, weaknesses, and potential threats. It offers constructive observations about the model's organization, readability, and use of STRIDE-related categories.

### Source excerpt

NCC has released a threat model for Google Cloud Platform. What can it teach us?

## Debugging Systems in the Cloud: MySQL, Kubernetes, and Cgroups

DevFeed: [Debugging Systems in the Cloud: MySQL, Kubernetes, and Cgroups](<https://devfeed.tech/articles/debugging-systems-in-the-cloud-mysql-kubernetes-and-cgroups-1361.md>)

Original publisher: [Read original article](<https://shopify.engineering/debugging-systems-cloud-mysql-kubernetes-cgroups>)

Author: Rodrigo Saito

Published: 2021-10-21T17:30:01Z

Content type: article

Language: en

Sources: [Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering.md>), [Shopify Engineering - Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering-shopify-engineering.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [bug](<https://devfeed.tech/topics/bug.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [Google Cloud Platform (GCP)](<https://devfeed.tech/topics/google-cloud.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [bug](<https://devfeed.tech/tags/bug.md>), [cgroups](<https://devfeed.tech/tags/cgroups.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [google-cloud-platform](<https://devfeed.tech/tags/google-cloud-platform.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [linux](<https://devfeed.tech/tags/linux.md>), [memory](<https://devfeed.tech/tags/memory.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [performance](<https://devfeed.tech/tags/performance.md>), [systems](<https://devfeed.tech/tags/systems.md>), [upgrades](<https://devfeed.tech/tags/upgrades.md>)

### AI overview

This article investigates inconsistent startup and shutdown times for MySQL Pods in Shopify's KateSQL platform, which runs on Google Cloud's Kubernetes Engine. The investigation identifies a bug in the Linux kernel memory controller and describes mitigation by replacing older Kubernetes nodes.

### Source excerpt

An overview of how we investigated and solved the issue of some Kubernetes Pods running MySQL starting up and shutting down slower than other similar Pods with the same data set.

## Deploying Server-Side Google Tag Manager on Cloud Run

DevFeed: [Deploying Server-Side Google Tag Manager on Cloud Run](<https://devfeed.tech/articles/deploying-server-side-google-tag-manager-on-cloud-run-15600.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/deploying-server-side-google-tag-manager-on-cloud-run>)

Author: Amogh Kambale

Published: 2021-07-15T21:00:00Z

Content type: tutorial

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [Cloud Run](<https://devfeed.tech/topics/cloud-run.md>), [Google Cloud Platform (GCP)](<https://devfeed.tech/topics/google-cloud.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Routing (disambiguation)](<https://devfeed.tech/topics/routing.md>), [Back end](<https://devfeed.tech/topics/backend.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [cloud-run](<https://devfeed.tech/tags/cloud-run.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [containers](<https://devfeed.tech/tags/containers.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [docker](<https://devfeed.tech/tags/docker.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [google-cloud](<https://devfeed.tech/tags/google-cloud.md>), [google-cloud-platform](<https://devfeed.tech/tags/google-cloud-platform.md>), [routing](<https://devfeed.tech/tags/routing.md>)

### AI overview

This article explains how Square deployed server-side Google Tag Manager on GCP Cloud Run instead of App Engine Flexible. It covers the architecture, automated deployment process, scaling approach, and setup steps using separate Tagging and Preview containers.

### Source excerpt

Moving marketing event processing out of the browser and into the backend

## Deploying a Rails App Using HatchBox onto Google Cloud Platform

DevFeed: [Deploying a Rails App Using HatchBox onto Google Cloud Platform](<https://devfeed.tech/articles/deploying-a-rails-app-using-hatchbox-onto-google-cloud-platform-28268.md>)

Original publisher: [Read original article](<http://fuzzyblog.io/blog/rails/2020/03/22/deploying-a-rails-app-using-hatchbox-onto-google-cloud-platform.html>)

Author: Fuzzygroup

Published: 2020-03-22T00:00:00Z

Content type: tutorial

Language: en

Sources: [Scott Johnson](<https://devfeed.tech/sources/scott-johnson.md>)

Topics: [Rails](<https://devfeed.tech/topics/rails.md>), [Google Cloud Platform (GCP)](<https://devfeed.tech/topics/google-cloud.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Redis](<https://devfeed.tech/topics/redis.md>)

Tags: [config](<https://devfeed.tech/tags/config.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [git](<https://devfeed.tech/tags/git.md>), [google-cloud](<https://devfeed.tech/tags/google-cloud.md>), [google-cloud-platform](<https://devfeed.tech/tags/google-cloud-platform.md>), [hatchbox](<https://devfeed.tech/tags/hatchbox.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [rails](<https://devfeed.tech/tags/rails.md>), [redis](<https://devfeed.tech/tags/redis.md>), [ssh](<https://devfeed.tech/tags/ssh.md>)

### AI overview

A practical guide to deploying a Rails application with HatchBox onto Google Cloud Platform. It covers creating a single-server cluster, configuring external Cloud SQL PostgreSQL and Redis services, connecting a Git repository, performing an initial HTTP deployment, and enabling SSL after assigning a domain.

### Source excerpt

This blog post is a quickie where I document how I deployed CovidNearMe onto Google Cloud Platform or GCP using HatchBox.io. I need to start by giving a huge shout out to Tony Carnevale from Google who went above and beyond in providing outstanding support. Here are the stages. Stage 1: Create a Cluster Note: Even a single machine is considered a cluster. Go to HatchBox.io Login with your account. Click on Clusters and define a New Cluster. Name the cluster GCP Covid Near Me (or that's what I did). Select Somewhere Else as the hosting provider. Select the Everything on a Single Server option. If you are using the GCP Cloud SQL (postgresql) and GCP Redis then remove these options from the Roles list. Enter the IP address under public ip. Set the private IP to 127.0.0. There appears to be a bug where you can't provision the server unless a local redis installation is selected so add it back. Click provision the server and you will be given an SSH command to run as root on the box. You SSH in, do a sudo su, execute the command and exit out You click Test / Provision (I forget which) and your server will be flawlessly setup. Stage 2: Create an App on the Cluster Click on Apps. Click on Create a New App. Choose the cluster from the drop down list. Click on your git repo host. Set the name of your application (I like to include the name of the cluster with the app name since this app is already deployed to digital ocean). Enter the name of the repo (easily find this from .git/config in your Rails root directory). Set external host for the database if you are using Google's Cloud SQL. This means that you need to define a postgres configuration url. The format for this url is this: postgresql://user:password@databasehost.com/database. You simply need to replace user with your username, password with your password, databasehost.com with your database server and database with the name of the database. Define your Rails Master Key right away so you don't screw this up and have

## Firebase Hosting for Cloud Run

DevFeed: [Firebase Hosting for Cloud Run](<https://devfeed.tech/articles/firebase-hosting-for-cloud-run-16314.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2019/04/firebase-hosting-and-cloud-run>)

Author: Patrick Martin

Published: 2019-04-11T00:00:00Z

Content type: release

Language: en

Sources: [Firebase Blog](<https://devfeed.tech/sources/firebase-blog.md>)

Topics: [Cloud Run](<https://devfeed.tech/topics/cloud-run.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [hosting](<https://devfeed.tech/topics/hosting.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Google Cloud Platform (GCP)](<https://devfeed.tech/topics/google-cloud.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [Microservice](<https://devfeed.tech/topics/microservice.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [caching](<https://devfeed.tech/tags/caching.md>), [cdn](<https://devfeed.tech/tags/cdn.md>), [cloud-run](<https://devfeed.tech/tags/cloud-run.md>), [docker](<https://devfeed.tech/tags/docker.md>), [docker-image](<https://devfeed.tech/tags/docker-image.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [go](<https://devfeed.tech/tags/go.md>), [google-cloud](<https://devfeed.tech/tags/google-cloud.md>), [google-cloud-platform](<https://devfeed.tech/tags/google-cloud-platform.md>), [hosting](<https://devfeed.tech/tags/hosting.md>), [java](<https://devfeed.tech/tags/java.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [launch](<https://devfeed.tech/tags/launch.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [python](<https://devfeed.tech/tags/python.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>), [updates](<https://devfeed.tech/tags/updates.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

Firebase Hosting now integrates with Google Cloud's Cloud Run, allowing developers to route requests from hosted sites to stateless containers and use languages and frameworks beyond Node.js.

### Source excerpt

News, tutorials, and updates from the Firebase team.

## Engineering a Historic Moment: Shopify Gets Ready for Cannabis in Canada

DevFeed: [Engineering a Historic Moment: Shopify Gets Ready for Cannabis in Canada](<https://devfeed.tech/articles/engineering-a-historic-moment-shopify-gets-ready-for-cannabis-in-canada-1381.md>)

Original publisher: [Read original article](<https://shopify.engineering/engineering-a-historic-moment-shopify-gets-ready-for-cannabis-in-canada>)

Author: Jason Hiltz-Laforge

Published: 2019-02-07T16:30:00Z

Content type: article

Language: en

Sources: [Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering.md>), [Shopify Engineering - Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering-shopify-engineering.md>)

Topics: [Shopify](<https://devfeed.tech/topics/shopify.md>), [Google Cloud Platform (GCP)](<https://devfeed.tech/topics/google-cloud.md>), [Terraform](<https://devfeed.tech/topics/terraform.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [migration](<https://devfeed.tech/topics/migration.md>), [data](<https://devfeed.tech/topics/data.md>), [Networks](<https://devfeed.tech/topics/networks.md>), [DDoS](<https://devfeed.tech/topics/ddos.md>)

Tags: [attacks](<https://devfeed.tech/tags/attacks.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [cloud-platform](<https://devfeed.tech/tags/cloud-platform.md>), [clusters](<https://devfeed.tech/tags/clusters.md>), [compute](<https://devfeed.tech/tags/compute.md>), [core](<https://devfeed.tech/tags/core.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [google-cloud](<https://devfeed.tech/tags/google-cloud.md>), [google-cloud-platform](<https://devfeed.tech/tags/google-cloud-platform.md>), [industry](<https://devfeed.tech/tags/industry.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [migration](<https://devfeed.tech/tags/migration.md>), [networks](<https://devfeed.tech/tags/networks.md>), [platform](<https://devfeed.tech/tags/platform.md>), [resiliency](<https://devfeed.tech/tags/resiliency.md>), [retail](<https://devfeed.tech/tags/retail.md>), [shopify](<https://devfeed.tech/tags/shopify.md>), [terraform](<https://devfeed.tech/tags/terraform.md>), [warehouse](<https://devfeed.tech/tags/warehouse.md>)

### AI overview

Shopify describes the engineering work required to support cannabis retailers in Canada after legalization in 2018. The team built a Montreal-based regional deployment on Google Cloud Platform to satisfy Canadian data-residency requirements, using Google Kubernetes Engine, Google Compute Engine, Terraform, regional clusters, workload segregation, and a regional data warehouse. It also modeled traffic scenarios and provisioned capacity for launches, media-driven surges, sales peaks, and possible denial-of-service attacks.

### Source excerpt

On October 17th, 2018, Canada ended a 95-year history of cannabis prohibition. For Shopify, the legalization of cannabis marked a new industry entering the Canadian retail market and we worked with governments and licensed sellers across the country to provide a safe, reliable and scalable platform for their business. For our engineering team, it meant significant changes to our platform to meet the strict requirements for this newly regulated industry.