<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>DevOps - Category - Shengxu · Cloud Architecture &amp; DevOps</title><link>https://shengxu.pages.dev/en/categories/devops/</link><description>Cloud architecture &amp; DevOps notes by Shengxu: Kubernetes, Cilium, observability, LLM infra, AI agents.</description><generator>Hugo 0.153.2 &amp; FixIt v0.4.0-alpha.3-20251225101113-8ffb9a95</generator><language>en</language><lastBuildDate>Fri, 17 Apr 2026 19:40:00 +0800</lastBuildDate><atom:link href="https://shengxu.pages.dev/en/categories/devops/index.xml" rel="self" type="application/rss+xml"/><item><title>From Azure SRE Agent to HolmesGPT: AIOps Practices in Multi-Cloud Kubernetes Environments</title><link>https://shengxu.pages.dev/en/posts/azure-sre-agent-to-holmesgpt/</link><pubDate>Fri, 17 Apr 2026 19:40:00 +0800</pubDate><guid>https://shengxu.pages.dev/en/posts/azure-sre-agent-to-holmesgpt/</guid><category domain="https://shengxu.pages.dev/en/categories/ai/">AI</category><category domain="https://shengxu.pages.dev/en/categories/kubernetes/">Kubernetes</category><category domain="https://shengxu.pages.dev/en/categories/devops/">DevOps</category><category domain="https://shengxu.pages.dev/en/categories/observability/">Observability</category><description>&lt;p&gt;In the multi-cloud Kubernetes era, the pain point for SREs is no longer just &amp;ldquo;too many alerts,&amp;rdquo; but rather investigation chains that are too long, context that is too scattered, and troubleshooting costs across clouds that are too high. What truly drains people isn&amp;rsquo;t glancing at a chart, but constantly switching between multiple cloud platforms, logging systems, deployment records, and ticketing systems.&lt;/p&gt;
&lt;p&gt;This is why AI SRE Agents are starting to deliver real value. Their goal isn&amp;rsquo;t to be a better conversational Copilot, but to proactively take over the highly repetitive first half of the work—&amp;ldquo;checking logs, finding correlations, guessing root causes, and giving suggestions&amp;rdquo;—once an alert is triggered.&lt;/p&gt;</description></item><item><title>Cilium 2026 (Continued): How the Unified Data Plane Is Reshaping Kubernetes Platform Architecture</title><link>https://shengxu.pages.dev/en/posts/cilium-2026-part-2-unified-dataplane/</link><pubDate>Sat, 21 Mar 2026 14:31:56 +0800</pubDate><guid>https://shengxu.pages.dev/en/posts/cilium-2026-part-2-unified-dataplane/</guid><category domain="https://shengxu.pages.dev/en/categories/kubernetes/">Kubernetes</category><category domain="https://shengxu.pages.dev/en/categories/devops/">DevOps</category><category domain="https://shengxu.pages.dev/en/categories/observability/">Observability</category><category domain="https://shengxu.pages.dev/en/categories/security/">Security</category><category domain="https://shengxu.pages.dev/en/categories/ai/">AI</category><description>&lt;p&gt;In &lt;a href="https://shengxu.pages.dev/posts/cilium-2026/"&gt;the previous article on Cilium&lt;/a&gt;, we explored the real reasons behind the 2026 migration wave: it&amp;rsquo;s no longer just &amp;ldquo;a faster CNI,&amp;rdquo; but rather a reorganization of Kubernetes networking, security, observability, and multi-cluster capabilities into a more unified infrastructure foundation, while clarifying its division of labor and boundaries with Istio.&lt;/p&gt;
&lt;p&gt;If the previous article answered &amp;ldquo;What exactly can Cilium bring us?&amp;rdquo;, this one goes further, focusing on its core evolution: the &lt;strong&gt;Unified Dataplane&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Before Discussing LLM Security, Is Your Kubernetes Foundation Up to Standard?</title><link>https://shengxu.pages.dev/en/posts/kubernetes-security-before-llm/</link><pubDate>Sat, 14 Mar 2026 10:00:00 +0800</pubDate><guid>https://shengxu.pages.dev/en/posts/kubernetes-security-before-llm/</guid><category domain="https://shengxu.pages.dev/en/categories/security/">Security</category><category domain="https://shengxu.pages.dev/en/categories/kubernetes/">Kubernetes</category><category domain="https://shengxu.pages.dev/en/categories/devops/">DevOps</category><description>&lt;p&gt;The explosion of Large Language Models (LLMs) and AI Agents has not only revolutionized business models but also introduced new application-layer security challenges such as prompt injection and data poisoning. While everyone&amp;rsquo;s attention is drawn to these cutting-edge vulnerabilities, let&amp;rsquo;s first pause and ask ourselves a fundamental question: &lt;strong&gt;Before diving into these complex AI security issues, is the cloud-native foundation that supports all our business workloads even up to par?&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>What Cilium Can Really Bring Us in 2026</title><link>https://shengxu.pages.dev/en/posts/cilium-2026/</link><pubDate>Sun, 08 Mar 2026 10:30:00 +0800</pubDate><guid>https://shengxu.pages.dev/en/posts/cilium-2026/</guid><category domain="https://shengxu.pages.dev/en/categories/kubernetes/">Kubernetes</category><category domain="https://shengxu.pages.dev/en/categories/devops/">DevOps</category><category domain="https://shengxu.pages.dev/en/categories/observability/">Observability</category><description>&lt;h2 class="heading-element" id="what-meaningful-changes-it-actually-brings-and-how-to-divide-work-with-istio"&gt;&lt;span&gt;——What Meaningful Changes It Actually Brings, and How to Divide Work with Istio&lt;/span&gt;
 &lt;a href="#what-meaningful-changes-it-actually-brings-and-how-to-divide-work-with-istio" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;By 2026, many teams discussing Cilium are no longer asking &amp;ldquo;Is it worth trying?&amp;rdquo; but rather &amp;ldquo;When should we migrate?&amp;rdquo;&lt;/p&gt;</description></item><item><title>Weekend Project: Building a Local Load Balancer for LLM API Keys</title><link>https://shengxu.pages.dev/en/posts/llm-api-load-balancer/</link><pubDate>Sat, 14 Feb 2026 10:18:00 +0800</pubDate><guid>https://shengxu.pages.dev/en/posts/llm-api-load-balancer/</guid><category domain="https://shengxu.pages.dev/en/categories/ai/">AI</category><category domain="https://shengxu.pages.dev/en/categories/devops/">DevOps</category><category domain="https://shengxu.pages.dev/en/categories/observability/">Observability</category><description>&lt;p&gt;Lately, because I&amp;rsquo;ve been using various LLM services (OpenAI, Gemini, DeepSeek, etc.) intensively, I&amp;rsquo;ve run into a very real pain point: &lt;strong&gt;being broke&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;To save money, I applied for multiple free API keys (like Google Gemini&amp;rsquo;s Free Tier or DeepSeek&amp;rsquo;s complimentary credits), but these free keys often come with strict rate limits (RPM/TPM). Just when I&amp;rsquo;m in the flow writing code, a &lt;code&gt;429 Too Many Requests&lt;/code&gt; error pops up, completely breaking my train of thought. It&amp;rsquo;s really frustrating.&lt;/p&gt;</description></item><item><title>Hands-On · Building a Memory-Enabled AI Writing Partner (Part 4): Observability (Metrics + Logs + Trace + Cost)</title><link>https://shengxu.pages.dev/en/posts/fantasy-novel-agent-observability/</link><pubDate>Thu, 05 Feb 2026 16:00:00 +0800</pubDate><guid>https://shengxu.pages.dev/en/posts/fantasy-novel-agent-observability/</guid><category domain="https://shengxu.pages.dev/en/categories/ai/">AI</category><category domain="https://shengxu.pages.dev/en/categories/devops/">DevOps</category><category domain="https://shengxu.pages.dev/en/categories/observability/">Observability</category><description>&lt;p&gt;In the previous post, we discussed the security of RAG systems and prompt injection protection. Today, let&amp;rsquo;s dive into another engineering deep-water zone: &lt;strong&gt;Observability&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;When a system evolves from &amp;ldquo;it works&amp;rdquo; to &amp;ldquo;it works reliably long-term,&amp;rdquo; you will inevitably encounter three types of problems:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Slow&lt;/strong&gt;: Is retrieval slow? Is the LLM slow? Or is some Agent stuck in a retry loop?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expensive&lt;/strong&gt;: Is token consumption being silently drained by a specific chain? Why doesn&amp;rsquo;t this month&amp;rsquo;s API bill add up?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Strange&lt;/strong&gt;: Intermittent bugs that can&amp;rsquo;t be reproduced, leaving you to fix code based on &amp;ldquo;gut feeling.&amp;rdquo;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;At this stage, I chose to build a complete &lt;strong&gt;Metrics + Logs&lt;/strong&gt; system, rather than just sprinkling in a few &lt;code&gt;print&lt;/code&gt; statements.&lt;/p&gt;</description></item><item><title>Practical · Building a Memory-Enabled AI Writing Partner (Part 3): Security Architecture (RAG Protection, Fact Guard, and BYOK)</title><link>https://shengxu.pages.dev/en/posts/fantasy-novel-agent-security/</link><pubDate>Wed, 04 Feb 2026 10:00:00 +0800</pubDate><guid>https://shengxu.pages.dev/en/posts/fantasy-novel-agent-security/</guid><category domain="https://shengxu.pages.dev/en/categories/ai/">AI</category><category domain="https://shengxu.pages.dev/en/categories/security/">Security</category><category domain="https://shengxu.pages.dev/en/categories/devops/">DevOps</category><category domain="https://shengxu.pages.dev/en/categories/observability/">Observability</category><description>&lt;p&gt;In the previous 2.5 articles, I&amp;rsquo;ve already laid out the backbone of &lt;a href="https://shengxu.pages.dev/posts/fantasy-novel-agent-architecture-evolution/"&gt;FantasyNovelAgent&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://shengxu.pages.dev/posts/fantasy-novel-agent-architecture-evolution/"&gt;Building a Memory-Enabled AI Writing Partner (Part 1): Multi-Agent Architecture Evolution&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://shengxu.pages.dev/posts/fantasy-novel-agent-database-evolution/"&gt;Building a Memory-Enabled AI Writing Partner (Part 2): Database Evolution&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://shengxu.pages.dev/posts/fantasy-novel-agent-retrieval-evolution/"&gt;Building a Memory-Enabled AI Writing Partner (Part 3): Retrieval System Evolution&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This article dives deep into the most overlooked yet critical aspect of AI systems: &lt;strong&gt;Security&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re thinking, &amp;ldquo;I&amp;rsquo;m just writing a novel, what security issues could there be?&amp;rdquo;, consider this:&lt;/p&gt;</description></item><item><title>Practical Guide: Building a Memory-Enabled AI Writing Partner (Kun) – Retrieval System (Vector Search, Hybrid Search &amp; Cloud Deployment)</title><link>https://shengxu.pages.dev/en/posts/fantasy-novel-agent-retrieval-evolution/</link><pubDate>Wed, 28 Jan 2026 10:30:00 +0800</pubDate><guid>https://shengxu.pages.dev/en/posts/fantasy-novel-agent-retrieval-evolution/</guid><category domain="https://shengxu.pages.dev/en/categories/ai/">AI</category><category domain="https://shengxu.pages.dev/en/categories/devops/">DevOps</category><description>&lt;blockquote&gt;
