CINXE.COM

Cloud Blog

<?xml version="1.0" encoding="utf-8"?> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Cloud Blog</title><link>https://cloud.google.com/blog/</link><description>Cloud Blog</description><atom:link href="https://cloudblog.withgoogle.com/blog/rss/" rel="self"></atom:link><language>en</language><lastBuildDate>Fri, 22 Nov 2024 17:17:15 +0000</lastBuildDate><image><url>https://cloud.google.com/blog/static/blog/images/google.a51985becaa6.png</url><title>Cloud Blog</title><link>https://cloud.google.com/blog/</link></image><item><title>Boost your Continuous Delivery pipeline with Generative AI</title><link>https://cloud.google.com/blog/topics/developers-practitioners/boost-your-continuous-delivery-pipeline-with-generative-ai/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;In the domain of software development, AI-driven assistance is emerging as a transformative force to enhance developer experience and productivity and ultimately optimize overall software delivery performance. Many organizations started to leverage AI-based assistants, such as &lt;/span&gt;&lt;a href="https://cloud.google.com/products/gemini/code-assist"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Gemini Code Assist&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, in developer IDEs to support them in solving more difficult problems, understanding unfamiliar code, generating test cases, and many other common programming tasks. Based on the productivity gains experienced by the individual developers in their IDEs, many organizations are looking to expand their use of generative AI technologies to other aspects of their software development lifecycle including pull-requests, code reviews, or generating release notes.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;In this article we want to explore how to use generative AI to enhance the quality and efficiency in software delivery. We also provide a practical example of how to leverage Gemini models in Vertex AI within a continuous delivery pipeline to support code reviews and generate release notes for pull requests.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-aside"&gt;&lt;dl&gt; &lt;dt&gt;aside_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;title&amp;#x27;, &amp;#x27;$300 in free credit to try Google Cloud developer tools&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80ab84bdf0&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;Start building for free&amp;#x27;), (&amp;#x27;href&amp;#x27;, &amp;#x27;http://console.cloud.google.com/freetrial?redirectPath=/welcome&amp;#x27;), (&amp;#x27;image&amp;#x27;, None)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h2&gt;&lt;strong style="vertical-align: baseline;"&gt;Generative AI beyond the IDE&lt;/strong&gt;&lt;/h2&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Whilst AI-powered coding assistance within an IDE offers a significant boost to a developer’s productivity, the benefits of this technology are not limited to the direct interaction between the developer and the codebase. By expanding the use of large language models to other aspects of the software delivery lifecycle, we open up a range of new opportunities to streamline time-consuming tasks. By integrating AI capabilities within automated CI/CD pipelines, we not only free up time for developers to focus on more strategic and creative aspects of their work but also have a chance to enhance the code quality overall and detect issues within the codebase early and before they make it to production environments.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The concept of using automated tooling within a CI/CD pipeline to proactively detect issues with code quality isn’t entirely new. We’ve used several forms of static code analysis for decades to identify potential errors and vulnerabilities and to enforce coding standards. However, the advances in generative AI present new opportunities that go beyond the capabilities of traditional code analysis. With their advanced language understanding and contextual awareness they can provide more nuanced commentary and provide more grounded recommendations on how to improve on a certain code base. In many cases these cools can help reduce cognitive load or labor intensive tasks that a human developer had to perform in the form of code reviews and help them focus on the bigger picture and overall impact on the codebase.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;This doesn’t mean that the AI tools are in a position to replace the trusted tools and processes altogether. As illustrated in the practical example below these tools are most impactful when they are embedded within a combination of deterministic tools and human experts and each perform the tasks that they are best equipped to.&lt;/span&gt;&lt;/p&gt; &lt;h2&gt;&lt;strong style="vertical-align: baseline;"&gt;Ingredients for an AI-infused SDLC&lt;/strong&gt;&lt;/h2&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;To illustrate how generative AI can be used to enhance software delivery we’ll use the following products and tools: &lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Gemini models in Vertex AI&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Gemini models are designed to process and understand vast amounts of information, enabling more accurate and nuanced responses to user prompts. With a focus on enhanced capabilities in areas like logical reasoning, coding, and creative collaboration, Gemini revolutionized the way we are able to collaborate with AI.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Gemini can be used directly or indirectly when it powers a packaged experience. For example Gemini Code Assist is a end user application that is built on top of the Gemini models and provides an assistant that helps in code generation, transformation and understanding as mentioned above. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Developers can also directly integrate Gemini models in their own application through Vertex AI, an end-to-end platform which lets them create, customize, manage, and scale AI applications.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;In this example we will use Gemini in Vertex AI to build a custom extension of a CI/CD pipeline that uses Gemini’s language and text generation capabilities to provide meaningful assistance in a code review process.&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Friendly CI-CD Helper&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;To abstract away the mechanics of interacting with the Gemini APIs in Vertex AI and centrally manage aspects like prompt design and how the context is fed to the model we build a small demo tool called  &lt;/span&gt;&lt;a href="https://github.com/GoogleCloudPlatform/friendly-cicd-helper" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;friendly-cicd-helper&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. The tool can be used either as a standalone Python application or as a container that can run in a container-based CI/CD pipeline such as Cloud Build.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;In its core the friendly-cicd-helper uses Gemini to analyze code changes (here in the form of a Git diff) and can generate the following outputs:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Summary of the changes to help speed up a MR/PR review&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;PR/MR comments for code changes to provide initial feedback to the author&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Release Notes for changes for code changes&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We use the friendly-cicd-helper tool as an example of how to leverage Gemini capabilities in a CI/CD pipeline. It is not an official product and most use cases will require you to build your own implementation based on your own needs and preferences.&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Cloud Build&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Cloud Build is a fully managed, serverless CI/CD (Continuous Integration/Continuous Delivery) platform provided by Google Cloud. It allows you to automate the process of building, testing, and deploying your applications across various environments like VMs, Kubernetes, serverless platforms, and Firebase.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;You can define how the above tasks are linked together in your build through a build config specification, in which each task is defined as a build step.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Your build can be linked to a source-code repository so that your source code is cloned in your workspace as part of your build, and triggers can be configured to run the build automatically when a specific event, such as a new merge request, occurs.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/original_images/1_UbJVfvN.jpg" alt="1_sketch_blog_architecture"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h2&gt;&lt;strong style="vertical-align: baseline;"&gt;Example Cloud Build Pipeline with Gemini&lt;/strong&gt;&lt;/h2&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;In our example the following Cloud Build pipeline is triggered when a developer opens a merge request in Gitlab (any other &lt;/span&gt;&lt;a href="https://cloud.google.com/build/docs/repositories"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Cloud Build supported repository&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; would work). The pipeline first fetches the latest version of the source branch of the pull request and executes the following steps in order:&lt;/span&gt;&lt;/p&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;1. The first step generates a Git diff to collect the code changes that are proposed as part of the merge request in a file. The file is persisted in the workspace mount that is shared between the steps such that it can later be used in the context for the LLM prompts.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;quot;steps:\r\n - id: Generate Git Diff\r\n name: gcr.io/cloud-builders/git\r\n entrypoint: &amp;#x27;bash&amp;#x27;\r\n args:\r\n - &amp;#x27;-c&amp;#x27;\r\n - |\r\n git fetch origin\r\n git diff origin/main --output /workspace/diff.txt\r\n cat /workspace/diff.txt&amp;quot;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80aa9916d0&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;2. Then we use Gemini to generate an automated code review of our merge request with the &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;friendly-cicd-helper vertex-code-review --diff /workspace/diff.txt&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; command. The model response is then appended to the GitLab merge request thread as a comment.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;- id: Using Vertex AI to provide an automated MR Review\r\n name: \&amp;#x27;europe-west1-docker.pkg.dev/$PROJECT_ID/tools/friendly-cicd-helper\&amp;#x27;\r\n entrypoint: sh\r\n args:\r\n - -c\r\n - |\r\n export VERTEX_GCP_PROJECT=$PROJECT_ID\r\n echo &amp;quot;## Automated Merge Request Review Notes (generated by Vertex AI)&amp;quot; | tee mergerequest-review.md\r\n echo &amp;quot;_Note that the following notes do not replace a thorough code review by an expert:_&amp;quot; | tee -a mergerequest-review.md\r\n\r\n friendly-cicd-helper vertex-code-review --diff /workspace/diff.txt | tee -a mergerequest-review.md\r\n\r\n cat mergerequest-review.md | friendly-cicd-helper gitlab-comment --project $_GITLAB_PROJECT --mergerequest $$(cat /workspace/gitlab_merge_request_iid)\r\n secretEnv: [\&amp;#x27;GITLAB_TOKEN\&amp;#x27;]&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80aa9913a0&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;If you look at &lt;/span&gt;&lt;a href="https://github.com/GoogleCloudPlatform/friendly-cicd-helper/blob/main/friendly-cicd-helper.py" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;friendly-cicd-helper.py&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; you’ll see that the vertex_code_review function calls the code_review function from the &lt;/span&gt;&lt;a href="https://github.com/GoogleCloudPlatform/friendly-cicd-helper/blob/main/lib/vertex_api.py" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;vertex_api.py&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; module&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;def vertex_code_review(diff):\r\n &amp;quot;&amp;quot;&amp;quot;\r\n Review on a Git Diff\r\n &amp;quot;&amp;quot;&amp;quot;\r\n import lib.vertex_api as vertex\r\n return vertex.code_review(diff)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80aa9917f0&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;That function submit a prompt to Gemini to get a code review using the Git diff as context:&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;def code_review(diff_path):\r\n &amp;quot;&amp;quot;&amp;quot;\r\n Generate a code review based on a Git diff.\r\n &amp;quot;&amp;quot;&amp;quot;\r\n\r\n response = model.generate_content(\r\n f&amp;quot;&amp;quot;&amp;quot;\r\nYou are an experienced software engineer.\r\nYou only comment on code that you found in the merge request diff.\r\nProvide a code review with suggestions for the most important \r\nimprovements based on the following Git diff:\r\n\r\n${load_diff(diff_path)}\r\n\r\n &amp;quot;&amp;quot;&amp;quot;,\r\n generation_config=generation_config\r\n )\r\n print(response.text.strip())\r\n return response.text)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80aa9916a0&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;3. The same pattern can be repeated for generating other artifacts like suggested release notes that describe the contained changes in the MR and also append them to the same thread as a comment.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;- id: Using Vertex AI to provide automated Release Notes\r\n name: \&amp;#x27;europe-west1-docker.pkg.dev/$PROJECT_ID/tools/friendly-cicd-helper\&amp;#x27;\r\n entrypoint: sh\r\n args:\r\n - -c\r\n - |\r\n export VERTEX_GCP_PROJECT=$PROJECT_ID\r\n echo &amp;quot;## Automated Suggestions for Release Notes (generated by Vertex AI)&amp;quot; | tee mergerequest-release-notes.md\r\n\r\n friendly-cicd-helper vertex-release-notes --diff /workspace/diff.txt | tee -a mergerequest-release-notes.md\r\n\r\n cat mergerequest-release-notes.md | friendly-cicd-helper gitlab-comment --project $_GITLAB_PROJECT --mergerequest $$(cat /workspace/gitlab_merge_request_iid)\r\n secretEnv: [\&amp;#x27;GITLAB_TOKEN\&amp;#x27;]&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80aa991760&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Here you can see the prompt submitted to Vertex from the &lt;/span&gt;&lt;a href="https://github.com/GoogleCloudPlatform/friendly-cicd-helper/blob/main/lib/vertex_api.py" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;vertex_api.py&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; module&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;def release_notes(diff_path):\r\n &amp;quot;&amp;quot;&amp;quot;\r\n Generate release notes based on a Git diff in unified format.\r\n &amp;quot;&amp;quot;&amp;quot;\r\n\r\n response = model.generate_content(\r\n f&amp;quot;&amp;quot;&amp;quot;\r\nYou are an experienced tech writer.\r\nWrite short release notes in markdown bullet point format for the most important changes based on the following Git diff:\r\n\r\n${load_diff(diff_path)}\r\n &amp;quot;&amp;quot;&amp;quot;,\r\n generation_config=generation_config\r\n )\r\n print(response.text.strip())\r\n return response.text&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80aa9911c0&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;4. &lt;span style="vertical-align: baseline;"&gt;Lastly our pipeline builds a container image with the updated code and deploys the application to a QA environment using Cloud Deploy, where UAT can be executed.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;- id: Build the image with Skaffold\r\n name: gcr.io/k8s-skaffold/skaffold\r\n entrypoint: /bin/bash\r\n args:\r\n - -c\r\n - |\r\n skaffold build --interactive=false --file-output=/workspace/artifacts.json --default-repo=$_REPO\r\n - id: Create a release in Cloud Deploy and rollout to staging\r\n name: gcr.io/cloud-builders/gcloud\r\n entrypoint: \&amp;#x27;bash\&amp;#x27;\r\n args:\r\n - \&amp;#x27;-c\&amp;#x27;\r\n - |\r\n MERGE_REQUEST_IID=$$(cat /workspace/gitlab_merge_request_iid)\r\n gcloud deploy releases create ledgerwriter-${SHORT_SHA} --delivery-pipeline genai-sw-delivery \\\r\n --region europe-west1 --annotations &amp;quot;commitId=${REVISION_ID},gitlab_mr=$$MERGE_REQUEST_IID&amp;quot; --build-artifacts /workspace/artifacts.json&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80aa991a30&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h2&gt;&lt;strong style="vertical-align: baseline;"&gt;Seeing the pipeline in action&lt;/strong&gt;&lt;/h2&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We will try our pipeline in the context of &lt;/span&gt;&lt;a href="https://github.com/GoogleCloudPlatform/bank-of-anthos" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Bank of Anthos&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, a sample web app that simulates a bank's payment processing network, allowing users to create artificial bank accounts and complete transactions. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;For the purpose of this demo we’ve modified the ledger writer service that accepts and validates incoming transactions before writing them to the ledger. The repository fork is available &lt;/span&gt;&lt;a href="https://gitlab.com/galloro/genai-sw-delivery" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Starting from existing code we added the method below to the &lt;/span&gt;&lt;a href="https://gitlab.com/galloro/genai-sw-delivery/-/blob/main/src/main/java/anthos/samples/bankofanthos/ledgerwriter/TransactionValidator.java?ref_type=heads" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;TransactionValidator class&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; to obfuscate account number for logging purposes:&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;public String obfuscateAccountNumber(String acctNum) {\r\n String obfuscated = &amp;quot;&amp;quot;;\r\n for (int i = 0; i &amp;lt; acctNum.length(); i++) {\r\n if (Character.isDigit(acctNum.charAt(i))) {\r\n obfuscated += &amp;quot;0&amp;quot;;\r\n } else {\r\n obfuscated += &amp;quot;x&amp;quot;;\r\n }\r\n }\r\n return obfuscated;\r\n }&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80aa991e50&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;In addition to that, we created a new TransactionValidatorTest class and added a test for the new method:&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;package anthos.samples.bankofanthos.ledgerwriter;\r\n\r\nimport org.junit.jupiter.api.Test;\r\nimport static org.junit.jupiter.api.Assertions.assertEquals;\r\n\r\nclass TransactionValidatorTest {\r\n\r\n @Test\r\n void obfuscateAccountNumber_validAccountNumber_returnsObfuscated() {\r\n TransactionValidator validator = new TransactionValidator();\r\n String accountNumber = &amp;quot;12345678-90ab-cdef-1234-567890abcdef&amp;quot;;\r\n String obfuscated = validator.obfuscateAccountNumber(accountNumber);\r\n assertEquals(&amp;quot;00000000x00xxxxxxxx0000x000000xxxxxx&amp;quot;, obfuscated);\r\n }\r\n}&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80aa9911f0&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Once we open a MR in GitLab, after we insert the /gcbrun comment that we &lt;/span&gt;&lt;a href="https://cloud.google.com/build/docs/automating-builds/gitlab/build-repos-from-gitlab#creating_a_gitlab_trigger"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;configured our Cloud Build trigger to require&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. This triggers the pipeline that we outlined above and appends the following comment with the AI-generated comments in the MR thread: &lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/2_Code-Review.max-1000x1000.png" alt="2_Code-Review"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Then similarly the requested release note suggestions are also appended to the comment thread:&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/3v1_UOJG6B8.max-1000x1000.jpg" alt="3_Release-Notes"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h2&gt;&lt;strong style="vertical-align: baseline;"&gt;Summary&lt;/strong&gt;&lt;/h2&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;You saw an example of automating code reviews and release notes generation using Vertex AI and Gemini.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;You can continue to try by yourself using the above example repository and friendly-cicd-helper, start from it and tune your prompts or implement your own script to submit a prompt to Gemini in your CD pipeline.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Fri, 22 Nov 2024 17:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/topics/developers-practitioners/boost-your-continuous-delivery-pipeline-with-generative-ai/</guid><category>AI &amp; Machine Learning</category><category>Developers &amp; Practitioners</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Boost your Continuous Delivery pipeline with Generative AI</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/topics/developers-practitioners/boost-your-continuous-delivery-pipeline-with-generative-ai/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Giovanni Galloro</name><title>EMEA Solutions Lead, Application Modernization</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Daniel Strebel</name><title>EMEA Solutions Lead, Application Modernization</title><department></department><company></company></author></item><item><title>Build an AI agent for trip planning with Gemini 1.5 Pro: A step-by-step guide</title><link>https://cloud.google.com/blog/topics/developers-practitioners/learn-how-to-create-an-ai-agent-for-trip-planning-with-gemini-1-5-pro/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;a href="https://deepmind.google/technologies/gemini/pro/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Gemini 1.5 Pro&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; is creating new possibilities for developers to build AI agents that streamline the customer experience. In this post, we'll focus on a practical application that has emerged in the travel industry – building an AI-powered trip planning agent. You'll learn how to connect your agent to external data sources like event APIs, enabling it to generate personalized travel itineraries based on real-time information.&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Understanding the core concepts&lt;/strong&gt;&lt;/h3&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Function calling&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: Allows developers to connect Gemini models (all Gemini models except Gemini 1.0 Pro Vision) with external systems, APIs, and data sources. This enables the AI to retrieve real-time information and perform actions, making it more dynamic and versatile.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Grounding&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: Enhances Gemini' model’s ability to access and process information from external sources like documents, knowledge bases, and the web, leading to more accurate and up-to-date responses.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;By combining these features, we can create an AI agent that can understand user requests, retrieve relevant information from the web, and provide personalized recommendations.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-aside"&gt;&lt;dl&gt; &lt;dt&gt;aside_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;title&amp;#x27;, &amp;#x27;$300 in free credit to try Google Cloud developer tools&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80abd2f550&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;Start building for free&amp;#x27;), (&amp;#x27;href&amp;#x27;, &amp;#x27;http://console.cloud.google.com/freetrial?redirectPath=/welcome&amp;#x27;), (&amp;#x27;image&amp;#x27;, None)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Step-by-step: Function calling with grounding&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Let’s run through a scenario:&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Let’s say you’re an AI engineer tasked with creating an AI agent that helps users plan trips by finding local events and potential hotels to stay at. Your company has given you full creative freedom to build a minimal viable product using Google’s generative AI products, so you’ve chosen to use Gemini 1.5 Pro and loop in other external APIs. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The first step is to define potential queries that any user might enter into the Gemini chat. This will help clarify development requirements and ensure the final product meets the standards of both users and stakeholders. Here are some examples:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;“I’m bored, what is there to do today?”&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;“I would like to take me and my two kids somewhere warm because spring break starts next week. Where should I take them?”&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;“My friend will be moving to Atlanta soon for a job. What fun events do they have going on during the weekends?”&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;From these sample queries,  it looks like we’ll need to use an events API and a hotels API for localized information. Next, let’s set up our development environment.&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Notebook setup&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;To use Gemini 1.5 Pro for development, you’ll need to either create or use an existing project in Google Cloud. &lt;/span&gt;&lt;a href="https://cloud.google.com/resource-manager/docs/creating-managing-projects"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Follow the official instructions that are linked here before continuing&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. Working in a Jupyter notebook environment is one of the easiest way to get started developing with Gemini 1.5 Pro. You can either use Google Colab or follow along in your own local environment. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;First, you’ll need to install the latest version of the Vertex AI SDK for Python, import the necessary modules, and initialize the Gemini model: &lt;/span&gt;&lt;/p&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;1. Add a code cell to install the necessary libraries. This demo notebook requires the use of the google-cloud-aiplatform&amp;gt;=1.52 Python module.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;!pip3 install --upgrade --user &amp;quot;google-cloud-aiplatform&amp;gt;=1.52&amp;quot;\r\n!pip3 install vertexai&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;lang-py&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80abd2faf0&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;2. Add another code cell to import the necessary Python packages.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;import vertexai\r\nfrom vertexai.preview.generative_models import GenerativeModel, FunctionDeclaration, Tool, HarmCategory, HarmBlockThreshold, Content, Part\r\n\r\nimport requests\r\nimport os\r\nfrom datetime import date&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;lang-py&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80abd2f730&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;3. &lt;span style="vertical-align: baseline;"&gt;Now we can initialize Vertex AI with your exact project ID. Enter your information in between the variable quotes so you can reuse them. Uncomment the gcloud authentication commands if necessary.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;PROJECT_ID = &amp;quot;&amp;quot; #@param {type:&amp;quot;string&amp;quot;}\r\nLOCATION = &amp;quot;&amp;quot; #@param {type:&amp;quot;string&amp;quot;}\r\n\r\n# !gcloud auth login \r\n# !gcloud config set project $PROJECT_ID\r\n# !gcloud auth application-default login\r\n\r\nvertexai.init(project=PROJECT_ID, location=LOCATION)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;lang-py&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80abd2f760&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;API&lt;/strong&gt;&lt;strong style="vertical-align: baseline;"&gt; &lt;/strong&gt;&lt;strong style="vertical-align: baseline;"&gt;key&lt;/strong&gt;&lt;strong style="vertical-align: baseline;"&gt; &lt;/strong&gt;&lt;strong style="vertical-align: baseline;"&gt;configuration&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;For this demo, we will also be using an additional API to generate information for the events and hotels. We'll be using Google’s SerpAPI for both, so be sure to create an account and select a subscription plan that fits your needs. This demo can be completed using their free tier. Once that’s done, you'll find your unique API key in your account dashboard.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Once you have the API keys, you can pass them to the SDK in one of two ways:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Put the key in the &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;GOOGLE_API_KEY&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; environment variable (where the SDK will automatically pick it up from there)&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Pass the key using &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;genai.configure(api_key = . . .)&lt;/code&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Navigate to &lt;/span&gt;&lt;a href="https://serpapi.com" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;https://serpapi.com&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; and replace the contents of the variable below between the quotes with your specific API key:&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;SERP_API_KEY = os.environ.get(&amp;quot;SERP API&amp;quot;, &amp;quot;your_serp_api_key&amp;quot;)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;lang-py&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80abd2f4c0&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Defining custom functions for function calling&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;In this step, you'll define custom functions in order to pass them to Gemini 1.5 Pro and incorporate the API outputs back into the model for more accurate responses. We'll first define a function for the events API.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;To use function calling, pass a list of functions to the tools parameter when creating a generative model. The model uses the function name, docstring, parameters, and parameter type annotations to decide if it needs the function to best answer a prompt.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;def event_api(query: str, htichips: str = &amp;quot;date:today&amp;quot;):\r\n URL = f&amp;quot;https://serpapi.com/search.json?api_key={SERP_API_KEY}&amp;amp;engine=google_events&amp;amp;q={query}&amp;amp;htichips={htichips}&amp;amp;hl=en&amp;amp;gl=us&amp;quot;\r\n response = requests.get(URL).json()\r\n return response[&amp;quot;events_results&amp;quot;]&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;lang-py&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80abd2f1c0&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Now we will follow the same format to define a function for the hotels API.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;def hotel_api(query:str, check_in_date:str, check_out_date:int, hotel_class:int = 3, adults:int = 2):\r\n URL = f&amp;quot;https://serpapi.com/search.json?api_key={SERP_API_KEY}&amp;amp;engine=google_hotels&amp;amp;q={query}&amp;amp;check_in_date={check_in_date}&amp;amp;check_out_date={check_out_date}&amp;amp;adults={int(adults)}&amp;amp;hotel_class={int(hotel_class)}&amp;amp;currency=USD&amp;amp;gl=us&amp;amp;hl=en&amp;quot;\r\n response = requests.get(URL).json()\r\n \r\n return response[&amp;quot;properties&amp;quot;]&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;lang-py&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80abd2f8b0&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Declare the custom function as a tool&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The function declaration below describes the function for the events API. It lets the Gemini model know this API retrieves event information based on a query and optional filters.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;event_function = FunctionDeclaration(\r\n name = &amp;quot;event_api&amp;quot;,\r\n description = &amp;quot;Retrieves event information based on a query and optional filters.&amp;quot;,\r\n parameters = {\r\n &amp;quot;type&amp;quot;:&amp;quot;object&amp;quot;,\r\n &amp;quot;properties&amp;quot;: {\r\n &amp;quot;query&amp;quot;:{\r\n &amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,\r\n &amp;quot;description&amp;quot;:&amp;quot;The query you want to search for (e.g., \&amp;#x27;Events in Austin, TX\&amp;#x27;).&amp;quot;\r\n },\r\n &amp;quot;htichips&amp;quot;:{\r\n &amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,\r\n &amp;quot;description&amp;quot;:&amp;quot;&amp;quot;&amp;quot;Optional filters used for search. Default: \&amp;#x27;date:today\&amp;#x27;.\r\n \r\n Options:\r\n - \&amp;#x27;date:today\&amp;#x27; - Today\&amp;#x27;s events\r\n - \&amp;#x27;date:tomorrow\&amp;#x27; - Tomorrow\&amp;#x27;s events\r\n - \&amp;#x27;date:week\&amp;#x27; - This week\&amp;#x27;s events\r\n - \&amp;#x27;date:weekend\&amp;#x27; - This weekend\&amp;#x27;s events\r\n - \&amp;#x27;date:next_week\&amp;#x27; - Next week\&amp;#x27;s events\r\n - \&amp;#x27;date:month\&amp;#x27; - This month\&amp;#x27;s events\r\n - \&amp;#x27;date:next_month\&amp;#x27; - Next month\&amp;#x27;s events\r\n - \&amp;#x27;event_type:Virtual-Event\&amp;#x27; - Online events\r\n &amp;quot;&amp;quot;&amp;quot;,\r\n }\r\n },\r\n &amp;quot;required&amp;quot;: [\r\n &amp;quot;query&amp;quot;\r\n ]\r\n },\r\n)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;lang-py&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80abd2f0d0&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Again, we will follow the same format for the hotels API.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;hotel_function = FunctionDeclaration(\r\n name=&amp;quot;hotel_api&amp;quot;,\r\n description=&amp;quot;Retrieves hotel information based on location, dates, and optional preferences.&amp;quot;,\r\n parameters= {\r\n &amp;quot;type&amp;quot;:&amp;quot;object&amp;quot;,\r\n &amp;quot;properties&amp;quot;: {\r\n &amp;quot;query&amp;quot;:{\r\n &amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,\r\n &amp;quot;description&amp;quot;:&amp;quot;Parameter defines the search query. You can use anything that you would use in a regular Google Hotels search.&amp;quot;\r\n },\r\n &amp;quot;check_in_date&amp;quot;:{\r\n &amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,\r\n &amp;quot;description&amp;quot;:&amp;quot;Check-in date in YYYY-MM-DD format (e.g., \&amp;#x27;2024-04-30\&amp;#x27;).&amp;quot;\r\n },\r\n &amp;quot;check_out_date&amp;quot;:{\r\n &amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,\r\n &amp;quot;description&amp;quot;:&amp;quot;Check-out date in YYYY-MM-DD format (e.g., \&amp;#x27;2024-05-01\&amp;#x27;).&amp;quot;\r\n },\r\n &amp;quot;hotel_class&amp;quot;:{\r\n &amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,\r\n &amp;quot;description&amp;quot;:&amp;quot;&amp;quot;&amp;quot;hotel class.\r\n\r\n\r\n Options:\r\n - 2: 2-star\r\n - 3: 3-star\r\n - 4: 4-star\r\n - 5: 5-star\r\n \r\n For multiple classes, separate with commas (e.g., \&amp;#x27;2,3,4\&amp;#x27;).&amp;quot;&amp;quot;&amp;quot;\r\n },\r\n &amp;quot;adults&amp;quot;:{\r\n &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,\r\n &amp;quot;description&amp;quot;: &amp;quot;Number of adults. Only integers, no decimals or floats (e.g., 1 or 2)&amp;quot;\r\n }\r\n },\r\n &amp;quot;required&amp;quot;: [\r\n &amp;quot;query&amp;quot;,\r\n &amp;quot;check_in_date&amp;quot;,\r\n &amp;quot;check_out_date&amp;quot;\r\n ]\r\n },\r\n)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;lang-py&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80abd2fa90&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Consider configuring safety settings for the model&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Safety settings in Gemini exist to prevent the generation of harmful or unsafe content. They act as filters that analyze the generated output and block or flag anything that might be considered inappropriate, offensive, or dangerous. This is good practice when you’re developing using generative AI content.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;generation_config = {\r\n &amp;quot;max_output_tokens&amp;quot;: 128,\r\n &amp;quot;temperature&amp;quot;: .5,\r\n &amp;quot;top_p&amp;quot;: .3,\r\n}\r\n\r\nsafety_settings = {\r\n HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_ONLY_HIGH,\r\n HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_ONLY_HIGH,\r\n HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_ONLY_HIGH,\r\n HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: HarmBlockThreshold.BLOCK_ONLY_HIGH,\r\n}&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;lang-py&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80abd2f430&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Pass the tool and start a chat&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Here we’ll be passing the tool as a function declaration and starting the chat with Gemini. Using the &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;chat.send_message(“ . . . “)&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; functionality, you can send messages to the model in a conversation-like structure.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;tools = Tool(function_declarations=[event_function, hotel_function])\r\n\r\nmodel = GenerativeModel(\r\n model_name = \&amp;#x27;gemini-1.5-pro-001\&amp;#x27;, \r\n generation_config = generation_config, \r\n safety_settings = safety_settings, \r\n tools = [tools])\r\nchat = model.start_chat()\r\nresponse = chat.send_message(&amp;quot;Hello&amp;quot;)\r\nprint(response.text)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;lang-py&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80abd2f5b0&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Build the agent&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Next we will create a callable hashmap to map the tool name to the tool function so that it can be called within the agent function. We will also implement prompt engineering (mission prompt) to better prompt the model to handle user inputs and equip the model with the datetime. &lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;CallableFunctions = {\r\n &amp;quot;event_api&amp;quot;: event_api,\r\n &amp;quot;hotel_api&amp;quot;: hotel_api\r\n}\r\n\r\ntoday = date.today()\r\n\r\ndef mission_prompt(prompt:str):\r\n return f&amp;quot;&amp;quot;&amp;quot;\r\n Thought: I need to understand the user\&amp;#x27;s request and determine if I need to use any tools to assist them.\r\n Action: \r\n \r\n - If the user\&amp;#x27;s request needs following APIs from available ones: weather, event, hotel, and I have all the required parameters, call the corresponding API.\r\n - Otherwise, if I need more information to call an API, I will ask the user for it.\r\n - If the user\&amp;#x27;s request doesn\&amp;#x27;t need an API call or I don\&amp;#x27;t have enough information to call one, respond to the user directly using the chat history.\r\n - Respond with the final answer only\r\n\r\n [QUESTION] \r\n {prompt}\r\n\r\n [DATETIME]\r\n {today}\r\n\r\n &amp;quot;&amp;quot;&amp;quot;.strip()\r\n\r\n\r\n\r\ndef Agent(user_prompt):\r\n prompt = mission_prompt(user_prompt)\r\n response = chat.send_message(prompt)\r\n tools = response.candidates[0].function_calls\r\n while tools:\r\n for tool in tools:\r\n function_res = CallableFunctions[tool.name](**tool.args)\r\n response = chat.send_message(Content(role=&amp;quot;function_response&amp;quot;,parts=[Part.from_function_response(name=tool.name, response={&amp;quot;result&amp;quot;: function_res})]))\r\n tools = response.candidates[0].function_calls\r\n return response.text&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;lang-py&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80abd2f160&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Test the agent&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Below are some sample queries you can try to test the chat capabilities of the agent. Don’t forget to test out a query of your own!&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;response1 = Agent(&amp;quot;Hello&amp;quot;)\r\nprint(response1)\r\n\r\nresponse2 = Agent(&amp;quot;What events are there to do in Atlanta, Georgia?&amp;quot;)\r\nprint(response2)\r\n\r\nresponse3 = Agent(&amp;quot;Are there any hotel avaiable in Midtown Atlanta for this weekend?&amp;quot;)\r\nprint(response3)&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;lang-py&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80abd2fdf0&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Wrapping up&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;That’s all! Gemini 1.5 Pro’s function calling and grounding features enhances its capabilities, enabling developers to connect to external tools and improve model results. This integration enables Gemini models to provide up-to-date information while minimizing hallucinations. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;If you’re looking for more hands-on tutorials and code examples, check out some of &lt;/span&gt;&lt;a href="https://colab.sandbox.google.com/github/google/generative-ai-docs/blob/main/site/en/gemini-api/docs/function-calling/python.ipynb#scrollTo=e36166b2c1b6" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google’s Codelabs&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; (such as &lt;/span&gt;&lt;a href="https://codelabs.developers.google.com/codelabs/gemini-function-calling#0" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;How to Interact with APIs Using Function Calling in Gemini&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;) to guide you through examples of building a beginner function calling application.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Fri, 22 Nov 2024 17:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/topics/developers-practitioners/learn-how-to-create-an-ai-agent-for-trip-planning-with-gemini-1-5-pro/</guid><category>AI &amp; Machine Learning</category><category>Developers &amp; Practitioners</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Build an AI agent for trip planning with Gemini 1.5 Pro: A step-by-step guide</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/topics/developers-practitioners/learn-how-to-create-an-ai-agent-for-trip-planning-with-gemini-1-5-pro/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Kelci Mensah</name><title>Cloud Architect, Google</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Dagmawe Legesse</name><title>Cloud Engineer</title><department></department><company></company></author></item><item><title>Create a self-escalating chatbot in Conversational Agents using Webhook and Generators</title><link>https://cloud.google.com/blog/topics/developers-practitioners/create-a-self-escalating-chatbot-in-conversational-agents/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;As conversational AI becomes a core part of the user experience, it's crucial for application developers to build chatbots that not only provide accurate information, but also know the right time to escalate to a human agent. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;This blog post will show you how to create a self-escalating chatbot using Google Cloud's generative AI solutions such as Vertex AI, Conversational Agents (Dialogflow CX), and others. The solution offers several benefits:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Improved user experience:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Users receive accurate information and timely assistance, even for complex questions.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Reduced agent workload:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Agents receive concise summaries of previous interactions, allowing them to address issues efficiently.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Enhanced chatbot capabilities:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; The chatbot can learn from escalated queries, continuously improving its ability to handle future interactions.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Increased scalability and security:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Cloud Run Functions (CRF) provides a scalable and secure platform for running the webhook function.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Let’s get started.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-aside"&gt;&lt;dl&gt; &lt;dt&gt;aside_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;title&amp;#x27;, &amp;#x27;$300 in free credit to try Google Cloud developer tools&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80aa97c9a0&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;Start building for free&amp;#x27;), (&amp;#x27;href&amp;#x27;, &amp;#x27;http://console.cloud.google.com/freetrial?redirectPath=/welcome&amp;#x27;), (&amp;#x27;image&amp;#x27;, None)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;1. Build the knowledge base&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Let’s say we want a chatbot to answer questions related to tourism in India. We’ll start by leveraging &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Vertex AI Agent Builder&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; and &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Conversational Agents (Dialogflow CX)&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; to create it.&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Unstructured datastore:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; We index an article on "Tourism in India" as an unstructured datastore within Vertex AI. This allows the chatbot to access and retrieve relevant information from the article in real time, providing comprehensive answers to user queries.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Conversational Agents (Dialogflow CX):&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; We design the conversational flow using Conversational Agents (Dialogflow CX), enabling the chatbot to understand user intent and respond appropriately.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;2. Gauge user satisfaction&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;To ensure user satisfaction, we incorporate a crucial step in the conversation flow: asking the user if they are satisfied with the chatbot's response. This is done using "yes" and "no" chips specified as part of custom payload, providing a clear and intuitive way for users to express their feedback.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;3. Escalate with generative AI&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;If the user expresses dissatisfaction by clicking "no," the chatbot initiates the escalation process. This is where the power of generative AI comes in.&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Generators:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; We create a generator in Conversational Agents (Dialogflow CX) named "Summarize_mail" that utilizes a &lt;/span&gt;&lt;a href="https://developers.google.com/machine-learning/resources/prompt-eng#direct_prompting_zero-shot" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;zero-shot prompt&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; (direct prompt with no examples) to summarize the conversation. This summary is then used to generate the content of an email, providing context to the human agent.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Here's the zero-shot prompt we use:&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;You are an English expert in summarizing the text in form of a very short mail.\r\nSummarize the conversation and write it in form of a concise e-mail which will be forwarded to an agent as a ticket. The mail should be on point, properly formatted and written in formal tone with a polite closure. Keep the text as less as possible.\r\nAlso, specify the conversation messages below the summary which are present in the conversation. The conversation is as follows: $conversation\r\nThe feedback of the user about the issue is $last-user-utterance.&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e8089fac640&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Model configuration:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; This generator utilizes the &lt;/span&gt;&lt;a href="https://ai.google.dev/gemini-api/docs/models/gemini" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Gemini-1.5-flash model &lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;with a &lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/learn/prompts/adjust-parameter-values#temperature"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;temperature&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; of 0.3, helping to ensure coherent and informative summaries.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;4. Trigger the email with Cloud Run Functions (CRF)&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;To send the email, we use a &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;webhook&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; to connect our Conversational Agents (Dialogflow CX) agent to a serverless function deployed on &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Cloud Run Functions&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;. This function handles the email sending logic.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We utilize the Cloud Run Functions console inline editor to write and deploy the following Python code:&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;import functions_framework \r\nimport http.client \r\nimport smtplib, ssl\r\nfrom flask import Flask, jsonify\r\nfrom email.message import EmailMessage\r\n\r\n# Cloud Run Functions to handle webhook requests from Conversational Agents (Dialogflow CX)\r\n@functions_framework.http \r\ndef handle_webhook(request):\r\n &amp;quot;&amp;quot;&amp;quot;\r\n Handles webhook requests from Conversational Agents (Dialogflow CX) and sends an email \r\n summarizing the conversation to a human agent.\r\n\r\n Args:\r\n request: The incoming HTTP request containing the webhook payload.\r\n\r\n Returns:\r\n A JSON response indicating the status of the email sending process.\r\n &amp;quot;&amp;quot;&amp;quot;\r\n\r\n port = 465 # For SSL\r\n smtp_server = &amp;quot;smtp.gmail.com&amp;quot;\r\n \r\n sender_email = \&amp;#x27;&amp;lt;sender_agent_mail_id&amp;gt;\&amp;#x27;\r\n receiver_email = \&amp;#x27;&amp;lt;receiver_agent_mail_id&amp;gt;\&amp;#x27;\r\n password = \&amp;#x27;&amp;lt;sender_agent_password&amp;gt;\&amp;#x27;\r\n cc_email = \&amp;#x27;the logged-in user mail id\&amp;#x27; # Include the user\&amp;#x27;s email\r\n\r\n # Extract the conversation summary from the webhook payload\r\n req = request.get_json()\r\n message = req[\&amp;#x27;sessionInfo\&amp;#x27;][\&amp;#x27;parameters\&amp;#x27;][\&amp;#x27;$request.generative.output\&amp;#x27;]\r\n \r\n # Create and send the email\r\n msg = EmailMessage()\r\n msg.set_content(message)\r\n\r\n msg[\&amp;#x27;Subject\&amp;#x27;] = \&amp;#x27;Action Needed: Customer Escalation\&amp;#x27;\r\n msg[\&amp;#x27;From\&amp;#x27;] = sender_email\r\n msg[\&amp;#x27;To\&amp;#x27;] = receiver_email\r\n msg[\&amp;#x27;Cc\&amp;#x27;] = cc_email # Add the user to the email for transparency\r\n\r\n try:\r\n # Establish a secure connection to the SMTP server\r\n server = smtplib.SMTP_SSL(smtp_server, port)\r\n server.login(sender_email, password) \r\n server.send_message(msg) \r\n server.quit()\r\n\r\n # Return a success message to Conversational Agents (Dialogflow CX)\r\n return jsonify(\r\n {\r\n \&amp;#x27;fulfillment_response\&amp;#x27;: {\r\n \&amp;#x27;messages\&amp;#x27;: [\r\n {\r\n \&amp;#x27;text\&amp;#x27;: {\r\n \&amp;#x27;text\&amp;#x27;: [\&amp;#x27;The mail is successfully sent!\&amp;#x27;]\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n )\r\n\r\n except Exception as e:\r\n # Handle potential errors during email sending\r\n print(f&amp;quot;Error sending email: {e}&amp;quot;)\r\n return jsonify(\r\n {\r\n \&amp;#x27;fulfillment_response\&amp;#x27;: {\r\n \&amp;#x27;messages\&amp;#x27;: [\r\n {\r\n \&amp;#x27;text\&amp;#x27;: {\r\n \&amp;#x27;text\&amp;#x27;: [\&amp;#x27;There was an error sending the email. Please try again later.\&amp;#x27;]\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n )&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;lang-py&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80ab96ba60&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Cloud Run Functions (CRF) configuration:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; We configure the CRF with the following settings:&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;ul&gt; &lt;li aria-level="2" style="list-style-type: circle; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Runtime: Python 3.12&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="2" style="list-style-type: circle; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Environment: 2nd Gen &lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="2" style="list-style-type: circle; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Entry point: handle_webhook&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="2" style="list-style-type: circle; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Trigger type: HTTPS&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="2" style="list-style-type: circle; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Memory allocated: 256 MiB&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="2" style="list-style-type: circle; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Ingress settings: Allow all traffic&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="2" style="list-style-type: circle; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Requirements (requirements.txt): &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;functions-framework==3.*&lt;/code&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Not sure which CRF version to choose for Dialogflow CX Webhooks? Here’s a quick way to decide:&lt;/span&gt;&lt;/p&gt; &lt;ol&gt; &lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;1st Gen: Simpler to set up and deploy, suitable for basic webhooks with less demanding performance requirements.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;2nd Gen: Offers more flexibility, control, and scalability, making it a better choice for complex webhooks or high-traffic scenarios.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;More details&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;a href="https://cloud.google.com/functions/docs/concepts/version-comparison"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;5. Connect the pieces&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Specify the URL of our deployed CRF as the webhook URL in Conversational Agents (Dialogflow CX), ensuring that the escalation process is triggered correctly when needed.&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Here’s how it all comes together&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;This breakdown provides a comprehensive understanding of the Conversational Agents (Dialogflow CX) flow design, emphasizing the escalation process and the role of the CRF. Remember to adapt the flow, messages, and email content to suit your specific needs and branding.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Flow Name:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; (e.g., "Customer Support Flow")&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Pages: &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;There are two pages, ‘Start Page’ and ‘Escalate’.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;1. Start Page&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Purpose:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Initiates the conversation with the welcome intent greeting the user and gauges user satisfaction.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Greeting entry fulfillment:&lt;/strong&gt;&lt;/p&gt; &lt;/li&gt; &lt;ul&gt; &lt;li aria-level="2" style="list-style-type: circle; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Agent says:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; "Hi &lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;name&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;! Please let us know how we can help you."&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Datastore response entry fulfillment:&lt;/strong&gt;&lt;/p&gt; &lt;/li&gt; &lt;ul&gt; &lt;li aria-level="2" style="list-style-type: circle; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Agent says:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; "Are you satisfied with the response?"&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="2" style="list-style-type: circle; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Custom payload:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; (This creates the "Yes" and "No" chips)&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;"&gt;&lt;br/&gt;JSON&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/ul&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;{\r\n &amp;quot;richContent&amp;quot;: [\r\n [\r\n {\r\n &amp;quot;options&amp;quot;: [\r\n {\r\n &amp;quot;text&amp;quot;: &amp;quot;Yes&amp;quot;\r\n },\r\n {\r\n &amp;quot;text&amp;quot;: &amp;quot;No&amp;quot;\r\n }\r\n ],\r\n &amp;quot;type&amp;quot;: &amp;quot;chips&amp;quot;\r\n }\r\n ]\r\n ]\r\n}&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;lang-py&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80ab96b3a0&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Routes:&lt;/strong&gt;&lt;/p&gt; &lt;/li&gt; &lt;ul&gt; &lt;li aria-level="2" style="list-style-type: circle; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Condition:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; "Yes" chip selected&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;ul&gt; &lt;li aria-level="3" style="list-style-type: square; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Transition:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Start page (Marks the conversation as successful)&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="3" style="list-style-type: square; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Agent says:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; "Thank you! Is there anything else we can help with?”&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;li aria-level="2" style="list-style-type: circle; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Condition:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; "No" chip selected&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;ul&gt; &lt;li aria-level="3" style="list-style-type: square; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Transition:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; "Escalate" Page&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="3" style="list-style-type: square; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Agent says:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; "Sorry to hear that!" (Acknowledges user dissatisfaction)&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/ul&gt; &lt;/ul&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;2. Escalate&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Purpose:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Offers the user the option to escalate to a human agent.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Entry fulfillment:&lt;/strong&gt;&lt;/p&gt; &lt;/li&gt; &lt;ul&gt; &lt;li aria-level="2" style="list-style-type: circle; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Agent says:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; "Would you like to escalate?"&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="2" style="list-style-type: circle; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Custom payload:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; (Same "Yes" and "No" chips as the "Start Page")&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/ul&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;{\r\n &amp;quot;richContent&amp;quot;: [\r\n [\r\n {\r\n &amp;quot;options&amp;quot;: [\r\n {\r\n &amp;quot;text&amp;quot;: &amp;quot;Yes&amp;quot;\r\n },\r\n {\r\n &amp;quot;text&amp;quot;: &amp;quot;No&amp;quot;\r\n }\r\n ],\r\n &amp;quot;type&amp;quot;: &amp;quot;chips&amp;quot;\r\n }\r\n ]\r\n ]\r\n}&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e806df21880&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Routes:&lt;/strong&gt;&lt;/p&gt; &lt;/li&gt; &lt;ul&gt; &lt;li aria-level="2" style="list-style-type: circle; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Condition:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; "No" chip selected&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;ul&gt; &lt;li aria-level="3" style="list-style-type: square; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Transition:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; "Start Page"&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="3" style="list-style-type: square; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Agent says:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; "Sure, Thank you!" (Allows the user to continue with the bot)&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;li aria-level="2" style="list-style-type: circle; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Condition:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; "Yes" chip selected&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;ul&gt; &lt;li aria-level="3" style="list-style-type: square; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Transition:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; "Escalation Webhook"&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="3" style="list-style-type: square; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Webhook:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Cloud Run Functions (Triggers the escalation process)&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Intents:&lt;/strong&gt;&lt;/p&gt; &lt;/li&gt; &lt;ul&gt; &lt;li aria-level="2" style="list-style-type: circle; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;We describe the two intents ‘confirm.yes’ and ‘confirm.no’ with training phrases described as ‘yes’ and ‘no’. This corresponds to the user clicking on ‘yes’ and ‘no’ chips or simply writing the phrases or the similar ones. &lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="2" style="list-style-type: circle; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;To learn more about Intents, please click &lt;/span&gt;&lt;a href="https://cloud.google.com/dialogflow/cx/docs/concept/intent"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/ul&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Cloud Run Functions (Escalation Webhook)&lt;/strong&gt;&lt;/h3&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Trigger:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; HTTPS Eventarc trigger (Activated when the "Escalate" page transitions to the webhook)&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Functionality:&lt;/strong&gt;&lt;/p&gt; &lt;/li&gt; &lt;ol&gt; &lt;li aria-level="2" style="list-style-type: decimal; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Gather conversation history:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Retrieve and process the complete conversation history from the Conversational Agents (Dialogflow CX) session using the $conversation in the generator prompt which captures the conversation between the agent and the user, excluding the very last user utterance and the agent's utterances thereafter.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="2" style="list-style-type: decimal; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Summarize conversation:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Generate a concise summary of the conversation ($conversation), highlighting key user requests or issues.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="2" style="list-style-type: decimal; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Extract user information:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Obtain the user's email address (and any other relevant details) from the Conversational Agents (Dialogflow CX) session or your user database.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="2" style="list-style-type: decimal; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Compose email:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Create an email with:&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;ul&gt; &lt;li aria-level="3" style="list-style-type: square; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Subject:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; (e.g., "Escalated Conversation from [User Email]")&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="3" style="list-style-type: square; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Recipient:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; The support agent's email address&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="3" style="list-style-type: square; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;CC:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; The user's email address&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="3" style="list-style-type: square; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Body:&lt;/strong&gt;&lt;/p&gt; &lt;/li&gt; &lt;ul&gt; &lt;li aria-level="4" style="list-style-type: square; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;User information (e.g., name, ID)&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="4" style="list-style-type: square; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Conversation summary&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="4" style="list-style-type: square; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Link to the full conversation in Conversational Agents (Dialogflow CX) (if available)&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/ul&gt; &lt;li aria-level="2" style="list-style-type: decimal; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Send email:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Use an email sending library (e.g., &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;sendgrid&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt;, &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;mailgun,smtp&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt;) or your email provider's API to send the email.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="2" style="list-style-type: decimal; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Return response (optional):&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Send a response back to Conversational Agents (Dialogflow CX) to inform the user that their request has been escalated (e.g., "The mail is successfully sent!”, "Your request has been escalated. An agent will contact you shortly.").&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/ul&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Chatbot testing and results&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;After completing the above steps, you can click on ‘Publish’ and then ‘Try it now’ to test the chatbot.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/1_Yux49fW.max-1000x1000.png" alt="1"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;These are a few example user journeys:&lt;/strong&gt;&lt;/p&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;1. The user is not satisfied with the response and does not want to escalate as well.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--small h-c-grid__col h-c-grid__col--2 h-c-grid__col--offset-5 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/2_Sc6qFk7.max-1000x1000.png" alt="2"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;2. The user is not satisfied with the response and escalates as well. The sample triggered mail is shown below in the right image.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/3_1DuEUue.max-1000x1000.png" alt="3"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;This approach shows how you can combine various Google Cloud technologies, including Vertex AI, to build intelligent and user-friendly chatbots. As conversational AI continues to evolve, we can expect even more innovative solutions that enhance customer experiences. To learn more and contribute feedback, visit our Google Cloud community on &lt;/span&gt;&lt;a href="https://medium.com/google-cloud/vertex-ai-search-and-conversation-s-c-for-wikipedia-pdf-chatbot-056569a2054c" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Medium&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. &lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;References&lt;/strong&gt;&lt;/h3&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/dialogflow/cx/docs/concept/webhook#gcf"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Webhooks | Dialogflow CX | Google Cloud&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/dialogflow/cx/docs/concept/generators"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Generators | Dialogflow CX | Google Cloud&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/dialogflow/cx/docs"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Conversational Agents (Dialogflow CX) documentation | Google Cloud&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/dialogflow/cx/docs/concept/intent"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Intents | Dialogflow CX | Google Cloud&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/dialogflow/cx/docs/concept/page"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Pages | Dialogflow CX | Google Cloud&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/dialogflow/cx/docs/concept/handler"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;State handlers | Routes | Dialogflow CX | Google Cloud&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/dialogflow/cx/docs/concept/flow"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Flows | Dialogflow CX | Google Cloud&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/functions/docs/calling/eventarc"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Eventarc triggers | Cloud Run functions Documentation&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/learn/prompts/adjust-parameter-values#temperature"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Experiment with parameter values | Generative AI on Vertex AI | Google Cloud&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://developers.google.com/machine-learning/resources/prompt-eng#direct_prompting_zero-shot" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Prompt Engineering for Generative AI | Machine Learning | Google for Developers&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://ai.google.dev/gemini-api/docs/models/gemini" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Gemini models | Gemini API | Google AI for Developers&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/functions/docs/concepts/version-comparison"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Cloud Run functions version comparison&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;</description><pubDate>Fri, 22 Nov 2024 17:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/topics/developers-practitioners/create-a-self-escalating-chatbot-in-conversational-agents/</guid><category>AI &amp; Machine Learning</category><category>Developers &amp; Practitioners</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Create a self-escalating chatbot in Conversational Agents using Webhook and Generators</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/topics/developers-practitioners/create-a-self-escalating-chatbot-in-conversational-agents/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Aniket Agrawal</name><title>AI Cloud Engineer</title><department></department><company></company></author></item><item><title>How Commerzbank is transforming financial advisory workflows with gen AI</title><link>https://cloud.google.com/blog/products/ai-machine-learning/how-commerzbank-is-transforming-financial-advisory-workflows-with-gen-ai/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;In today's fast-paced financial landscape, staying competitive requires embracing innovation and efficiency. Commerzbank, a leading German bank, recognized the potential to streamline its internal workflows, particularly within its financial advisory division for corporate clients. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Given regulatory requirements, sales advisors need to carefully document investment suggestions in detailed protocols. It’s a highly manual and time consuming task. This has led to significant productivity bottlenecks and reduces the time available for advising customers.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;"Our Sales advisor team spends a considerable amount of time in documentation of advisory calls," said &lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;Ulrich Heitbaum, COO of Corporate Clients segment at Commerzbank&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;. "By partnering with Google to build a sophisticated GenAI system to automate this process, we considerably boost productivity. One thought leads us: Only lean, smoothly functioning processes and reliable technology lead to an outstanding - excellent - service delivery to the customer."&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Recognizing the potential for improvement, Commerzbank partnered with Google Cloud to develop an advanced gen AI-powered solution that automates this labor-intensive process. By leveraging &lt;/span&gt;&lt;a href="https://cloud.google.com/ai/generative-ai"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Cloud's AI and machine learning&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; capabilities, Commerzbank was able to automate this process and achieve significant gains in sales advisor productivity.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;The Challenge: Time-Consuming Manual Processes&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Financial advisors play a crucial role in providing personalized financial advice to clients. However, the process of reviewing client interactions and extracting and summarizing relevant domain and client-specific information was highly manual and inefficient. Sales advisors had to dedicate significant time to listening to call recordings, identifying key details, and manually entering data into various systems. This process not only consumed valuable time but also increased the risk of errors and inconsistencies.&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;The Technical Solution: A Deep Dive into Commerzbank's gen-AI system&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Commerzbank's solution for automating financial advisory workflows leverages a sophisticated multi-step gen-AI architecture built using &lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Vertex AI&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; and designed for quality, scalability and extensibility. &lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;Gemini 1.5 Pro&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;'s ability to &lt;/span&gt;&lt;a href="https://cloud.google.com/transform/historic-year-for-ai-momentous-multimodal-moment-the-prompt"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;understand multiple modalities&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; and process long context information played a key role in building this system that would not have been possible with any other model&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;. Here's a breakdown of the key steps involved:&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/image1_v6TdxD7.max-1000x1000.png" alt="image1"&gt; &lt;/a&gt; &lt;figcaption class="article-image__caption "&gt;&lt;p data-block-key="fperr"&gt;An end-to-end architecture of the AI Advisor system&lt;/p&gt;&lt;/figcaption&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;1. User interaction and data import (1, 2, 3):&lt;br/&gt;&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;The process begins with the sales advisor using a user-friendly frontend interface (1) to select the client calls they need to process. This interface communicates with a Java Spring backend (2) that manages the workflow. The backend then initiates the import of the selected audio recordings from Commerzbank's recording system (3) into Google Cloud Platform (GCP) storage buckets. This ensures the data is readily available for the AI processing pipeline.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;2. Audio chunking and storage (4.1, 4.2):&lt;br/&gt;&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;To handle potentially lengthy client calls, the imported audio recordings are divided into smaller, manageable segments (4.1). This "chunking" process allows the system to process even multi-hour calls efficiently. These audio chunks are then stored securely within GCP storage (4.2), ensuring data durability and accessibility for subsequent steps.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;3. Advanced diarization and transcription (4.3):&lt;br/&gt;&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;This step is crucial for generating a high-quality, structured transcript that captures the nuances of the conversation. Gemini 1.5 Pro is employed to create a diarized transcript, meaning each speaker is identified and their contributions are accurately attributed. This process occurs sequentially, with each audio chunk processed in order. To maximize accuracy, the model receives the transcript generated up to that point, along with carefully engineered prompts and a few-shot example of audio-to-text transcription. This ensures the final transcript is not only accurate in terms of content but also includes correct speaker identification and especially numerical information, which is crucial in a financial context. Once the final transcript is generated, the individual audio chunks from step 4.2 are deleted to optimize storage.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;4. Fact extraction (4.4):&lt;br/&gt;&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;With a comprehensive and long transcript in hand, Gemini 1.5 Pro long context is then used to analyze and extract relevant facts (4.4). This involves identifying key information related to the specific financial advisory document that needs to be completed. The model is prompted to recognize and extract crucial details such as client names, investment preferences, risk tolerance, and financial goals.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;5. Summary generation (4.5):&lt;br/&gt;&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;This step focuses on generating concise and accurate summaries for each field within the financial advisory document. Leveraging the extracted facts from the previous step and employing Chain-of-Thought (CoT) prompting, Gemini 1.5 Pro creates multiple German-language summaries tailored to the specific domain and the requirements of each form field. This ensures the generated summaries are not only informative but also comply with Commerzbank's internal guidelines and regulatory requirements.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;6. Summary optimization and explanation (4.6):&lt;br/&gt;&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;To ensure the highest quality output, the multiple summaries generated for each form field are &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/products/ai-machine-learning/enhancing-llm-quality-and-interpretability-with-the-vertex-gen-ai-evaluation-service?e=48754805"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;evaluated and the best summary for each field is selected&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; using the &lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/models/evaluation-overview"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Vertex AI Gen AI Evaluation Service&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; (4.6). Importantly, the service also provides a human-readable explanation for its selection, enabling sales advisors to understand the reasoning behind the AI's choices and maintain trust in the automated process.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;This multi-stage architecture, combining the power of Gemini 1.5 Pro with Vertex AI's evaluation capabilities, enables Commerzbank to automate a complex and time-consuming process with high accuracy and efficiency. By streamlining these workflows, Commerzbank empowers its sales advisors to focus on higher-value tasks, ultimately improving client service and driving business growth.&lt;/span&gt;&lt;/p&gt; &lt;h2&gt;&lt;strong style="vertical-align: baseline;"&gt;The Benefits: Increased Efficiency and Productivity&lt;/strong&gt;&lt;/h2&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The impact of this AI-powered automation has been significant. By automating the manual tasks associated with financial advisory documentation, Commerzbank has achieved substantial productivity gains. Sales advisors now have more time to focus on higher-value activities, such as building client relationships and providing personalized financial advice.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Key benefits of the solution include:&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Reduced processing time:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; The automated solution significantly reduces the time required to process client interactions by achieving what takes a client 60-plus minutes in just a few minutes with manual human overview. This greatly accelerates time to business. &lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Increased productivity:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; By automating manual tasks, the solution empowers sales advisors to focus on more strategic activities, leading to increased productivity and improved client service.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;h2&gt;&lt;strong style="vertical-align: baseline;"&gt;Looking into the Future&lt;/strong&gt;&lt;/h2&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Commerzbank's collaboration with Google Cloud exemplifies the transformative power of AI in the financial services industry. By embracing innovative technologies, Commerzbank is streamlining its operations, empowering its employees, and enhancing the client experience. “Therefore, we set up a Strategic Initiative Corporate Clients AI powered sales force - to make our sales focus on high value activities​” Sebastian Kauck, CIO Corporate Clients at Commerzbank. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;They plan to scale this solution to other use cases and enhance its functionality, providing new and additional value to their sales team. This AI-powered solution is just one example of how Commerzbank is leveraging technology to stay ahead of the curve and deliver exceptional financial services, in addition to many other cloud and GenAI use cases.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;This partnership has not only delivered significant productivity gains but has also laid the foundation for future innovation. Commerzbank plans to expand the use of AI and automation across other areas of its business, further optimizing its operations and enhancing its offerings to clients.&lt;/span&gt;&lt;/p&gt; &lt;hr/&gt; &lt;p&gt;&lt;sup&gt;&lt;em&gt;&lt;span style="vertical-align: baseline;"&gt;This project was a joint collaboration between Anant Nawalgaria, Patrick Nestler, Florian Baumert and Markus Staab from Google and Tolga Bastürk, &lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;Otto Franke, Mirko Franke,&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt; Gregor Wilde, Janine Unger, Enis Muhaxhiri, Andre Stubig, Ayse-Maria Köken and Andreas Racke from Commerzbank.&lt;/span&gt;&lt;/em&gt;&lt;/sup&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Fri, 22 Nov 2024 11:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/products/ai-machine-learning/how-commerzbank-is-transforming-financial-advisory-workflows-with-gen-ai/</guid><category>Financial Services</category><category>Customers</category><category>Developers &amp; Practitioners</category><category>Google Cloud in Europe</category><category>AI &amp; Machine Learning</category><media:content height="540" url="https://storage.googleapis.com/gweb-cloudblog-publish/original_images/Commerzbank-v3.gif" width="540"></media:content><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>How Commerzbank is transforming financial advisory workflows with gen AI</title><description></description><image>https://storage.googleapis.com/gweb-cloudblog-publish/original_images/Commerzbank-v3.gif</image><site_name>Google</site_name><url>https://cloud.google.com/blog/products/ai-machine-learning/how-commerzbank-is-transforming-financial-advisory-workflows-with-gen-ai/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Tolga Bastürk</name><title>Product Owner, Commerzbank</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Anant Nawalgaria</name><title>Sr. Staff ML Engineer, Google</title><department></department><company></company></author></item><item><title>Seeing Through a GLASSBRIDGE: Understanding the Digital Marketing Ecosystem Spreading Pro-PRC Influence Operations</title><link>https://cloud.google.com/blog/topics/threat-intelligence/glassbridge-pro-prc-influence-operations/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;Written by: Vanessa Molter&lt;/p&gt; &lt;p&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;Special thanks to Mandiant's Ryan Serabian for his contributions to this analysis.&lt;/span&gt;&lt;/p&gt; &lt;hr/&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;This blog post details GLASSBRIDGE—an umbrella group of four different companies that operate networks of inauthentic news sites and newswire services tracked by the Google Threat Intelligence Group (consisting of Google’s Threat Analysis Group (TAG) and Mandiant). Collectively these firms bulk-create and operate hundreds of domains that pose as independent news websites from dozens of countries, but are in fact publishing thematically similar, inauthentic content that emphasizes narratives aligned to the political interests of the People’s Republic of China (PRC). Since 2022, Google has blocked more than a thousand GLASSBRIDGE-operated websites from eligibility to appear in Google News features and Google Discover because these sites violated our &lt;/span&gt;&lt;a href="https://support.google.com/news/publisher-center/answer/6204050?hl=en" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;policies&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; that prohibit deceptive behavior and require editorial transparency. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We cannot attribute who hired these services to create the sites and publish content, but assess the firms may be taking directions from a shared customer who has outsourced the distribution of pro-PRC content via imitation news websites.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;These campaigns are &lt;/span&gt;&lt;a href="https://blog.google/threat-analysis-group/prigozhin-interests-and-russian-information-operations/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;another example&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; of private public relations (PR) firms conducting coordinated influence campaigns—in this case, spreading content aligned with the PRC’s views and political agenda to audiences dispersed across the globe. By using private PR firms, the actors behind the information operations (IO) gain plausible deniability, obscuring their role in the dissemination of coordinated inauthentic content.&lt;/span&gt;&lt;/p&gt; &lt;h2&gt;&lt;span style="vertical-align: baseline;"&gt;The Basics&lt;/span&gt;&lt;/h2&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;These inauthentic news sites are operated by a small number of stand-alone digital PR firms that offer newswire, syndication and marketing services. They pose as independent outlets that republish articles from PRC state media, press releases, and other content likely commissioned by other PR agency clients. In some cases, they publish localized news content copied from legitimate news outlets. We have also observed content from &lt;/span&gt;&lt;a href="https://blog.google/threat-analysis-group/google-disrupted-dragonbridge-activity-q1-2024/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;DRAGONBRIDGE&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, the most prolific IO actor TAG tracks, disseminated in these campaigns. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Although the four PR firms discussed in this post are separate from one another, they operate in a similar fashion, bulk-creating dozens of domains at a time and sharing thematically similar inauthentic content. Based on the set of inauthentic news domain names, the firms target audiences outside the PRC, including Australia, Austria, Czechia, Egypt, France, Germany, Hungary, Kenya, India, Indonesia, Japan, Luxemburg, Macao, Malaysia, New Zealand, Nigeria, Poland, Portugal, Qatar, Russia, Saudi Arabia, Singapore, South Korea, Spain, Switzerland, Taiwan, Thailand, Turkey, the United States, Vietnam, and the Chinese-speaking diaspora.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The use of newswire services is a shared tactic across all campaigns, and two of the PR firms directly control and operate the newswire services.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/original_images/glassbridge-fig1a.gif" alt="GLASSBRIDGE is an ecosystem of companies and newswire services that publish inauthentic news content"&gt; &lt;/a&gt; &lt;figcaption class="article-image__caption "&gt;&lt;p data-block-key="lc3u0"&gt;Figure 1: GLASSBRIDGE is an ecosystem of companies and newswire services that publish inauthentic news content&lt;/p&gt;&lt;/figcaption&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h2&gt;&lt;span style="vertical-align: baseline;"&gt;The Most Prolific: Shanghai Haixun Technology&lt;/span&gt;&lt;/h2&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Of the PR and marketing firms we have observed supporting pro-China IO campaigns, the most prolific is Shanghai Haixun Technology Co., Ltd or “Haixun”. Since TAG first began &lt;/span&gt;&lt;a href="https://blog.google/threat-analysis-group/tag-bulletin-q3-2022/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;tracking&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; Haixun, Google has removed more than 600 policy-violating domains linked to the firm from the ability to appear in Google News features. The sites target English- and Chinese-speaking audiences, as well as audiences in a number of countries such as Brazil, India, Japan, Kenya, Korea, Malaysia, Saudi Arabia, Singapore, Spain, Russia, Thailand, Qatar, and Vietnam. Google has also terminated a limited number of policy-violating YouTube channels tied to the group. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;In July 2023, &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/topics/threat-intelligence/pro-prc-haienergy-us-news/"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Mandiant identified Haixun using both Times Newswire and World Newswire&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; to place pro-Beijing content on the subdomains of legitimate news outlets. Mandiant also identified Haixun’s use of freelance services such as Fiverr to recruit &lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;for-hire social media accounts to promote pro-Beijing content.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Haixun’s inauthentic news sites are generally low quality, and much of the content on the domains is spammy and repetitive. Mixed in with “filler” articles on topics such as the metaverse, the sites publish news content that is politically aligned to the views of the PRC government. This includes articles from the Global Times, a PRC state-controlled media outlet, and narratives aligned to common PRC talking points on Beijing’s territorial claims in the South China Sea, Taiwan, ASEAN, Falun Gong, Xinjiang, and the COVID-19 pandemic.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/glassbridge-fig2.max-1000x1000.png" alt="Haixun inauthentic news featuring a mix of content, including PRC government talking points, Global Times articles, and content on the metaverse"&gt; &lt;/a&gt; &lt;figcaption class="article-image__caption "&gt;&lt;p data-block-key="ol9gk"&gt;Figure 2: Haixun inauthentic news featuring a mix of content, including PRC government talking points, Global Times articles, and content on the metaverse&lt;/p&gt;&lt;/figcaption&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h2&gt;&lt;span style="vertical-align: baseline;"&gt;Times Newswire and Shenzhen Haimai Yunxiang Media &lt;/span&gt;&lt;/h2&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;In February 2024, we removed policy-violating domains from appearing on Google News surfaces associated with a pro-PRC coordinated influence campaign reported by Citizen Lab as &lt;/span&gt;&lt;a href="https://citizenlab.ca/2024/02/paperwall-chinese-websites-posing-as-local-news-outlets-with-pro-beijing-content/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;PAPERWALL&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; that operated a network of over 100 websites in more than 30 countries masquerading as local news outlets. The imitation news sites published localized news content copied from legitimate local news outlets alongside articles republished from PRC state-controlled media, as well as press releases, conspiracy theories, and ad hominem attacks targeting specific individuals. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Based on technical indicators, TAG determined the inauthentic news websites were operated and controlled directly by Times Newswire, one of the news wire services that has distributed content on behalf of Haixun. TAG believes Times Newswire is, in turn, operated by another Chinese media company, Shenzhen Haimai Yunxiang Media Co., Ltd., or “Haimai”, which bills itself as a service provider specialized in global media communication and overseas network promotion. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The views expressed in the conspiracy and smear content were similar to past pro-PRC IO campaigns—for example, character attacks against the Chinese virologist Yan Limeng and claims that the US is conducting biological experiments on humans. Much of the smear content targeting specific individuals was ephemeral—it was posted on imitation news sites for a short period of time and then removed. &lt;/span&gt;&lt;/p&gt; &lt;h2&gt;&lt;span style="vertical-align: baseline;"&gt;DURINBRIDGE&lt;/span&gt;&lt;/h2&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Another example of a commercial firm distributing content linked to pro-China IO campaigns is DURINBRIDGE, an alias we use to track a technology and marketing company that has multiple subsidiaries that provide news and PR services. DURINBRIDGE operates a network of over 200 websites designed to look like independent media outlets that publish news content on various topics. These domains violated our policies and have been blocked from appearing on Google News surfaces and Discover.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Importantly, DURINBRIDGE itself is not an IO actor and likely published the IO content on behalf of a customer or partner. Most of the content on the sites is news and press releases from various sources and has no apparent links to coordinated influence campaigns. However, a small portion of the content includes pro-PRC narratives and content directly linked to IO campaigns from Haixun and DRAGONBRIDGE. DURINBRIDGE sites also used articles and images from Times Newswire, which is operated by the aforementioned Chinese PR firm Haimai. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We identified multiple DRAGONBRIDGE articles published to DURINBRIDGE’s news sites. The content included narratives focused on exiled businessman Guo Wengui, a perennial topic for DRAGONBRIDGE, and multiple narratives amplified by DRAGONBRIDGE in the lead up to the Taiwanese presidential election. &lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/glassbridge-fig3.max-1000x1000.png" alt="DRAGONBRIDGE content published to inauthentic news sites operated by DURINBRIDGE"&gt; &lt;/a&gt; &lt;figcaption class="article-image__caption "&gt;&lt;p data-block-key="ol9gk"&gt;Figure 3: DRAGONBRIDGE content published to inauthentic news sites operated by DURINBRIDGE&lt;/p&gt;&lt;/figcaption&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/glassbridge-fig4.max-1000x1000.png" alt="“Secret History of Tsai Ing-Wen,” on DURINBRIDGE-operated inauthentic news site"&gt; &lt;/a&gt; &lt;figcaption class="article-image__caption "&gt;&lt;p data-block-key="ol9gk"&gt;Figure 4: “Secret History of Tsai Ing-Wen,” on DURINBRIDGE-operated inauthentic news site&lt;/p&gt;&lt;/figcaption&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/glassbridge-fig5.max-1000x1000.png" alt="Narratives about then-candidate Lai Ching-te promoted by DRAGONBRIDGE prior to the Taiwanese presidential election"&gt; &lt;/a&gt; &lt;figcaption class="article-image__caption "&gt;&lt;p data-block-key="ol9gk"&gt;Figure 5: Narratives about then-candidate Lai Ching-te promoted by DRAGONBRIDGE prior to the Taiwanese presidential election&lt;/p&gt;&lt;/figcaption&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h2&gt;&lt;span style="vertical-align: baseline;"&gt;Shenzhen Bowen Media&lt;/span&gt;&lt;/h2&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;In early 2024, TAG and Mandiant identified a fourth marketing firm that operates a network of over 100 domains that pose as independent news sites focused on countries and cities across Europe, the Americas, Asia, and Australia. These domains violated our policies and have been blocked from appearing on Google News surfaces and Discover. The operator of the sites, Shenzhen Bowen Media Information Technology Co., Ltd., is a PRC-based marketing firm that also operates World Newswire, the same press release service used by Haixun to place content on the subdomains of legitimate news outlets. &lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/glassbridge-fig6.max-1000x1000.png" alt="Sites linked to Shenzhen Bowen with localized content for Brazil and Germany"&gt; &lt;/a&gt; &lt;figcaption class="article-image__caption "&gt;&lt;p data-block-key="ol9gk"&gt;Figure 6: Sites linked to Shenzhen Bowen with localized content for Brazil and Germany&lt;/p&gt;&lt;/figcaption&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Shenzhen Bowen’s sites present themselves as local outlets focused on a particular country or city, with articles in the local language about business, sports, and politics. The content is in multiple languages, aligned to each target audience, including Chinese, English, French, German, Japanese, and Thai. The sites do not disclose their connection to the marketing firm. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Side-by-side with local content, the sites include narratives promoting the Chinese government’s interests, much of it sourced from World Newswire. In more than one case, TAG and Mandiant have identified content linked to DRAGONBRIDGE published on Shenzhen Bowen-operated sites. &lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/glassbridge-fig7.max-1000x1000.png" alt="DRAGONBRIDGE content on “Boston Journal” website linked to Shenzhen Bowen Media"&gt; &lt;/a&gt; &lt;figcaption class="article-image__caption "&gt;&lt;p data-block-key="ol9gk"&gt;Figure 7: DRAGONBRIDGE content on “Boston Journal” website linked to Shenzhen Bowen Media&lt;/p&gt;&lt;/figcaption&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h2&gt;&lt;span style="vertical-align: baseline;"&gt;Conclusion&lt;/span&gt;&lt;/h2&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The inauthentic news sites operated by GLASSBRIDGE illustrate how information operations actors have embraced methods beyond social media in an attempt to spread their narratives. We have observed similar behavior from &lt;/span&gt;&lt;a href="https://blog.google/threat-analysis-group/prigozhin-interests-and-russian-information-operations/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Russian&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; and &lt;/span&gt;&lt;a href="https://blog.google/threat-analysis-group/tag-bulletin-q3-2024/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Iranian&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; IO actors. By posing as independent, and often local news outlets, IO actors are able to tailor their content to specific regional audiences and present their narratives as seemingly legitimate news and editorial content. In fact, the content has been crafted or amplified by PR and newswire firms who conceal their role, or actively misrepresent their content as local and independent news coverage. In the case of GLASSBRIDGE, the consistency in content, behavioral similarities, connections across firms, and pro-PRC messaging suggests the private firms take direction from a shared customer who outsourced the creation of influence campaigns. Google is committed to information transparency, and we will continue tracking GLASSBRIDGE and blocking their inauthentic content on Google’s platforms. We regularly disclose our latest enforcement actions in the &lt;/span&gt;&lt;a href="https://blog.google/threat-analysis-group/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;TAG Bulletin&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Fri, 22 Nov 2024 10:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/topics/threat-intelligence/glassbridge-pro-prc-influence-operations/</guid><category>Threat Intelligence</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Seeing Through a GLASSBRIDGE: Understanding the Digital Marketing Ecosystem Spreading Pro-PRC Influence Operations</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/topics/threat-intelligence/glassbridge-pro-prc-influence-operations/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Google Threat Intelligence Group </name><title></title><department></department><company></company></author></item><item><title>How Vodafone is using gen AI to enhance network life cycle</title><link>https://cloud.google.com/blog/topics/telecommunications/vodafone-gen-ai-enhances-network-lifecycle/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Generative AI is transforming industries across the globe, and &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/topics/telecommunications/generative-ai-in-the-telecom-industry"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;telecommunications&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; is no exception. From personalized customer interactions and streamlined content creation to network optimization and enhanced productivity, generative AI is poised to redefine the very fabric of the telco industry. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Vodafone, a global leader in telecommunications, recognizes the immense potential of gen AI to revolutionize its network operations, engineering and development. As part of its &lt;/span&gt;&lt;a href="https://www.vodafone.com/news/technology/vodafone-and-google-deepen-strategic-partnership-with-10-yr-deal" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;growing, decades-long partnership Google Cloud&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, Vodafone is embarking on an exciting journey to integrate generative AI into its network departments, aiming to drive innovation, optimize costs, and enhance efficiency.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;This blog post will dive into the new and novel ways Vodafone and Google Cloud deployed generative AI to unlock new levels of efficiency, creativity, and customer satisfaction. We'll explore real-world use cases and provide a glimpse into the future of this transformative technology within Vodafone.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-aside"&gt;&lt;dl&gt; &lt;dt&gt;aside_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;title&amp;#x27;, &amp;#x27;Try Google Cloud for free&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80abd2a940&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;Get started for free&amp;#x27;), (&amp;#x27;href&amp;#x27;, &amp;#x27;https://console.cloud.google.com/freetrial?redirectPath=/welcome&amp;#x27;), (&amp;#x27;image&amp;#x27;, None)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;The genesis of generative AI in Vodafone's network&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The seeds of this collaboration were sown in late 2023 when Vodafone and Google Cloud initiated discussions about the potential applications of &lt;/span&gt;&lt;a href="https://www.youtube.com/watch?v=pk26aS4Qm14&amp;amp;list=PLBgogxgQVM9unTN6teV1TCkwR6oFKORdX&amp;amp;index=6" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;gen AI in network use cases&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. Recognizing the transformative power of this technology, Vodafone and Google Cloud organized a hackaton in March 2024, bringing together over 120 network engineers with limited experience with AI/ML, but a lot of experience on networks and telecommunications. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;This event served as a catalyst for innovation, resulting in the development of 13 demo use cases powered by a mix of Vertex AI Search &amp;amp; Conversation, Gemini 1.5 Pro, code generation model, and traditional ML algorithms. These included:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;AI-powered site assessments:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Using images to instantly assess the feasibility of solar panel installations at RAN sites.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Doc search for Root-Cause-Analysis (RCA):&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Enabling employees to quickly discover relevant data through natural language queries.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Natural language to SQL (NL2SQL):&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Creating user-friendly interfaces to empower non-technical colleagues to leverage generative AI for tasks like generating SQL queries.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Network optimization:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Developing AI-powered tools to diagnose network issues, predict potential outages, and assist with configuration tasks.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;These innovative solutions demonstrate the ease with which generative AI can be applied to real-world challenges within the telecommunications industry, made possible by combining Vodafone's industry expertise with the growing capabilities of cloud technology. The innovative use cases explored during the Vodafone and Google Cloud hackathon, particularly those focused on RCA and NL2SQL, were showcased jointly at the DTW 2024 event in Copenhagen, sparking significant interest from other telecommunications providers eager to harness the power of generative AI.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Unveiling the potential: Understanding the network design, deployment and operations workflows&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Vodafone and Google Cloud conducted extensive interviews with various network stakeholders to gain a deep understanding of the typical working day in network departments. These interviews shed light on the pain points and challenges faced by network professionals, revealing a vast landscape of opportunities where gen AI could add significant value. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The subsequent business case analysis demonstrated the potential for substantial cost and time savings through the implementation of gen AI solutions.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/1_1wwQPP3.max-1000x1000.png" alt="1"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;With more than 100 use cases outcoming from this discovery phase in the network space (in the image above we have reported only the ones for Network Engineering department), Vodafone and Google Cloud showcased the tangible benefits of gen AI in streamlining workflows, enhancing decision-making, and driving efficiency. Here’s a prioritized sample of gen AI for network use cases which Vodafone is developing with Google Cloud:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Empowering network operations with knowledge at their fingertips&lt;/strong&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Network operations teams often face the challenge of accessing critical information during complex incidents. Shifting from vast documentation, incident reports, network architectures, and strategic blueprints can be time-consuming and hinder swift resolution. Vodafone is using Vertex AI Agent Builder ability to extract and synthesize pertinent information from these documents, providing network operators with instant access to the knowledge they need. This empowers them to make informed decisions faster, reducing downtime and enhancing overall network reliability.&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Streamlining network engineering with automated documentation&lt;/strong&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The creation of technical documentation, such as network diagrams, high-level designs (HLDs) and low-level designs (LLDs), is a complex and time-intensive process. It often involves multiple engineers and vendors, leading to potential delays and inconsistencies. Vodafone will leverage AI and Gemini multimodal capabilities to automate the drafting of these documents. While human oversight remains crucial, gen AI can provide a solid foundation, saving engineers valuable time, accelerating time-to-market, and improving the accuracy and consistency of technical documentation.&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Transforming network development with data-driven insights&lt;/strong&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Network development teams are inundated with vast amounts of contractual data, making analysis and decision-making a daunting task. Vodafone will use gen AI to analyze thousands of contracts, extracting key clauses and providing valuable insights for contract template generation. Furthermore, gen AI can enable the creation of digital twins of the Vodafone network, coupled with ground classification capabilities. This allows for more efficient and accurate planning and execution of new network interventions, minimizing errors and optimizing resource allocation.&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Enhancing customer fulfillment with AI-powered field technicians&lt;/strong&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Field technicians play a crucial role in ensuring customer satisfaction. However, truck rolls (on-site visits) are costly and time-consuming. Vodafone will use gen AI to empower field technicians with real-time information and multimodal troubleshooting guidance, reducing the need for truck rolls and enabling more effective on-field resolutions and avoiding repeat dispatch. This will translate into significant cost savings for Vodafone and improved customer experiences.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;These use cases highlight the transformative potential of gen AI in revolutionizing various aspects of Vodafone's network operations. By embracing gen AI, Vodafone is not only driving innovation but also paving the way for a more efficient, agile, and customer-centric future.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Vodafone's big bet: generative AI for the future&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The integration of gen AI into Vodafone's network departments is poised to deliver a multitude of benefits:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Accelerated automation and zero-touch ops:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Gen AI can expedite the automation of network tasks, enabling Vodafone to achieve its automation goals faster and more efficiently.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Cost reduction:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; By automating routine tasks and optimizing network operations, gen AI can significantly reduce operational costs for Vodafone.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Time savings:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Gen AI-powered solutions can streamline workflows and enable faster decision-making, leading to substantial time savings for network professionals.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Enhanced efficiency:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Through intelligent automation and optimization, gen AI can improve the overall efficiency of Vodafone's network operations.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Innovation catalyst:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Gen AI opens up new possibilities for innovation in network design, optimization, and management, empowering Vodafone to stay ahead of the curve.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Building on past success: AI Booster and Neuron&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=Ec0NXiXV9_A&amp;amp;list=PLBgogxgQVM9unTN6teV1TCkwR6oFKORdX&amp;amp;index=2" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Vodafone is embarking on an ambitious journey&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; to integrate generative AI across its operations, and this endeavor is firmly rooted in two powerful programs: AI Booster and Neuron. These initiatives provide the foundation for Vodafone's exploration and implementation of cutting-edge AI solutions.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;AI Booster, a sophisticated machine learning platform built on Google Cloud's Vertex AI, serves as the engine room for Vodafone's AI development. This platform is designed for speed and efficiency, enabling rapid development and deployment of AI models. With robust automation and security features, AI Booster empowers Vodafone's data scientists to seamlessly move from proof-of-concept to production, significantly accelerating the pace of innovation.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Complementing AI Booster is Neuron, Vodafone's custom-built "data ocean" residing on Google Cloud. Neuron acts as a central hub, aggregating vast amounts of data from across the organization into a unified and readily accessible repository. This data serves as the lifeblood for AI model training and analysis, fueling the development of powerful generative AI applications.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/2_oUaitYM.max-1000x1000.png" alt="2"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Imagine having an AI that can analyze the performance of network components, predict potential failures, and even suggest optimal configurations to prevent outages. This is the type of transformative power that Vodafone is unlocking by combining AI Booster's model development capabilities with Neuron's rich data resources.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The synergy between AI Booster and Neuron allows Vodafone to not only develop cutting-edge AI solutions but also to deploy them quickly and effectively. This translates to faster insights, more accurate predictions, and ultimately, a superior customer experience. By investing in this robust foundation, Vodafone is positioning itself at the forefront of the generative AI revolution in the telecommunications industry.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Conclusion&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Vodafone's work on generative AI marks a significant milestone in the journey towards an AI-powered future for CSPs. By harnessing the transformative capabilities of gen AI, Vodafone is poised to unlock new levels of efficiency, innovation, and cost savings. This strategic partnership with Google Cloud exemplifies Vodafone's commitment to pushing the boundaries of technological advancement and delivering exceptional network experiences to its customers.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Fri, 22 Nov 2024 08:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/topics/telecommunications/vodafone-gen-ai-enhances-network-lifecycle/</guid><category>AI &amp; Machine Learning</category><category>Networking</category><category>Telecommunications</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>How Vodafone is using gen AI to enhance network life cycle</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/topics/telecommunications/vodafone-gen-ai-enhances-network-lifecycle/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Sherif Said</name><title>Head of Digital Network Engineering , Vodafone Group</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Mario Guido</name><title>Customer Engineer, Google Cloud</title><department></department><company></company></author></item><item><title>Don't let resource exhaustion leave your users hanging: A guide to handling 429 errors</title><link>https://cloud.google.com/blog/products/ai-machine-learning/learn-how-to-handle-429-resource-exhaustion-errors-in-your-llms/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Large language models (LLMs) give developers immense power and scalability, but managing resource consumption is key to delivering a smooth user experience. LLMs demand significant computational resources, which means it's essential to anticipate and handle potential resource exhaustion. If not, you might encounter &lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/error-code-429"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;429 “resource exhaustion” errors&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, which can disrupt how users interact with your AI application. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Today, we'll delve into why 429 errors occur with LLMs and equip you with three practical strategies to address them effectively. By understanding the root causes and implementing the right solutions, you can help ensure a smooth and uninterrupted experience, even during times of peak demand.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-aside"&gt;&lt;dl&gt; &lt;dt&gt;aside_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;title&amp;#x27;, &amp;#x27;$300 in free credit to try Google Cloud AI and ML&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e808a7dea30&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;Start building for free&amp;#x27;), (&amp;#x27;href&amp;#x27;, &amp;#x27;http://console.cloud.google.com/freetrial?redirectPath=/vertex-ai/&amp;#x27;), (&amp;#x27;image&amp;#x27;, None)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Backoff!&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Exponential backoff and retry logic have been around for a number of years. These basic techniques for handling resource exhaustion or API unavailability also apply to LLMs. When a generative AI application’s calls floods a model’s API, or when an excessive amount of queries overloads a system, backoff and retry logic in the code can help. The waiting time increases exponentially with each retry until the overloaded system recovers.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;In Python, there are decorators available to implement backoff logic in your application code. For example, &lt;/span&gt;&lt;a href="https://github.com/jd/tenacity" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;tenacity&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; is a useful general-purpose retrying library written in Python to simplify the task of adding retry behavior to your code. 429 errors are more likely to occur with asynchronous code and multimodal models such as Gemini with large context windows. Below is a sample of an asynchronous code for retry using tenacity. To view the entire notebook, please visit this &lt;/span&gt;&lt;a href="https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/community/generative_ai/backoff_and_retry_for_LLMs.ipynb" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;link&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. &lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;from tenacity import retry, wait_random_exponential\r\n\r\nasync def async_ask_gemini(contents, model_name=DEFAUL_MODEL_NAME):\r\n # This basic function calls Gemini asynchronously without a retry logic\r\n multimodal_model = GenerativeModel(model_name)\r\n response = await multimodal_model.generate_content_async(\r\n contents=contents, generation_config=config)\r\n return response.text\r\n\r\n\r\n@retry(wait=wait_random_exponential(multiplier=1, max=60))\r\nasync def retry_async_ask_gemini(contents, model_name=DEFAUL_MODEL_NAME):\r\n &amp;quot;&amp;quot;&amp;quot;This is the same code as the async_ask_gemini function but implements a\r\n retry logic using tenacity decorator.\r\n wait_random_exponential(multiplier=1, max=60) means that it will\r\n Retry “Randomly wait up to 2^x * 1 seconds between each retry until the \r\n range reaches 60 seconds, then randomly up to 60 seconds afterwards.\r\n &amp;quot;&amp;quot;&amp;quot;\r\n multimodal_model = GenerativeModel(model_name)\r\n response = await multimodal_model.generate_content_async(contents=contents, generation_config=config)\r\n return response.text&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e808a6f9dc0&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We tested passing a large amount of input to Gemini 1.5 Pro to demonstrate how backoff and retry is crucial to the success of your gen AI application. We’re using images and videos stored in Google Cloud Storage to heavily tax the Gemini system.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Below are the results &lt;/span&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;without&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt; backoff and retry configured; where four out of five attempts failed.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/Image_1_-_Test_Results_WITHOUT_BACKOFF_AND.max-1000x1000.png" alt="Image 1 - Test Results WITHOUT BACKOFF AND RETRY"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Below are the results &lt;/span&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;with&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt; backoff and retry configured. Implementing backoff and retry allowed all five attempts to succeed. Even with a successful API call and a response from the model, there is a trade-off. The backoff and retry adds increasing latency to a response. There may be other changes to make to the code, changes to the model, or a different cloud region that could improve performance. Nonetheless, backoff and retry is an overall improvement during moments of peak traffic and congestion. &lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/Image_2_-_Test_Results_WITH_BACKOFF_AND_RE.max-1000x1000.png" alt="Image 2 - Test Results WITH BACKOFF AND RETRY"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Additionally, when working with LLMs, you may often encounter issues from the underlying APIs such as rate-limiting or downtime. As you move your LLM applications into production it becomes more and more important to safeguard against these. That's why LangChain introduced the concept of a &lt;/span&gt;&lt;a href="https://python.langchain.com/api_reference/core/runnables/langchain_core.runnables.fallbacks.RunnableWithFallbacks.html" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;fallback&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, an alternative plan that may be used in an emergency. A fallback can be to a different model or even to another LLM provider altogether. Fallbacks can be implemented in code along with backoff and retry methods for greater resilience of your LLM applications. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Another robust option for LLM resiliency is &lt;/span&gt;&lt;a href="https://github.com/GoogleCloudPlatform/apigee-samples/tree/main/llm-circuit-breaking" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;circuit breaking with Apigee&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. By placing Apigee between a retrieval-augmented generation (RAG) application and LLM endpoints, you can manage traffic distribution and graceful failure handling. Of course, each model will provide a different answer so fallbacks and circuit breaking architecture should be thoroughly tested to ensure it meets your users needs.&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Dynamic shared quota&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/dsq"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Dynamic shared quota&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; is one way that Google Cloud manages resource allocation for certain models, aiming to provide a more flexible and efficient user experience. Here's how it works:  &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Traditional quota vs. dynamic shared quota&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Traditional quota:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; In a traditional quota system, you're assigned a fixed limit for a specific resource (e.g., API requests per day, per minute, per region). If you need more capacity, you usually have to submit a quota increase request and wait for approval. This can be slow and inconvenient. Of course, simply having quota allocated does not guarantee capacity, as it is still on-demand and not dedicated capacity. We will talk more about dedicated capacity when we discuss Provisioned Throughput later in this blog.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Dynamic shared quota:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; With dynamic shared quota, Google Cloud has a pool of available capacity for a service. This capacity is dynamically distributed among all users who are making requests. Instead of having a fixed individual limit, you draw from this shared pool based on your needs at any given moment.  &lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Benefits of dynamic shared quota&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Eliminates quota increase requests:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; You no longer need to submit quota increase requests for services that use dynamic shared quota. The system automatically adjusts to your usage patterns.  &lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Improved efficiency:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Resources are used more efficiently because the system can allocate capacity where it's needed most at any given time.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Reduced latency:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; By dynamically allocating resources, Google Cloud can minimize latency and provide faster responses to your requests.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Simplified management:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; It simplifies capacity planning because you don't have to worry about hitting fixed limits.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Dynamic shared quota in action&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;429 resource exhaustion errors are more likely to occur with asynchronous calls to Gemini with large multimodal input such as large video files. Below is a comparison of model performance of Gemini-1.5-pro-001 with traditional quota versus Gemini-1.5-pro-002 with dynamic shared quota. We can see even without retry (not recommended) the second-generation Gemini Pro model outperforms the previous-generation model because of dynamic shared quota.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/Image_3_-_Test_Results_WITHOUT_RETRY_AND_T.max-1000x1000.png" alt="Image 3 - Test Results WITHOUT RETRY AND TRADITIONAL QUOTA"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/Image_4_-_Test_Results_WITHOUT_RETRY_WITH_.max-1000x1000.png" alt="Image 4 - Test Results WITHOUT RETRY WITH DYNAMIC SHARED QUOTA"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Backoff and retry mechanisms should be combined with dynamic shared quota, especially as request volume and token size increase. During our testing of the -002 model with larger video input, we encountered 429 errors in all our initial attempts. However, the test results below demonstrate that incorporating backoff and retry logic allowed all five subsequent attempts to succeed. This highlights the necessity of this strategy for the newer -002 Gemini model to be consistently successful.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/Image_5_-_Test_Results_WITHOUT_RETRY_WITH_.max-1000x1000.png" alt="Image 5 - Test Results WITHOUT RETRY WITH DYNAMIC SHARED QUOTA"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/Image_6_-_Test_Results_LARGE_VIDEO_WITH_RE.max-1000x1000.png" alt="Image 6 - Test Results LARGE VIDEO WITH RETRY AND DYNAMIC SHARED QUOTA"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="vertical-align: baseline;"&gt;Dynamic shared quota represents a shift towards a more flexible and efficient way of managing resources in Google Cloud. By dynamically allocating capacity, it aims to provide a tightly integrated experience for users while optimizing resource utilization. Dynamic shared quota is not user-configurable. Google enables it only on specific models’ versions like Gemini-1.5-pro-002 and Gemini-1.5-flash-002. Check &lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/dsq#google-models"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;supported Google Model versions&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; for more details.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Alternatively, there are times where you want a hard-stop threshold to prevent excessive API calls to Gemini. Abuse, budget limits and controls, or security reasons all play a factor in purposely setting a customer-defined quota in Vertex AI. This is where the feature of &lt;/span&gt;&lt;a href="https://cloud.google.com/service-usage/docs/manage-quota#create_consumer_quota_override"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;consumer quota override&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; comes in. This can be a useful tool to protect your AI applications and systems. You can manage consumer quota with Terraform using the &lt;/span&gt;&lt;a href="https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/service_usage_consumer_quota_override" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;google_service_usage_consumer_quota_override&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; schema. &lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Provisioned Throughput&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/provisioned-throughput"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Provisioned Throughput&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; from Google Cloud is a service that allows you to reserve dedicated capacity for generative AI models on the Vertex AI platform. This means you can have predictable and reliable performance for your AI workloads, even during peak demand.  &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Here's a breakdown of what it offers and why it's useful:&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Benefits:&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Predictable performance:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; You get consistent response times and avoid performance variability, helping your AI applications run smoothly.  &lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;strong style="vertical-align: baseline;"&gt;Reserved capacity:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; No more worrying about resource contention or queuing. You have your own dedicated capacity for your AI models. By default, when Provisioned Throughput capacity is surpassed, the excess traffic is billed at the pay-as-you-go rate.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/Image_7_-_Provisioned_Throughput_reserved_.max-1000x1000.png" alt="Image 7 - Provisioned Throughput reserved capacity"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;ul&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Cost-effective:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; It can be more cost-effective than pay-as-you-go pricing if you have consistent, high-volume AI workloads. To &lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/provisioned-throughput#place-an-order"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;estimate&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; if you can save money using Provisioned Throughput, follow steps one through ten in the order process.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Scalable:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; You can easily scale your reserved capacity up or down as your needs change.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;If you have an application with a large user base and need to provide fast response times then this is definitely going to help. This is designed especially for applications that require immediate AI processing, such as chatbots or interactive content generation. Provisioned Throughput can also help computationally-intensive AI tasks, such as processing massive datasets or generating complex outputs.&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Leave 429s behind&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;When using generative AI in production, reliable performance is crucial. To achieve this, consider implementing these three strategies. They are designed to work together, and incorporating backoff and retry mechanisms into all your gen AI applications is a best practice. To get started building with generative AI, you can use these &lt;/span&gt;&lt;a href="https://github.com/GoogleCloudPlatform/vertex-ai-samples/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Vertex AI samples&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; on GitHub or take advantage of the &lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/learn/overview"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;beginner's guide&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, &lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/start/quickstarts/quickstart-multimodal"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;quickstarts&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, or &lt;/span&gt;&lt;a href="https://github.com/GoogleCloudPlatform/generative-ai/tree/main/gemini/sample-apps/e2e-gen-ai-app-starter-pack" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;starter pack&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; Google Cloud offers.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Thu, 21 Nov 2024 17:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/products/ai-machine-learning/learn-how-to-handle-429-resource-exhaustion-errors-in-your-llms/</guid><category>Application Development</category><category>AI &amp; Machine Learning</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Don't let resource exhaustion leave your users hanging: A guide to handling 429 errors</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/products/ai-machine-learning/learn-how-to-handle-429-resource-exhaustion-errors-in-your-llms/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Pedro Melendez</name><title>Customer Engineer</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Matt Dalida</name><title>Technical Account Manager</title><department></department><company></company></author></item><item><title>Make IAM for GKE easier to use with Workload Identity Federation</title><link>https://cloud.google.com/blog/products/identity-security/make-iam-for-gke-easier-to-use-with-workload-identity-federation/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;At Google Cloud, we work to continually improve our platform’s security capabilities to deliver the most trusted cloud. As part of this goal, we’re helping our users move away from less secure authentication methods such as long-lived, unauditable, service account keys towards &lt;/span&gt;&lt;a href="https://cloud.google.com/docs/authentication#auth-decision-tree"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;more secure alternatives&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; when authenticating to Google Cloud APIs and services. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;In the context of Kubernetes workloads, there have been three ways users can do this:&lt;/span&gt;&lt;/p&gt; &lt;ol&gt; &lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Export credentials and mount as a secret in the Pod at runtime. This is done using service account keys but could be a security risk if the keys are not managed correctly.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Use the worker node identity or credential, such as the node service account. The security issue is that the credential is shared by all workloads deployed on that node. This can result in over-provisioning of permissions, which violates the principle of least privilege and is not recommended for multi-tenant clusters nor microservices in general. &lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Use GKE Workload Identity, which allows you to grant access to Cloud APIs using OpenID Connect without needing manual configuration or less secure methods like the aforementioned options. &lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The preferred option has been to use GKE Workload Identity. Earlier this year, we renamed it &lt;/span&gt;&lt;a href="https://cloud.google.com/kubernetes-engine/docs/concepts/workload-identity"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Workload Identity Federation for GKE&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, and rolled out a significant update that made it even easier to use. The update also enabled deeper integration into Google Cloud’s IAM platform. Here’s what you need to know about the changes.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-aside"&gt;&lt;dl&gt; &lt;dt&gt;aside_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;title&amp;#x27;, &amp;#x27;$300 in free credit to try Google Cloud security products&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80ab979b50&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;Start building for free&amp;#x27;), (&amp;#x27;href&amp;#x27;, &amp;#x27;http://console.cloud.google.com/freetrial?redirectPath=/welcome&amp;#x27;), (&amp;#x27;image&amp;#x27;, None)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Why you should avoid service account impersonation (for most cases)&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Previously, a workload on GKE needed to impersonate a Google Cloud service account with its Kubernetes service account (KSA) in order to enable Pod access to Google Cloud services. Although this improved security, we heard from many users that it was difficult to set up. Having to maintain both a Kubernetes service account and a Google Cloud service account for every Kubernetes workload also contributed to a sprawl of identities that needed to be managed and audited.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;While the previous configuration is still possible and will continue to be supported, there is now a &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;simpler way to configure this access&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: Google Cloud IAM policies can directly reference GKE workloads and Kubernetes service accounts. This &lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;significantly simplifies the setup (six configuration steps to three), removing the need to manage another set of Google Cloud service accounts, and perform annotations on Kubernetes service accounts referencing the Google Cloud service account.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/image2_3LeKyZU.max-1000x1000.png" alt="image2"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;More integrated experience inside Cloud IAM&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Moving towards this new configuration also gives your Kubernetes identities first class principal and principalSet representations inside Google Cloud IAM. When you use IAM tools such as &lt;/span&gt;&lt;a href="https://cloud.google.com/policy-intelligence/docs/role-recommendations-overview"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;IAM recommender&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; and IAM policies, you no longer need to apply changes to the impersonated service account and then mentally map the service account to the Kubernetes workload. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;For example, inside the IAM recommender you can now directly see least privileged recommendations for your Kubernetes workloads and apply these recommendations directly to the Kubernetes principal.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/image1_RoD03F0.max-1000x1000.png" alt="image1"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Referencing multiple GKE workloads inside IAM using principalSet notation&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Previously, you could only reference a single principal (such as a single Kubernetes service account). The new configuration supports the principalSet notation which enables an attribute-based selection of multiple identities just like any other Workload Identity Federation principal. As a result, you can now &lt;/span&gt;&lt;a href="https://cloud.google.com/iam/docs/principal-identifiers#v2"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;refer to multiple GKE workloads in a single IAM policy&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, for example:&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;1) All workloads or Pods that belong to a Kubernetes namespace.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/namespace/NAMESPACE&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e808a3b90d0&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;2) All workloads or Pods that belong to a Kubernetes cluster.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-code"&gt;&lt;dl&gt; &lt;dt&gt;code_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/kubernetes.cluster/https://container.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80a9592f10&amp;gt;)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Limitations and next steps&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;There are still a few limitations when using this capability that you should be aware of. If any of these apply, you will need to continue to use the &lt;/span&gt;&lt;a href="https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity#kubernetes-sa-to-iam"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;previous service account impersonation method&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; to perform authentication:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;A small number of &lt;/span&gt;&lt;a href="https://cloud.google.com/iam/docs/federated-identity-supported-services"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Cloud services&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; don’t yet support Workload and Workforce Identity Federation principals.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/security/vpc-service-controls"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;VPC Service Controls&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; ingress and egress rules &lt;/span&gt;&lt;a href="https://cloud.google.com/iam/docs/federated-identity-supported-services#vpc-service-controls"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;do not support&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; Workload Identity Federation principal and principalSets.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;The specific permission to invoke a &lt;/span&gt;&lt;a href="https://cloud.google.com/run"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Cloud Run&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; instance &lt;/span&gt;&lt;a href="https://cloud.google.com/iam/docs/federated-identity-supported-services#cloud-run"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;does not support&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; Workload Identity Federation principal and principalSets.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We encourage you to update your existing configurations and use this new simplified IAM policy syntax where you can, moving forward. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;To get started, consult the following guidance:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;View our updated documentation (&lt;/span&gt;&lt;a href="https://cloud.google.com/kubernetes-engine/docs/concepts/workload-identity"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Concept&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;,&lt;/span&gt;&lt;a href="https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity"&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;How-to&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;) pages and update your configurations.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Check out our &lt;/span&gt;&lt;a href="https://www.youtube.com/watch?v=XmjTKVI93NA" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Container Native Security Con lighting talk&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; on removing the need for impersonation.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="vertical-align: baseline;"&gt;Check out our &lt;/span&gt;&lt;a href="https://www.youtube.com/watch?v=Gx_MsdeocAM" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Container Bytes video&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; on Workload Identity Federation for GKE.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;</description><pubDate>Thu, 21 Nov 2024 17:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/products/identity-security/make-iam-for-gke-easier-to-use-with-workload-identity-federation/</guid><category>Containers &amp; Kubernetes</category><category>Security &amp; Identity</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Make IAM for GKE easier to use with Workload Identity Federation</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/products/identity-security/make-iam-for-gke-easier-to-use-with-workload-identity-federation/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Cynthia Thomas</name><title>Product Manager</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Shaun Liu</name><title>Product Manager</title><department></department><company></company></author></item><item><title>Announcing Mistral AI’s Large-Instruct-2411 on Vertex AI</title><link>https://cloud.google.com/blog/products/ai-machine-learning/announcing-new-mistral-large-model-on-vertex-ai/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;In July, we &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/products/ai-machine-learning/codestral-and-mistral-large-v2-on-vertex-ai?e=48754805"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;announced&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; the availability of Mistral AI’s models on Vertex AI: Codestral for code generation tasks, Mistral Large 2 for high-complexity tasks, and the lightweight Mistral Nemo for reasoning tasks like creative writing. Today, we’re announcing the availability of Mistral AI’s newest model on &lt;/span&gt;&lt;a href="https://cloud.google.com/model-garden"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Vertex AI Model Garden&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;: &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Mistral-Large-Instruct-2411&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; is now generally available&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="https://console.cloud.google.com/vertex-ai/publishers/mistralai/model-garden/mistral-large-2411"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Large-Instruct-2411&lt;/strong&gt;&lt;/a&gt;&lt;strong style="vertical-align: baseline;"&gt; &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; is an advanced dense large language model (LLM) of 123B parameters with strong reasoning, knowledge and coding capabilities extending its predecessor with better long context, function calling and system prompt. The model is ideal for use cases that include complex agentic workflows with precise instruction following and JSON outputs, or large context applications requiring strong adherence for retrieval-augmented generation (RAG), and code generation. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;You can access and deploy the new Mistral AI Large-Instruct-2411 model on Vertex AI through our Model-as-a-Service (MaaS) or self-service offering today.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-aside"&gt;&lt;dl&gt; &lt;dt&gt;aside_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;title&amp;#x27;, &amp;#x27;$300 in free credit to try Google Cloud AI and ML&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e808a2686d0&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;Start building for free&amp;#x27;), (&amp;#x27;href&amp;#x27;, &amp;#x27;http://console.cloud.google.com/freetrial?redirectPath=/vertex-ai/&amp;#x27;), (&amp;#x27;image&amp;#x27;, None)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;What can you do with the new Mistral AI models on Vertex AI?&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;By building with Mistral’s models on Vertex AI, you can:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Select the best model for your use case: &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Choose from a range of Mistral AI models, including efficient options for low-latency needs and powerful models for complex tasks like agentic workflows. Vertex AI makes it easy to evaluate and select the optimal model.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Experiment with confidence: &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;Mistral AI models are available as fully managed Model-as-a-Service on Vertex AI. You can explore Mistral AI models through simple API calls and comprehensive side-by-side evaluations within our intuitive environment.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Manage models without overhead: &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;Simplify how you deploy the new Mistral AI models at scale with fully managed infrastructure designed for AI workloads and the flexibility of pay-as-you-go pricing.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Tune the models to your needs:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; In the coming weeks, you will be able to fine-tune Mistral AI's models to create bespoke solutions, with your unique data and domain knowledge. &lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Craft intelligent agents:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Create and orchestrate agents powered by Mistral AI models, using Vertex AI's comprehensive set of tools, including LangChain on Vertex AI. Integrate Mistral AI models into your production-ready AI experiences with Genkit’s Vertex AI plugin.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Build with enterprise-grade security and compliance: &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;Leverage Google Cloud's built-in security, privacy, and compliance measures. Enterprise controls, such as Vertex AI Model Garden’s &lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/control-model-access"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;new organization policy&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, provide the right access controls to make sure only approved models can be accessed.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Get started with Mistral AI models on Google Cloud&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;These additions continue Google Cloud’s commitment to open and flexible AI ecosystems that help you build solutions best-suited to your needs. Our collaboration with Mistral AI is a testament to our open approach, within a unified and an enterprise ready environment. Vertex AI provides a curated collection of first-party, open-source, and third-party models, many of which — including the new Mistral AI models — can be delivered as a fully-managed Model-as-a-service (MaaS) offering — providing you with the simplicity of a single bill and enterprise-grade security on our fully-managed infrastructure. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;To start building with Mistral’s newest models, visit &lt;/span&gt;&lt;a href="https://cloud.google.com/model-garden"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Model Garden&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; and select the Mistral Large model tile. The models are also available on Google Cloud Marketplace here: &lt;/span&gt;&lt;a href="https://console.cloud.google.com/marketplace/product/mistralai/mistral-large-2411"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Mistral Large&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;You can check out our &lt;/span&gt;&lt;a href="https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/generative_ai/mistralai_intro.ipynb" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;sample code&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; and &lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/mistral"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;documentation&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; to help you get started.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Thu, 21 Nov 2024 17:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/products/ai-machine-learning/announcing-new-mistral-large-model-on-vertex-ai/</guid><category>AI &amp; Machine Learning</category><media:content height="540" url="https://storage.googleapis.com/gweb-cloudblog-publish/images/071024c_GC_Banner_Mistral_v1_1.max-600x600.jpg" width="540"></media:content><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Announcing Mistral AI’s Large-Instruct-2411 on Vertex AI</title><description></description><image>https://storage.googleapis.com/gweb-cloudblog-publish/images/071024c_GC_Banner_Mistral_v1_1.max-600x600.jpg</image><site_name>Google</site_name><url>https://cloud.google.com/blog/products/ai-machine-learning/announcing-new-mistral-large-model-on-vertex-ai/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Nenshad Bardoliwalla</name><title>Director, Product Management, Vertex AI</title><department></department><company></company></author></item><item><title>Announcing new updates to Cloud Translation AI, now covering 189 languages</title><link>https://cloud.google.com/blog/products/ai-machine-learning/latest-updates-to-google-clouds-translation-ai/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Your next big customer doesn't speak your language. In fact, &lt;/span&gt;&lt;a href="https://csa-research.com/Blogs-Events/CSA-in-the-Media/Press-Releases/Consumers-Prefer-their-Own-Language" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;40% of global consumers&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; won't even consider buying from websites not in their native tongue. With &lt;/span&gt;&lt;a href="https://www.internetworldstats.com/stats7.htm" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;51.6% of internet users&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; speaking languages other than English, you're potentially missing half your market. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Until now, enterprises faced an impossible choice in addressing translation use cases. They had to choose one of the following:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Human translators: High quality but slow and expensive&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Basic machine translation: Fast but lacks nuance&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;DIY solutions: Inconsistent and risky&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;But the challenge with translation is, you need all three – and traditional translation methods can't keep up. This isn't just about converting words - it's about connecting with people using the right context and tone. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;That’s why at Google Cloud, we built &lt;/span&gt;&lt;a href="https://cloud.google.com/translate?e=48754805"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Translation AI&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; in Vertex AI. We’re excited to share the latest updates, and how you can apply it to your business.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-aside"&gt;&lt;dl&gt; &lt;dt&gt;aside_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;title&amp;#x27;, &amp;#x27;$300 in free credit to try Google Cloud AI and ML&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80abdef130&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;Start building for free&amp;#x27;), (&amp;#x27;href&amp;#x27;, &amp;#x27;http://console.cloud.google.com/freetrial?redirectPath=/vertex-ai/&amp;#x27;), (&amp;#x27;image&amp;#x27;, None)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Translation AI: Unmatched translation quality, but your way&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Google Cloud’s Translation AI includes two offerings for you to choose from:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;a href="https://cloud.google.com/translate/docs/basic/translate-text-basic"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Translation API Basic&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;: An essential toolkit for translation capabilities. You can instantly detect languages and translate text using our advanced Neural Machine Translation (NMT) model. Translation AI Basic is perfect for chat conversations, short-form content, and scenarios where speed and consistency are crucial.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="https://cloud.google.com/translate/docs/advanced/translate-text-advance"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Translation API Advanced&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;: Process entire documents, run batch translations, and maintain terminology consistency with custom glossaries. You can leverage our Gemini-powered Translation model for long-form content, or use Adaptive Translation to capture your brand's unique voice and tone. You can even customize translations by applying glossary,  &lt;/span&gt;&lt;a href="https://cloud.google.com/translate/docs/advanced/custom-translations#automl-translation"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;fine tuning&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; our industry leading translation models, or &lt;/span&gt;&lt;a href="https://cloud.google.com/translate/docs/advanced/custom-translations#adaptive_translation"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;adapting translation&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; predictions in real time.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/original_images/image3_jLArRkU.gif" alt="image3"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;What’s new in Translation AI&lt;/strong&gt;&lt;/h3&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Expanded reach and accuracy:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; You can now reach global audiences with our expanded language support, now covering 189 languages — including Cantonese, Fijian, and Balinese — while maintaining lightning-fast performance, perfect for user content and contact centers.&lt;br/&gt;&lt;/span&gt;&lt;span style="font-style: italic; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;"&gt;"Per our evaluations, Google NMT is among the best-performing real-time NMT models for 97% of the language-domain combinations we've tested (87 out of 90) -- which is 15% more than the closest competitor." -- Konstantin Savenkov, CEO &amp;amp; Co-Founder, Intento, Inc. &lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Smarter adaptive translation:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; You can customize your translations' tone and style with as few as five examples, or use up to 30,000 for ultimate precision. &lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Model selection based on your use case: &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;Using Cloud Translation Advanced&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;, &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;you have the option to choose from &lt;/span&gt;&lt;a href="https://cloud.google.com/translate/docs/advanced/translating-text-v3"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;multiple approaches&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; based on the complexity of your translation use case. For example, you can use our NMT model for translating general text or choose Adaptive Translation for customization in real-time.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Quality without compromise:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;While leaderboards and reports offer insights into overall model performance, they don't reveal how a model handles your specific needs. The &lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/models/evaluation-overview"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;gen AI evaluation service&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; helps you pick your own evaluation criteria, giving you  a clear understanding of how well AI models and applications align with your use case.&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt; For example, &lt;/span&gt;&lt;a href="https://slator.com/with-metricx-24-google-presents-latest-machine-translation-evaluation-metric/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google’s MetricX&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; and the widely used &lt;/span&gt;&lt;a href="https://github.com/Unbabel/COMET" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;COMET&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; correlate strongly with human evaluation, are widely used for evaluating translation quality, and available now on &lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;the &lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/models/evaluation-overview"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Vertex gen AI evaluation service&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. &lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;Compare models, prototype solutions, and select the best translation approach for your needs.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We built Translation AI with a dual focus – transform how you translate and transform how you work with translation. While most vendors offer either powerful translation &lt;/span&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;or&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt; easy implementation, we deliver on both in four critical ways. &lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;a href="https://console.cloud.google.com/vertex-ai/studio/translation"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Vertex AI&lt;/strong&gt;&lt;/a&gt;&lt;strong style="vertical-align: baseline;"&gt; for rapid prototyping: &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;Instantly test translations across 189 languages. &lt;/span&gt;&lt;a href="http://google.com/translation/adaptive-translation" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Compare NMT or our latest translation fine-tuned Gemini&lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;-&lt;/span&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;powered model to find your perfect fit&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. See how your custom adaptations perform without writing a single line of code, and get immediate quality metrics to validate your choices.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Production-ready APIs for your existing workflows:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Plug our Translation API (NMT) directly into your applications for real-time, high-volume translations. Switch your model selection to our Adaptive Translation Gemini-powered model via the same Translation API when tone and context matter most. Both models integrate into your existing workflows and automatically scale with your needs.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Customization without coding:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Train custom translation models on your specific industry terms and phrases. Simply upload your domain-specific data and let Translation AI build a custom model that speaks your language. It’s perfect for specialized content in legal, medical, or technical fields—no ML expertise required.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Full control with Vertex AI:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Own your complete translation pipeline using Translation AI through our comprehensive platform – Vertex AI. With Vertex AI, you can select your preferred models, customize their behavior, and monitor real-world performance. Integrate seamlessly with your existing CI/CD processes for true enterprise-grade translation at scale.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Real impact: The Uber story&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;a href="https://www.uber.com/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Uber&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; is leveraging Google Cloud Translation AI product suite to achieve their mission to &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;help people go anywhere and get anything and earn their way&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;. &lt;/span&gt;&lt;/p&gt; &lt;p style="padding-left: 40px;"&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;"Operating in tens of thousands of cities worldwide, Uber prioritizes seamless communication and support for riders, drivers, couriers, and eaters across diverse languages. Misinterpretations can result in delays, frustration, and even safety concerns. For years, Google has been our trusted translation platform. With recent advancements in Translation models, automatic quality metrics, and language expansion, we’re excited to partner with Google to deliver innovative multilingual experiences to our users." — &lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;Megha Yethadka, Senior Director, Uber.&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Get started with Translation AI&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Here are a few resources to help you get started with the latest features in Translation AI. Gemini-powered Translation model and Adaptive Translation are publicly available to use today. You can try them out in Vertex AI Studio. &lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;a href="https://cloud.google.com/translate/docs/advanced/translating-text-v3"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Translation API - Translate Text&lt;/span&gt;&lt;/a&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;a href="https://cloud.google.com/translate/docs/advanced/adaptive-translation"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Adaptive Translation overview&lt;/span&gt;&lt;/a&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;a href="https://cloud.google.com/translate"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Translation product page&lt;/span&gt;&lt;/a&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/models/evaluation-overview"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;GenAI Evaluation service overview &lt;/span&gt;&lt;/a&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;a href="https://cloud.google.com/translate/docs/languages"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Supported Languages&lt;/span&gt;&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;</description><pubDate>Wed, 20 Nov 2024 17:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/products/ai-machine-learning/latest-updates-to-google-clouds-translation-ai/</guid><category>AI &amp; Machine Learning</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Announcing new updates to Cloud Translation AI, now covering 189 languages</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/products/ai-machine-learning/latest-updates-to-google-clouds-translation-ai/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Sarah Weldon</name><title>Product Manager, Google Cloud</title><department></department><company></company></author></item><item><title>Build, deploy, and promote AI agents through Google Cloud’s AI agent ecosystem</title><link>https://cloud.google.com/blog/topics/partners/build-deploy-and-promote-ai-agents-through-the-google-cloud-ai-agent-ecosystem-program/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We’ve seen a sharp rise in demand from enterprises that want to use AI agents to automate complex tasks, personalize customer experiences, and increase operational efficiency. Today, we’re announcing a Google Cloud AI agent ecosystem program to help partners build and co-innovate AI agents with technical and go-to-market resources from Google Cloud. We’re also launching AI Agent Space, a new category in our &lt;/span&gt;&lt;a href="https://console.cloud.google.com/marketplace/browse?filter=category:ai-agent"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Cloud Marketplace&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; for customers to easily find and deploy partner-built AI agents. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Through this program, we’ll provide product support, marketing amplification, and co-selling opportunities to help our services and ISV partners bring these solutions to market faster, reach more customers, and grow their AI agent businesses. Our goal is to provide customers with a rich ecosystem of solutions that sit on top of our world-class infrastructure and offer the choice and optionality needed to tailor AI for their businesses and maximize value from AI investments. &lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-aside"&gt;&lt;dl&gt; &lt;dt&gt;aside_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;title&amp;#x27;, &amp;#x27;Try Google Cloud for free&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80ac0e7b50&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;Get started for free&amp;#x27;), (&amp;#x27;href&amp;#x27;, &amp;#x27;https://console.cloud.google.com/freetrial?redirectPath=/welcome&amp;#x27;), (&amp;#x27;image&amp;#x27;, None)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;New resources for partners building AI Agents&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;To increase the development and adoption of AI agents, we’re focusing on supporting partners in three key areas:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Accelerated agent development:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; We'll provide partners with direct access to Google Cloud's product and engineering teams for guidance and optimization of their AI agents. Partners will also receive early access to our latest AI technologies, technical enablement and best practices, and dedicated support for bringing their solutions to market quickly via Google Cloud Marketplace.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Go-to-market success:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; New go-to-market programs and co-selling opportunities specifically designed for AI agent solutions will help partners more effectively promote their offerings and drive adoption across a wider range of customers.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Increased customer visibility:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; We will highlight the innovative work of our partners through targeted marketing resources, blogs, and dedicated events, which will increase visibility of partner-built AI agents and help them stand out in our growing AI ecosystem.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Offerings from services partners&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We’ve seen significant momentum from services partners who have used Google Cloud’s technology to help customers successfully build and deploy AI agents. Through this program, our services partners will make their AI agents available to even more customers, including on AI Agent Space in the future. Here are some of their innovative agent solutions: &lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Accenture&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; is transforming customer support at a major retailer by offering convenient self-service options through virtual assistants, enhancing the overall customer experience.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Bain&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; supports SEB’s wealth management division with an AI agent that enhances end-customer conversations with suggested responses and generates call summaries that help increase efficiency by 15%.  &lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;BCG&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; provides a sales optimization tool to improve the effectiveness and impact of insurance advisors. &lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Capgemini&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; optimizes the ecommerce experience by helping retailers accept customer orders through new revenue channels and to accelerate the order-to-cash process for digital stores.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Cognizant&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; helps legal teams draft contracts, assigning risk scores and recommendations for how to optimize operational impact.  &lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Deloitte&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; offers a “Care Finder” agent as part of its Agent Fleet, helping care seekers find in-network providers often in less than a minute — significantly faster than the average call time of 5-8 minutes.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;HCLTech&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;helps predict and eliminate different types of defects on manufacturing products with its manufacturing quality agent, Insight.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Infosys&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; optimizes digital marketplaces for a &lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;leading consumer brand manufacturer&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;, providing actionable insights on inventory planning, promotions, and product descriptions. &lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;PwC&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; uses AI agent technology to help oncology clinics streamline administrative work so that doctors can optimize their time with patients.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;TCS&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; helps build persona-based AI agents contextualized with enterprise knowledge to accelerate software development.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Wipro&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;supports a national healthcare provider in using agent technology to develop and adjust contracts, streamlining a complex and time-consuming task while improving accuracy. &lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Partners have already given us positive feedback about the support we’ve provided to more effectively scale their agent solutions, including Datatonic, Kyndryl, Quantiphi, and Slalom who plan to bring new agents to market soon. Here’s what partners had to say:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;“Leaders who prioritize and invest in agentic architecture will be at the forefront of their industries, driving future growth with generative AI. For example, Accenture's marketing team is using autonomous agents to streamline campaign creation and execution, reducing manual steps by 25-35%, saving 6% in costs, and speeding up time-to-market by 25-55%.” - &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Scott Alfieri, Global Lead, Google Business Group, Accenture&lt;/strong&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;“BCG continues to see strong business value partnering with Google Cloud to deliver gen AI transformations for our joint clients across industries. Google Cloud's support for a robust ecosystem of AI agents demonstrates its commitment to innovation and democratization of AI.” - &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Val Elbert, Managing Director and Senior Partner, BCG&lt;/strong&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;“By partnering with Google Cloud, we are building AI agents that transform customer experiences and bring efficiency to business processes. Google Cloud's Agent Marketplace empowers Capgemini to continue developing and deploying innovative AI agents, leveraging our deep understanding of our customers.” – &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Fernando Alvarez, Chief Strategy and Development Officer and Group Executive Board Member, Capgemini&lt;/strong&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;“Deloitte has helped some of its largest clients improve how they operate with AI agents built with Google Cloud’s technology. As agentic AI takes off, this initiative can enhance our agent-building and distribution capabilities, thus enabling us to accelerate our clients’ time to business value with AI solutions.” – &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Gopal Srinivasan, Alphabet Google Alliance Generative AI Leader, Deloitte Consulting LLP&lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Offerings from ISV partners&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Our ISV partners are leveraging the power of Google Cloud's AI technology, including Vertex AI and Gemini models, to develop cutting-edge AI agent solutions. Many have already made their offerings available on Google Cloud Marketplace, and we're thrilled that they will be expanding their reach through AI Agent Space to make it even easier for customers to deploy and benefit from these innovative AI agents. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Here are some examples of their agent capabilities: &lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Bud Financial&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; uses its "Financial LLM" to provide personalized answers to customer queries and supports automation of banking tasks such as moving money between accounts to avoid overdrafts.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Dun &amp;amp; Bradstreet &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;uses its Hoovers SmartSearch AI to help customers quickly build targeted lists of companies and contacts matching specific criteria such as location, industry, and company size, making it easier to identify and action targeted opportunities.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Elastic &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;helps SREs and SecOps interpret log messages and errors, optimize code, write reports, and even identify and execute a runbook. &lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Exabeam&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; enhances cybersecurity with natural language search, visualization, and investigation acceleration, automating threat explanations and next steps for multi-terabyte datasets.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;FullStory &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;integrates its real-time data capture with Google Cloud's AI to create context-aware conversational agents, enabling faster data discovery and analysis of web and mobile interactions and more intelligent AI responses.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;GrowthLoop &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;gives marketers tools that automate audience building, suggest optimal targeting, and create custom attributes, optimizing the power of BigQuery data.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;OpenText &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;enables users to quickly find fast, accurate answers to inquiries that span a broad set of business domains, such as DevOps, customer service, and content management. &lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Quantum Metric&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; uses its Felix AI agent to help customer service associates quickly summarize and identify important takeaways from consumer engagements, with reporting metrics that help businesses enhance inquiry resolutions. &lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Sprinklr &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;offers multiple AI agents that can help businesses improve decision-making, resolve service queries, and handle complex tasks end-to-end. &lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Teradata&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; helps analyze, categorize, and summarize customer inquiries or complaints by using multimodal capabilities that process text and voice data, identifying key trends and actionable insights to enhance customer loyalty.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;ThoughtSpot &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;uses its Spotter agent to empower customers with autonomous analytics capabilities and a natural-language chat interface that brings deep data analysis and contextual reasoning to any user. &lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Typeface &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;enables users to automate marketing workloads and across teams with its Arc Agent, which supports marketers with campaign performance, creative content creation updates, and audience optimization. &lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;UKG &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;enhances the workplace experience with Bryte AI, a conversational agent that enables HR administrators and people managers to request information about company policies, business insights, and more. &lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;ISV partners are successfully using our AI to enhance their agent solutions, which they expect to grow through our ecosystem. Here’s what they had to say: &lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;“Dun &amp;amp; Bradstreet built Hoovers SmartSearch AI with Google's AI to revolutionize sales prospecting by instantly generating targeted lists of companies and contacts. Through this innovative initiative, customer adoption of our AI agent will be accelerated to help users effortlessly identify ideal customers and accelerate revenue growth.” - &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Michael Manos, Chief Technology Officer, Dun &amp;amp; Bradstreet &lt;/strong&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;“Elastic AI Assistant uses Vertex AI and Gemini models to empower SREs and SecOps teams to build intelligent agents that interpret log messages, optimize code, automate reports, and even generate runbooks. This is the future of agentic architecture, and it's available now in partnership with Google Cloud.” - &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Ken Exner, CPO, Elastic&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;“By leveraging Google's advanced AI capabilities, ThoughtSpot Spotter delivers an autonomous analytics agent that empowers users to extract valuable insights from their data through natural language interactions. We're excited to scale our AI agent to even more customers in partnership with Google Cloud." &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;- &lt;/strong&gt;&lt;strong style="vertical-align: baseline;"&gt;Sumeet Arora, Chief Development Officer, ThoughtSpot&lt;/strong&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;“UKG leverages Vertex AI to power UKG Bryte AI, a gen AI sidekick for UKG’s Pro and Ready HCM solutions. Bryte AI is built on UKG’s proprietary people, culture, and work data to enhance insights and decision-making, and to enable more conversational AI experiences” - &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Venkat Ramamurthy, Head of Product, AI, and Data, UKG&lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We’re pleased by how quickly partners have built AI agents to help customers improve their businesses. Additional partners with powerful AI agent capabilities available through Google Cloud include AUI.io, Automation Anywhere, Big SUR AI, BigCommerce, DataStax, Decagon.ai, Dialpad, Elastic, ema.co, Livex.ai, Lyzr.ai, Mojix, Moveo.ai, Regnology, Tamr, Tektonic AI, Vijil, VMware, Wisdom AI, and Zeotap. &lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Joining AI Agent Space&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;a href="https://console.cloud.google.com/marketplace/browse?filter=category:ai-agent"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;AI Agent Space&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; is available today with solutions from select partners, and we plan to add hundreds of additional AI agents over the coming months. Partners interested in learning more can visit &lt;/span&gt;&lt;a href="https://cloud.google.com/marketplace/sell"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Cloud Marketplace&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; to start listing AI agent solutions, and they can apply to the program &lt;/span&gt;&lt;a href="https://docs.google.com/forms/d/10U-lTYO4J1fgSTjfKWl-EiqjFDnLLqaYvxtLVHSpUf0/viewform?edit_requested=true" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; or reach out to their partner representative to explore additional collaboration opportunities.  &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We’re dedicated to empowering our partners with the tools, resources, and support they need to build and deploy successful AI agents. We're excited to see the transformative solutions they create and the positive impact they'll have on customers in the coming year.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Wed, 20 Nov 2024 17:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/topics/partners/build-deploy-and-promote-ai-agents-through-the-google-cloud-ai-agent-ecosystem-program/</guid><category>Partners</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Build, deploy, and promote AI agents through Google Cloud’s AI agent ecosystem</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/topics/partners/build-deploy-and-promote-ai-agents-through-the-google-cloud-ai-agent-ecosystem-program/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Kevin Ichhpurani</name><title>President, Global Partner Organization, Google Cloud</title><department></department><company></company></author></item><item><title>Google Cloud NetApp Volumes now available for OpenShift on Google Cloud</title><link>https://cloud.google.com/blog/topics/partners/netapp-volumes-now-available-for-openshift-on-google-cloud/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;As a result of &lt;/span&gt;&lt;a href="https://developers.redhat.com/articles/2024/09/23/red-hat-openshift-dedicated-google-cloud-integration?sc_cid=701f2000000txokAAA&amp;amp;utm_source=bambu&amp;amp;utm_medium=organic_social" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;new joint efforts across NetApp, Red Hat and Google Cloud&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, we are announcing support for &lt;/span&gt;&lt;a href="https://cloud.google.com/netapp-volumes"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Cloud NetApp Volumes&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; in OpenShift on Google Cloud through &lt;/span&gt;&lt;a href="https://www.netapp.com/blog/trident-24-10-best-storage-kubernetes/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;NetApp Trident Version 24.10&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. This enables joint customers to take advantage of Google Cloud infrastructure that’s optimized for OpenShift, reduce operational toil, and streamline migration of complex workloads.&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;The power of OpenShift-optimized infrastructure&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Red Hat and Google Cloud have a long history of collaborating on and contributing to Kubernetes as well as other Cloud Native Compute Foundation (CNCF) projects including Istio, Knative and Tekton. Together, these projects make up the basis for &lt;/span&gt;&lt;a href="https://www.redhat.com/en/technologies/cloud-computing/openshift" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;OpenShift&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, Red Hat’s platform that helps developers build, deploy, and manage applications. In fact, Google and Red Hat have been collaborating since before Kubernetes was even conceived, including co-developing Cgroups, a precursor to Linux containers. When Google open-sourced Kubernetes, Red Hat was one of the first to jump on board, betting the Red Hat OpenShift platform on the new open-source standard. Today, Google and Red Hat hold prominent leadership roles in Kubernetes governance, and are &lt;/span&gt;&lt;a href="https://k8s.devstats.cncf.io/d/9/companies-table" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;#1 and #2 largest contributors to Kubernetes&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, respectively&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;.&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Google Cloud infrastructure is highly optimized for OpenShift. &lt;/span&gt;&lt;a href="https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Custom machine shapes&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; let you optimize OpenShift Pods:Nodes bin-packing, reducing how much compute capacity you need to provision for a typical OpenShift workload. &lt;/span&gt;&lt;a href="https://cloud.google.com/compute/docs/disks/storage-pools"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Hyperdisk Storage Pools&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; enables thin-provisioning for OpenShift PersistentVolumes, reducing the amount of storage that needs to be provisioned. Additionally, support for &lt;/span&gt;&lt;a href="https://cloud.google.com/compute/docs/instances/live-migration-process"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;live migration&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; in a wide array of Compute Engine families lets you provide higher uptime guarantees for stateful OpenShift workloads, which are common in enterprise application portfolios.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;And when you deploy OpenShift workloads on Google Cloud, you can count on access to a deep bench of L3/ L4 engineers who are experts in the OpenShift runtime core components (in Kubernetes) given Google’s staff strong participation as core maintainers and technical leads in Kubernetes, providing you with enterprise-grade support and coverage for mission-critical workloads.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-aside"&gt;&lt;dl&gt; &lt;dt&gt;aside_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;title&amp;#x27;, &amp;#x27;Try Google Cloud for free&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e80890c16a0&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;Get started for free&amp;#x27;), (&amp;#x27;href&amp;#x27;, &amp;#x27;https://console.cloud.google.com/freetrial?redirectPath=/welcome&amp;#x27;), (&amp;#x27;image&amp;#x27;, None)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;NetApp Volumes storage comes to OpenShift on Google Cloud&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;When you deploy OpenShift workloads on Google Cloud, there’s a wide array of options for modernizing your operations, with OpenShift-native integrations into managed infrastructure services across compute, networking, storage, monitoring/logging, secrets/encryption, serverless, CI/CD, etc.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;These managed infrastructure services give you the ability to “carry much fewer pagers” than you typically would with an on-prem OpenShift deployment. However, sometimes you are migrating applications that have requirements or dependencies on specific solutions for infrastructure pillars (such as storage). The typical approach is to rely on self-managing the architecture — and going back to carrying pagers…&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;With support for Google Cloud NetApp Volumes in OpenShift, you benefit from the best of both worlds for your file storage needs: the modernization, toil-reduction, and efficiency benefits of a managed service, with enterprise-ready features, compatibility, and familiarity of NetApp on-premises storage.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;You can maximize data performance and reliability for your Red Hat OpenShift workloads on Google Cloud by leveraging high-performance file storage on Google Cloud infrastructure while using NetApp Volumes features like automated snapshots, and Red Hat OpenShift-native persistent storage integration helps ensure high availability and fault tolerance across your workloads. &lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Streamlined deployment for a variety of workloads&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Collaboration between Google Cloud, NetApp and Red Hat makes it easier to quickly configure and deploy Red Hat OpenShift clusters and workloads in Google Cloud with NetApp Volumes for file storage, with streamlined access to Google Cloud IAM, service account management, and the Certificate Authority Service, among others. NetApp Volumes provides as small as 1 GiB volumes, read-write many (RWX) PVs, low-latency performance and up to 12.5 GiB/sec throughput with large volumes, all while protecting your applications and data with customer managed encryption keys (CMEK). &lt;/span&gt;&lt;/p&gt; &lt;p style="padding-left: 40px;"&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;“Google Cloud is heavily invested in our partner community with the common goal of providing a world-class experience for our customers. Building on our long-standing technical collaborations with industry-leading partners like Red Hat and NetApp, we are deeply aligned on the core principles of both openness and reliability to help enterprise customers get what they need done. Our customers are increasingly turning to us to help them transform their business and together, and through a joint partnership with NetApp and Red Hat, we can help customers with a new way to cloud, while leveraging familiarity and consistency that brings together innovations across their business.” &lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;- Stephen Orban, Google Cloud VP of Migrations, ISVs, and Marketplace &lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;D&lt;/strong&gt;&lt;strong style="vertical-align: baseline;"&gt;e-risk cloud adoption while accelerating time to value&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We are partnering with one of our trusted resellers,&lt;/span&gt; &lt;a href="https://convergetp.com/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Converge Technology Solutions&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, to bridge on-premises, multi-cloud, and Google Cloud, and provide unified management and operational experience for your Red Hat OpenShift and NetApp workloads. Converge’s expertise in Red Hat OpenShift and NetApp technologies helps ensure solutions are architected for peak performance, scalability, and reliability. You can take advantage of their deep understanding of hybrid cloud and Kubernetes/Red Hat OpenShift to provide a smooth transition to Google Cloud, minimizing disruption and maximizing uptime. At the same time, Converge’s best-practice-aligned methodologies help streamline Google Cloud deployments while integrating Red Hat OpenShift and NetApp Volumes, so you can run persistent containerized workloads on an enterprise-class hybrid cloud environment.&lt;/span&gt;&lt;/p&gt; &lt;p style="padding-left: 40px;"&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;"Converge is thrilled to partner with Google Cloud, Red Hat, and NetApp to deliver this powerful new solution for OpenShift on Google Cloud. Our deep expertise in hybrid cloud and Kubernetes, coupled with our proven methodologies, ensures a seamless transition and rapid time-to-value for clients adopting this innovative offering. This collaboration empowers enterprises to modernize their operations, optimize their infrastructure, and unlock the full potential of containerized workloads in a secure and reliable hybrid cloud environment." &lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;- David Luftig, Executive Vice President Strategy and Solutions, Converge Technology Solutions&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Connect with us to learn more&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Are you ready to get more value from the cloud? Learn more about &lt;/span&gt;&lt;a href="https://console.cloud.google.com/marketplace/browse?filter=partner:Red%20Hat"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Red Hat solutions on Google Cloud Marketplace&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, and &lt;/span&gt;&lt;a href="https://cloud.google.com/netapp-volumes?e=48754805"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Cloud NetApp Volumes&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. You can also contact your Red Hat, NetApp, or &lt;/span&gt;&lt;a href="https://cloud.google.com/contact/?utm_source=google&amp;amp;utm_medium=cpc&amp;amp;utm_campaign=na-none-all-en-dr-sitelink-all-all-trial-b-gcp-1707554&amp;amp;utm_content=text-ad-none-any-DEV_c-CRE_665735422256-ADGP_Hybrid%20%7C%20BKWS%20-%20MIX%20%7C%20Txt-Management%20Tools-Cloud%20Console-KWID_43700078974892313-kwd-296393718382-userloc_9032024&amp;amp;utm_term=KW_google%20cloud%20console-ST_google%20cloud%20console-NET_g-&amp;amp;gad_source=1&amp;amp;gclid=CjwKCAjw48-vBhBbEiwAzqrZVBb-QVEQkCMsFolm9kdz54UTJFnPKTW2Q9Z7ruunhFcf6p7sU9z1-BoChyYQAvD_BwE&amp;amp;gclsrc=aw.ds"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google sales&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; representatives, or reach out to &lt;/span&gt;&lt;a href="https://convergetp.com/contact-us/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Converge Technology specialists&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; to discuss your specific use cases. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;About NetApp&lt;br/&gt;&lt;/strong&gt;&lt;a href="https://www.netapp.com/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;NetApp&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; is the intelligent data infrastructure company, combining unified data storage, integrated data services, and CloudOps solutions to turn a world of disruption into opportunity for every customer. NetApp creates silo-free infrastructure, harnessing observability and AI to enable the industry’s best data management. As the only enterprise-grade storage service natively embedded in the world’s biggest clouds, our data storage delivers seamless flexibility. In addition, our data services create a data advantage through superior cyber resilience, governance, and application agility. Our CloudOps solutions provide continuous optimization of performance and efficiency through observability and AI. No matter the data type, workload, or environment, with NetApp you can transform your data infrastructure to realize your business possibilities.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;About Red Hat, Inc. &lt;br/&gt;&lt;/strong&gt;&lt;span&gt;&lt;a href="https://www.redhat.com/en" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Red Hat&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; is the world’s leading provider of enterprise open source software solutions, using a community-powered approach to deliver reliable and high-performing Linux, hybrid cloud, container, and Kubernetes technologies. Red Hat helps customers integrate new and existing IT applications, develop cloud-native applications, standardize on our industry-leading operating system, and automate, secure, and manage complex environments. &lt;/span&gt;&lt;a href="https://access.redhat.com/recognition" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Award-winning&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;support, training, and consulting services make Red Hat a &lt;/span&gt;&lt;a href="https://www.redhat.com/en/about/company" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;trusted adviser to the Fortune 500&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. As a strategic partner to cloud providers, system integrators, application vendors, customers, and open source communities, Red Hat can help organizations prepare for the digital future. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;About Converge &lt;br/&gt;&lt;/strong&gt;&lt;a href="https://convergetp.com/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Converge Technology Solutions&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; Corp. is a services-led, software-enabled, IT &amp;amp; Cloud Solutions provider focused on delivering industry-leading solutions. Converge’s global approach delivers advanced analytics, artificial intelligence (AI), application modernization, cloud platforms, cybersecurity, digital infrastructure, and digital workplace offerings to clients across various industries. The Company supports these solutions with advisory, implementation, and managed services expertise across all major IT vendors in the marketplace. This multi-faceted approach enables Converge to address the unique business and technology requirements for all clients in the public and private sectors. For more information, visit convergetp.com.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Tue, 19 Nov 2024 17:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/topics/partners/netapp-volumes-now-available-for-openshift-on-google-cloud/</guid><category>Containers &amp; Kubernetes</category><category>Partners</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Google Cloud NetApp Volumes now available for OpenShift on Google Cloud</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/topics/partners/netapp-volumes-now-available-for-openshift-on-google-cloud/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Pablo Osinaga</name><title>Product Manager</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Sean Derrington</name><title>Group Product Manager, Storage</title><department></department><company></company></author></item><item><title>Realizing AI's Full Potential where Workforce, Security, &amp; Collaboration Matter</title><link>https://cloud.google.com/blog/topics/public-sector/realizing-ais-full-potential-where-workforce-security-collaboration-matter/</link><description>&lt;div class="block-paragraph"&gt;&lt;p data-block-key="pmwmd"&gt;AI is rapidly reshaping the public sector, ushering in a new era of intelligent and AI-powered service delivery and mission impact. Chief AI Officers (CAIOs) and other agency leaders play a critical role as AI becomes more pervasive. At Google, we've long believed that AI is a foundational and transformational technology, with the potential to benefit people and society. Realizing its full potential to improve government services, enhance decision-making, and ultimately create a more efficient and effective public sector requires leadership and a clear commitment.&lt;/p&gt;&lt;p data-block-key="6o8j0"&gt;Google recently commissioned IDC to conduct a study that surveyed 161 federal CAIOs, government AI leaders and other decision makers to understand how agency leaders are leading in this new AI era – and the value they are already bringing when it comes to AI governance, collaboration, and building public trust and citizen engagement¹. I recently sat down with Ruthbea Yesner, Vice-President of IDC Government Insights to explore the key findings of this research and what it means for the public sector - see excerpts of our discussion and key insights below.&lt;/p&gt;&lt;h3 data-block-key="brqaa"&gt;&lt;b&gt;Key Finding #1: 62% of those surveyed say strengthening cybersecurity is a top motivator for AI investments&lt;/b&gt;&lt;/h3&gt;&lt;p data-block-key="bo2io"&gt;Agencies are embracing AI to enhance cybersecurity and protect critical infrastructure - with 60% of respondents indicating that internal cybersecurity protection is their top AI/ML use case. Over 40% of federal agencies surveyed state that protecting critical infrastructure is a key driver for their AI investments going forward. Additionally, respondents believe that applying AI to strengthen cybersecurity and protect critical infrastructure will deliver positive outcomes in just 9 months; the second fastest time to value of any expected outcome of AI.&lt;/p&gt;&lt;p data-block-key="1ogg8"&gt;CAIOs and other agency leaders play a crucial role in driving AI adoption and ensuring that agencies are able to leverage this powerful technology. While 50% of federal agencies have already appointed a CAIO, the rest are expected to follow soon. As adoption accelerates and AI maturity grows, CAIOs need to prioritize robust cybersecurity measures and risk mitigation strategies in all AI initiatives, ensuring the protection of sensitive data and systems.&lt;/p&gt;&lt;h3 data-block-key="55h7h"&gt;&lt;b&gt;Key Finding #2: Higher AI maturity increases likelihood to explore other Gen AI use cases by 4x&lt;/b&gt;&lt;/h3&gt;&lt;p data-block-key="adeg9"&gt;IDC created a 5-phase approach to assessing AI maturity and the findings are remarkable - 50% of agencies surveyed reported high levels of AI maturity which corresponds to mature behaviors like piloting and implementing generative AI use cases to drive innovation and mission impact. Mature AI agencies are embracing an innovation culture and are focused on AI use cases and projects with high potential for impact.&lt;/p&gt;&lt;p data-block-key="3dntd"&gt;We’re seeing some agencies solving for one specific problem or use case and creating quick wins and the appetite to do more, and in other cases, they are tackling big, complex challenges head-on. By adopting an AI-first mindset, incorporating AI into their workflows and scaling their use of AI, they are creating the groundswell to do more. This has a compounding effect as AI becomes more pervasive across the agency, and individuals increasingly feel part of its positive cultural change and impact.&lt;/p&gt;&lt;/div&gt; &lt;div class="block-pull_quote"&gt;&lt;div class="uni-pull-quote h-c-page"&gt; &lt;section class="h-c-grid"&gt; &lt;div class="uni-pull-quote__wrapper h-c-grid__col h-c-grid__col--8 h-c-grid__col-m--6 h-c-grid__col-l--6 h-c-grid__col--offset-2 h-c-grid__col-m--offset-3 h-c-grid__col-l--offset-3"&gt; &lt;div class="uni-pull-quote__inner-wrapper h-c-copy h-c-copy"&gt; &lt;q class="uni-pull-quote__text"&gt;This has a catalyst effect, it just takes one person doing something amazing with AI to motivate others to learn and apply AI&lt;/q&gt; &lt;cite class="uni-pull-quote__author"&gt; &lt;span class="uni-pull-quote__author-meta"&gt; &lt;strong class="h-u-font-weight-medium"&gt;Ruthbea Yesner&lt;/strong&gt;&lt;br /&gt; Vice-President of IDC Government Insights &lt;/span&gt; &lt;/cite&gt; &lt;/div&gt; &lt;/div&gt; &lt;/section&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph"&gt;&lt;p data-block-key="pmwmd"&gt;Generative AI is the future - attracting 42% of AI investments. Agencies are eager to explore its potential - and innovation will be a key motivator for continued AI investment going forward. As organizations prioritize AI, the CAIO role becomes even more multifaceted, demanding not just technical expertise but also visionary leadership to drive organizational culture change and develop a truly AI-enabled workforce.&lt;/p&gt;&lt;p data-block-key="2nhld"&gt;We believe that a robust AI maturity model, as outlined in &lt;a href="https://inthecloud.withgoogle.com/caio-playbook/dl-cd.html" target="_blank"&gt;IDC’s The Chief Artificial Intelligence Officer (CAIO) Playbook: A Practical Guide for Advancing AI Innovation in Government&lt;/a&gt;, is key to guiding agencies in their adoption of AI and fostering organizational readiness. By providing a clear framework for progress, agencies can strategically navigate the complexities of AI implementation and unlock its full potential.&lt;/p&gt;&lt;h3 data-block-key="501k5"&gt;&lt;b&gt;Key Finding #3: An AI-ready workforce is the key to unlocking AI’s potential&lt;/b&gt;&lt;/h3&gt;&lt;p data-block-key="c3jed"&gt;The rapid pace of AI adoption has highlighted a significant challenge: a shortage of AI expertise. 39% percent of survey respondents report that their biggest challenge is a lack of in-house AI skills and expertise, and 68% are focused on training and retaining their workforce.&lt;/p&gt;&lt;p data-block-key="6gtdf"&gt;Google is tackling this skills challenge head-on. We recently announced our &lt;a href="https://cloud.google.com/blog/topics/training-certifications/google-cloud-launchpad-veterans-to-cloud-careers?e=48754805"&gt;Google Cloud Launchpad for Veterans&lt;/a&gt; - a no-cost training and certification journey to equip veterans in all roles and at all levels with the cloud knowledge and skills needed to drive innovation, and contribute to their employer’s digital transformation strategy. And we also announced a new AI training initiative through Google.org’s AI Opportunity Fund – with &lt;a href="https://blog.google/outreach-initiatives/google-org/google-org-public-sector-ai-funding/" target="_blank"&gt;&lt;i&gt;$15 million&lt;/i&gt; for AI skills training for US government workers&lt;/a&gt; for the Partnership for Public Service and InnovateUS. This also includes a grant to the Partnership for Public Service to establish the new Center for Federal AI to provide AI skills and literacy to federal leaders and workers, including 2,000 senior government officials.&lt;/p&gt;&lt;p data-block-key="a0954"&gt;One thing is clear - AI requires leadership, and the CAIO is an important new C-suite role signaling the government’s commitment to harness AI and reach its full potential. CAIOs and other agency leaders are critical to charting this new AI era and providing the expertise and leadership necessary to leverage AI for the public good.&lt;/p&gt;&lt;p data-block-key="abqvu"&gt;To learn more about how CAIOs are leading in this new AI era, download &lt;a href="https://inthecloud.withgoogle.com/caio-playbook/dl-cd.html" target="_blank"&gt;The Chief Artificial Intelligence Officer (CAIO) Playbook: A Practical Guide for Advancing AI Innovation in Governmen&lt;/a&gt;t. By embracing its recommendations, agencies can create their own roadmap to drive AI adoption to accelerate mission outcomes and impact. To hear the full interview with Ruthbea Yesner, Vice-President of IDC Government Insights, please &lt;a href="https://cloudonair.withgoogle.com/events/public-sector-2024-vod?utm_source=Website&amp;amp;utm_medium=Digital&amp;amp;utm_campaign=Google%2BPublic%2BSector%2BSummit%2B2024" target="_blank"&gt;&lt;b&gt;register&lt;/b&gt;&lt;/a&gt; to join the Google Public Sector Summit On-Demand on December 3rd.&lt;br/&gt;&lt;/p&gt;&lt;p data-block-key="8p095"&gt;&lt;i&gt;&lt;sub&gt;¹ IDC Signature White Paper, The Chief Artificial Intelligence Officer (CAIO) Playbook: A Practical Guide for Advancing AI Innovation in Government, sponsored by Google Public Sector, Doc# US52616824, October 2024.&lt;/sub&gt;&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Tue, 19 Nov 2024 17:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/topics/public-sector/realizing-ais-full-potential-where-workforce-security-collaboration-matter/</guid><category>Public Sector</category><media:content height="540" url="https://storage.googleapis.com/gweb-cloudblog-publish/images/Screenshot_2024-11-18_10.53.22_AM.max-600x600.png" width="540"></media:content><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Realizing AI's Full Potential where Workforce, Security, &amp; Collaboration Matter</title><description></description><image>https://storage.googleapis.com/gweb-cloudblog-publish/images/Screenshot_2024-11-18_10.53.22_AM.max-600x600.png</image><site_name>Google</site_name><url>https://cloud.google.com/blog/topics/public-sector/realizing-ais-full-potential-where-workforce-security-collaboration-matter/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Katharyn White</name><title>Director of Marketing, Public Sector</title><department></department><company>Google Cloud</company></author></item><item><title>The overwhelmed person’s guide to Google Cloud: week of November 14</title><link>https://cloud.google.com/blog/products/gcp/the-overwhelmed-persons-guide-to-google-cloud/</link><description>&lt;div class="block-paragraph"&gt;&lt;p data-block-key="2u57j"&gt;&lt;i&gt;The content in this blog post was originally published last week as a members-only email to the Google Cloud Innovators community. To get this content directly in your inbox (not to mention&lt;/i&gt; &lt;a href="https://cloud.google.com/innovators/?utm_source=cgc-blog&amp;amp;utm_medium=blog&amp;amp;utm_campaign=FY23-Q4-Global-OPGGCWeekly-CGCBlog-EN&amp;amp;utm_content=opggc&amp;amp;utm_term=-"&gt;&lt;i&gt;lots of other benefits&lt;/i&gt;&lt;/a&gt;&lt;i&gt;),&lt;/i&gt; &lt;a href="https://cloud.google.com/innovators/?utm_source=cgc-blog&amp;amp;utm_medium=blog&amp;amp;utm_campaign=FY23-Q4-Global-OPGGCWeekly-CGCBlog-EN&amp;amp;utm_content=opggc&amp;amp;utm_term=-"&gt;&lt;i&gt;sign up to be an Innovator today&lt;/i&gt;&lt;/a&gt;&lt;i&gt;.&lt;/i&gt;&lt;/p&gt;&lt;hr/&gt;&lt;p data-block-key="di9mo"&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-paragraph"&gt;&lt;h3 data-block-key="a3czl"&gt;&lt;b&gt;New and shiny&lt;/b&gt;&lt;/h3&gt;&lt;p data-block-key="6s4ls"&gt;&lt;i&gt;Three new things to know this week&lt;/i&gt;&lt;/p&gt;&lt;ul&gt;&lt;li data-block-key="cdnqa"&gt;&lt;b&gt;Ground Gemini’s answers with Google Search in Vertex AI and Google AI Studio.&lt;/b&gt; There’s brand new support in &lt;a href="https://aistudio.google.com/welcome" target="_blank"&gt;Google AI Studio&lt;/a&gt; for connecting the Gemini model’s output to verifiable sources of data through Google Search. This functionality is already part of Vertex AI, but both platforms now support &lt;i&gt;dynamic retrieval&lt;/i&gt;. This means that grounding only happens if we predict that the query needs it. See &lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/ground-gemini"&gt;how it works in Vertex AI&lt;/a&gt;, and &lt;a href="https://ai.google.dev/gemini-api/docs/grounding" target="_blank"&gt;learn how to get started in Google AI Studio&lt;/a&gt;.&lt;/li&gt;&lt;li data-block-key="evql6"&gt;&lt;b&gt;Use Google’s own Arm-based CPUs.&lt;/b&gt; The Axion CPU is now ready for you! Get some excellent price performance and better energy efficiency by &lt;a href="https://cloud.google.com/blog/products/compute/try-c4a-the-first-google-axion-processor"&gt;deploying C4A VMs&lt;/a&gt; powered by our first Arm-based processors.&lt;/li&gt;&lt;li data-block-key="88s5"&gt;&lt;b&gt;Business process automation service gets AI upgrade, increased sophistication.&lt;/b&gt; It’s likely flying below your radar, but take a look at Google Cloud Application Integration. You can model out workflows for connecting systems in all sorts of ways. There’s &lt;a href="https://cloud.google.com/application-integration/docs/build-integrations-gemini"&gt;now Gemini Code Assist functionality&lt;/a&gt; to help you build integrations, model out &lt;a href="https://cloud.google.com/application-integration/docs/configure-data-transformer-script-task"&gt;data transformations&lt;/a&gt;, create &lt;a href="https://cloud.google.com/application-integration/docs/test-cases"&gt;test cases&lt;/a&gt;, and even apply &lt;a href="https://cloud.google.com/application-integration/docs/error-handling-strategy"&gt;complex retry strategies&lt;/a&gt;.&lt;/li&gt;&lt;li data-block-key="e6rpa"&gt;&lt;b&gt;Build and Deploy Gen AI Applications on Google Cloud with Genkit and Go.&lt;/b&gt; &lt;a href="https://cloudonair.withgoogle.com/events/build-and-deploy-gen-ai-apps-on-google-cloud-with-genkit-and-go?utm_source=cloud_sfdc&amp;amp;utm_medium=email&amp;amp;utm_campaign=FY24-Q4-global-GOO27246-onlineevent-er-Build-Gen-AI-With-Genkit-and-Go-GLOBAL&amp;amp;utm_content=innovators_newsletter" target="_blank"&gt;Join us&lt;/a&gt; on November 19th for a hands-on workshop to build and deploy a generative AI app on Google Cloud! Use Genkit, Vertex AI, and Go to create and automate a reusable app deployment pipeline—perfect for beginners and pros alike.&lt;/li&gt;&lt;/ul&gt;&lt;hr/&gt;&lt;h3 data-block-key="742le"&gt;&lt;b&gt;Watch this&lt;/b&gt;&lt;/h3&gt;&lt;p data-block-key="f7e37"&gt;&lt;b&gt;Learn advanced RAG techniques&lt;/b&gt;. Watch this excellent video series to get up to speed on LLM fundamentals. This edition looks at retrieval augmented generation and enhancing quality of responses.&lt;/p&gt;&lt;/div&gt; &lt;div class="block-video"&gt; &lt;div class="article-module article-video "&gt; &lt;figure&gt; &lt;a class="h-c-video h-c-video--marquee" href="https://youtube.com/watch?v=sGvXO7CVwc0" data-glue-modal-trigger="uni-modal-sGvXO7CVwc0-" data-glue-modal-disabled-on-mobile="true"&gt; &lt;div class="article-video__aspect-image" style="background-image: url(https://storage.googleapis.com/gweb-cloudblog-publish/original_images/Watch_This_Vst77H0.png);"&gt; &lt;span class="h-u-visually-hidden"&gt;A captured graphic of a Google Cloud YouTube video where Aja and Jason explain advanced retrieval augmented generation techniques&lt;/span&gt; &lt;/div&gt; &lt;svg role="img" class="h-c-video__play h-c-icon h-c-icon--color-white"&gt; &lt;use xlink:href="#mi-youtube-icon"&gt;&lt;/use&gt; &lt;/svg&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;div class="h-c-modal--video" data-glue-modal="uni-modal-sGvXO7CVwc0-" data-glue-modal-close-label="Close Dialog"&gt; &lt;a class="glue-yt-video" data-glue-yt-video-autoplay="true" data-glue-yt-video-height="99%" data-glue-yt-video-vid="sGvXO7CVwc0" data-glue-yt-video-width="100%" href="https://youtube.com/watch?v=sGvXO7CVwc0" ng-cloak&gt; &lt;/a&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;hr/&gt; &lt;h3 data-draftjs-conductor-fragment='{"blocks":[{"key":"21jp","text":"Community cuts","type":"header-three","depth":0,"inlineStyleRanges":[{"offset":0,"length":14,"style":"BOLD"}],"entityRanges":[],"data":{}}],"entityMap":{}}'&gt;Community cuts&lt;/h3&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/Updated_CommunityCuts-header_v5.max-1000x1000.png" alt="Community Cuts"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph"&gt;&lt;p data-block-key="h9w35"&gt;&lt;i&gt;Every week I round up some of my favorite links from builders around the Google Cloud-iverse. Want to see your blog or video in the next issue?&lt;/i&gt; &lt;a href="mailto:rseroter@google.com"&gt;&lt;i&gt;Drop Richard a line!&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li data-block-key="d40qc"&gt;&lt;b&gt;“Perfect” is a strong word, but yeah, we’re pretty good.&lt;/b&gt; Simon at SADA &lt;a href="https://sada.com/blog/why-google-cloud-is-perfect-for-genai-developers/" target="_blank"&gt;makes the case&lt;/a&gt; that you should be looking at Google Cloud for your AI work because of our models, security posture, tools, and expertise. Who am I to disagree?&lt;/li&gt;&lt;li data-block-key="7sdng"&gt;&lt;b&gt;Build an ETL pipeline locally and then transition to the cloud.&lt;/b&gt; &lt;a href="https://medium.com/@thomas.sigmund/data-pipelines-transitioning-from-local-environments-to-the-cloud-with-gcp-8ca5d9293b25" target="_blank"&gt;Thomas looks at&lt;/a&gt; the exercise of taking a working data pipeline and using our data and compute services to get it running successfully in Google Cloud.&lt;/li&gt;&lt;li data-block-key="dou96"&gt;&lt;b&gt;What exactly is Firebase?&lt;/b&gt; It’s been part of Google for a while and is used by mobile devs around the world. Now it’s appealing to new audiences, and this post from &lt;a href="https://medium.com/@hemantkumarceo001/understanding-google-firebase-everything-you-need-to-know-3a443650aaa3" target="_blank"&gt;Hermant explains&lt;/a&gt; what it offers to modern developers.&lt;/li&gt;&lt;/ul&gt;&lt;hr/&gt;&lt;p data-block-key="eh7ss"&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;div data-draftjs-conductor-fragment='{"blocks":[{"key":"12an8","text":"Learn and grow","type":"header-three","depth":0,"inlineStyleRanges":[{"offset":0,"length":14,"style":"BOLD"}],"entityRanges":[],"data":{}},{"key":"2ferk","text":"Three ways to build your cloud muscles this week","type":"unstyled","depth":0,"inlineStyleRanges":[{"offset":0,"length":48,"style":"ITALIC"}],"entityRanges":[],"data":{}},{"key":"fs3o9","text":"Test-driven development with Ruby and Gemini Code Assist. This codelab offers a useful look at how to do iterative test-driven development, and then deploy an app to Cloud Functions.","type":"unordered-list-item","depth":0,"inlineStyleRanges":[{"offset":0,"length":56,"style":"BOLD"}],"entityRanges":[{"offset":58,"length":12,"key":0}],"data":{}},{"key":"9mns8","text":"What can you use to build generative AI apps. This one is from me. I wanted to learn more about the options for building generative AI apps using native APIs, meta frameworks, and low-code tools. ","type":"unordered-list-item","depth":0,"inlineStyleRanges":[{"offset":0,"length":44,"style":"BOLD"}],"entityRanges":[{"offset":67,"length":22,"key":1}],"data":{}},{"key":"ejv3j","text":"Let’s optimize our continuous integration. Darren wrote up a great post that explores a handful of ways to tune your CI pipelines. Even if you don’t use Cloud Build, you’ll take something useful away from this. ","type":"unordered-list-item","depth":0,"inlineStyleRanges":[{"offset":0,"length":41,"style":"BOLD"}],"entityRanges":[{"offset":43,"length":28,"key":2}],"data":{}},{"key":"soj8","text":"New Skills Boost training for learning advanced GKE topics. We just published four new courses for learners ready to take the next step with GKE:","type":"unordered-list-item","depth":0,"inlineStyleRanges":[{"offset":0,"length":60,"style":"BOLD"}],"entityRanges":[],"data":{}},{"key":"bc8a4","text":"Manage Multi-cluster Workloads at Scale with GKE Fleets and Teams","type":"unordered-list-item","depth":0,"inlineStyleRanges":[],"entityRanges":[{"offset":0,"length":65,"key":3}],"data":{}},{"key":"40s8b","text":"Automate GKE Configurations with Config Sync and Policy Controller","type":"unordered-list-item","depth":0,"inlineStyleRanges":[],"entityRanges":[{"offset":0,"length":66,"key":4}],"data":{}},{"key":"8n4uo","text":"Manage and Secure Distributed Services with GKE Managed Service Mesh ","type":"unordered-list-item","depth":0,"inlineStyleRanges":[],"entityRanges":[{"offset":0,"length":68,"key":5}],"data":{}},{"key":"bhurc","text":"Deploying a Multi-Cluster Gateway Across GKE Clusters","type":"unordered-list-item","depth":0,"inlineStyleRanges":[],"entityRanges":[{"offset":0,"length":53,"key":6}],"data":{}},{"key":"9448n","text":" ","type":"atomic","depth":0,"inlineStyleRanges":[],"entityRanges":[{"offset":0,"length":1,"key":7}],"data":{}},{"key":"ff8qh","text":"One more thing","type":"header-three","depth":0,"inlineStyleRanges":[{"offset":0,"length":14,"style":"BOLD"}],"entityRanges":[],"data":{}}],"entityMap":{"0":{"type":"LINK","mutability":"MUTABLE","data":{"url":"https://codelabs.developers.google.com/tdd-ruby-app-duetai?hl=en#0"}},"1":{"type":"LINK","mutability":"MUTABLE","data":{"url":"https://seroter.com/2024/04/30/heres-what-id-use-to-build-a-generative-ai-application-in-2024/"}},"2":{"type":"LINK","mutability":"MUTABLE","data":{"url":"https://medium.com/google-cloud/optimizing-ci-in-google-cloud-build-1ae2562ccaa1"}},"3":{"type":"LINK","mutability":"MUTABLE","data":{"url":"https://www.cloudskillsboost.google/focuses/89749?parent=catalog"}},"4":{"type":"LINK","mutability":"MUTABLE","data":{"url":"https://www.cloudskillsboost.google/focuses/89750?parent=catalog"}},"5":{"type":"LINK","mutability":"MUTABLE","data":{"url":"https://www.cloudskillsboost.google/focuses/89751?parent=catalog"}},"6":{"type":"LINK","mutability":"MUTABLE","data":{"url":"https://www.cloudskillsboost.google/focuses/89752?parent=catalog"}},"7":{"type":"HORIZONTAL_RULE","mutability":"IMMUTABLE","data":{}}}}'&gt; &lt;h3 class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="atitm-0-0"&gt;&lt;span data-offset-key="atitm-0-0"&gt;Learn and grow&lt;/span&gt;&lt;/h3&gt; &lt;div class="Draftail-block--unstyled" data-block="true" data-editor="d7ej8" data-offset-key="93ovk-0-0"&gt; &lt;div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="93ovk-0-0"&gt;&lt;span data-offset-key="93ovk-0-0"&gt;Three ways to build your cloud muscles this week&lt;/span&gt;&lt;/div&gt; &lt;div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="93ovk-0-0"&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;In-person Workshop! AI In Action - AlloyDB and Vertex AI Agent Builder. &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;Level up your AI skills with a hands-on journey in building knowledge-driven chat applications! Dive into AlloyDB and Vertex AI Agent Builder to create intelligent, interactive customer solutions.   Sign up now! &lt;/span&gt;&lt;a href="https://rsvp.withgoogle.com/events/ai-in-action-new_york" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;New York - 11/20&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, &lt;/span&gt;&lt;a href="https://rsvp.withgoogle.com/events/ai-in-action-toronto" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Toronto - 11/22&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, &lt;/span&gt;&lt;a href="https://rsvp.withgoogle.com/events/ai-in-action-bay_area" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Bay Area - 12/3&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, &lt;/span&gt;&lt;a href="https://rsvp.withgoogle.com/events/ai-in-action-seattle" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Seattle - 12/5&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. &lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Let’s modernize our old apps. &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;Here’s a &lt;/span&gt;&lt;a href="https://codelabs.developers.google.com/codelabs/app-mod-workshop?hl=en#0" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;great code lab&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; that walks you through, step-by-step, the process to modernize an old PHP app. Learn what it takes to containerize the app, automate the path to production, add generative AI features, and introduce modern operations.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Running Apache Airflow? You have choices. &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;If you’re orchestrating data, there’s a good chance you’ve come across Apache Airflow. &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/products/data-analytics/different-ways-to-run-apache-airflow-on-google-cloud"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;This post points out&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; that you can run it yourself on VMs, use a more managed GKE environment, or embrace a fully managed service with Cloud Composer.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Cloud Workstations is ready for devs in government. &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;You deserve nice things, wherever you may work. Those in restricted environments sometimes have to settle for less. But now, &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/topics/public-sector/fedramp-high-development-in-the-cloud-code-with-cloud-workstations"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Cloud Workstations is FedRAMP High Authorized&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. Curious about Cloud Workstations? Stanal has a good new &lt;/span&gt;&lt;a href="https://medium.com/google-cloud/what-is-gcp-cloud-workstation-df144ff86584" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;overview post&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;strong style="vertical-align: baseline;"&gt;Standard storage format, and all the BigQuery goodness. &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;We just shipped a &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/products/data-analytics/announcing-bigquery-tables-for-apache-iceberg"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;preview of BigQuery tables for Apache Iceberg&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. Use this open format to store data, but get all the lakehouse goodness that BigQuery offers.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; &lt;/div&gt; &lt;figure class="Draftail-block--atomic" contenteditable="false" data-block="true" data-editor="d7ej8" data-offset-key="qahn2-0-0"&gt;&lt;/figure&gt; &lt;hr/&gt; &lt;h3 class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="ati7h-0-0"&gt;&lt;span data-offset-key="ati7h-0-0"&gt;One more thing&lt;/span&gt;&lt;/h3&gt; &lt;/div&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--medium h-c-grid__col h-c-grid__col--4 h-c-grid__col--offset-4 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/One_More_Thing.max-1000x1000.png" alt="222 One More Thing.."&gt; &lt;/a&gt; &lt;figcaption class="article-image__caption "&gt;&lt;p data-block-key="s5t1j"&gt;&lt;a href="https://x.com/JeffDean/status/1851471466543620513"&gt;https://x.com/JeffDean/status/1851471466543620513&lt;/a&gt;&lt;/p&gt;&lt;/figcaption&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph"&gt;&lt;p data-block-key="w6t8h"&gt;&lt;b&gt;Gemini is used across Google to create helpful AI experiences.&lt;/b&gt; Jeff highlights Sundar’s message about the billions of Google users with access to Gemini.&lt;/p&gt;&lt;hr/&gt;&lt;p data-block-key="6lron"&gt;&lt;a href="https://cloud.google.com/innovators/?utm_source=cgc-blog&amp;amp;utm_medium=blog&amp;amp;utm_campaign=FY23-Q4-Global-OPGGCWeekly-CGCBlog-EN&amp;amp;utm_content=opggc&amp;amp;utm_term=-"&gt;&lt;i&gt;Become an Innovator&lt;/i&gt;&lt;/a&gt;&lt;i&gt; to stay up-to-date on the latest news, product updates, events, and learning opportunities with Google Cloud.&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Tue, 19 Nov 2024 17:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/products/gcp/the-overwhelmed-persons-guide-to-google-cloud/</guid><category>Application Modernization</category><category>Application Development</category><category>Google Cloud</category><media:content height="540" url="https://storage.googleapis.com/gweb-cloudblog-publish/images/overwhelmed_persons_guide.max-600x600.png" width="540"></media:content><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>The overwhelmed person’s guide to Google Cloud: week of November 14</title><description></description><image>https://storage.googleapis.com/gweb-cloudblog-publish/images/overwhelmed_persons_guide.max-600x600.png</image><site_name>Google</site_name><url>https://cloud.google.com/blog/products/gcp/the-overwhelmed-persons-guide-to-google-cloud/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Richard Seroter</name><title>Chief Evangelist, Google Cloud</title><department></department><company></company></author></item><item><title>New ways to protect your sensitive data with Chrome Enterprise</title><link>https://cloud.google.com/blog/products/chrome-enterprise/new-ways-to-protect-your-sensitive-data-with-chrome-enterprise/</link><description>&lt;div class="block-paragraph"&gt;&lt;p data-block-key="jy5m0"&gt;Protecting sensitive company data is no longer just a best practice—it’s business critical. In today's world, data breaches can have serious consequences, from financial losses and reputational damage to legal repercussions and operational disruptions. That’s why &lt;a href="https://chromeenterprise.google/products/chrome-enterprise-premium/" target="_blank"&gt;Chrome Enterprise Premium&lt;/a&gt;, our advanced secure enterprise browser offering, includes a growing suite of &lt;b&gt;Data Loss Prevention&lt;/b&gt; (DLP) capabilities to help organizations safeguard their sensitive information and maintain compliance.&lt;/p&gt;&lt;p data-block-key="b4j91"&gt;We &lt;a href="https://cloud.google.com/blog/products/chrome-enterprise/end-user-computing-thats-made-for-today-and-ready-for-whats-next?e=48754805"&gt;recently launched&lt;/a&gt; a number of enhancements to our DLP capabilities, giving you even more granular control over your company's data. This blog post will explore how these new capabilities support your organization’s comprehensive DLP journey—from &lt;b&gt;discovering&lt;/b&gt; potential risks and user behavior, to &lt;b&gt;controlling&lt;/b&gt; data flow with robust security measures, to &lt;b&gt;investigating&lt;/b&gt; potential incidents with detailed reporting and analysis, and finally, to &lt;b&gt;expanding&lt;/b&gt; protection beyond desktops.&lt;/p&gt;&lt;p data-block-key="9olhe"&gt;&lt;b&gt;Discover and understand user behavior&lt;/b&gt;&lt;/p&gt;&lt;p data-block-key="8q9ih"&gt;Understanding how your users interact with data is the first step in preventing data leaks. Chrome Enterprise provides powerful tools to gain visibility into user activity and to identify potential risks:&lt;/p&gt;&lt;p data-block-key="1pj8c"&gt;&lt;b&gt;1. Chrome Security Insights&lt;/b&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/Chrome_Security_Insights.max-1000x1000.png" alt="Chrome Security Insights"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph"&gt;&lt;p data-block-key="hguig"&gt;Chrome Security Insights empowers &lt;a href="https://chromeenterprise.google/products/chrome-enterprise-premium/" target="_blank"&gt;Chrome Enterprise&lt;/a&gt; customers to proactively identify potential threats with simplified security monitoring. This feature monitors key security configurations, security event logging, and 50 common DLP detectors with just a few clicks. Administrators gain valuable insights into high-risk activities through detailed reports on users, domains, and sensitive data transfers, enabling swift identification and remediation of security concerns. Start your 30-day Chrome Enterprise Premium trial and enable Chrome Security Insights &lt;a href="https://support.google.com/chrome/a/answer/14804659?hl=en" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p data-block-key="fpbpu"&gt;&lt;b&gt;2. URL Filtering Audit Mode&lt;/b&gt; [Currently in Public Preview (beta), general availability coming soon]&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/original_images/2_3.png" alt="4 (1)"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph"&gt;&lt;p data-block-key="hguig"&gt;Chrome Enterprise Premium’s URL Filtering Audit Mode offers a valuable tool for organizations seeking to refine their web access policies. It allows administrators to selectively activate monitoring of employee browsing activity without enforcing restrictions, providing insights into users behavior and potential security risks. By analyzing this data, IT and security teams can make informed decisions regarding URL filtering rules, striking an effective balance between security and user productivity. See &lt;a href="https://support.google.com/a/answer/10104358?hl=en#zippy=%2Cexample-audit-chrome-navigations-to-urls-that-match-a-regular-expression-beta" target="_blank"&gt;here&lt;/a&gt; to learn how to configure URL Filtering Audit Mode.&lt;/p&gt;&lt;p data-block-key="1nq5i"&gt;&lt;b&gt;Enforce DLP controls&lt;/b&gt;&lt;/p&gt;&lt;p data-block-key="5hrne"&gt;Once you understand your users' behavior, it's time to put the right controls in place to prevent data leaks. Chrome Enterprise offers a robust set of in-browser protections.&lt;/p&gt;&lt;p data-block-key="13tgn"&gt;&lt;b&gt;1. Copy and paste protections&lt;/b&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/3_1_OXyOiNZ.max-1000x1000.png" alt="3 (1)"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph"&gt;&lt;p data-block-key="hguig"&gt;Controlling how users interact with sensitive data is crucial. Chrome Enterprise Premium's &lt;a href="https://support.google.com/chrome/a/answer/15450083#zippy=%2Crestricted-sources-for-pasting%2Crestricted-destinations-for-pasting%2Cscreenshot-prevention" target="_blank"&gt;copy and paste protections&lt;/a&gt; allow you to restrict or block users from copying sensitive information from web pages or pasting it into unauthorized applications or websites. This granular control helps prevent data exfiltration and ensures that sensitive information stays within designated boundaries, reducing the risk of data breaches and helping with compliance with data protection regulations. The copy and paste protections include:&lt;/p&gt;&lt;ul&gt;&lt;li data-block-key="2mjp0"&gt;&lt;b&gt;Preventing data leakage to Incognito mode:&lt;/b&gt; Concerned about sensitive data being copied into incognito mode, where it can potentially bypass security measures? Chrome Enterprise Premium now allows you to block or warn users when they attempt to copy data between regular browsing sessions and incognito windows.&lt;/li&gt;&lt;li data-block-key="39gde"&gt;&lt;b&gt;Controlling data sharing between applications:&lt;/b&gt; For organizations looking to prevent data leakage to external applications, Chrome Enterprise Premium now allows you to block or warn users when they attempt to copy data from your web applications into external programs like Notepad, Microsoft Word, or other apps.&lt;/li&gt;&lt;li data-block-key="7drjo"&gt;&lt;b&gt;Isolating data between Chrome profiles:&lt;/b&gt; Shared devices or users with multiple Chrome profiles can introduce risks of data cross-contamination. Chrome Enterprise Premium’s new copy-paste controls now allow you to block or warn users when they attempt to move data between different profiles.&lt;/li&gt;&lt;li data-block-key="1a1h6"&gt;&lt;b&gt;Securing sensitive emails&lt;/b&gt;: Emails often contain highly confidential information requiring stringent protection. With Chrome Enterprise Premium, you can implement specific rules, such as blocking any copying from Gmail unless it’s being pasted back into Gmail.&lt;/li&gt;&lt;/ul&gt;&lt;p data-block-key="21c30"&gt;See more details about setting up copy and paste protections &lt;a href="https://support.google.com/chrome/a/answer/15450083#zippy=%2Crestricted-sources-for-pasting%2Crestricted-destinations-for-pasting%2Cscreenshot-prevention" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p data-block-key="2b3tg"&gt;&lt;b&gt;2. Watermarking&lt;/b&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/4_2.max-1000x1000.png" alt="4 (2)"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph"&gt;&lt;p data-block-key="hguig"&gt;Watermarking acts as a deterrent to unauthorized data sharing. Chrome Enterprise Premium allows you to apply visible watermarks to sensitive company documents viewed in the browser, displaying information like the user's email address, date, or a custom message. This helps discourage data exfiltration and makes it easier to trace the source of any leaked information. See &lt;a href="https://support.google.com/chrome/a/answer/14792155?visit_id=638618595108193616-1174257236&amp;amp;p=watermark&amp;amp;rd=1" target="_blank"&gt;here&lt;/a&gt; on how to set up watermarking with Chrome Enterprise Premium&lt;/p&gt;&lt;p data-block-key="8rjon"&gt;&lt;b&gt;3. Screenshot protections&lt;/b&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/original_images/5_g61QgbO.gif" alt="5"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph"&gt;&lt;p data-block-key="hguig"&gt;Screenshots can be a convenient way to capture information, but they also pose a data leak risk. Chrome Enterprise Premium's screenshot protection allows you to prevent users from taking screenshots of sensitive content within the browser. This adds another layer of protection to your DLP strategy, limiting the potential for unauthorized data capture. Learn how to set up screenshot protection rules &lt;a href="https://support.google.com/a/answer/10104358?visit_id=638670424982161017-1017088533&amp;amp;p=dlp-block-screenshot&amp;amp;rd=1#dlp-block-screenshot&amp;amp;zippy=%2Cexample-block-screenshots-and-screen-sharing-from-a-specific-website" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p data-block-key="ed2u6"&gt;These controls work together to create a comprehensive security strategy, limiting the ways in which data can be exfiltrated from your organization.&lt;/p&gt;&lt;p data-block-key="b5j38"&gt;&lt;b&gt;Investigate potential data leaks&lt;/b&gt;&lt;/p&gt;&lt;p data-block-key="ev1hh"&gt;Even with the best preventative measures in place, it's crucial to be prepared to investigate potential security incidents. Chrome Enterprise provides tools to help you quickly identify and address threats:&lt;/p&gt;&lt;p data-block-key="35et7"&gt;&lt;b&gt;1. Evidence Locker&lt;/b&gt; [Currently in Private Preview, general availability coming soon]&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/6_1.max-1000x1000.png" alt="6 (1)"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/7_U4sqpyY.max-1000x1000.png" alt="7"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph"&gt;&lt;p data-block-key="hguig"&gt;The evidence locker provides a secure repository for storing files and data that require further investigation by security teams. For instance, if an employee attempts to download a non-public financial report, Chrome Enterprise Premium can block the action and retain a copy of the file in the evidence locker. This triggers a detailed report for IT and security teams, enabling them to take appropriate investigation and remediation steps. Stay tuned for more information on the upcoming release of Evidence Locker.&lt;/p&gt;&lt;p data-block-key="ecul1"&gt;&lt;b&gt;2. Chrome Extension Telemetry in Google Security Operations&lt;/b&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/8_kT4Rak9.max-1000x1000.png" alt="8"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph"&gt;&lt;p data-block-key="7njvf"&gt;Chrome Enterprise Core integrates with &lt;a href="https://cloud.google.com/security/products/security-operations?e=48754805"&gt;Google Security Operations&lt;/a&gt;, our cloud-native security analytics platform, to provide deeper visibility into browser activity. Previously, detection and response teams were limited to analyzing static extension attributes. Now, you can set dynamic rules that continuously monitor extension behavior in your production environment, enabling proactive identification and remediation of risks before they escalate into threats. For example, you can monitor if extensions are unexpectedly contacting remote hosts or accessing cookies. This enhanced visibility empowers your security team to detect and mitigate data theft and infrastructure attacks in near real-time, significantly reducing your organization's vulnerability to malicious extensions. See how to set this up &lt;a href="https://support.google.com/a/answer/9393909?hl=en" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p data-block-key="9d9np"&gt;&lt;b&gt;Expand protection to other platforms&lt;/b&gt;&lt;/p&gt;&lt;p data-block-key="8lpp2"&gt;Chrome Enterprise is committed to extending its threat protection capabilities beyond the desktop.&lt;/p&gt;&lt;p data-block-key="epa35"&gt;&lt;b&gt;1. Mobile threat protections&lt;/b&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/9_3.max-1000x1000.png" alt="9 (3)"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph"&gt;&lt;p data-block-key="7njvf"&gt;With the growing use of mobile devices for work, securing the browser on these devices is essential. &lt;a href="https://chromeenterprise.google/products/cloud-management/" target="_blank"&gt;Chrome Enterprise Core&lt;/a&gt; is extending its threat protection capabilities to Android devices with &lt;a href="https://chromeenterprise.google/policies/#DownloadRestrictions" target="_blank"&gt;download blocking&lt;/a&gt;. This feature will allow organizations to set policies to prevent users from downloading malicious files flagged by Google Safe Browsing from the web onto their mobile devices, bringing threat protections beyond desktops. Organizations can also choose to block all downloads on Android on managed Chrome. &lt;a href="https://chromeenterprise.google/products/cloud-management/" target="_blank"&gt;Get started&lt;/a&gt; with Chrome Enterprise Core today at no additional costs.&lt;/p&gt;&lt;p data-block-key="6cs5v"&gt;&lt;b&gt;Chrome Enterprise Premium: Your partner in DLP&lt;/b&gt;&lt;/p&gt;&lt;p data-block-key="9uq7j"&gt;These features are just a glimpse into the comprehensive DLP capabilities offered by Chrome Enterprise. We are consistently enhancing our security capabilities to help organizations like yours take a proactive approach to data loss prevention, safeguarding sensitive information at the critical browser layer and ensuring compliance in today's increasingly complex digital landscape.&lt;/p&gt;&lt;p data-block-key="fftig"&gt;&lt;a href="https://chromeenterprise.google/products/cloud-management/" target="_blank"&gt;Start using Chrome Enterprise Core&lt;/a&gt; today at no additional cost to gain foundational security capabilities. Or, experience Chrome Enterprise Premium’s advanced security and DLP features with a free 60-day trial and enable Chrome Security Insights &lt;a href="https://support.google.com/chrome/a/answer/14804659?hl=en" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</description><pubDate>Tue, 19 Nov 2024 15:30:00 +0000</pubDate><guid>https://cloud.google.com/blog/products/chrome-enterprise/new-ways-to-protect-your-sensitive-data-with-chrome-enterprise/</guid><category>Chrome Enterprise</category><media:content height="540" url="https://storage.googleapis.com/gweb-cloudblog-publish/images/23261_DLP_Deep_Dive_announcement__Blog_Heade.max-600x600.png" width="540"></media:content><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>New ways to protect your sensitive data with Chrome Enterprise</title><description></description><image>https://storage.googleapis.com/gweb-cloudblog-publish/images/23261_DLP_Deep_Dive_announcement__Blog_Heade.max-600x600.png</image><site_name>Google</site_name><url>https://cloud.google.com/blog/products/chrome-enterprise/new-ways-to-protect-your-sensitive-data-with-chrome-enterprise/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Niamh Cunningham</name><title>Senior Product Manager</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Tanisha Rai</name><title>Product Manager</title><department></department><company></company></author></item><item><title>Empowering Gemini for Malware Analysis with Code Interpreter and Google Threat Intelligence</title><link>https://cloud.google.com/blog/topics/threat-intelligence/gemini-malware-analysis-code-interpreter-threat-intelligence/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline;"&gt;One of Google Cloud's major missions is to arm security professionals with modern tools to help them defend against the latest threats. Part of that mission involves moving closer to a more autonomous, adaptive approach in threat intelligence automation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;In our latest advancements in malware analysis, we’re equipping Gemini with new capabilities to address obfuscation techniques and obtain real-time insights on indicators of compromise (IOCs). By integrating the &lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/extensions/code-interpreter"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Code Interpreter extension&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, Gemini can now dynamically create and execute code to help deobfuscate specific strings or code sections, while &lt;/span&gt;&lt;a href="https://cloud.google.com/security/products/threat-intelligence"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Threat Intelligence&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; (GTI) &lt;/span&gt;&lt;a href="https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/function-calling"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;function calling&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; enables it to query GTI for additional context on URLs, IPs, and domains found within malware samples. These tools are a step toward transforming Gemini into a more adaptive agent for malware analysis, enhancing its ability to interpret obfuscated elements and gather contextual information based on the unique characteristics of each sample.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Building on this foundation, we previously explored critical preparatory steps with Gemini 1.5 Pro, leveraging its expansive 2-million-token input window to process substantial sections of &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/topics/threat-intelligence/gemini-for-malware-analysis"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;decompiled code in a single pass&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. To further enhance scalability, we introduced Gemini 1.5 Flash, incorporating &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/topics/threat-intelligence/scaling-up-malware-analysis-with-gemini"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;automated binary unpacking&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; through Mandiant Backscatter before the decompilation phase to tackle certain obfuscation techniques. Yet, as any seasoned malware analyst knows, the true challenge often begins once the code is exposed. Malware developers frequently employ obfuscation tactics to conceal critical IOCs and underlying logic. Malware may also download additional malicious code, making it challenging to fully understand the behavior of a given sample.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;For large language models (LLMs), obfuscation techniques and additional payloads create unique challenges. When dealing with obfuscated strings such as URLs, IPs, domains, or file names, LLMs often “hallucinate” without explicit decoding methods. Additionally, LLMs cannot access, for example, URLs that host additional payloads, often resulting in speculative interpretations about the sample’s behavior.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;To help with these challenges, Code Interpreter and GTI function calling tools provide targeted solutions. Code Interpreter enables Gemini to autonomously create and execute custom scripts, as needed, using its own judgment to decode obfuscated elements within a sample, such as strings encoded with XOR-based algorithms. This capability minimizes interpretation errors and enhances Gemini's ability to reveal hidden logic without requiring manual intervention. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Meanwhile, GTI function calling expands Gemini’s reach by retrieving contextualized information from Google Threat Intelligence on suspicious external resources such as URLs, IPs, or domains, providing verified insights without speculative guesses. Together, these tools equip Gemini to better handle obfuscated or externally hosted data, bringing it closer to the goal of functioning as an autonomous agent for malware analysis.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;To illustrate how these enhancements boost Gemini's capabilities, let's look at a practical example. In this case, we’re analyzing a PowerShell script that contains an obfuscated URL that hosts a second-stage payload. This particular sample was previously analyzed with some of the most advanced publicly available LLM models, which incorporate code generation and execution as part of their reasoning process. Despite these capabilities, each model “hallucinated,” generating completely fabricated URLs instead of accurately revealing the correct one.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/gemini-for-malware3-fig1.max-1000x1000.png" alt="Obfuscated PowerShell code sample to be analyzed by Gemini"&gt; &lt;/a&gt; &lt;figcaption class="article-image__caption "&gt;&lt;p data-block-key="rb3he"&gt;Obfuscated PowerShell code sample to be analyzed by Gemini&lt;/p&gt;&lt;/figcaption&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Utilizing Code Interpreter and GTI function calling as part of its reasoning process, Gemini autonomously generated the following report without any human intervention. When deemed necessary, it applies these tools to process and extract additional information from the sample.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;&lt;table border="1" style="border-collapse: collapse; width: 99.9641%;"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style="width: 98.1839%;"&gt; &lt;h3&gt;&lt;span style="vertical-align: baseline;"&gt;Final Report: PowerShell Malware with URL Deobfuscation&lt;/span&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;This report analyzes a PowerShell script designed to download and execute a file from an obfuscated URL. The script employs a custom obfuscation routine resembling the RC4 stream cipher to conceal the malicious URL.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Functionality:&lt;/strong&gt;&lt;/p&gt; &lt;ol&gt; &lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Obfuscation Routine:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; The script defines a function &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;F&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; that performs byte-level XOR encryption using a key derived from the string "tox2". This function is used to deobfuscate the malicious URL.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;URL Decryption:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; The obfuscated URL, stored as a byte array, is decrypted using the &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;F&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt; function with "tox2" as the key.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;File Download:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; The script downloads a file from the decrypted URL (&lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;hxxps://filedn[.]eu/lODWTgN8sswHA6Pn8HXWe1J/tox2/Scan_docs%2398097960[.]msi&lt;/code&gt;&lt;span style="vertical-align: baseline;"&gt;) and saves it to the system's temporary directory under a randomly generated filename.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: decimal; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Execution:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Finally, the script executes the downloaded file.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Indicators of Compromise (IOCs):&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;URL:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;code style="vertical-align: baseline;"&gt;hxxps://filedn[.]eu/lODWTgN8sswHA6Pn8HXWe1J/tox2/Scan_docs%2398097960[.]msi&lt;/code&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Deobfuscation Code:&lt;/strong&gt;&lt;/p&gt; &lt;pre class="language-plain"&gt;&lt;code&gt;def deobfuscate(x, y): s = list(range(256)) j = 0 k = [ord(c) for c in y] for i in range(256): j = (j + s[i] + k[i % len(k)]) % 256 s[i], s[j] = s[j], s[i] i = 0 j = 0 output = [] for m in range(len(x)): i = (i + 1) % 256 j = (j + s[i]) % 256 s[i], s[j] = s[j], s[i] output.append(x[m] ^ s[(s[i] + s[j]) % 256]) return output a = [0x25, 0x7B, 0x5A, 0xD8, 0x9C, 0xFF, 0xC3, 0xA4, 0x95, 0xB7, 0x9D, 0x6E, 0x5F, 0x4D, 0x49, 0xFB, 0x78, 0x32, 0xB8, 0x17, 0x72, 0x01, 0x31, 0xFB, 0xC0, 0x58, 0x45, 0xCB, 0x5C, 0x3C, 0xDD, 0x00, 0x60, 0x87, 0x25, 0xB2, 0x44, 0xA6, 0xC5, 0xEA, 0x71, 0xAA, 0x9D, 0xA1, 0x05, 0x5F, 0xBD, 0x41, 0x28, 0x70, 0x30, 0x6B, 0x96, 0x24, 0x92, 0xA0, 0x9D, 0x92, 0x23, 0x79, 0x69, 0x2C, 0x1B, 0x1E, 0xEB, 0x69, 0x8F, 0x04, 0x10, 0x74, 0xBC] b = "tox2" c = deobfuscate(a, b) decoded_url = "".join(chr(i) for i in c) print(decoded_url)&lt;/code&gt;&lt;/pre&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Google Threat Intelligence (GTI) Lookup:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The GTI lookup provides valuable context regarding the identified IOC:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Threat Actor:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; UNC5687, known for using MESHAGENT in phishing campaigns impersonating the Security Service of Ukraine.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Campaign:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; This specific URL is linked to a campaign spreading MESHAGENT via phishing emails with malicious links. The campaign involved a captcha page leading to the download of either a malicious MSI or EXE file.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Malware:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; The campaign delivers MESHAGENT, an open-source remote access framework, configured to communicate with C2 domains linked to a service called "AnonVNC."&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Conclusion:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The analyzed PowerShell script is confirmed to be malicious, associated with a phishing campaign by UNC5687 distributing the MESHAGENT remote access tool.&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Gemini identified that the script employs an XOR-based obfuscation algorithm that resembles  RC4 to conceal the download URL. Recognizing this pattern, Gemini autonomously generates and executes a Python deobfuscation script within the Code Interpreter sandbox, successfully revealing the external resource.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;With the URL in hand, Gemini then utilizes GTI function calling to query Google Threat Intelligence for further context. This analysis links the URL to UNC5687, a threat cluster known for using a remote access tool in phishing campaigns impersonating the Security Service of Ukraine.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;As we’ve seen, the integration of these tools has strengthened Gemini’s ability to function as a malware analyst capable of adapting its approach to address obfuscation and gathering vital context on IOCs. By incorporating the Code Interpreter and GTI function calling, Gemini is better equipped to navigate complex samples by autonomously interpreting hidden elements and contextualizing external references.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;While these are significant advancements, many challenges remain, especially given the vast diversity of malware and scenarios that exist in the threat landscape. We’re committed to making steady progress, and future updates will continue to enhance Gemini's capabilities, moving us closer to a more autonomous, adaptive approach in threat intelligence automation.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Tue, 19 Nov 2024 14:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/topics/threat-intelligence/gemini-malware-analysis-code-interpreter-threat-intelligence/</guid><category>Threat Intelligence</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Empowering Gemini for Malware Analysis with Code Interpreter and Google Threat Intelligence</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/topics/threat-intelligence/gemini-malware-analysis-code-interpreter-threat-intelligence/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Bernardo Quintero</name><title></title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Andrés Ramírez</name><title></title><department></department><company></company></author></item><item><title>New Cassandra to Spanner adapter simplifies Yahoo's migration journey</title><link>https://cloud.google.com/blog/products/databases/new-proxy-adapter-eases-cassandra-to-spanner-migration/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Cassandra, a key-value NoSQL database, is prized for its speed and scalability, and used broadly for  applications that require rapid data retrieval and storage such as caching, session management, and real-time analytics. Its simple key-value pair structure helps ensure high performance and easy management, especially for large datasets. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;But this simplicity also leads to limitations like poor support for complex queries, potential data redundancy, and difficulty in modeling intricate relationships. Spanner, Google Cloud’s always-on, globally consistent, and virtually unlimited-scale database, combines the scalability and availability of NoSQL with the strong consistency and relational model of traditional databases, positioning it for traditional Cassandra workloads. And today, it’s easier than ever to switch from Cassandra to Spanner, with the introduction of the &lt;/span&gt;&lt;a href="https://github.com/cloudspannerecosystem/cassandra-to-spanner-proxy" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Cassandra to Spanner Proxy Adapter,&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; an open-source tool for plug-and-play migrations of Cassandra workloads to Spanner, without any changes to the application logic.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-aside"&gt;&lt;dl&gt; &lt;dt&gt;aside_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;title&amp;#x27;, &amp;#x27;$300 in free credit to try Google Cloud databases&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e8088550be0&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;Start building for free&amp;#x27;), (&amp;#x27;href&amp;#x27;, &amp;#x27;http://console.cloud.google.com/freetrial?redirectPath=/products?#databases&amp;#x27;), (&amp;#x27;image&amp;#x27;, None)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Spanner for NoSQL workloads&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Spanner provides strong consistency, high availability, virtually unlimited scalability, and a familiar relational data model with support for SQL and ACID transactions for data integrity. As a fully managed service, it helps simplify operations, allowing teams to focus on application development rather than database administration. Furthermore, Spanner's high availability, even at a massive global scale, supports business continuity by minimizing database downtime. &lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/1_G0mCmB0.max-1000x1000.png" alt="1"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We’re constantly evolving Spanner to meet the needs of modern businesses. Some of the latest Spanner capabilities include enhanced multi-model capabilities such as &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/products/databases/announcing-spanner-graph"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;graph&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, &lt;/span&gt;&lt;a href="https://cloud.google.com/spanner/docs/full-text-search"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;full-text search&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, &lt;/span&gt;&lt;a href="https://cloud.google.com/spanner/docs/find-approximate-nearest-neighbors"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;vector search&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, improved performance for analytical queries with &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/products/databases/understanding-cloud-spanner-data-boost"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Spanner Data Boost&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, and unique enterprise features such as &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/products/databases/spanner-gets-geo-partitioning"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;geo-partitioning&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; and &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/products/databases/spanner-dual-region-configurations-for-data-residency"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;dual-region configurations&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. For Cassandra users, these powerful features, along with Spanner’s compelling &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/products/databases/announcing-cloud-spanner-price-performance-updates?e=48754805"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;price-performance&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, unlock a world of new, exciting possibilities.&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;The Cassandra to Spanner adapter — battle-tested by Yahoo!&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;If you’re wondering, “Spanner sounds like a leap forward from Cassandra. How do I get started?” the proxy adapter provides a plug-n-play way to forward your client applications' Cassandra Query Language (CQL) traffic to Spanner. Under the hood, the adapter functions as a Cassandra client for the application but operates internally by interacting with Spanner for all data manipulation tasks. With the Cassandra to Spanner proxy adapter there is no migration for your application code needed — it just works! &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Yahoo successfully migrated from Cassandra to Spanner, reaping the benefits of improved performance, scalability, consistency, and operational efficiency. And the proxy adapter made it easy to migrate. &lt;/span&gt;&lt;/p&gt; &lt;p style="padding-left: 40px;"&gt;&lt;span style="font-style: italic; vertical-align: baseline;"&gt;“The Cassandra Adapter has provided a foundation for migrating the Yahoo Contacts workload from Cassandra to Spanner without changing any of our CQL queries. Our migration strategy has more flexibility, and we can focus on other engineering activities while utilizing the scale, redundancy, and support of Spanner without updating the codebase. Spanner is cost-effective for our specific needs, delivering the performance required for a business of our scale. This transition enables us to maintain operational continuity while optimizing cost and performance.”&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt; - Patrick JD Newnan, Principal Product Manager, Core Mail and Analytics, Yahoo &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Another Google Cloud customer that successfully migrated from Cassandra to Spanner recently is &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/products/spanner/reltio-migrates-from-cassandra-to-spanner"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Reltio&lt;/strong&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. Reltio benefited from an effortless migration process to minimize downtime and disruption to their services while reaping the benefits of a fully managed, globally distributed, and strongly consistent database.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;These success stories demonstrate that migrating from Cassandra to Spanner can be a transformative step for businesses seeking to modernize their data infrastructure, unlock new capabilities, and accelerate innovation.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;How does the new proxy adapter simplify your migration? &lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;A typical &lt;/span&gt;&lt;a href="https://cloud.google.com/spanner/docs/migration-overview"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;database migration&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; involves the following steps:&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--medium h-c-grid__col h-c-grid__col--4 h-c-grid__col--offset-4 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/2_t87AI4p.max-1000x1000.png" alt="2"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Some of these steps — migrate your application (step 4) and migrate the data (step 6) — are more complex than others. The proxy adapter vastly simplifies migrating a Cassandra-backed application to point to Spanner. Here's a high-level overview of the steps involved when using the new proxy adapter:&lt;/span&gt;&lt;/p&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;1. Assessment:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Evaluate your Cassandra schema, data model, and query patterns which ones you can simplify after moving to Spanner. &lt;/span&gt;&lt;/p&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;2. Schema design:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Spanner’s table declaration syntax and data types are similar to Cassandra’s; the &lt;/span&gt;&lt;a href="https://cloud.google.com/spanner/docs/non-relational/spanner-for-cassandra-users#data_modeling"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;documentation&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; covers these similarities and differences in depth. With Spanner, you can also take advantage of relational capabilities and features like &lt;/span&gt;&lt;a href="https://cloud.google.com/spanner/docs/schema-and-data-model#parent-child"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;interleaved tables&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; for optimal performance.&lt;/span&gt;&lt;/p&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;3. Data migration:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; There are several steps to migrate your data:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Bulk load:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Export data from Cassandra and import it into Spanner using tools like the &lt;/span&gt;&lt;a href="https://cloud.google.com/spanner/docs/dataflow-connector"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Spanner Dataflow connector&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; or &lt;/span&gt;&lt;a href="https://cloud.google.com/bigquery/docs/export-to-spanner"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;BigQuery reverse ETL&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Replicate incoming data: &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;Replicate incoming updates to your Cassandra cluster to Spanner in real-time using Cassandra’s Change Data Capture (CDC). &lt;br/&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;"&gt;Another possibility is to update your application logic to perform dual-writes to Cassandra and Spanner. We don’t recommend this approach if you’re trying to minimize changes to your application code.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;4. Set up the proxy adapter and update your Cassandra configuration:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Download and run the &lt;/span&gt;&lt;a href="https://github.com/cloudspannerecosystem/cassandra-to-spanner-proxy" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Cassandra to Spanner Proxy Adapter&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, which runs as a sidecar next to your application. By default, the proxy adapter runs on port 9042. In case you decide to use a different port, don’t forget to update your application code to point to the proxy adapter.&lt;/span&gt;&lt;/p&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;5. Testing:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Thoroughly test your migrated application and data in a non-production environment to ensure everything works as expected.&lt;/span&gt;&lt;/p&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;6. Cutover:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Once you're confident in the migration, switch your application traffic to Spanner. Monitor closely for any issues and fine-tune performance as needed.&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;What’s under the hood of the new proxy adapter?&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The new proxy adapter presents itself as a Cassandra client to the application. From the application's perspective, the only noticeable change is the IP address or hostname of the Cassandra endpoint, which now points to the proxy adapter. This streamlines the Spanner migration, without requiring extensive modifications to application code.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/original_images/3a.png" alt="3"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We designed the proxy adapter to establish a one-to-one mapping between each Cassandra cluster and a corresponding Spanner database. The proxy instance employs a multi-listener architecture, with each listener bound to a distinct port. This facilitates concurrent handling of multiple client connections, where each listener manages a distinct connection with the specified Spanner database. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The proxy’s translation layer handles the intricacies of the Cassandra protocol. This layer performs message decoding and encoding, manages buffers and caches, and crucially, parses incoming CQL queries and translates them into Spanner-compatible equivalents.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The proxy adapter supports &lt;/span&gt;&lt;a href="https://opentelemetry.io/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;OpenTelemetry&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; to collect and export traces to &lt;/span&gt;&lt;a href="https://cloud.google.com/trace/docs"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Cloud Trace&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;For more details about different ways of setting up the adapter, limitations, mapping of CQL data types to Spanner, and more, refer to the &lt;/span&gt;&lt;a href="https://github.com/cloudspannerecosystem/cassandra-to-spanner-proxy?tab=readme-ov-file" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;proxy adapter documentation&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Addressing common concerns and challenges&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Let's address a few concerns you may have with your migrations:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Cost:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Have a look at &lt;/span&gt;&lt;a href="https://www.accenture.com/content/dam/accenture/final/accenture-com/document-2/Spanner-Benchmark-With-YCSB-Final.pdf" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Accenture’s benchmark result&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; that demonstrates that Spanner ensures not only consistent latency and throughput but also cost efficiency. Furthermore, Spanner now offers a new tiered pricing model (&lt;/span&gt;&lt;a href="https://cloud.google.com/blog/products/databases/announcing-spanner-editions?e=48754805"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Spanner editions&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;) that delivers better cost transparency and cost savings opportunities to help you take advantage of all of Spanner’s capabilities.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Latency increases: &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;To minimize an increase in query latencies, we recommend running the proxy adapter on the same host as the client application (as a side-car proxy) or running on the same Docker network when running the proxy adapter in a Docker container. We also recommend keeping the CPU utilization of the proxy adapter host to under 80%.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Schema flexibility:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; While Cassandra offers schema flexibility, Spanner's stricter relational schema provides advantages in terms of data integrity, query power, and consistency.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Learning curve:&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Spanner’s data types have some differences with Cassandra’s. Have a look at this &lt;/span&gt;&lt;a href="https://cloud.google.com/spanner/docs/non-relational/spanner-for-cassandra-users"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;comprehensive documentation&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; that can ease the transition.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Get started today &lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The benefits of strong consistency, simplified operations, enhanced data integrity, and global scalability make Spanner a compelling option for businesses looking to leverage the cloud's full potential for NoSQL workloads. With the new Cassandra to Spanner proxy adapter, we are making it easier to plan and execute on your migration strategy, so you can unlock a new era of data-driven innovation for your organization.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Download the new &lt;/span&gt;&lt;a href="https://github.com/cloudspannerecosystem/cassandra-to-spanner-proxy" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Cassandra to Spanner proxy adapter&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, and try it out on a &lt;/span&gt;&lt;a href="https://cloud.google.com/spanner/docs/free-trial-instance"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Spanner Free Trial instance&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; at no cost today.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Mon, 18 Nov 2024 17:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/products/databases/new-proxy-adapter-eases-cassandra-to-spanner-migration/</guid><category>Spanner</category><category>Customers</category><category>Databases</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>New Cassandra to Spanner adapter simplifies Yahoo's migration journey</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/products/databases/new-proxy-adapter-eases-cassandra-to-spanner-migration/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Nitin Sagar</name><title>Sr. Product Manager, Google Cloud</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Eike Falkenberg</name><title>Engineering Manager, Google</title><department></department><company></company></author></item><item><title>What’s new with Google Cloud</title><link>https://cloud.google.com/blog/topics/inside-google-cloud/whats-new-google-cloud/</link><description>&lt;div class="block-paragraph"&gt;&lt;p data-block-key="kgod7"&gt;Want to know the latest from Google Cloud? Find it here in one handy location. Check back regularly for our newest updates, announcements, resources, events, learning opportunities, and more. &lt;/p&gt;&lt;hr/&gt;&lt;p data-block-key="ru1z9"&gt;&lt;b&gt;Tip&lt;/b&gt;: Not sure where to find what you’re looking for on the Google Cloud blog? Start here: &lt;a href="https://cloud.google.com/blog/topics/inside-google-cloud/complete-list-google-cloud-blog-links-2021"&gt;Google Cloud blog 101: Full list of topics, links, and resources&lt;/a&gt;.&lt;/p&gt;&lt;hr/&gt;&lt;p data-block-key="b0lnw"&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-paragraph"&gt;&lt;h3 data-block-key="3rhcn"&gt;Week of Nov 11 - Nov 15&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="6lmq3"&gt;Subsea cable connectivity is coming to Tuvalu for the first time with the addition of the Tuvalu Vaka cable. Building on the &lt;a href="https://cloud.google.com/blog/products/infrastructure/introducing-bulikula-and-halaihai-subsea-cables-to-connect-the-central-pacific"&gt;Bulikula subsea cable system&lt;/a&gt; announced last year, this new network infrastructure is a collaboration among several partners including Australia, Japan, New Zealand, Taiwan, Tuvalu, Tuvalu Telecommunications Corporation and the United States, and will help reduce the digital divide in the Pacific.&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="ejca9"&gt;Week of Nov 4-8&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="bfd8a"&gt;We are excited to announce the &lt;a href="https://github.com/GoogleCloudPlatform/reCAPTCHA-PLD" target="_blank"&gt;reCAPTCHA Password Leak Detection Container App&lt;/a&gt;, a new tool that makes it easier than ever to protect your users from account takeovers. This container app simplifies the integration of &lt;a href="https://cloud.google.com/blog/products/identity-security/announcing-recaptcha-enterprise-password-leak-detection-in-ga"&gt;reCAPTCHA's powerful password leak detection&lt;/a&gt;, allowing you to instantly detect compromised credentials and proactively prompt users to change their password before their account is compromised. With pre-built libraries and a streamlined process, you can significantly reduce integration time and enhance your website's security with ease.&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="blhn"&gt;Week of Oct 21-25&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="f8lua"&gt;We're excited to announce GA support for scanning: Rocky Linux, Alma, SUSE (SLES), Red Hat (UBI), &lt;a href="https://www.chainguard.dev/chainguard-images" target="_blank"&gt;Chainguard&lt;/a&gt;, Wolfi &amp;amp; &lt;a href="https://github.com/GoogleContainerTools/distroless/blob/main/README.md" target="_blank"&gt;Google Distroless&lt;/a&gt;. These operating systems are now supported in both &lt;a href="https://cloud.google.com/artifact-analysis/docs/artifact-analysis#automatic_scanning"&gt;Artifact Registry scanning&lt;/a&gt;, as well as &lt;a href="https://cloud.google.com/artifact-analysis/docs/artifact-analysis#on-demand_scanning"&gt;On Demand Scanning&lt;/a&gt;.&lt;br/&gt; When the Container Scanning API is enabled, any container with these new operating systems or distroless images will automatically be scanned for vulnerabilities when pushed to Artifact Registry. We've also upgraded our On Demand scan to include; NPM, Python, Ruby, Rust, .Net &amp;amp; PHP language packages. See all &lt;a href="https://cloud.google.com/artifact-analysis/docs/container-scanning-overview?skip_cache=true#feature-support"&gt;supported package types&lt;/a&gt;.&lt;/li&gt;&lt;li data-block-key="1eq2j"&gt;&lt;b&gt;Term Extension Now Available for Compute Engine Committed Use Discounts:&lt;/b&gt; You can now extend the term length of your Compute Engine resource-based &lt;a href="https://cloud.google.com/compute/docs/instances/signing-up-committed-use-discounts"&gt;Committed Use Discounts&lt;/a&gt; (“CUDs”) beyond the preset 1-year and 3-year options. CUDs offer significant cost savings for predictable workloads. You can now choose a CUDs term length beyond the original commitment end date that perfectly aligns with your workload needs, from one year and one day up to 6 years. &lt;a href="https://cloud.google.com/compute/docs/committed-use-discounts/extend-commitment-term"&gt;Learn more&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="fer4l"&gt;Week of Oct 14-18&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="bfpvh"&gt;Announcing &lt;a href="https://cloud.google.com/blog/topics/partners/enhancing-google-cloud-marketplace-private-offers"&gt;Google Cloud Marketplace private offer enhancements&lt;/a&gt; that enable additional payment flexibility for enterprises, including when transacting generative AI models.&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="n8m9"&gt;Week of Oct 7-11&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="2i00"&gt;We are excited to announce the launch of new &lt;a href="https://cloud.google.com/solutions/cortex?hl=en"&gt;&lt;b&gt;Google Cloud Cortex Framework&lt;/b&gt;&lt;/a&gt; data integration and analytics solution content for BigQuery and Looker with Oracle EBS data. To learn more read our announcement &lt;a href="https://cloud.google.com/blog/products/data-analytics/google-cloud-cortex-framework-integrated-with-oracle-ebs"&gt;blog&lt;/a&gt;.&lt;/li&gt;&lt;li data-block-key="ekm0r"&gt;Google Cloud is partnering with leading AI and cybersecurity startups to accelerate their growth and innovation, through the&lt;a href="https://cloud.google.com/programs/startups/isv-startup-springboard"&gt; &lt;b&gt;ISV Startup Springboard program&lt;/b&gt;&lt;/a&gt;, announced this week at the &lt;a href="https://cloudonair.withgoogle.com/events/summit-startup-24" target="_blank"&gt;Google Cloud Startup Summit.&lt;/a&gt; &lt;a href="https://cloud.google.com/programs/startups/isv-startup-springboard"&gt;Learn more&lt;/a&gt;&lt;a href="https://cloudonair.withgoogle.com/events/summit-startup-24" target="_blank"&gt; and register interest.&lt;/a&gt;&lt;/li&gt;&lt;li data-block-key="9g2oq"&gt;Privileged Access Manager (PAM) is now Generally Available. The GA release offers new capabilities in addition to recently released public preview and includes features such as &lt;a href="https://cloud.google.com/iam/docs/pam-overview#pubsub-notifications"&gt;Pub/Sub integration&lt;/a&gt; for custom alerting and monitoring, &lt;a href="https://cloud.google.com/iam/docs/pam-view-grants#modified-through-iam"&gt;alerts on IAM grant modifications&lt;/a&gt; outside of PAM, and &lt;a href="https://cloud.google.com/iam/docs/secure-iam-vpc-sc#pam"&gt;integration with VPC Service Controls&lt;/a&gt; to tackle data exfiltration. &lt;a href="https://cloud.google.com/iam/docs/pam-overview"&gt;Learn more&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="fm45r"&gt;Week of Sept 23-27&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="55ro8"&gt;We are excited to announce that registration is open for the&lt;a href="https://cloudonair.withgoogle.com/events/summit-app-dev-infrastructure-24?utm_source=cgc-blog&amp;amp;utm_medium=blog&amp;amp;utm_campaign=FY24-Q4-global-EXP135-onlineevent-er-app-dev-infra-summit-2024-mc&amp;amp;utm_content=whats-new-blog&amp;amp;utm_term=-" target="_blank"&gt; &lt;b&gt;App Dev &amp;amp; Infrastructure Summit&lt;/b&gt;&lt;/a&gt; &lt;b&gt;on October 30 (AMER) and October 31 (EMEA).&lt;/b&gt; Google Technology Fellows - our luminary technical leaders - and industry experts will share strategies and learnings on how to improve efficiency, reduce costs, and speed up AI innovation for your cloud and application infrastructure at this global digital event. Register&lt;a href="https://cloudonair.withgoogle.com/events/summit-app-dev-infrastructure-24?utm_source=cgc-blog&amp;amp;utm_medium=blog&amp;amp;utm_campaign=FY24-Q4-global-EXP135-onlineevent-er-app-dev-infra-summit-2024-mc&amp;amp;utm_content=whats-new-blog&amp;amp;utm_term=-" target="_blank"&gt; here&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="54k2r"&gt;Week of Sept 16-20&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="5oc4u"&gt;Starting this week, Google Cloud customers with eligible support plans can access assistance for the&lt;a href="https://cloud.google.com/cluster-toolkit/docs/overview"&gt; Cluster Toolkit&lt;/a&gt; through the Cloud Console. Cluster Toolkit, formerly known as Cloud HPC Toolkit, is open-source software offered by Google Cloud which simplifies the process for you to deploy HPC, AI and ML workloads on Google Cloud. The Cloud Support team will handle filed cases, ensuring that users receive timely and effective support for their Cluster Toolkit implementations. Select 'Cluster Toolkit' as the sub-category under 'Compute Engine' when creating a support ticket in your Cloud Console to get in touch about any Cluster Toolkit issues.&lt;/li&gt;&lt;li data-block-key="1hsaa"&gt;Backup and DR service is excited to announce the public preview of backup vaults and simplified VM backup offering. Backup vaults provide secure backups for cyber resilience through immutable and indelible backups for VMs and databases, delivering security against accidental or malicious data deletion. Simplified Compute Engine VM backup with a fully-managed experience, directly integrated into the cloud console makes backing of VMs as easy as 1-2-3. The solution also enables backup admins to empower application developers to self-protect their VMs while retaining centralized governance and oversight. Read the &lt;a href="https://cloud.google.com/blog/products/storage-data-transfer/backup-and-dr-service-adds-immutable-indelible-backups"&gt;full blog&lt;/a&gt; to learn more and try out the new features.&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="8inrl"&gt;Week of Sept 2-6&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="dq7kb"&gt;We’re excited to share that Topaz will be extended to Taiwan. &lt;a href="https://cloud.google.com/blog/products/infrastructure/topaz-subsea-cable-connects-canada-and-asia?e=0"&gt;Announced&lt;/a&gt; in 2022, the transpacific subsea cable system was the first to connect Canada and Japan. Now, with the extension of Topaz to Taiwan, we’ll provide the region with increased reliability and resilience for network operators, for Google, and for users.&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="e21uc"&gt;Week of Aug 26-30&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="5oqo6"&gt;We are excited to announce the general availability of Instant snapshots for Google Compute Engine Persistent Disks, which provide near-instantaneous, high-frequency, point-in-time checkpoints of a disk that can be rapidly restored as needed. Read the full &lt;a href="https://cloud.google.com/blog/products/compute/introducing-compute-engine-instant-snapshots"&gt;blog&lt;/a&gt; to try it out.&lt;/li&gt;&lt;li data-block-key="9n7q"&gt;In response to customer and partner requests for pollen data in Japan, we are excited to announce that data for Japanese Cedar and Cypress trees-the 2 main sources of pollen allergens in Japan-have been added to our &lt;a href="https://mapsplatform.google.com/maps-products/pollen/" target="_blank"&gt;Pollen API from Google Maps Platform&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="4k6tl"&gt;Week of Aug 19-23&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="90p3t"&gt;We are excited to announce we’re adding support for NVIDIA L4 GPUs to&lt;a href="https://cloud.google.com/run"&gt; Cloud Run&lt;/a&gt;, in preview. Developers love Cloud Run for its simplicity, fast autoscaling, scale-to-zero capabilities, and pay-per-use pricing. Those same benefits come into play for real-time inference apps serving open gen AI models. Check out this launch &lt;a href="https://cloud.google.com/blog/products/application-development/run-your-ai-inference-applications-on-cloud-run-with-nvidia-gpus"&gt;blog&lt;/a&gt;. Also watch demos from this launch event webinar &lt;a href="https://cloudonair.withgoogle.com/events/run-ai-with-cloud-run" target="_blank"&gt;Run AI on Cloud run&lt;/a&gt;.&lt;/li&gt;&lt;li data-block-key="2kttd"&gt;We are excited to announce that Google Cloud Functions is now Cloud Run functions — event-driven programming in one unified serverless platform. This goes beyond a simple name change. We’ve unified the Cloud Functions infrastructure with Cloud Run, and developers of Cloud Functions (2nd gen) get immediate access to all new Cloud Run features, including NVIDIA GPUs. Read the launch &lt;a href="https://cloud.google.com/blog/products/serverless/google-cloud-functions-is-now-cloud-run-functions"&gt;blog&lt;/a&gt; and watch demos from this launch event webinar &lt;a href="https://cloudonair.withgoogle.com/events/run-ai-with-cloud-run" target="_blank"&gt;Run AI on Cloud run&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="cjpk0"&gt;Week of Aug 5-9&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="f0041"&gt;Google’s Workforce Identity federation now enables Microsoft Entra ID users to access Google BigQuery from Microsoft Power BI with Single-Sign-On. No users or groups need to be provisioned in Google Cloud as Workforce identity Federation leverages a syncless federation capability using attribute based access control to authorize access to Google BigQuery using Microsoft Entra user attributes such as user group membership. You can refer to our &lt;a href="https://cloud.google.com/iam/docs/workforce-sign-in-power-bi"&gt;documentation&lt;/a&gt; to learn more.&lt;/li&gt;&lt;li data-block-key="fej89"&gt;We are excited to announce the preview of &lt;a href="https://cloud.google.com/bigtable/docs/introduction-sql"&gt;SQL support in Bigtable&lt;/a&gt; to bring Google’s pioneering NoSQL database to a broader developer audience. Bigtable leverages GoogleSQL ─the same SQL dialect used by BigQuery─ making it easier to use Bigtable as low-latency analytics serving layer in combination with BigQuery’s newly announced &lt;a href="https://cloud.google.com/bigquery/docs/continuous-queries-introduction"&gt;continuous queries&lt;/a&gt; but does so with extensions to support its signature data model so you can use SQL without giving up on all the flexibility that comes with a NoSQL database. It also simplifies migrations from open source databases such as Apache Cassandra. With over 100 new functions from JSON processing capabilities, kNN for GenAI and HLL for real-time analytics, SQL opens the door to many new possibilities with Bigtable. Learn more in our detailed &lt;a href="https://cloud.google.com/blog/products/databases/announcing-sql-support-for-bigtable"&gt;blog post&lt;/a&gt;.&lt;/li&gt;&lt;li data-block-key="fcjh7"&gt;We are excited to announce the public preview of &lt;a href="https://cloud.google.com/bigquery/docs/continuous-queries-introduction"&gt;BigQuery continuous queries&lt;/a&gt;, a groundbreaking new feature that empowers users to run continuously processing SQL statements that can process, analyze, and transform data as new events arrive in BigQuery, ensuring insights are always up to date. Native integration with the Google Cloud ecosystem unlocks the ability of Vertex AI and Gemini to perform machine learning inference on incoming data in real time. As well as streaming replication of continuous query results to Pub/Sub topics, Bigtable instances, or other BigQuery tables. Read the &lt;a href="https://cloud.google.com/blog/products/data-analytics/bigquery-continuous-queries-makes-data-analysis-real-time"&gt;full blog&lt;/a&gt; and try it out!&lt;/li&gt;&lt;li data-block-key="cjcln"&gt;AlloyDB’s AutoPilot capabilities- Automatic memory management, Adaptive AutoVacuum&lt;b&gt;,&lt;/b&gt; Automatic storage tiering ,Automatic data columnarization and query rewrite- makes management super efficient and easy. AlloyDB eliminates the drudgery of maintaining a PostgreSQL database by using, behind the scenes , advanced self-tuning machine learning algorithm. In this &lt;a href="https://medium.com/google-cloud/alloydb-adaptive-autovacuum-and-how-alloydb-cluster-storage-space-is-released-41be54b8b8c8" target="_blank"&gt;blog&lt;/a&gt; we will look into a real world example of AlloyDB Adaptive AutoVacuum in work and how AlloyDB Cluster Storage Space is Released&lt;/li&gt;&lt;li data-block-key="dvta7"&gt;Google Cloud Identity Platform, our consumer identity solution, now supports Passkeys. With Passkeys, developers can authenticate their app's end users securely, protecting them from account takeover attacks like phishing and leaked credentials. To join the private preview, contact your Google account team.&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="5jj2o"&gt;Week of July 15-19&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="lvjd"&gt;Google Cloud is excited to launch the Modern SecOps Masterclass, now available on Coursera. This course equips security professionals with cutting-edge skills to modernize their Security Operations Centers (SOCs) using our Autonomic Security Operations framework and Continuous Detection, Continuous Response (CD/CR) methodology. Read the &lt;a href="https://cloud.google.com/blog/products/identity-security/modern-secops-masterclass-now-available-on-coursera"&gt;full blog&lt;/a&gt; and &lt;a href="https://coursera.org/learn/modern-security-operations" target="_blank"&gt;enroll now&lt;/a&gt;.&lt;/li&gt;&lt;li data-block-key="6ase5"&gt;Learn how to potentially achieve a strong consistency in Cloud Bigtable for your next big data solution. Bigtable offers high throughput at low latency. It is ideal for storing large amounts of data in a key-value store while supporting high read and write throughput at low latency for fast access. Bigtable provides eventual consistency as well as strong consistency. This blog talks about achieving strong data consistency in a multi-cluster Bigtable instance. &lt;a href="https://medium.com/google-cloud/data-consistency-across-bigtable-clusters-cec93ed8adda" target="_blank"&gt;Read the full blog&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="amrr6"&gt;Week of June 24-28&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="7m6v4"&gt;Introducing &lt;b&gt;Google Cloud Marketplace Channel Private Offers&lt;/b&gt;, enabling customers, ISV partners, and channel partners to efficiently transact private offers via reseller-initiated sales of third-party solutions listed on the Google Cloud Marketplace. This differentiated program also empowers channel partners to manage the customer relationship from billing, collections to revenue recognition. &lt;a href="https://cloud.google.com/blog/topics/partners/announcing-google-cloud-marketplace-private-offers"&gt;Read the full blog&lt;/a&gt;.&lt;/li&gt;&lt;li data-block-key="c9ine"&gt;A blog on benchmark study (collaborated with Yahoo) by comparing the cost and performance of Apache Flink and Google Cloud Dataflow for two specific streaming data processing use cases. The goal of the study was to determine the most cost-effective platform for these use cases by establishing a fair comparison methodology and controlling variables such as throughput and workload. The results indicate that, with some optimization on Dataflow can perform on-par with Apache Flink. &lt;a href="https://medium.com/google-cloud/yahoo-benchmarks-dataflow-vs-b189c809ff49" target="_blank"&gt;Read the full blog&lt;/a&gt;.&lt;/li&gt;&lt;li data-block-key="1sllq"&gt;A Blog on Secure Gateways: Mutual TLS for Ingress Gateway Secure Gateways: Mutual TLS for Ingress Gateway," discusses the implementation of mutual TLS (mTLS) for enhanced security in ingress gateways. It explains how mTLS ensures both client and server authentication through certificates, going beyond the traditional server-only verification. The article explores the setup process and the benefits of using mTLS, emphasizing its role in establishing secure communication channels in modern cloud architectures. &lt;a href="https://medium.com/google-cloud/secure-gateways-mutual-tls-for-ingress-gateway-05f8daa8f41f" target="_blank"&gt;Read the full blog&lt;/a&gt;.&lt;/li&gt;&lt;li data-block-key="9hq5n"&gt;A Blog on Wildcard certificates with Ingress Gateway "Wildcard certificates with Ingress Gateway" provides a guide on how to use wildcard certificates to secure multiple services behind a single Istio Ingress Gateway. This simplifies certificate management and improves the user experience by allowing seamless connections across different services within the same domain. The article demonstrates the configuration process step-by-step and explains how wildcard certificates are matched to incoming requests. &lt;a href="https://medium.com/google-cloud/wildcard-certificates-with-ingress-gateway-904ce822a50e" target="_blank"&gt;Read the full blog&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="8b8l9"&gt;Week of June 17-21&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="5qe61"&gt;Learn how to leverage BigQuery vector search to analyze your logs and asset metadata stored in BigQuery. Using vector search, you can find semantically similar logs which can be helpful in several use cases such as outlier detection, triage and investigation. This how-to blog walks you through the setup from processing logs, generating vector embeddings, to analyzing vector search results. It includes sample SQL queries which can be adapted for your own logs and use case. &lt;a href="https://cloud.google.com/blog/products/data-analytics/bigquery-vector-search-for-log-analysis"&gt;Read the full blog&lt;/a&gt;.&lt;/li&gt;&lt;li data-block-key="cnhc0"&gt;&lt;a href="https://cloud.google.com/blog/products/infrastructure/introducing-the-nuvem-subsea-cable"&gt;Nuvem&lt;/a&gt;, first announced last year, is a transatlantic subsea cable system that will connect Portugal, Bermuda, and the United States. We are now working with the Regional Government of Azores to enable extending the system to the Azores as well. Named after the Portuguese word for “cloud,” Nuvem will improve network resiliency across the Atlantic, helping meet growing demand for digital services and further establishing its landing locations as digital hubs.&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="f5umb"&gt;Week of June 10-14&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="a0cl0"&gt;General Availability of A3 Mega, a new instance type in the A3 VM family. A3 Mega is powered by the NVIDIA H100 Tensor Core GPU, delivers a 2.4x improvement in large scale training performance over multiple A3 instances.&lt;ul&gt;&lt;li data-block-key="4mv6b"&gt;2x the GPU-to-GPU networking bandwidth over A3 Instances.&lt;/li&gt;&lt;li data-block-key="cculf"&gt;Enhanced GPUDirect-TCPXO networking offloads GPUDirect memory access from the CPU, providing direct access through through the NIC (Network Interface Card) to GPU memory, based on &lt;a href="https://cloud.google.com/titanium"&gt;Titanium TOPs&lt;/a&gt;, which improves performance of multi-node distributed training workloads.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li data-block-key="b7445"&gt;Simplify your Network: The Cloud Networking Product Management and Engineering team will be traveling across US cities in June/July and Sept. Learn how Cross-Cloud Network can transform your infrastructure. The workshop will address Cross-Cloud Networking for hybrid and multicloud enterprises with distributed applications, internet-facing content and applications, security, and AI-assisted network operations with Gemini Cloud Assist. Join us at one of the following Google office locations and meet the experts who will share the latest innovations, use cases, and demos. &lt;a href="https://inthecloud.withgoogle.com/cross-cloud-network-innovation-workshop/register.html#form" target="_blank"&gt;Register here&lt;/a&gt;.&lt;/li&gt;&lt;li data-block-key="e0aud"&gt;Learn how you can leverage the cloud deployment archetypes (zonal, regional, multi-regional, global, hybrid, &amp;amp; multicloud) to architect cloud topologies that meet your workload’s requirements for reliability, cost, performance, &amp;amp; operational simplicity. &lt;a href="https://cloud.google.com/blog/products/application-modernization/new-google-cloud-deployment-archetypes-guide"&gt;Read the full blog&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="1ihqo"&gt;Week of May 20-24&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="2hdc"&gt;Maximize performance and optimize spend with Compute Engine’s latest General Purpose VMs, N4 and C4. N4's flexible configurations and price-performance gains help optimize costs, while C4 provides top-tier performance for demanding applications. With N4 and C4, you get tailored solutions for all your general-purpose workloads, so you can lower the total cost of running your business without compromising on performance or workload-specific requirements. &lt;a href="https://cloud.google.com/blog/products/compute/a-closer-look-at-compute-engine-c4-and-n4-machine-series"&gt;Learn more here&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="8e14k"&gt;Week of Apr 22 - April 26&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="er89f"&gt;Simplify your connectivity to Google by using a Verified Peering Provider to connect to Google, instead of using Direct Peering. Verified Peering Providers handle all of the complex connectivity allowing you to focus on your core business. &lt;a href="https://cloud.google.com/blog/products/networking/verified-peering-provider-simplifies-enterprise-connectivity"&gt;Learn more here&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="9lq9v"&gt;Week of Apr 15- Apr 19&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="8b1g"&gt;New training in AI, data analytics and cybersecurity, designed to expand onramps to tech careers through colleges and employers. &lt;a href="https://cloud.google.com/blog/topics/training-certifications/new-introductory-courses-in-gen-ai-data-analytics-cybersecurity"&gt;Learn more.&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="7eco8"&gt;Week of Apr 1- Apr 5&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="36qr1"&gt;&lt;a href="https://cloud.google.com/security/products/security-command-center?hl=en"&gt;Security Command Center (SCC) Enterprise&lt;/a&gt; is now generally available (GA). It is the industry’s first cloud risk management solution that converges cloud security and enterprise security operations into a single platform, supercharged by Mandiant expertise and AI. Learn more in our &lt;a href="https://cloud.google.com/blog/products/identity-security/introducing-security-command-center-enterprise"&gt;announcement blog&lt;/a&gt;.&lt;/li&gt;&lt;li data-block-key="1cepm"&gt;Identify common container runtime attacks, analyzes suspicious code, and use natural language processing to pinpoint malicious scripts with &lt;a href="https://cloud.google.com/kubernetes-engine/docs/concepts/about-gke-threat-detection"&gt;GKE threat detection&lt;/a&gt;, powered by Security Command Center. Now in public preview.&lt;/li&gt;&lt;li data-block-key="bhrmb"&gt;Get a fully managed compliance service that automatically delivers end-to-end coverage for GKE, scanning for issues against the most important benchmarks with &lt;a href="https://cloud.google.com/kubernetes-engine/fleet-management/docs/about-compliance-dashboard"&gt;GKE compliance&lt;/a&gt;, now in public preview. Near-real-time insights are available in a centralized dashboard, with compliance reports automatically produced for you.&lt;/li&gt;&lt;li data-block-key="6b37f"&gt;Streamline your GCE backup strategy! With tag-based backups in Google Backup and DR, protection is automated – new VMs with the right tags are protected immediately, saving you time and increasing reliability. Read more on the blog here. &lt;a href="https://cloud.google.com/blog/products/storage-data-transfer/tags-support-in-backup-and-dr-service-simplifies-vm-protection"&gt;Differential privacy enforcement with privacy budgeting is now available in BigQuery data clean rooms so organizations can prevent data from being reidentified when it is shared.&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="5cdt9"&gt;Week of Mar 18- Mar 22&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="83c2e"&gt;Google Kubernetes Engine (GKE) and NVIDIA NeMo framework are used to train large language models (LLMs). Due to the increasing demand for efficient and scalable training of LLMs, the need for GPUs at a large scale with high speed networking is rapidly growing. GKE offers a comprehensive set of features that make it suitable for enterprise-level training and inference. This blog post shows how generative AI models can be adapted to your use cases by demonstrating how to train models on Google Kubernetes Engine (GKE) using the &lt;a href="https://cloud.google.com/blog/products/compute/gke-and-nvidia-nemo-framework-to-train-generative-ai-models"&gt;NVIDIA NeMo framework&lt;/a&gt;.&lt;/li&gt;&lt;li data-block-key="4ubqp"&gt;Cloud Run now supports volume mounts! Mount a Cloud Storage bucket or NFS file share as a volume to easily serve static assets, access app configuration data, or access an AI/ML model. &lt;a href="https://cloud.google.com/blog/products/serverless/introducing-cloud-run-volume-mounts"&gt;Learn more in our blog post&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="64l59"&gt;Week of Mar 11- Mar 15&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="8qscm"&gt;Datastream adds support for SQL Server sources, now in preview. With existing support for MySQL, PostgreSQL, and Oracle, support for SQL Server sources extends the reach of Datastream and empowers you to replicate data from a range of relational sources to several Google Cloud services, such as BigQuery, Cloud Storage, AlloyDB, and Spanner. Read more in the blog &lt;a href="https://cloud.google.com/blog/products/databases/datastream-supports-sql-server-sources"&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="c9sv4"&gt;Week of Feb 5- Feb 9&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="1rd42"&gt;Check out this new blog and learn more about the &lt;a href="https://cloud.google.com/blog/topics/partners/new-integrated-commerce-network-streamlines-digital-commerce"&gt;Integrated Commerce Network (ICN)&lt;/a&gt; delivered by Kin + Carta and built on Google Cloud. The ICN features 3 of our premier digital commerce partners for an integrated end-to-end solution including Bloomreach, commercetools and Quantum Metric.&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="94gdi"&gt;Week of Jan 29- Feb 2&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="3q5r8"&gt;&lt;a href="https://cloud.google.com/blog/products/infrastructure-modernization/idc-finds-318-percent-roi-from-migrating-to-google-cloud-iaas"&gt;IDC finds 318% ROI from migrating to Google Cloud IaaS&lt;/a&gt;: Check out the latest IDC research study to learn how organizations worldwide are benefitting by adopting Google Cloud Infrastructure as a Service.&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="8uba3"&gt;Week of Jan 15-19&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="a35er"&gt;Check out the latest generative AI training available from Google Cloud : Take a look at our &lt;a href="https://cloud.google.com/blog/topics/training-certifications/ten-new-generative-ai-trainings-to-upskill-in-2024-with-duet-ai"&gt;top ten trainings in Duet AI&lt;/a&gt; to help boost your productivity in 2024.&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-block-key="1p2na"&gt;Week of Jan 1-5&lt;/h3&gt;&lt;ul&gt;&lt;li data-block-key="l749"&gt;&lt;a href="https://cloud.google.com/blog/products/gcp/google-cloud-top-news-of-2023"&gt;The year in Google Cloud: Top news of 2023&lt;/a&gt;: A look back at the biggest stories of 2023 from Google Cloud, covering generative AI, DevOps, containers, data and databases, security, and more.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</description><pubDate>Fri, 15 Nov 2024 17:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/topics/inside-google-cloud/whats-new-google-cloud/</guid><category>Google Cloud</category><category>Inside Google Cloud</category><media:content height="540" url="https://storage.googleapis.com/gweb-cloudblog-publish/original_images/52_-_Whats_new.jpg" width="540"></media:content><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>What’s new with Google Cloud</title><description></description><image>https://storage.googleapis.com/gweb-cloudblog-publish/original_images/52_-_Whats_new.jpg</image><site_name>Google</site_name><url>https://cloud.google.com/blog/topics/inside-google-cloud/whats-new-google-cloud/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Google Cloud Content &amp; Editorial </name><title></title><department></department><company></company></author></item><item><title>What’s new with HPC and AI infrastructure at Google Cloud</title><link>https://cloud.google.com/blog/topics/hpc/whats-new-with-hpc/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;At Google Cloud, we’re rapidly advancing our high-performance computing (HPC) capabilities, providing researchers and engineers with powerful tools and infrastructure to tackle the most demanding computational challenges. Here's a look at some of the key developments driving HPC innovation on Google Cloud, as well as our presence at Supercomputing 2024.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;You can also stay apprised of our HPC and AI advances by joining the new &lt;/span&gt;&lt;a href="https://rsvp.withgoogle.com/events/google-cloud-advanced-computing-community" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Cloud Advanced Computing Community&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; (details below). &lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Next-generation HPC VMs&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We began our H-series with &lt;/span&gt;&lt;a href="https://cloud.google.com/compute/docs/compute-optimized-machines#h3_series"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;H3 VMs&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, specifically designed to meet the needs of demanding HPC workloads. Now, we’re excited to share some key features of the next generation of the H family, bringing even more innovation and performance to the table. The upcoming VMs will feature:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Improved workload scalability via RDMA-enabled 200 Gbps networking&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Native support to directly provision full, tightly-coupled HPC clusters on demand &lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/blog/products/compute/introducing-dynamic-workload-scheduler?e=0"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Dynamic Workload Scheduler&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; to provision fixed-lifetime clusters now or in the future&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/titanium?e=0&amp;amp;hl=en"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Titanium&lt;/span&gt;&lt;/a&gt;&lt;strong style="vertical-align: baseline;"&gt; &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;technology that delivers superior performance, reliability, and security &lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We provide &lt;/span&gt;&lt;a href="https://github.com/GoogleCloudPlatform/cluster-toolkit/blob/main/examples/hpc-enterprise-slurm.yaml" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;system blueprints&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; for setting up turnkey, pre-configured HPC clusters on our H series VMs.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The next generation of H series is coming in early 2025.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-aside"&gt;&lt;dl&gt; &lt;dt&gt;aside_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;title&amp;#x27;, &amp;#x27;Try Google Cloud for free&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e8089b9b310&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;Get started for free&amp;#x27;), (&amp;#x27;href&amp;#x27;, &amp;#x27;https://console.cloud.google.com/freetrial?redirectPath=/welcome&amp;#x27;), (&amp;#x27;image&amp;#x27;, None)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Parallelstore: World’s first fully-managed DAOS offering&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;a href="https://cloud.google.com/parallelstore?e=48754805"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Parallelstore&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; is a fully managed, scalable, high-performance storage solution based on next-generation &lt;/span&gt;&lt;a href="https://daos.io/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;DAOS technology&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, designed for demanding HPC and AI workloads. It is now generally available and provides:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Up to 6x greater read throughput performance compared to competitive Lustre scratch offerings&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Low latency (&amp;lt;0.5ms at p50) and high throughput (&amp;gt;1GiB/s per TiB) to access data with minimal delays, even at massive scale&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;High IOPS (30K IOPS per TiB) for metadata operations&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Simplified management that reduces operational overhead with a fully managed service  &lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Parallelstore is great for applications requiring fast access to large datasets, such as:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Analyzing massive genomic datasets for personalized medicine&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Training large language models (LLMs) and other AI applications efficiently  &lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Running complex HPC simulations with rapid data access&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;A3 Ultra VMs with NVIDIA H200 Tensor Core GPUs&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;For GPU-based HPC workloads, we recently announced &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/products/compute/trillium-sixth-generation-tpu-is-in-preview?e=0"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;A3 Ultra VMs&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, which feature NVIDIA H200 Tensor Core GPUs. A3 Ultra VMs offer a significant leap in performance over previous generations. They are built on servers with our new &lt;/span&gt;&lt;a href="https://cloud.google.com/titanium"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Titanium ML network adapter&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, optimized to deliver a secure, high-performance cloud experience for AI workloads, and powered by NVIDIA ConnectX-7 networking. Combined with our datacenter-wide 4-way rail-aligned network, A3 Ultra VMs deliver non-blocking 3.2 Tbps of GPU-to-GPU traffic with RDMA over Converged Ethernet (RoCE). &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Compared with A3 Mega, A3 Ultra offers: &lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;2x the GPU-to-GPU networking bandwidth, powered by Google Cloud’s Titanium ML network adapter and backed by our Jupiter data center network&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Up to 2x higher LLM inferencing performance with nearly double the memory capacity and 1.4x more memory bandwidth&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Ability to scale to tens of thousands of GPUs in a dense, performance-optimized cluster for large AI and HPC workloads&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;With &lt;/span&gt;&lt;a href="https://cloud.google.com/cluster-toolkit/docs/deploy/a3-mega-cluster-overview"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;system blueprints&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, available through &lt;/span&gt;&lt;a href="https://cloud.google.com/cluster-toolkit/docs/overview"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Cluster Toolkit&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, customers can quickly and easily create turnkey, pre-configured HPC clusters with Slurm support on A3 VMs.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;A3 Ultra VMs will also be available through &lt;/span&gt;&lt;a href="https://cloud.google.com/kubernetes-engine?e=0"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Kubernetes Engine&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; (GKE), which provides an open, portable, extensible, and highly-scalable platform for large-scale training and serving of AI workloads.&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Trillium: Ushering in a new era of TPU performance for AI&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Tensor Processing Units, or TPUs, power our most advanced AI models such as &lt;/span&gt;&lt;a href="https://cloud.google.com/products/gemini?e=0"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Gemini&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, popular Google services like Search, Photos, and Maps, as well as scientific breakthroughs like AlphaFold 2 — which &lt;/span&gt;&lt;a href="https://www.nature.com/articles/d41586-024-03214-7" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;led to a Nobel Prize this year&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;!&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We recently announced that &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/products/compute/trillium-sixth-generation-tpu-is-in-preview?e=0"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Trillium, our sixth-generation TPU&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, is available to Google Cloud customers in preview. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Compared with TPU v5e, Trillium delivers: &lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Over 4x improvement in training performance &lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Up to 3x increase in inference throughput &lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;67% increase in energy efficiency&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;4.7x increase in peak compute performance per chip &lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Double the high bandwidth memory capacity &lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Double the interchip interconnect bandwidth &lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Cluster Toolkit: Streamlining HPC deployments&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We continue to improve &lt;/span&gt;&lt;a href="https://cloud.google.com/cluster-toolkit/docs/overview"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Cluster Toolkit&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, providing open-source tools for deploying and managing HPC environments on Google Cloud. Recent updates include:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://github.com/GoogleCloudPlatform/cluster-toolkit/tree/main/examples#major-changes-in-from-slurm-gcp-v5-to-v6" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Slurm-gcp V6&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; is now generally available, providing faster deployments and robust reconfiguration among other benefits.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/support?e=48754805&amp;amp;hl=en"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Google Cloud Customer Care&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; is now available for Toolkit. You can find more information &lt;/span&gt;&lt;a href="https://cloud.google.com/cluster-toolkit/docs/getting-support"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; on how to get support via the Cloud Customer Care console.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/blog/topics/hpc/ga-rocky-linux-8-and-centos-7-versions-of-hpc-vm-image?e=0"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;HPC VM Image&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; Rocky Linux 8 is now generally available, making it easy to build an HPC-ready VM instance, incorporating our &lt;/span&gt;&lt;a href="https://cloud.google.com/solutions/hpc?hl=en&amp;amp;e=0#section-7"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;best practices running HPC on Google Cloud&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. &lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;GKE: Container orchestration with scale and performance&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;GKE continues to lead the way for containerized workloads with &lt;/span&gt;&lt;a href="https://cloud.google.com/blog/products/containers-kubernetes/gke-65k-nodes-and-counting?e=4875480"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;the support of the largest Kubernetes clusters in the industry&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. With support for up to 65,000 nodes, we believe GKE offers more than 10X larger scale than the other two largest public cloud providers.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;At the same time, we continue to invest in automating and simplifying the building of HPC and AI platforms, with:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/kubernetes-engine/docs/how-to/data-container-image-preloading"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Secondary boot disk&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, which provides faster workload startups through container image caching &lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/kubernetes-engine/docs/how-to/dcgm-metrics"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Fully-managed DCGM metrics&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; for improved accelerator monitoring &lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://cloud.google.com/kubernetes-engine/docs/concepts/about-custom-compute-classes"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Custom compute classes&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, offering greater control over compute resource allocation and scaling&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Extensive innovations in &lt;/span&gt;&lt;a href="http://kueue.sh/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Kueue.sh&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, which is becoming the de facto standard for job queueing on Kubernetes with topology-aware scheduling, priority and fairness in queueing, multi-cluster support (&lt;/span&gt;&lt;a href="https://www.youtube.com/watch?v=xMmskWIlktA&amp;amp;list=PLj6h78yzYM2Pw4mRw4S-1p_xLARMqPkA7&amp;amp;index=4" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;see demo by Google and CERN engineers&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;), and more&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Customer success stories: Atommap and beyond&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;a href="https://cloud.google.com/blog/topics/hpc/atommap-builds-elastic-supercomputer-on-google-cloud?e=48754805"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Atommap&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;, a company specializing in atomic-scale materials design, is using Google Cloud HPC to accelerate its research and development efforts. With H3 VMs and Parallelstore, Atommap has achieved:  &lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Significant speedup in simulations: Reduced time-to-results by more than half, enabling faster innovation &lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Improved scalability: Easily scaled resources for 1,000s to 10,000s of molecular simulations, to meet growing computational demands &lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;span style="vertical-align: baseline;"&gt;Better cost-effectiveness: Optimized infrastructure costs, with savings of up to 80%, while achieving high performance &lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Atommap's success story highlights the transformative potential of Google Cloud HPC for organizations pushing the boundaries of scientific discovery and technological advancement.&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Looking ahead&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Google Cloud is committed to continuous innovation for HPC. Expect further enhancements to HPC VMs, Parallelstore, Cluster Toolkit, Slurm-gcp, and other HPC products and solutions. With a focus on performance, scalability, compatibility, and ease of use, we’re empowering researchers and engineers to tackle the world's most complex computational challenges.&lt;/span&gt;&lt;/p&gt; &lt;h2&gt;&lt;strong style="vertical-align: baseline;"&gt;Google Cloud Advanced Computing Community&lt;/strong&gt;&lt;/h2&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We’re excited to announce the launch of the &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Google Cloud Advanced Computing Community&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;, a new kind of community of practice for sharing and growing HPC, AI, and quantum computing expertise, innovation, and impact.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;This community of practice will bring together thought leaders and experts from Google, its partners, and HPC, AI, and quantum computing organizations around the world for engaging presentations and panels on innovative technologies and their applications. The Community will also leverage Google’s powerful, comprehensive, and cloud-native tools to create an interactive, dynamic, and engaging forum for discussion and collaboration.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The Community launches now, with meetings starting in December 2024 and a full rollout of learning and collaboration resources in early 2025. To learn more, register &lt;/span&gt;&lt;a href="https://rsvp.withgoogle.com/events/google-cloud-advanced-computing-community" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. &lt;/span&gt;&lt;/p&gt; &lt;h2&gt;&lt;strong style="vertical-align: baseline;"&gt;Google Cloud at Supercomputing 2024&lt;/strong&gt;&lt;/h2&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The annual &lt;/span&gt;&lt;a href="https://supercomputing.org/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Supercomputing Conference&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; series brings together the global HPC community to showcase the latest advancements in HPC, networking, storage and data analysis. Google Cloud is excited to return to &lt;/span&gt;&lt;a href="https://sc24.supercomputing.org/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Supercomputing 2024&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; in Atlanta with our largest presence ever. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Visit Google Cloud at &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;booth #1730&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; to jump in and learn about our HPC, AI infrastructure, and quantum solutions. The booth will feature a Trillium TPU board, NVIDIA H200 GPU and ConnectX-7 NIC, hands-on labs, a full schedule of talks, a comfortable lounge space, and plenty of great swag!&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The booth theater will include talks from ARM, Altair, Ansys, Intel, NAG, SchedMD, Siemens, Sycomp, Weka, and more. Booth labs will get you deploying Slurm clusters to fine-tune the Llama2 model or run GROMACS using Cloud Batch to run microbenchmarks or quantum simulations, and more.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We’re also involved in several parts of SC24's technical program, including BoFs, User Groups, and Workshops. Googlers will participate in the following technical sessions: &lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://sc24.conference-program.com/presentation/?id=bof236&amp;amp;sess=sess586" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Converged HPC and Cloud Computing in the Era of Generative AI&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; (&lt;/span&gt;&lt;a href="https://sc24.conference-program.com/presenter/?uid=169204" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Bill Magro&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; speaking)&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://sc24.conference-program.com/presentation/?id=bof239&amp;amp;sess=sess667" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;HPC &amp;amp; Cloud Convergence: drivers, triggers, and constraints&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; (&lt;/span&gt;&lt;a href="https://sc24.conference-program.com/presenter/?uid=222953" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Felix Schürmann &lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;speaking)&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://daos.io/dug24" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;DAOS User Group (DUG) ‘24&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; (&lt;/span&gt;&lt;a href="https://sc24.conference-program.com/presenter/?uid=648153" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Dean Hildebrand&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; speaking)&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://sc24.conference-program.com/presentation/?id=bof199&amp;amp;sess=sess639" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;DAOS BoF&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; (Dean Hildebrand speaking)&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://www.pdsw.org/index.shtml" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;9th International Parallel Data Systems Workshop (PDSW)&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; (Dean Hildebrand speaking)&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://sc24.conference-program.com/presentation/?id=bof108&amp;amp;sess=sess606" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;IO500: The High-Performance Storage Community BoF&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; (Dean Hildebrand speaking)&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://sc24.conference-program.com/presentation/?id=tut143&amp;amp;sess=sess417" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;High-Performance Object Storage: I/O for the Exascale Era Tutorial&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; (Dean Hildebrand speaking)&lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://womeninhpc.org/events/sc-2024-workshop" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Women in HPC Workshop&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Google is also hosting or sponsoring the following exciting events during SC24. We’re looking forward to seeing you there!&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://d126qb04.na1.hubspotlinks.com/Ctc/2M+113/d126qB04/VVt2492XYN3JW1_zCzQ21wWdCW6tdK5Q5mCdXBN6D7jYv3qn9gW7Y8-PT6lZ3pXW1dLqXH8DHPZwW7MKvrq761rrQW2L76ML8K8xFDN8rtGLzR1rPDW2W_Vhd7WLvTMW1r77qY4xVGbdW7gb9d72rp-S7W4PjwX73Zbp5lW7qQb138JVdmjN4dzXC8KGkkwVqn3091JTxz4W1kPDm26rfKJjW1ps5d06tgM2VW49hWyz5G-vYpW6zFBT51tkwgbW6Y2x_33PdjMJW4Hn3xM672S4rW7cQz4S2CFDqRN6FRq-1lKCcqW2kjp7m8CZTq-W4x6nVm4yP08KW8_F1z518GbkjW29VsDr8CBfDbW246K4578Lm_dW4Q_kln19yjxBW7hS4bP5Z92wjf5XTdKd04" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Sycomp Reception&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://beowulfbash.com/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Beowulf Bash&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://hyperionresearch.com/register-breakfast-briefing/" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Hyperion Research - Breakfast Briefing&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://womeninhpc.org/events/sc-2024-networking-reception" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Women in HPC Reception&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li aria-level="1" style="list-style-type: disc; vertical-align: baseline;"&gt; &lt;p role="presentation"&gt;&lt;a href="https://carahevents.carahsoft.com/Event/Register/544427-google" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Carahsoft Reception&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Finally, we’ll be holding private meetings and roadmap briefings with our HPC leadership throughout the conference. To schedule a meeting, please contact &lt;/span&gt;&lt;a href="mailto:hpc-sales@google.com"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;hpc-sales@google.com&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Fri, 15 Nov 2024 17:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/topics/hpc/whats-new-with-hpc/</guid><category>AI &amp; Machine Learning</category><category>Compute</category><category>HPC</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>What’s new with HPC and AI infrastructure at Google Cloud</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/topics/hpc/whats-new-with-hpc/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Annie Ma-Weaver</name><title>Group Product Manager, HPC, Google Cloud</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Wyatt Gorman</name><title>Solutions Manager, HPC &amp; AI Infrastructure, Google Cloud</title><department></department><company></company></author></item><item><title>Dataproc Serverless: Now faster, easier and smarter</title><link>https://cloud.google.com/blog/products/data-analytics/dataproc-serverless-performance-and-usability-updates/</link><description>&lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We are thrilled to announce new capabilities that make running Dataproc Serverless even faster, easier, and more intelligent.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Elevate your Spark experience with:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Native query execution: &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;Experience significant performance gains with the new &lt;/span&gt;&lt;a href="https://cloud.google.com/dataproc-serverless/docs/guides/native-query-execution"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Native query execution&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; in the Premium tier.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Seamless monitoring with Spark UI: &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;Track job progress in real time with a built-in &lt;/span&gt;&lt;a href="https://cloud.google.com/dataproc-serverless/docs/guides/monitor-troubleshoot-batches#spark_ui"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Spark UI&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; available by default for all Spark batches and sessions.&lt;/span&gt;&lt;/li&gt; &lt;li role="presentation"&gt;&lt;strong style="vertical-align: baseline;"&gt;Streamlined investigation&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;: Troubleshoot batch jobs from a central &lt;/span&gt;&lt;a href="https://cloud.google.com/dataproc-serverless/docs/guides/monitor-troubleshoot-batches#gemini-assisted_troubleshooting_for_dataproc"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;"Investigate" tab &lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;displaying all the essential metrics highlights and logs filtered by errors automatically.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;strong style="vertical-align: baseline;"&gt;Proactive autotuning and assisted troubleshooting with Gemini: &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;Let &lt;/span&gt;&lt;a href="https://cloud.google.com/dataproc-serverless/docs/guides/monitor-troubleshoot-batches#gemini-assisted_troubleshooting_for_dataproc"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Gemini&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; minimize failures and autotune performance based on historical patterns. Quickly resolve issues using Gemini-powered insights and recommendations.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt; &lt;div class="block-aside"&gt;&lt;dl&gt; &lt;dt&gt;aside_block&lt;/dt&gt; &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;title&amp;#x27;, &amp;#x27;$300 in free credit to try Google Cloud data analytics&amp;#x27;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x3e808913d520&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;Start building for free&amp;#x27;), (&amp;#x27;href&amp;#x27;, &amp;#x27;http://console.cloud.google.com/freetrial?redirectPath=/bigquery/&amp;#x27;), (&amp;#x27;image&amp;#x27;, None)])]&amp;gt;&lt;/dd&gt; &lt;/dl&gt;&lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Accelerate your Spark jobs with native query execution&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;You can unlock considerable speed improvements for your Spark batch jobs in the &lt;/span&gt;&lt;a href="https://cloud.google.com/dataproc-serverless/pricing"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Premium tier&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; on Dataproc Serverless Runtimes 2.2.26+ or 1.2.26+ by enabling &lt;/span&gt;&lt;a href="https://cloud.google.com/dataproc-serverless/docs/guides/native-query-execution"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;native query execution&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; — no application changes required.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;This new feature in Dataproc Serverless Premium tier improved the query performance by ~47%in our tests on queries derived from TPC-DS and TPC-H benchmarks.&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/1_0utxRaq.max-1000x1000.png" alt="1"&gt; &lt;/a&gt; &lt;figcaption class="article-image__caption "&gt;&lt;p data-block-key="2ixne"&gt;Note: Performance results are based on 1TB GCS Parquet data and queries derived from the &lt;a href="https://www.tpc.org/tpcds/"&gt;TPC-DS standard&lt;/a&gt; and &lt;a href="https://www.tpc.org/tpch/"&gt;TPC-H standard&lt;/a&gt;. These runs as such aren’t comparable to published &lt;a href="https://www.tpc.org/tpcds/"&gt;TPC-DS standard&lt;/a&gt; and &lt;a href="https://www.tpc.org/tpch/"&gt;TPC-H standard&lt;/a&gt; results, as these runs don’t comply with all requirements of the &lt;a href="https://www.tpc.org/tpcds/"&gt;TPC-DS standard&lt;/a&gt; and and &lt;a href="https://www.tpc.org/tpch/"&gt;TPC-H standard&lt;/a&gt; specification.&lt;/p&gt;&lt;/figcaption&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Start now by running the &lt;/span&gt;&lt;a href="https://cloud.google.com/dataproc-serverless/docs/guides/native-query-execution#native_query_execution_qualification_tool"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;native query execution qualification tool&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; that can help you easily identify eligible jobs and estimate potential performance gains. Once you have the list of batch jobs identified for native query execution, you can enable it and have the jobs run faster and potentially save costs.&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Seamless monitoring with Spark UI&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Tired of wrestling with setting up the persistent history server (PHS) clusters and maintaining them just to debug your Spark batches? Wouldn't it be easier if you could avoid the ongoing costs of the history server and yet see the Spark UI in real-time?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Until now, monitoring and troubleshooting Spark jobs in Dataproc Serverless required setting up and managing a separate &lt;/span&gt;&lt;a href="https://cloud.google.com/dataproc/docs/concepts/jobs/history-server#use_phs_with_spark_batch_workloads"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Spark persistent history server&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;. Crucially, each batch job had to be configured to use the history server. Otherwise, the open-source UI would be unavailable for analysis for the batch job. Additionally, the open-source UI suffered from slow navigation between applications.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;We’ve heard you, loud and clear. &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;We’re excited to announce a fully managed &lt;/strong&gt;&lt;a href="https://cloud.google.com/dataproc-serverless/docs/guides/monitor-troubleshoot-batches#spark_ui"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Spark UI&lt;/strong&gt;&lt;/a&gt;&lt;strong style="vertical-align: baseline;"&gt; in Dataproc Serverless that makes monitoring and troubleshooting a breeze.&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The new &lt;/span&gt;&lt;a href="https://cloud.google.com/dataproc-serverless/docs/guides/monitor-troubleshoot-batches#spark_ui"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Spark UI&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; is built-in and automatically available for every batch job and session in both Standard and Premium tiers of Dataproc Serverless at no additional cost. Simply submit your job and start analyzing performance in real time with the Spark UI right away.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Here's why you'll love the Serverless Spark UI:&lt;br/&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt; &lt;div align="left"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt; &lt;div style="color: #5f6368; overflow-x: auto; overflow-y: hidden; width: 100%;"&gt;&lt;table&gt;&lt;colgroup&gt;&lt;col/&gt;&lt;col/&gt;&lt;col/&gt;&lt;/colgroup&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt; &lt;/td&gt; &lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Traditional Approach&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The new Dataproc Serverless Spark UI&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Effort&lt;/strong&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt; &lt;p&gt;&lt;a href="https://cloud.google.com/dataproc/docs/concepts/jobs/history-server#create_a_phs_cluster"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Create and manage&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; a Spark history server cluster. Configure each batch job to use the cluster.&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;No cluster setup or management required. Spark UI is available by default for all your batches without any extra configuration.The UI can be accessed directly from the Batch / Session details page in the Google Cloud console.&lt;/strong&gt;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Latency&lt;/strong&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;UI performance can degrade with increased load. Requires active resource management.&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Enjoy a responsive UI that automatically scales to handle even the most demanding workloads.&lt;/strong&gt;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Availability&lt;/strong&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The UI is only available as long as the history server cluster is running.&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Access your Spark UI for 90 days after your batch job is submitted.&lt;/strong&gt;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Data freshness&lt;/strong&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Wait for a stage to complete to see that its events are in the UI.&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;View regularly updated data without waiting for the stage to complete.&lt;/strong&gt;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Functionality&lt;/strong&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Basic UI based on open-source Spark.&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Enhanced UI with ongoing improvements based on user feedback.&lt;/strong&gt;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Cost&lt;/strong&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Ongoing cost for the PHS cluster.&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="vertical-align: top; border: 1px solid #000000; padding: 16px;"&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;No additional charge.&lt;/strong&gt;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Accessing the Spark UI&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;To gain deeper insights into your Spark batches and sessions — whether they’re still running or completed —  simply navigate to the Batch Details or Session Details page in the Google Cloud console. You'll find a "&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;VIEW SPARK UI&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;" link in the top right corner.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/2_knlkcby.max-1000x1000.jpg" alt="2"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;The new &lt;/span&gt;&lt;a href="https://cloud.google.com/dataproc-serverless/docs/guides/monitor-troubleshoot-batches#spark_ui"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Spark UI&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; provides the same powerful features as the open-source Spark History Server, giving you deep insights into your Spark job performance. Easily browse both running and completed applications, explore jobs, stages, and tasks, and analyze SQL queries for a comprehensive understanding of the execution of your application. Quickly identify bottlenecks and troubleshoot issues with detailed execution information. For even deeper analysis, the 'Executors' tab provides direct links to the relevant logs in Cloud Logging, allowing you to quickly investigate issues related to specific executors.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/original_images/3-Spark-UI-GIF-video.gif" alt="3"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;You can still use the "VIEW SPARK HISTORY SERVER" link to &lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;view the Persistent Spark History Server if you had already configured one&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Explore this feature now.&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt; Click &lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;"VIEW SPARK UI" &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;on the top right corner of the Batch details page of any of your &lt;/span&gt;&lt;a href="https://cloud.google.com/console/dataproc/batches"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;recent Spark batch jobs&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; to get started. Learn more in the &lt;/span&gt;&lt;a href="https://cloud.google.com/dataproc-serverless/docs/guides/monitor-troubleshoot-batches#spark_ui"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Dataproc Serverless user guide&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Streamlined investigation (Preview)&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;A new "&lt;/span&gt;&lt;strong style="vertical-align: baseline;"&gt;Investigate&lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;" tab in the Batch details screen gives you instant diagnostic highlights collected at a single place.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;In the “&lt;/span&gt;&lt;a href="https://cloud.google.com/dataproc-serverless/docs/guides/monitor-troubleshoot-batches#batch_metric_highlights"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Metrics highlights&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;” section, the essential metrics are automatically displayed, giving you a clear picture of your batch job's health. You can further create a custom dashboard if you need more metrics.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/4_zGtB1Fg.max-1000x1000.png" alt="4"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Below the metrics highlights, a widget “&lt;/span&gt;&lt;a href="https://cloud.google.com/dataproc-serverless/docs/guides/monitor-troubleshoot-batches#job_logs"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Job Logs&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt;” shows the logs filtered by errors, so you can instantly spot and address problems. If you would like to dig further into the logs, you can go to the Logs Explorer.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/5_mls8Usg.max-1000x1000.png" alt="5"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;h3&gt;&lt;strong style="vertical-align: baseline;"&gt;Proactive autotuning and assisted troubleshooting with Gemini (Preview)&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="vertical-align: baseline;"&gt;Last but not least, &lt;/span&gt;&lt;a href="https://cloud.google.com/gemini/docs/bigquery/overview"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;Gemini in BigQuery&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; can help reduce the complexity of optimizing hundreds of Spark properties in your batch job configurations while submitting the job. If the job fails or runs slow, Gemini can save the effort of wading through several GBs of logs to troubleshoot the job. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Optimize performance: &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;Gemini can automatically &lt;/span&gt;&lt;a href="https://cloud.google.com/dataproc-serverless/docs/concepts/autotuning"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;fine-tune the Spark configurations&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; of your Dataproc Serverless batch jobs for optimal performance and reliability.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/6_RlKPyLK.max-1000x1000.png" alt="6"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;strong style="vertical-align: baseline;"&gt;Simplify troubleshooting: &lt;/strong&gt;&lt;span style="vertical-align: baseline;"&gt;You can quickly diagnose and resolve issues with slow or failed jobs by clicking &lt;/span&gt;&lt;a href="https://cloud.google.com/dataproc-serverless/docs/guides/monitor-troubleshoot-batches#advanced_troubleshooting_preview"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;"Ask Gemini"&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline;"&gt; for AI-powered analysis and guidance.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/7_0FdVhfE.max-1000x1000.png" alt="7"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-image_full_width"&gt; &lt;div class="article-module h-c-page"&gt; &lt;div class="h-c-grid"&gt; &lt;figure class="article-image--large h-c-grid__col h-c-grid__col--6 h-c-grid__col--offset-3 " &gt; &lt;img src="https://storage.googleapis.com/gweb-cloudblog-publish/images/8_dCcqmIi.max-1000x1000.png" alt="8"&gt; &lt;/a&gt; &lt;/figure&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="block-paragraph_advanced"&gt;&lt;p&gt;&lt;a href="http://goo.gle/gemini-in-bq-preview" rel="noopener" target="_blank"&gt;&lt;strong style="text-decoration: underline; vertical-align: baseline;"&gt;Sign up here&lt;/strong&gt;&lt;/a&gt;&lt;strong style="vertical-align: baseline;"&gt; for a free preview of the Gemini features and “Investigate” tab for Dataproc Serverless&lt;/strong&gt;&lt;a href="http://goo.gle/gemini-in-bq-preview" rel="noopener" target="_blank"&gt;&lt;span style="text-decoration: underline; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Fri, 15 Nov 2024 17:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/products/data-analytics/dataproc-serverless-performance-and-usability-updates/</guid><category>Streaming</category><category>Data Analytics</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Dataproc Serverless: Now faster, easier and smarter</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/products/data-analytics/dataproc-serverless-performance-and-usability-updates/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Pardha Saradhi Uppala</name><title>Product Manager</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Virat Bansal</name><title>Software Engineer</title><department></department><company></company></author></item></channel></rss>