&lt;p&gt;In &amp;ldquo;&lt;a href="https://shengxu.pages.dev/posts/fantasy-novel-agent-architecture-evolution/"&gt;Practical · Building a Memory-Enabled AI Writing Partner (Part 1): Multi-Agent Architecture Evolution&lt;/a&gt;&amp;rdquo;, I clarified how multiple agents collaborate and how memory is chained together. In &amp;ldquo;&lt;a href="https://shengxu.pages.dev/posts/fantasy-novel-agent-database-evolution/"&gt;Practical · Building a Memory-Enabled AI Writing Partner (Part 2): Database Evolution (From JSON to Single Database to Relational Tables)&lt;/a&gt;&amp;rdquo;, I reviewed the evolution of the &amp;ldquo;fact layer&amp;rdquo; from JSON to &lt;a href="https://shengxu.pages.dev/posts/fantasy-novel-agent-database-evolution/"&gt;SQLite&lt;/a&gt; and then to relational tables.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;However, when the text length reaches hundreds of thousands of words, what truly determines the experience is often not &amp;ldquo;whether the data exists,&amp;rdquo; but &amp;ldquo;whether I can retrieve it&amp;rdquo;: exact lookup (did it appear or not), structured filtering (who belongs to whom), and semantic association (is it similar, is it the same atmosphere) must all work simultaneously. So I added a clear &amp;ldquo;index layer&amp;rdquo; to &lt;a href="https://shengxu.pages.dev/posts/fantasy-novel-agent-architecture-evolution/"&gt;FantasyNovelAgent&lt;/a&gt; and expanded retrieval from &amp;ldquo;chapters&amp;rdquo; to the &amp;ldquo;full knowledge graph.&amp;rdquo;&lt;/p&gt;</description></item><item><title>Practical · Building a Memory-Enabled AI Writing Partner (Part 2): Database (From JSON to Single Table to Relational Tables)</title><link>https://shengxu.pages.dev/en/posts/fantasy-novel-agent-database-evolution/</link><pubDate>Wed, 28 Jan 2026 10:00:00 +0800</pubDate><guid>https://shengxu.pages.dev/en/posts/fantasy-novel-agent-database-evolution/</guid><category domain="https://shengxu.pages.dev/en/categories/ai/">AI</category><category domain="https://shengxu.pages.dev/en/categories/devops/">DevOps</category><description>&lt;blockquote&gt;
&lt;p&gt;If you&amp;rsquo;ve already read &lt;em&gt;&lt;a href="https://shengxu.pages.dev/posts/fantasy-novel-agent-architecture-evolution/"&gt;Building a Memory-Powered AI Writing Partner (Part 1): Multi-Agent Architecture Evolution&lt;/a&gt;&lt;/em&gt;, you likely have a high-level understanding of how multiple agents collaborate and how memory is chained together. But what truly makes a system viable long-term isn&amp;rsquo;t just a pretty architecture diagram—it requires a data foundation that can withstand growth: one that supports querying, modification, and rollback.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This article focuses on the evolution of the &amp;ldquo;fact layer&amp;rdquo; (the database): &lt;strong&gt;JSON files → SQLite single database (KV) → SQLite single database (relational tables)&lt;/strong&gt;. Semantic search, hybrid search, full graph indexing, and cloud migration are covered separately in the next article, &lt;em&gt;&lt;a href="https://shengxu.pages.dev/posts/fantasy-novel-agent-retrieval-evolution/"&gt;Building a Memory-Powered AI Writing Partner (Part 2): Retrieval Systems (Vector Search, Hybrid Search, and Cloud Migration)&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>Practical Guide · Building a Memory-Enabled AI Writing Partner (Part 1): Multi-Agent Architecture Evolution</title><link>https://shengxu.pages.dev/en/posts/fantasy-novel-agent-architecture-evolution/</link><pubDate>Sun, 25 Jan 2026 10:00:00 +0800</pubDate><guid>https://shengxu.pages.dev/en/posts/fantasy-novel-agent-architecture-evolution/</guid><category domain="https://shengxu.pages.dev/en/categories/ai/">AI</category><category domain="https://shengxu.pages.dev/en/categories/devops/">DevOps</category><description>&lt;p&gt;When writing a long novel, the most painful part isn&amp;rsquo;t &amp;ldquo;not being able to write,&amp;rdquo; but &amp;ldquo;forgetting what you&amp;rsquo;ve already written&amp;rdquo;: Did I set up that foreshadowing properly? Was the character already injured in the last chapter? When exactly was that specific rule established? Once the word count reaches hundreds of thousands, relying solely on human memory and scattered notes quickly spirals out of control.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;FantasyNovelAgent&lt;/strong&gt; grew out of this very need, evolving step by step: starting as a simple Python script, then adding dynamic memory and automatic archiving, followed by multi-device sync support, and finally moving toward a front-end/back-end separation with a cloud-native storage prototype. This article reviews that evolutionary path and explains the key trade-offs made along the way, offering a reference for similar projects.&lt;/p&gt;</description></item><item><title>Kubernetes Complexity: Starting from a Job Interview Question</title><link>https://shengxu.pages.dev/en/posts/kubernetes-complexity-interview/</link><pubDate>Sat, 24 Jan 2026 12:47:00 +0800</pubDate><guid>https://shengxu.pages.dev/en/posts/kubernetes-complexity-interview/</guid><category domain="https://shengxu.pages.dev/en/categories/kubernetes/">Kubernetes</category><category domain="https://shengxu.pages.dev/en/categories/devops/">DevOps</category><description>&lt;p&gt;I recently went through a job interview where the interviewer posed a seemingly routine question: &amp;ldquo;In your opinion, when should you use Kubernetes, and when is it unnecessary and just adds complexity?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;I answered it fairly smoothly at the time, but the question lingered in my mind long afterward. What made it so &amp;ldquo;sharp&amp;rdquo; was that it stepped beyond the technical details of &amp;ldquo;how to use K8s&amp;rdquo; and cut straight to the core trade-off in architecture design: Are we introducing a tech stack to solve a real business pain point, or just to satisfy the team&amp;rsquo;s &amp;ldquo;anxiety about being cutting-edge&amp;rdquo;?&lt;/p&gt;</description></item><item><title>Hands-On: Building an Automated AI Semantic Search with Cloudflare Vectorize and Gemini</title><link>https://shengxu.pages.dev/en/posts/building-ai-search-with-cloudflare-and-gemini/</link><pubDate>Fri, 23 Jan 2026 15:30:00 +0800</pubDate><guid>https://shengxu.pages.dev/en/posts/building-ai-search-with-cloudflare-and-gemini/</guid><category domain="https://shengxu.pages.dev/en/categories/ai/">AI</category><category domain="https://shengxu.pages.dev/en/categories/devops/">DevOps</category><description>&lt;p&gt;In 2026, adding AI search to a personal blog is nothing new. But achieving it with &lt;strong&gt;zero cost&lt;/strong&gt;, &lt;strong&gt;full automation&lt;/strong&gt;, and &lt;strong&gt;high performance&lt;/strong&gt; remains a technical topic worth exploring.&lt;/p&gt;
&lt;p&gt;This article breaks down the technical architecture behind this site&amp;rsquo;s AI Search feature, showing how to combine &lt;strong&gt;Cloudflare Workers&lt;/strong&gt;, &lt;strong&gt;Vectorize&lt;/strong&gt;, &lt;strong&gt;D1&lt;/strong&gt;, and &lt;strong&gt;Google Gemini&lt;/strong&gt; to build a closed-loop RAG (Retrieval-Augmented Generation) system.&lt;/p&gt;
&lt;h2 class="heading-element" id="1-core-architecture-design"&gt;&lt;span&gt;1. Core Architecture Design&lt;/span&gt;
 &lt;a href="#1-core-architecture-design" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Our goal is a fully automated workflow: &lt;strong&gt;write and deploy&lt;/strong&gt;. The author only needs to push Markdown articles; everything else—vector generation, index updates, frontend deployment—is automated.&lt;/p&gt;</description></item><item><title>Helm 4 Deep Dive: More Than a Version Bump – A New Beginning for the Kubernetes-Native Era</title><link>https://shengxu.pages.dev/en/posts/helm-4-deep-dive-kubernetes-native-delivery/</link><pubDate>Thu, 22 Jan 2026 10:00:00 +0800</pubDate><guid>https://shengxu.pages.dev/en/posts/helm-4-deep-dive-kubernetes-native-delivery/</guid><category domain="https://shengxu.pages.dev/en/categories/kubernetes/">Kubernetes</category><category domain="https://shengxu.pages.dev/en/categories/devops/">DevOps</category><description>&lt;p&gt;In the infrastructure world, some version updates are &amp;ldquo;icing on the cake,&amp;rdquo; while others are &amp;ldquo;transformative.&amp;rdquo; If Helm 3 freed us from the nightmare of Tiller, then &lt;strong&gt;Helm 4&lt;/strong&gt;, officially released in &lt;strong&gt;November 2025&lt;/strong&gt;, marks the coming-of-age moment when Helm truly understood and embraced Kubernetes&amp;rsquo; declarative philosophy.&lt;/p&gt;
&lt;p&gt;After two months of community validation and official documentation refinement, this article will clarify the easily misunderstood technical details based on Helm 4&amp;rsquo;s actual release state.&lt;/p&gt;</description></item></channel></rss>