<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Savi Saluwadana</title>
    <description>The latest articles on DEV Community by Savi Saluwadana (@savi_saluwadana).</description>
    <link>https://dev.to/savi_saluwadana</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3661277%2Ff471b5be-55fc-401e-a772-8e8358c3cdc3.jpeg</url>
      <title>DEV Community: Savi Saluwadana</title>
      <link>https://dev.to/savi_saluwadana</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/savi_saluwadana"/>
    <language>en</language>
    <item>
      <title>I Deployed the 11-Tier Google Microservices Demo in Minutes using OpenChoreo</title>
      <dc:creator>Savi Saluwadana</dc:creator>
      <pubDate>Thu, 16 Apr 2026 09:13:40 +0000</pubDate>
      <link>https://dev.to/savi_saluwadana/i-deployed-the-11-tier-google-microservices-demo-in-minutes-using-openchoreo-4p13</link>
      <guid>https://dev.to/savi_saluwadana/i-deployed-the-11-tier-google-microservices-demo-in-minutes-using-openchoreo-4p13</guid>
      <description>&lt;p&gt;If you work in the cloud-native ecosystem, you are probably familiar with the Google Online Boutique (formerly the GCP Microservices Demo). It is the gold standard for testing cloud-native infrastructure. It features 11 distinct microservices written in multiple languages (including Go, Java, and Python), generating a web of high-concurrency traffic and deep dependencies.&lt;/p&gt;

&lt;p&gt;Deploying it manually usually means wrestling with a mountain of Kubernetes manifests and struggling to visualize how the services actually talk to each other.&lt;/p&gt;

&lt;p&gt;I recently wanted to see how this demo would look inside OpenChoreo, a new CNCF Sandbox open-source developer platform for Kubernetes. I was looking for a unified way to visualize the architecture, track deployments, and manage dependencies without building a custom portal from scratch.&lt;/p&gt;

&lt;p&gt;Here is how I deployed the entire suite using OpenChoreo, and a look at the beautiful, premium platform UI it generated.&lt;/p&gt;

&lt;p&gt;The Setup: Zero to Platform in Minutes&lt;br&gt;
The goal was to avoid spending hours configuring a control plane. I wanted a complete Internal Developer Platform (IDP) experience straight out of the box.&lt;/p&gt;

&lt;p&gt;Step 1: The Quick Start Guide&lt;br&gt;
I started with the OpenChoreo Quick Start Guide (QSG). Running the QSG locally spun up the entire foundation. Within about 10 minutes, I had the OpenChoreo Control, Data, Workflow, and Observability planes running on my cluster, complete with the Backstage-powered UI.&lt;/p&gt;

&lt;p&gt;Step 2: Deploying the Demo Script&lt;br&gt;
With the platform running, I did not have to manually translate the Google microservices into OpenChoreo components. I simply executed the provided command script specifically designed for the Google Microservice Demo deployment.&lt;/p&gt;

&lt;p&gt;The script automatically registered the project, defined the component boundaries, and initiated the GitOps reconciliation.&lt;/p&gt;

&lt;p&gt;Exploring the Results&lt;br&gt;
Once the deployment finished, the OpenChoreo UI brought the entire microservice architecture to life. Here is what the platform gave me automatically.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Unified Component Catalog
Instead of hunting through terminal commands to see what was running, the Overview tab provided a clean, unified catalog.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Every component (the Go-based frontend, the Java Spring Boot shipping service, the redis cache) was cataloged neatly under the "GCP Microservice Demo" project. More importantly, the UI exposed the deployment state of each component across the defined pipeline, showing clear green checks for successful deployments in the Development environment, with paths ready for Staging and Production.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Relationship Graph
Microservices only make sense when you understand their context. OpenChoreo generated a complete system diagram mapping the exact relationships.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The graph visually links the default namespace to the GCP Microservice Demo project, and then branches out to show every single component connected to it, alongside the Default Pipeline. It provides instant clarity on ownership and system boundaries.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Cell Diagram (My Favorite Feature)
This is where the platform truly feels like a billion-dollar enterprise tool. Managing high-concurrency backend systems requires understanding real-time traffic flows and dependencies.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Cell Diagram automatically mapped the network interactions between the services. You can visually trace how the frontend component acts as the central hub, reaching out to checkout, currency, productcatalog, and recommendation. You can also clearly see secondary dependencies, like the cart service connecting directly to redis.&lt;/p&gt;

&lt;p&gt;If a service goes down, this diagram is exactly what an SRE or platform engineer needs to instantly identify the blast radius.&lt;/p&gt;

&lt;p&gt;The Takeaway&lt;br&gt;
Building a platform that abstracts Kubernetes  while providing deep observability usually takes organizations quarters, if not years, of dedicated engineering.&lt;/p&gt;

&lt;p&gt;By combining the OpenChoreo QSG with the demo deployment script, I got a production-grade developer portal, automated deployment pipelines, and deep architectural mapping in minutes. It completely changes the developer experience from fighting infrastructure to purely focusing on software delivery.&lt;/p&gt;

&lt;p&gt;If you are building an IDP or just want to see how clean Kubernetes abstractions can be, you should definitely take it for a spin.&lt;/p&gt;

&lt;p&gt;Check out the project and give it a star: &lt;a href="https://openchoreo.dev/" rel="noopener noreferrer"&gt;https://openchoreo.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk4gude4j6eet0yxx66f9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk4gude4j6eet0yxx66f9.png" alt=" " width="800" height="434"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4o5gjgze9aafmzxki1fw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4o5gjgze9aafmzxki1fw.png" alt=" " width="800" height="736"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdh28tp019uz10arnrp4v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdh28tp019uz10arnrp4v.png" alt=" " width="800" height="623"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjgql7r1gu758g4a4ezfp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjgql7r1gu758g4a4ezfp.png" alt=" " width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>kubernetes</category>
      <category>containers</category>
      <category>sre</category>
    </item>
    <item>
      <title>AI-Native Platform Engineering: How OpenChoreo Brings MCP and an SRE Agent to Your Infrastructure</title>
      <dc:creator>Savi Saluwadana</dc:creator>
      <pubDate>Mon, 13 Apr 2026 01:35:05 +0000</pubDate>
      <link>https://dev.to/savi_saluwadana/ai-native-platform-engineering-how-openchoreo-brings-mcp-and-an-sre-agent-to-your-infrastructure-3i32</link>
      <guid>https://dev.to/savi_saluwadana/ai-native-platform-engineering-how-openchoreo-brings-mcp-and-an-sre-agent-to-your-infrastructure-3i32</guid>
      <description>&lt;p&gt;AI assistants have become a standard part of how developers write code. The next frontier is whether they can be trusted participants in how that code gets deployed, operated, and debugged.&lt;/p&gt;

&lt;p&gt;OpenChoreo, an open source IDP that recently entered the CNCF Sandbox, takes a clear position on this. AI is not a plugin or an afterthought. It is a first-class platform construct with the same authorization model, the same guardrails, and the same observability as every other part of the system.&lt;/p&gt;

&lt;p&gt;I contribute to the project and in this post I want to walk through two specific capabilities: the MCP server integration that connects AI assistants to your platform, and the built-in RCA Agent that autonomously investigates production incidents.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why AI at the Platform Layer Is Different
&lt;/h2&gt;

&lt;p&gt;There is a meaningful difference between AI that helps you write code and AI that interacts with your running infrastructure.&lt;/p&gt;

&lt;p&gt;A code suggestion going wrong costs you a review cycle. A deployment action going wrong costs you an incident. The stakes are different and the design has to reflect that.&lt;/p&gt;

&lt;p&gt;OpenChoreo's approach is to expose AI interfaces that follow the same authorization policies as human users. When your AI assistant connects to the platform via MCP, it authenticates with OAuth2/OIDC and is subject to the same RBAC and ABAC policies as a human operator. It can only do what a human with the same role could do. No elevated permissions, no side doors.&lt;/p&gt;




&lt;h2&gt;
  
  
  The MCP Server Architecture
&lt;/h2&gt;

&lt;p&gt;OpenChoreo exposes two MCP servers.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Control Plane MCP server&lt;/strong&gt; gives your AI assistant access to platform management operations. The &lt;strong&gt;Observability Plane MCP server&lt;/strong&gt; gives it direct access to logs, metrics, traces, and alerts without proxying through the control plane.&lt;/p&gt;

&lt;p&gt;The two-server design is intentional. Observability data never flows through the control plane on its way to an AI assistant. In multi-regional or multi-tenant deployments this matters for data privacy and compliance. Each server is independently secured and independently queryable.&lt;/p&gt;

&lt;h3&gt;
  
  
  What your AI assistant can actually do
&lt;/h3&gt;

&lt;p&gt;Once connected, your AI assistant becomes an active participant in platform operations across five categories:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resource management&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;List namespaces, projects, components, and environments&lt;/li&gt;
&lt;li&gt;Inspect deployment pipelines and release bindings&lt;/li&gt;
&lt;li&gt;Check component status across environments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Build and workflow operations&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Trigger workflow runs&lt;/li&gt;
&lt;li&gt;Inspect build status and history&lt;/li&gt;
&lt;li&gt;Query workflow logs&lt;/li&gt;
&lt;li&gt;Compare successful and failed builds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Observability queries&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fetch distributed logs with domain-aware filtering by namespace, project, and component&lt;/li&gt;
&lt;li&gt;Query metrics and check resource utilization&lt;/li&gt;
&lt;li&gt;Trace requests across service boundaries with &lt;code&gt;query_traces&lt;/code&gt; and &lt;code&gt;query_trace_spans&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Inspect active alerts and incidents&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Deployment and promotion&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Update release bindings to promote components across environments&lt;/li&gt;
&lt;li&gt;Apply configuration changes to running deployments&lt;/li&gt;
&lt;li&gt;Roll back by pointing a binding at a previous release&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Resource optimization&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Query resource metrics against actual allocation&lt;/li&gt;
&lt;li&gt;Get right-sizing recommendations&lt;/li&gt;
&lt;li&gt;Apply optimized configurations directly&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Supported AI assistants
&lt;/h3&gt;

&lt;p&gt;Claude Code, Cursor, Codex CLI, Gemini CLI, OpenCode CLI, and VS Code with GitHub Copilot all work out of the box. Both browser-based OAuth (authorization code with PKCE) and client credentials flows are supported depending on your setup.&lt;/p&gt;




&lt;h2&gt;
  
  
  Real Scenarios: What This Looks Like in Practice
&lt;/h2&gt;

&lt;p&gt;The docs ship with five hands-on MCP scenarios that show exactly how this works. Here are the ones worth understanding in detail.&lt;/p&gt;

&lt;h3&gt;
  
  
  Debugging a cascading failure
&lt;/h3&gt;

&lt;p&gt;This scenario uses the GCP Microservices Demo (Online Boutique). You intentionally break the product catalog service by scaling it to zero replicas. Then you use your AI assistant to diagnose the failure across service boundaries.&lt;/p&gt;

&lt;p&gt;The assistant works through the investigation using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;list_components          → find affected services
query_component_logs     → surface error patterns in logs
query_traces             → follow the request path across services
query_trace_spans        → pinpoint exactly where the failure propagates
get_release_binding      → inspect current deployment state
update_release_binding   → apply the fix
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The entire investigation and remediation happens conversationally without leaving your editor. The assistant has the full observability context, not just a log dump.&lt;/p&gt;

&lt;h3&gt;
  
  
  Diagnosing a build failure
&lt;/h3&gt;

&lt;p&gt;You trigger a build with a misconfigured Dockerfile path in a Go service. The assistant:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;list_workflow_runs        → find the failed run
get_workflow_run          → inspect the failure details
query_workflow_logs       → surface the exact error
create_workflow_run       → trigger a new build after the fix
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Comparing against the previous successful build to identify what changed is a natural conversational step. The assistant has the history.&lt;/p&gt;

&lt;h3&gt;
  
  
  Resource optimization
&lt;/h3&gt;

&lt;p&gt;You allocate excessive CPU and memory to several services in a demo deployment. The assistant:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;list_components           → enumerate running services
list_release_bindings     → get current configurations
query_resource_metrics    → compare allocation vs actual usage
update_release_binding    → apply right-sized configurations
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is a genuinely useful operational workflow. Right-sizing based on actual usage data rather than educated guesses, applied directly without a separate tooling context switch.&lt;/p&gt;




&lt;h2&gt;
  
  
  The RCA Agent: Autonomous Incident Investigation
&lt;/h2&gt;

&lt;p&gt;Beyond the interactive MCP integration, OpenChoreo ships with a built-in RCA Agent. This is a different model. Instead of you asking the AI assistant to investigate something, the RCA Agent reacts autonomously when alerts fire.&lt;/p&gt;

&lt;h3&gt;
  
  
  How it works
&lt;/h3&gt;

&lt;p&gt;The RCA Agent is configured at the alert level. When you define an alert rule, you can set &lt;code&gt;triggerAiRca: true&lt;/code&gt;. When that alert fires in production, the agent immediately pulls logs, metrics, and traces from the affected deployments and generates a root cause analysis report.&lt;/p&gt;

&lt;p&gt;The workflow is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Alert fires
    ↓
RCA Agent triggers automatically
    ↓
Agent pulls logs, metrics, traces from observability plane
    ↓
LLM analyzes the correlated signals
    ↓
Root cause analysis report generated
    ↓
Report available in the OpenChoreo portal and via the RCA chat interface
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No engineer needs to be the first one paging through dashboards. By the time someone picks up the incident, there is already a structured analysis waiting for them.&lt;/p&gt;

&lt;h3&gt;
  
  
  The RCA chat interface
&lt;/h3&gt;

&lt;p&gt;Beyond automatic reports, OpenChoreo ships an interactive RCA chat interface. You can query past incidents conversationally, ask follow-up questions about a specific report, and dig into the reasoning behind a root cause conclusion.&lt;/p&gt;

&lt;p&gt;This is the key design difference from just getting a wall of text. The report is a starting point for a conversation, not a terminal output.&lt;/p&gt;

&lt;h3&gt;
  
  
  Setup
&lt;/h3&gt;

&lt;p&gt;The RCA Agent requires:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OpenChoreo Observability Plane with at least a logs module installed&lt;/li&gt;
&lt;li&gt;An LLM API key (currently OpenAI GPT model series, additional providers on the roadmap)&lt;/li&gt;
&lt;li&gt;Alerting configured with &lt;code&gt;triggerAiRca: true&lt;/code&gt; on the alerts you want covered&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enable it via Helm:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;helm upgrade &lt;span class="nt"&gt;--install&lt;/span&gt; openchoreo-observability-plane &lt;span class="se"&gt;\&lt;/span&gt;
  oci://ghcr.io/openchoreo/helm-charts/openchoreo-observability-plane &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--version&lt;/span&gt; 1.0.0 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--namespace&lt;/span&gt; openchoreo-observability-plane &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--reuse-values&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--set&lt;/span&gt; rca.enabled&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--set&lt;/span&gt; rca.llm.modelName&lt;span class="o"&gt;=&lt;/span&gt;gpt-4o
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Reports are stored in SQLite by default with a persistent volume. For production scale or horizontal scaling, PostgreSQL is supported as the report backend.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Cost note:&lt;/strong&gt; The docs recommend enabling &lt;code&gt;triggerAiRca&lt;/code&gt; only for critical alerts to manage LLM costs. Every alert trigger is an LLM call.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The Authorization Model Underneath All of This
&lt;/h2&gt;

&lt;p&gt;Both the MCP servers and the RCA Agent operate within OpenChoreo's unified authorization engine. This is worth understanding because it is what makes AI at the infra layer safe to expose.&lt;/p&gt;

&lt;p&gt;The authorization engine is powered by Apache Casbin and supports fine-grained RBAC, ABAC, and instance-level access controls down to the namespace, project, and component level.&lt;/p&gt;

&lt;p&gt;When your AI assistant connects via MCP it authenticates with OAuth2/OIDC and is granted a role that defines exactly what it can and cannot do. The RCA Agent authenticates via the &lt;code&gt;client_credentials&lt;/code&gt; grant and is assigned the &lt;code&gt;rca-agent&lt;/code&gt; role, scoped precisely to the operations it needs for incident analysis.&lt;/p&gt;

&lt;p&gt;The same policy model applies to humans and AI. Your AI assistant cannot do anything a human with equivalent permissions could not do. The guardrails are structural, not procedural.&lt;/p&gt;




&lt;h2&gt;
  
  
  What This Means for Platform Teams
&lt;/h2&gt;

&lt;p&gt;The practical implication of all of this is a shift in how platform operations work day to day.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For developers:&lt;/strong&gt; Instead of opening five dashboards to understand why a build failed or why a service is returning errors, you ask your AI assistant. It has the context. It can correlate across logs, traces, and deployment state in a single conversation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For on-call engineers:&lt;/strong&gt; When an alert fires you are not starting from zero. The RCA Agent has already correlated the signals and generated a structured analysis. You start from a hypothesis, not a blank screen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For platform teams:&lt;/strong&gt; The same golden paths and authorization policies you define for human users apply to AI automatically. You do not need a separate AI governance model. The platform's existing model extends to cover it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;Connect your AI assistant to a local OpenChoreo instance in about 15 minutes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Run OpenChoreo locally with k3d following the quick start guide&lt;/li&gt;
&lt;li&gt;Connect your AI assistant using the MCP configuration in the docs&lt;/li&gt;
&lt;li&gt;Try the getting started scenario to verify the connection&lt;/li&gt;
&lt;li&gt;Work through the log analysis scenario to see the full observability integration&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI docs:&lt;/strong&gt; &lt;a href="https://openchoreo.dev/docs/ai/overview" rel="noopener noreferrer"&gt;openchoreo.dev/docs/ai/overview&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP scenarios:&lt;/strong&gt; &lt;a href="https://openchoreo.dev/docs/ai/mcp-prompt-scenarios" rel="noopener noreferrer"&gt;openchoreo.dev/docs/ai/mcp-prompt-scenarios&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RCA Agent setup:&lt;/strong&gt; &lt;a href="https://openchoreo.dev/docs/ai/rca-agent" rel="noopener noreferrer"&gt;openchoreo.dev/docs/ai/rca-agent&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/openchoreo/openchoreo" rel="noopener noreferrer"&gt;github.com/openchoreo/openchoreo&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project is fully open source under CNCF governance. If you are building in the platform engineering or AI tooling space, contributions and feedback are very welcome.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>mcp</category>
      <category>sre</category>
    </item>
    <item>
      <title>How OpenChoreo's Multi-Plane Architecture Works Under the Hood</title>
      <dc:creator>Savi Saluwadana</dc:creator>
      <pubDate>Mon, 13 Apr 2026 01:07:42 +0000</pubDate>
      <link>https://dev.to/savi_saluwadana/how-openchoreos-multi-plane-architecture-works-under-the-hood-235o</link>
      <guid>https://dev.to/savi_saluwadana/how-openchoreos-multi-plane-architecture-works-under-the-hood-235o</guid>
      <description>&lt;p&gt;Building an internal developer platform on Kubernetes involves a lot of moving pieces. CI pipelines, GitOps, observability, a developer portal, network policies, access control. Each of these is a solved problem in isolation. The interesting challenge is how you design the system that holds them together in a way that stays maintainable, scalable, and operable as your organisation grows.&lt;/p&gt;

&lt;p&gt;OpenChoreo approaches this by designing the platform as a modular, multi-plane system from the ground up, where each concern has a dedicated home, a clear API surface, and an independent lifecycle. I contribute to the project and in this post I want to walk through the architecture in detail, plane by plane, so you understand not just what each piece does but why the separation exists and what it gives you operationally.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Core Idea: Planes, Not Monoliths
&lt;/h2&gt;

&lt;p&gt;OpenChoreo uses a clear separation of concerns across multiple planes, each responsible for specific aspects of the platform's functionality. It also uses a modular framework that allows external tools to be integrated as first-class experiences in the platform rather than just being bolted on.&lt;/p&gt;

&lt;p&gt;There are four planes:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plane&lt;/th&gt;
&lt;th&gt;Responsibility&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Control Plane&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The brain. Orchestrates everything else.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data Plane&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Where your workloads actually run.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Workflow Plane&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Where CI pipelines and automation execute.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Observability Plane&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Where logs, metrics, and traces are collected and queried.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Each plane is independently deployable, independently scalable, and has its own upgrade lifecycle. In development you can run all of them in a single cluster using namespace isolation. In production each typically lives in its own cluster. The separation is not forced on you from day one but it is designed to be the natural growth path.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Control Plane
&lt;/h2&gt;

&lt;p&gt;The control plane is a Kubernetes cluster that acts as the brain of OpenChoreo. It runs a central control loop that continuously monitors the state of the platform and developer resources. It takes actions to ensure that the desired state as declared via the Developer and Platform APIs is reflected in the actual state across all planes.&lt;/p&gt;

&lt;p&gt;It has three key components inside it.&lt;/p&gt;

&lt;h3&gt;
  
  
  API Server
&lt;/h3&gt;

&lt;p&gt;The API Server exposes the OpenChoreo API which is used by both developers and platform teams to interact with the system. It serves as the main entry point for all API requests, handling authentication, authorization, and request validation. The API server also hosts OpenChoreo's authorization engine that provides fine-grained RBAC, ABAC, and hierarchical instance-level access control to all resources created in OpenChoreo.&lt;/p&gt;

&lt;p&gt;The authorization engine is powered by Apache Casbin. It works by mapping groups from your Identity Provider to roles and authorization policies in OpenChoreo. The same authorization layer applies whether you are using the UI, CLI, API, or MCP servers. One policy model, consistent everywhere.&lt;/p&gt;

&lt;h3&gt;
  
  
  Controller Manager
&lt;/h3&gt;

&lt;p&gt;A set of Kubernetes controllers that implement the core reconciliation logic of the platform. These controllers watch for changes to the CRD instances defined in the Developer and Platform APIs and take appropriate actions to ensure that the desired state is achieved across all planes.&lt;/p&gt;

&lt;p&gt;For example, when a new Component is created the controllers will:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Validate the request&lt;/li&gt;
&lt;li&gt;Resolve any references such as dependencies of components&lt;/li&gt;
&lt;li&gt;Trigger the necessary workflows to build, deploy, and expose the component in the data plane with the required network policies and observability configurations&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Everything in OpenChoreo is declarative. You declare what you want. The controller manager makes it happen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cluster Gateway
&lt;/h3&gt;

&lt;p&gt;All other planes establish outbound connections to the control plane. This system component acts as the hub that allows the API server and Controller Manager to communicate with other planes in a hub-and-spoke model. It exposes a Secure WebSocket API that allows bidirectional communication between other planes via long-lived connections authenticated with mTLS using Cert-Manager. This prevents the Kubernetes API servers of the data, workflow, and observability planes from being exposed to the internet.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Security note:&lt;/strong&gt; None of the other planes need to expose their Kubernetes API servers publicly. They call out to the control plane, not the other way around. The communication is mTLS authenticated and runs over long-lived secure websocket connections.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The Platform API and Developer API
&lt;/h2&gt;

&lt;p&gt;The control plane exposes two distinct API surfaces and understanding the difference between them is key to understanding how OpenChoreo separates platform concerns from developer concerns.&lt;/p&gt;

&lt;h3&gt;
  
  
  Platform API
&lt;/h3&gt;

&lt;p&gt;The Platform API is a set of Kubernetes CRDs that allow platform builders to define the structure and behaviour of the platform itself. It provides abstractions for defining:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Organizational boundaries (Namespaces)&lt;/li&gt;
&lt;li&gt;Environments&lt;/li&gt;
&lt;li&gt;Data Planes, Workflow Planes, and Observability Planes&lt;/li&gt;
&lt;li&gt;Deployment Pipelines&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Platform engineers work here. They define environments, configure deployment pipelines, set up gateway topologies, and create reusable ComponentTypes and Traits that become the golden paths developers use.&lt;/p&gt;

&lt;h3&gt;
  
  
  Developer API
&lt;/h3&gt;

&lt;p&gt;The Developer API is a set of Kubernetes CRDs designed to simplify, streamline, and reduce the cognitive burden of application development on Kubernetes for development teams. Instead of exposing the entire configuration surface of the Kubernetes API, these abstractions provide a more intuitive and domain-driven way to define projects, their components, and their interactions via endpoints and dependencies.&lt;/p&gt;

&lt;p&gt;OpenChoreo avoids black-box abstractions that completely obscure Kubernetes. Instead these provide a way for platform teams to create opinionated, reusable templates that define organizational best practices and standards as intent-driven interfaces for their development teams. This &lt;strong&gt;shift-down approach&lt;/strong&gt; reduces developer cognitive load by offloading complexity to the platform.&lt;/p&gt;

&lt;p&gt;A developer declares intent:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# I want to deploy this component&lt;/span&gt;
&lt;span class="c1"&gt;# I want to expose this endpoint publicly&lt;/span&gt;
&lt;span class="c1"&gt;# I want to depend on this other service&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The platform compiles that intent into whatever Kubernetes resources are needed without the developer touching a single &lt;code&gt;NetworkPolicy&lt;/code&gt; or &lt;code&gt;HTTPRoute&lt;/code&gt; directly.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Experience Plane
&lt;/h2&gt;

&lt;p&gt;Sitting across all of this is the experience plane, the user-facing layer. It includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OpenAPI-v3-based APIs&lt;/strong&gt; exposed by the control plane and observability plane&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CLI&lt;/strong&gt; (&lt;code&gt;occ&lt;/code&gt;) supporting both API server mode and file system mode for GitOps-driven workflows&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backstage-based Internal Developer Portal&lt;/strong&gt; — an extended fork supporting native Backstage plugins and custom plugins built specifically for OpenChoreo's APIs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP servers&lt;/strong&gt; for AI-assisted development and operations, exposed by both the control plane and the observability plane&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The MCP servers mean your AI assistant can interact with the platform using the same authorization model as human users. Claude Code, Cursor, Codex, and Gemini CLI are all supported out of the box.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Data Plane
&lt;/h2&gt;

&lt;p&gt;A data plane is a Kubernetes cluster responsible for running component workloads, enforcing network policies, and exposing component endpoints via a structured gateway topology and wiring up dependencies as instructed by the control plane.&lt;/p&gt;

&lt;p&gt;An OpenChoreo deployment can have one or more data planes spanning clusters in different geographies and infrastructure providers. A component can be promoted across physically separated environments like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dev (data plane 1) → staging (data plane 1) → production (data plane 2)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each promotion applies environment-specific configurations and secrets automatically.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cells: The Runtime Boundary
&lt;/h3&gt;

&lt;p&gt;At runtime, resources of a project are isolated through &lt;strong&gt;Cells&lt;/strong&gt; — secure, isolated, and observable boundaries for all components belonging to a given &lt;code&gt;namespace-project-environment&lt;/code&gt; combination. A Cell becomes the runtime boundary for a group of components with policy enforcement and observability, aligning with ideas of Cell-Based Architecture where individual teams or domains operate independently within well-defined boundaries while still benefiting from shared infrastructure capabilities.&lt;/p&gt;

&lt;p&gt;Each Cell has a structured gateway topology covering all four traffic directions:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Direction&lt;/th&gt;
&lt;th&gt;Handles&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;External Ingress&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Traffic from the internet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Internal Ingress&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Traffic from other cells or the internal network&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;External Egress&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Outbound traffic to external services&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Internal Egress&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Outbound traffic to other cells&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Cilium and eBPF enforce network policies at every boundary.&lt;/p&gt;

&lt;h3&gt;
  
  
  Data Plane Modules
&lt;/h3&gt;

&lt;p&gt;Optional modules extend data plane capabilities without touching core platform logic:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;API management module&lt;/strong&gt; — rate limiting, authentication, and observability at the endpoint level&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Elastic module&lt;/strong&gt; — automatic scale-to-zero based on traffic&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Guard module&lt;/strong&gt; — Cilium CNI and eBPF for zero-trust network policies and kernel-level observability&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Workflow Plane
&lt;/h2&gt;

&lt;p&gt;A workflow plane is a Kubernetes cluster responsible for executing platform-defined workflows. OpenChoreo has two categories of workflows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CI workflows&lt;/strong&gt; — developer self-service for building, testing, and deploying components&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generic workflows&lt;/strong&gt; — all other automation including GitOps workflows, resource provisioning, and custom platform team workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The default workflow module is powered by &lt;strong&gt;Argo Workflows&lt;/strong&gt;, a Kubernetes-native workflow engine. OpenChoreo's workflow concepts are designed to work with any CRD-based workflow engine so you can customise the Workflow Plane to use an alternative like Tekton.&lt;/p&gt;

&lt;p&gt;The workflow plane is also &lt;strong&gt;optional&lt;/strong&gt;. If you already have GitHub Actions, GitLab CI, or Jenkins, you can keep using them alongside it. A common pattern is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Git provider native CI  →  pre-PR-merge checks
OpenChoreo Workflow Plane  →  final build and deploy on PR merge
Generic workflows  →  GitOps, integration tests, post-deployment checks
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  The Observability Plane
&lt;/h2&gt;

&lt;p&gt;An observability plane is a Kubernetes cluster responsible for providing centralized logs, metrics, traces, and alerts. It acts as a central data sink, collecting and aggregating observability data from all other workflow and data planes.&lt;/p&gt;

&lt;p&gt;Unlike the other planes, the observability plane exposes its own &lt;strong&gt;Observer API&lt;/strong&gt; and &lt;strong&gt;MCP server&lt;/strong&gt; directly. This design prevents observability data from being proxied through the control plane to end-users, which can be a concern in larger multi-regional, multi-tenant deployments where regional data privacy regulations may apply.&lt;/p&gt;

&lt;h3&gt;
  
  
  Default Observability Modules
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Module&lt;/th&gt;
&lt;th&gt;Powered By&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Logs&lt;/td&gt;
&lt;td&gt;OpenSearch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Metrics&lt;/td&gt;
&lt;td&gt;Prometheus&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tracing&lt;/td&gt;
&lt;td&gt;OpenTelemetry collector + OpenSearch backend&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Alerting&lt;/td&gt;
&lt;td&gt;Built into logs and metrics modules&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;All of these are swappable. If you have an existing observability system such as Datadog, Splunk, New Relic, or Grafana Cloud, OpenChoreo's adapter pattern allows a minimal observability plane to plug into an external system's API while still providing the same domain-centric Observer API and MCP servers across the unified experience plane.&lt;/p&gt;




&lt;h2&gt;
  
  
  Deployment Topologies
&lt;/h2&gt;

&lt;p&gt;OpenChoreo supports three main topology patterns:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Topology&lt;/th&gt;
&lt;th&gt;When to use&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Single cluster&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Development, testing, local k3d setup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Plane-per-cluster&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Production, full fault isolation, independent scaling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Hybrid&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Co-locate Control + Workflow for cost or operational efficiency&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The architecture supports all of these without a redesign. The natural growth path is single-cluster locally, then namespace-isolated production, then splitting out planes as load and compliance requirements demand.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why the Separation Matters Operationally
&lt;/h2&gt;

&lt;p&gt;The multi-plane design has direct operational consequences.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Independent upgrade lifecycles.&lt;/strong&gt; You can update the observability stack without touching the control plane. You can add a data plane in a new region without changing your workflow setup.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Independent scaling.&lt;/strong&gt; A heavy CI workload on the workflow plane does not compete with production workloads on the data plane. Observability ingestion spikes do not impact control plane availability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Clear security boundaries.&lt;/strong&gt; The Kubernetes API servers of data, workflow, and observability planes are never exposed externally. All communication flows outbound through mTLS-authenticated websocket connections to the control plane's cluster gateway.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Native GitOps.&lt;/strong&gt; Because all state is declarative Kubernetes CRDs, the entire platform is GitOps-compatible from day one. Platform topology, developer applications, deployment pipelines — all of it can be version controlled and reconciled from Git.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;The full architecture runs locally on k3d in about 10 minutes. The quick start guide walks you through it step by step.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Docs:&lt;/strong&gt; &lt;a href="https://openchoreo.dev/docs/overview/architecture" rel="noopener noreferrer"&gt;openchoreo.dev/docs/overview/architecture&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/openchoreo/openchoreo" rel="noopener noreferrer"&gt;github.com/openchoreo/openchoreo&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want to go deeper on any specific plane or the runtime model around Cells, happy to dig into that in the comments. And if you are interested in contributing, the project is fully open source under CNCF governance.&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>kubernetes</category>
      <category>devops</category>
      <category>platformengineering</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Why Your Platform Team Became the Bottleneck — And How to Fix It</title>
      <dc:creator>Savi Saluwadana</dc:creator>
      <pubDate>Wed, 11 Mar 2026 09:10:21 +0000</pubDate>
      <link>https://dev.to/savi_saluwadana/why-your-platform-team-became-the-bottleneck-and-how-to-fix-it-4ok9</link>
      <guid>https://dev.to/savi_saluwadana/why-your-platform-team-became-the-bottleneck-and-how-to-fix-it-4ok9</guid>
      <description>&lt;p&gt;A practical look at why internal developer platforms fail at scale, and how Kubernetes, Backstage, GitOps, and Observability — when assembled the right way — can finally work together.&lt;/p&gt;

&lt;p&gt;There’s a quiet irony playing out inside engineering organizations right now. The team built to remove friction has become the source of it.&lt;/p&gt;

&lt;p&gt;Platform engineering was supposed to solve tool sprawl. Instead, it often created a new problem: the platform team can’t scale fast enough to meet business demand. Developers wait. Releases slip. Engineers burn out.&lt;/p&gt;

&lt;p&gt;This isn’t a people problem. It’s an approach problem.&lt;/p&gt;

&lt;p&gt;The Hidden Cost of DIY Platforms&lt;br&gt;
Every engineering org above a certain size eventually decides to build an Internal Developer Platform (IDP). The reasoning is sound: standardize tooling, reduce cognitive load, give developers a self-service experience.&lt;/p&gt;

&lt;p&gt;But the execution is where things unravel. Here’s what typically happens:&lt;/p&gt;

&lt;p&gt;→ DIY platforms take months to build and minutes to break → Every new tool added increases cognitive load, not capability → Maintenance consumes the bandwidth meant for innovation → The platform becomes a product — one that nobody signed up to maintain forever&lt;/p&gt;

&lt;p&gt;Building an IDP from scratch in 2025 is a bit like writing your own database. Technically possible. Occasionally justified. Almost never the right first move.&lt;/p&gt;

&lt;p&gt;Kubernetes: The Foundation the Industry Chose for a Reason&lt;br&gt;
Let’s start with the elephant in the room. Kubernetes has a reputation for being complex — and that reputation isn’t entirely undeserved. But it’s also the most battle-tested, production-proven container orchestration platform in the world, and there’s a reason virtually every major cloud provider and enterprise has standardized on it.&lt;/p&gt;

&lt;p&gt;Kubernetes isn’t complex because it was poorly designed. It’s complex because it solves genuinely hard problems:&lt;/p&gt;

&lt;p&gt;→ Scheduling and running workloads across heterogeneous infrastructure reliably → Self-healing systems that automatically recover from failure → Declarative configuration that makes infrastructure auditable and reproducible → A rich ecosystem of extensions, operators, and tooling built over a decade of community investment → Multi-cloud and hybrid portability that prevents vendor lock-in&lt;/p&gt;

&lt;p&gt;The CNCF ecosystem that has grown around Kubernetes is extraordinary. Service meshes, policy engines, secret management, cost optimization, progressive delivery — the community has built mature, production-ready solutions for virtually every platform concern.&lt;/p&gt;

&lt;p&gt;Why Kubernetes won Kubernetes didn’t win because it was the simplest option. It won because it was the right abstraction at the right level — flexible enough to run anything, opinionated enough to provide a stable foundation. Over 5 million developers now use it in production. That network effect and community investment is irreplaceable.&lt;/p&gt;

&lt;p&gt;The real challenge isn’t Kubernetes itself — it’s that raw Kubernetes requires platform teams to make hundreds of decisions before a single developer can deploy an application. Networking, RBAC, namespacing, resource quotas, ingress controllers, secrets management, CI/CD integration — all of it needs to be configured, secured, and maintained.&lt;/p&gt;

&lt;p&gt;The answer isn’t to avoid Kubernetes. It’s to build the right abstractions on top of it.&lt;/p&gt;

&lt;p&gt;Backstage: The Developer Portal That Changed Everything&lt;br&gt;
Spotify built Backstage to solve a problem that every fast-growing engineering organization eventually hits: as the number of services, teams, and tools grows, developers spend more time navigating complexity than building product.&lt;/p&gt;

&lt;p&gt;Backstage’s insight was elegant — give every service, API, pipeline, and piece of documentation a home. A single place where developers can discover what exists, understand who owns it, see its health, and take action on it.&lt;/p&gt;

&lt;p&gt;Since Spotify open-sourced it and donated it to the CNCF, Backstage has become the de facto standard for internal developer portals. The reasons are clear:&lt;/p&gt;

&lt;p&gt;→ A software catalog that gives every component, API, and resource a consistent identity and owner → TechDocs that brings documentation into the same workflow as the code it describes → A plugin ecosystem with hundreds of community-built integrations covering CI/CD, cloud providers, monitoring, incident management, and more → Scaffolder templates that let platform teams encode golden paths — so developers spin up new services the right way, every time → Search that makes the entire engineering knowledge base discoverable&lt;/p&gt;

&lt;p&gt;The Backstage effect Organizations that have fully adopted Backstage report dramatic reductions in onboarding time for new engineers — sometimes from weeks to days. When every service has a home, when runbooks are one click away, and when deployments are self-service, developers spend their time on what matters: building.&lt;/p&gt;

&lt;p&gt;But here’s the honest truth about Backstage: it’s a framework, not a finished product. Getting from ‘installed Backstage’ to ‘developers actually love using it’ requires significant investment in catalog population, plugin configuration, and workflow integration. Many teams underestimate this.&lt;/p&gt;

&lt;p&gt;This is where having a platform that pre-integrates Backstage — with sensible defaults and pre-built workflows — removes the biggest barrier to adoption.&lt;/p&gt;

&lt;p&gt;The Stack Is There. The Glue Is Missing.&lt;br&gt;
The cloud-native ecosystem has matured remarkably. Every ingredient for a world-class developer platform already exists:&lt;/p&gt;

&lt;p&gt;→ Kubernetes — the production-proven foundation trusted by millions of engineering teams worldwide → Backstage — the CNCF-graduated developer portal that gives every service a home and every developer a front door → GitOps — declarative, auditable, automated delivery pipelines that treat infrastructure as code → Observability — distributed tracing, metrics, and logging that give teams real-time confidence in what they’ve built&lt;/p&gt;

&lt;p&gt;These aren’t new ideas. They’re proven. The challenge isn’t picking the right tools — it’s wiring them together reliably, at scale, for every team in the organization. That’s where orgs consistently lose months.&lt;/p&gt;

&lt;p&gt;Key insight 80% of every internal developer platform is identical across organizations. The same Kubernetes abstractions. The same Backstage configuration. The same GitOps patterns. The same observability setup. Yet every team rebuilds it from scratch — costing thousands of engineering hours solving problems that are already solved.&lt;/p&gt;

&lt;p&gt;What Good Platform Engineering Actually Looks Like&lt;br&gt;
The platform teams winning right now aren’t the ones who built everything themselves. They’re the ones who had the wisdom to start with the right abstractions — and spent their energy on the 20% that’s specific to their business.&lt;/p&gt;

&lt;p&gt;That means:&lt;/p&gt;

&lt;p&gt;→ Giving developers a self-service experience without writing a portal from scratch → Standardizing deployment workflows without reinventing GitOps → Running on Kubernetes with guardrails that make sense for application teams → Shipping observability that surfaces the right signals — not more dashboards to ignore&lt;/p&gt;

&lt;p&gt;The goal is to stop configuring and start enabling.&lt;/p&gt;

&lt;p&gt;OpenChoreo: Built for Platform Teams Who Are Done Reinventing the Wheel&lt;br&gt;
This is exactly the problem OpenChoreo was built to solve.&lt;/p&gt;

&lt;p&gt;OpenChoreo is an open-source developer platform that gives platform engineers production-ready abstractions for Kubernetes — with a Backstage-powered developer portal, GitOps workflows, and observability built in. It takes the tools the industry has already standardized on and assembles them with the right defaults, so teams can go from zero to productive without months of configuration work.&lt;/p&gt;

&lt;p&gt;It’s the 80% out of the box, so teams can focus on what actually differentiates their business.&lt;/p&gt;

&lt;p&gt;What you get:&lt;/p&gt;

&lt;p&gt;→ A Backstage-powered portal that gives developers a single pane of glass — without weeks of configuration → GitOps pipelines that work out of the box with the guardrails your teams actually need → Kubernetes abstractions that shield developers from complexity without hiding it from platform engineers → Built-in observability so you know what’s happening across every service, from day one&lt;/p&gt;

&lt;p&gt;Less plumbing. More platform. Faster delivery — for everyone.&lt;/p&gt;

&lt;p&gt;The Bottom Line&lt;br&gt;
Kubernetes is exceptional. Backstage is transformative. GitOps is the right model for modern delivery. Observability is non-negotiable. These tools earned their place at the center of the cloud-native ecosystem — not through marketing, but through real-world proof at scale.&lt;/p&gt;

&lt;p&gt;The opportunity in front of platform teams isn’t to replace them or work around them. It’s to assemble them better — with the right abstractions, the right defaults, and the right workflows — so that developers experience the best of what the cloud-native ecosystem has to offer without having to understand every layer of it.&lt;/p&gt;

&lt;p&gt;Platform engineering doesn’t have to be a bottleneck. The tools exist. The patterns are proven. What’s been missing is a way to bring them together without months of assembly work.&lt;/p&gt;

&lt;p&gt;If your platform team is spending more time on infrastructure plumbing than on enabling your developers — it might be time to reconsider the approach.&lt;/p&gt;

&lt;p&gt;🔗 Explore OpenChoreo — open source, built for platform teams: &lt;a href="https://openchoreo.dev/" rel="noopener noreferrer"&gt;https://openchoreo.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⭐ Star the project on GitHub to help the community grow and keep the momentum going.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>kubernetes</category>
      <category>cloud</category>
      <category>infrastructure</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Savi Saluwadana</dc:creator>
      <pubDate>Fri, 06 Mar 2026 18:40:40 +0000</pubDate>
      <link>https://dev.to/savi_saluwadana/-gjn</link>
      <guid>https://dev.to/savi_saluwadana/-gjn</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/savi_saluwadana" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3661277%2Ff471b5be-55fc-401e-a772-8e8358c3cdc3.jpeg" alt="savi_saluwadana"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/savi_saluwadana/beyond-you-build-it-you-run-it-the-strategic-case-for-internal-developer-platforms-2g6l" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Beyond “You Build It, You Run It”: The Strategic Case for Internal Developer Platforms&lt;/h2&gt;
      &lt;h3&gt;Savi Saluwadana ・ Mar 1&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#kubernetes&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#devops&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#docker&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#cloud&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>kubernetes</category>
      <category>devops</category>
      <category>docker</category>
      <category>cloud</category>
    </item>
    <item>
      <title>The End of YAML Fatigue: What Platform Engineering Actually Is (And Why You Need It)</title>
      <dc:creator>Savi Saluwadana</dc:creator>
      <pubDate>Sun, 01 Mar 2026 07:03:09 +0000</pubDate>
      <link>https://dev.to/savi_saluwadana/the-end-of-yaml-fatigue-what-platform-engineering-actually-is-and-why-you-need-it-k67</link>
      <guid>https://dev.to/savi_saluwadana/the-end-of-yaml-fatigue-what-platform-engineering-actually-is-and-why-you-need-it-k67</guid>
      <description>&lt;p&gt;Let’s be brutally honest for a second: "You build it, you run it" was a fantastic idea that accidentally turned into a nightmare.&lt;/p&gt;

&lt;p&gt;A decade ago, the DevOps movement promised to break down the wall between developers and operations. And it did! But in the process of shifting everything "left," we accidentally shifted the entire cognitive weight of the cloud-native ecosystem onto the shoulders of application developers.&lt;/p&gt;

&lt;p&gt;Suddenly, a frontend or backend engineer trying to ship a simple feature was expected to be an expert in Kubernetes manifests, Terraform state, IAM roles, CI/CD pipeline optimization, and Helm charts.&lt;/p&gt;

&lt;p&gt;We didn't empower developers; we just gave them a massive second job. The result? Developer burnout, fractured "shadow ops" workarounds, and a massive drop in shipping velocity.&lt;/p&gt;

&lt;p&gt;Enter Platform Engineering.&lt;/p&gt;

&lt;p&gt;What is Platform Engineering?&lt;br&gt;
If DevOps is the philosophy of collaboration, Platform Engineering is the product that makes it possible.&lt;/p&gt;

&lt;p&gt;Platform Engineering is the discipline of designing and building toolchains and workflows that enable self-service capabilities for software engineering organizations in the cloud-native era.&lt;/p&gt;

&lt;p&gt;Instead of asking every product team to wire up their own infrastructure from scratch, a dedicated Platform Team builds an Internal Developer Platform (IDP).&lt;/p&gt;

&lt;p&gt;The IDP acts as an abstraction layer—an internal product built for developers. It provides paved roads (often called "Golden Paths") that give developers exactly what they need to ship their code, without requiring them to understand the intricate details of the underlying infrastructure.&lt;/p&gt;

&lt;p&gt;The "Product" Mindset is Everything&lt;br&gt;
The most critical difference between an old-school IT Operations team and a modern Platform Engineering team is product management.&lt;/p&gt;

&lt;p&gt;Platform Engineers treat the developers as their primary customers. The IDP is their flagship product.&lt;/p&gt;

&lt;p&gt;Old IT Ops: "File a Jira ticket and we will provision your database in 3 to 5 business days."&lt;/p&gt;

&lt;p&gt;Platform Engineering: "Here is a self-service CLI command or portal button that instantly spins up a compliant, monitored database attached to your environment."&lt;/p&gt;

&lt;p&gt;The platform team measures their success using product metrics: Developer adoption rates, time-to-first-commit, and the reduction of onboarding time for new engineers.&lt;/p&gt;

&lt;p&gt;Platform Engineering vs. DevOps: What's the Difference?&lt;br&gt;
It’s easy to confuse the two, but they serve different purposes in the modern stack.&lt;/p&gt;

&lt;p&gt;DevOps is a cultural shift. It’s about breaking silos, sharing responsibility, and focusing on continuous delivery.&lt;/p&gt;

&lt;p&gt;Site Reliability Engineering (SRE) is the implementation of DevOps focused on reliability, scaling, and incident response.&lt;/p&gt;

&lt;p&gt;Platform Engineering is the team that builds the vending machine. They package up the complex DevOps and SRE practices into a self-service platform so developers can consume them on demand.&lt;/p&gt;

&lt;p&gt;The Golden Path: Freedom Through Standardization&lt;br&gt;
Developers naturally hate being told what tools they have to use. So, how does Platform Engineering avoid becoming just another restrictive IT bottleneck? Through the concept of the Golden Path.&lt;/p&gt;

&lt;p&gt;A Golden Path is a highly opinionated, fully supported set of tools and workflows.&lt;/p&gt;

&lt;p&gt;If a developer chooses to use the Golden Path (e.g., standard Node.js microservice template deployed to the standard cluster), the platform handles everything for them: CI/CD, security scanning, ingress routing, logging, and metrics. It just works.&lt;/p&gt;

&lt;p&gt;However, a good platform doesn't block escape hatches. If a team has a highly specific use case that requires going off the Golden Path, they are free to do so—but they have to take on the operational burden of maintaining that custom setup themselves.&lt;/p&gt;

&lt;p&gt;The goal is to make the Golden Path so incredibly easy and frictionless that developers want to use it.&lt;/p&gt;

&lt;p&gt;Why the Business Cares&lt;br&gt;
From a DevRel perspective, we love Platform Engineering because it makes developers happier. But the business loves it because it directly impacts the bottom line:&lt;/p&gt;

&lt;p&gt;Reduced Cognitive Load: Developers stop acting as amateur infrastructure engineers and get back to writing business logic.&lt;/p&gt;

&lt;p&gt;Standardized Security: Compliance and security guardrails are baked into the platform dynamically, rather than checked manually after the fact.&lt;/p&gt;

&lt;p&gt;Faster Time-to-Market: "Lead time for changes" drops from weeks to minutes when self-service replaces ticket-ops.&lt;/p&gt;

&lt;p&gt;The TL;DR&lt;br&gt;
Platform Engineering isn't about taking power away from developers. It’s about taking away the toil. It’s the realization that forcing every engineer to be a Kubernetes expert is a terrible way to scale a software company.&lt;/p&gt;

&lt;p&gt;Build the paved road, treat your developers like your best customers, and watch your shipping velocity skyrocket.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>kubernetes</category>
      <category>terraform</category>
      <category>backend</category>
    </item>
    <item>
      <title>Beyond “You Build It, You Run It”: The Strategic Case for Internal Developer Platforms</title>
      <dc:creator>Savi Saluwadana</dc:creator>
      <pubDate>Sun, 01 Mar 2026 04:23:18 +0000</pubDate>
      <link>https://dev.to/savi_saluwadana/beyond-you-build-it-you-run-it-the-strategic-case-for-internal-developer-platforms-2g6l</link>
      <guid>https://dev.to/savi_saluwadana/beyond-you-build-it-you-run-it-the-strategic-case-for-internal-developer-platforms-2g6l</guid>
      <description>&lt;p&gt;Here is the formatted and structured version of your document, optimized for readability, scannability, and impact.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The Context: We Have a Cognitive Load Crisis
&lt;/h2&gt;

&lt;p&gt;The cloud-native revolution gave us scalability, but it also shifted the complexity burden directly onto developers. Today, feature developers are expected to be experts in Kubernetes, Terraform, IAM policies, and networking, all while writing business logic. We told them, "You build it, you run it," but what we actually meant was, "You build it, you configure the entire universe around it."&lt;/p&gt;

&lt;p&gt;This has created a paralyzing level of friction known as &lt;strong&gt;Cognitive Load&lt;/strong&gt;. The cost is measurable and severe:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Velocity Drops:&lt;/strong&gt; Developers spend 30–40% of their week fighting infrastructure instead of shipping code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shadow Ops:&lt;/strong&gt; When the "right way" is too hard, teams create ad-hoc, insecure workarounds just to get things done.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Burnout:&lt;/strong&gt; The pressure to be a "full-stack infrastructure architect" is driving top talent away.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The solution is not more training. The solution is abstraction—which is exactly what an Internal Developer Platform provides.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. What is an Internal Developer Platform (IDP)?
&lt;/h2&gt;

&lt;p&gt;An IDP is not a wiki or a portal. It is the &lt;strong&gt;Operating System&lt;/strong&gt; for your engineering organization. Technically, it acts as an abstraction layer that sits between developers and infrastructure. It unifies your fragmented toolchain (Cloud, CI/CD, Security, Monitoring) into a cohesive, self-service product.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Core Philosophy: Product Thinking
&lt;/h3&gt;

&lt;p&gt;A successful IDP treats the platform as a &lt;strong&gt;Product&lt;/strong&gt;, not a project. The developer becomes the customer, and friction reduction becomes the primary metric.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Anatomy of an IDP
&lt;/h3&gt;

&lt;p&gt;Think of the IDP as a machine with five distinct layers:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Interface Layer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The only part developers touch, consisting of the Developer Portal (like Backstage) and a unified CLI.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Control Plane&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The "brain" that translates developer intent into concrete infrastructure commands.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Integration Layer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The glue connecting existing CI/CD pipelines, Identity Providers, and Registries.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Resource Plane&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Raw infrastructure (Kubernetes, RDS) completely abstracted so developers consume managed services, not raw components.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Observability Layer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Ensures every new service is born with logging, metrics, and tracing automatically wired up.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  3. The Strategy: Golden Paths &amp;amp; Abstraction
&lt;/h2&gt;

&lt;p&gt;The IDP doesn't just offer tools; it enforces standardization through &lt;strong&gt;Golden Paths&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Golden Paths: The Path of Least Resistance
&lt;/h3&gt;

&lt;p&gt;A Golden Path is an officially sanctioned, fully supported workflow. It embodies a simple philosophy: &lt;strong&gt;The path of least resistance must also be the path of best practice.&lt;/strong&gt; The easiest way to build is also the secure, compliant, and scalable way. Developers get an "easy button," while organizations get consistency and governance.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Power of Abstraction
&lt;/h3&gt;

&lt;p&gt;The IDP separates developer intent from implementation details.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Developer Intent:&lt;/strong&gt; "I need a Postgres 14 database for my Payment Service in Production."&lt;br&gt;
&lt;strong&gt;IDP Implementation:&lt;/strong&gt; Automates provisioning, ingress, storage, IAM, and configuration entirely behind the scenes.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  4. One Platform, Two Perspectives
&lt;/h2&gt;

&lt;p&gt;A successful IDP bridges the gap between two opposing mandates: &lt;strong&gt;Speed&lt;/strong&gt; and &lt;strong&gt;Control&lt;/strong&gt;. This creates a win-win scenario where the platform team owns the complexity so the feature team can own the product.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Perspective&lt;/th&gt;
&lt;th&gt;View of Platform&lt;/th&gt;
&lt;th&gt;Primary Focus&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Developer (The Customer)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Vending Machine&lt;/td&gt;
&lt;td&gt;Velocity and autonomy. They want instantly pre-configured resources without ever seeing a Terraform state file.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Platform Engineer (The Provider)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Control Plane&lt;/td&gt;
&lt;td&gt;Stability, security, and governance. They design templates, set guardrails, and manage clusters.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  5. The Business Case: Why We Need an IDP
&lt;/h2&gt;

&lt;p&gt;Technically, an IDP is about abstraction. Commercially, it is about &lt;strong&gt;Operational Leverage&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Solving the Speed Bottleneck: Automated Orchestration
&lt;/h3&gt;

&lt;p&gt;The "Ticket-Ops" model is a manual, imperative workflow that increases Lead Time for Changes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Technical Mechanism:&lt;/strong&gt; The IDP replaces manual provisioning with Dynamic Configuration Management via an API/CLI. It dynamically generates low-level configurations (Kubernetes manifests, IAM roles) from a developer's high-level intent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Resolution:&lt;/strong&gt; Eliminates operations dependencies. Deployments become atomic and automated, reducing Mean Time to Deploy (MTTD) from days to minutes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Solving the CapEx Drain: Cognitive Load Abstraction
&lt;/h3&gt;

&lt;p&gt;The financial loss of high cognitive load comes from developers managing low-level primitives instead of high-level abstractions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Technical Mechanism:&lt;/strong&gt; The Platform team defines Infrastructure as Code (IaC) standards encapsulated within the IDP's Golden Paths. Developers simply interact with a simplified "Workload Specification" schema.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Resolution:&lt;/strong&gt; Reduces the context-switching penalty. Recovering engineering capacity can effectively redirect 30% of the workforce back to feature development without increasing headcount.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Governance Without Bureaucracy
&lt;/h3&gt;

&lt;p&gt;Security is enforced architecturally. If base images in the Golden Path are patched automatically, compliance is baked in by default without chasing down feature teams.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Core Capabilities of the IDP Ecosystem
&lt;/h2&gt;

&lt;p&gt;While architecture provides the skeleton, these five capabilities provide the muscle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Service Catalog:&lt;/strong&gt; A curated marketplace of templates for instant resource access.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated CI/CD:&lt;/strong&gt; Standardized pipelines handling build, test, and security scanning instantly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitOps Delivery Engine:&lt;/strong&gt; A declarative engine syncing Git state with the cluster, making deployments traceable and reversible.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Infrastructure Orchestrator:&lt;/strong&gt; The background engine running IaC to abstract provisioning details.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Embedded Observability:&lt;/strong&gt; Automatic instrumentation for instant logging and metrics.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  7. The Strategic Decision: Build, Buy, or Compose?
&lt;/h2&gt;

&lt;p&gt;For leadership, the decision is about the most efficient path to value.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Strategy&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;The Reality / Challenge&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Option A: Build In-House&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Building the platform from scratch for total control.&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;The Trap:&lt;/strong&gt; You become an "Accidental Software Company," diverting resources to internal tools rather than revenue products.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Option B: Buy Commercial&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Purchasing a pre-built SaaS solution for speed.&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;The Trap:&lt;/strong&gt; Rigidity at scale, vendor lock-in, and the hidden need for highly skilled engineers to manage integration.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Option C: Hybrid (Recommended)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Utilizing a foundational framework like &lt;strong&gt;OpenChoreo&lt;/strong&gt;.&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;The Benefit:&lt;/strong&gt; Eliminates the binary choice. No building from scratch, and no SaaS black boxes.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  How OpenChoreo Achieves This
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Interface:&lt;/strong&gt; Adopts the Backstage portal interface for a standard "single pane of glass."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Engine:&lt;/strong&gt; Orchestrates a robust ecosystem of Open Source and CNCF tools.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Result:&lt;/strong&gt; You own a transparent, extensible platform without the technical debt of building or the lock-in of buying.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  8. Why IDPs Fail
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. The Challenge of Opaque Abstraction
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mechanism:&lt;/strong&gt; Simplifying UI while suppressing the raw output of underlying engines.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Failure Scenario &amp;amp; Impact:&lt;/strong&gt; When standard errors occur (e.g., ImagePullBackOff), developers receive a generic "Deployment Failed" message. Blinded to the actual logs, MTTR increases and dependencies on the platform team rise.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Disrupted "Inner Loop" Latency
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mechanism:&lt;/strong&gt; Enforcing "Remote-First" workflows that require a full CI/CD run for minor local changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Failure Scenario &amp;amp; Impact:&lt;/strong&gt; A 2-second hot reload turns into a 15-minute wait. Developers bypass the platform for localhost testing, causing environment drift and "works on my machine" issues.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Proprietary DSL Fatigue
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mechanism:&lt;/strong&gt; Inventing custom configuration schemas instead of using industry standards.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Failure Scenario &amp;amp; Impact:&lt;/strong&gt; Developers are forced to learn syntax unique to the company. Fearing "resume rot," they resist platform adoption.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. The 80/20 Constraint: Insufficient Extensibility
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mechanism:&lt;/strong&gt; Optimizing solely for standard stateless microservices with rigid constraints.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Failure Scenario &amp;amp; Impact:&lt;/strong&gt; Non-standard workloads (legacy apps, specialized databases) hit a dead end with no escape hatch, fostering "Shadow IT."&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Imperative Interventions in a Declarative Workflow
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mechanism:&lt;/strong&gt; Allowing manual UI "ClickOps" changes that do not sync back to Git.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Failure Scenario &amp;amp; Impact:&lt;/strong&gt; Creates a "split-brain" state. The next automated deployment silently overwrites manual interventions, eroding trust in the platform.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  9. The Future: Where IDPs are Going
&lt;/h2&gt;

&lt;p&gt;The IDP is becoming the standard operating system for the digital economy, defined by Composition and Intelligence:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Rise of Composable Frameworks:&lt;/strong&gt; The DIY era is over. Industry standards are shifting toward enterprise wrappers and pre-configured foundations (like OpenChoreo) so teams can focus on value-add plugins.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;From Manual Interaction to Conversations:&lt;/strong&gt; Operations are becoming Intent-Based. Developers will interact with AI chatbots to deploy resources or troubleshoot failures, shifting operations to natural dialogue.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The 'Product Platform Engineer':&lt;/strong&gt; Platform Engineering is officially a product management discipline. Success is measured by organizational velocity and satisfaction, not just uptime.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Role of AI:&lt;/strong&gt; AI will serve as the platform's central nervous system, predicting bottlenecks, suggesting optimizations, and automating root-cause analysis based on deep telemetry context.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  10. Conclusion
&lt;/h2&gt;

&lt;p&gt;The Internal Developer Platform (IDP) has graduated from a luxury to a strategic necessity. By transitioning from "ticket-based" operations to a self-service product mindset, organizations solve the cognitive load crisis crippling velocity. An IDP is an organizational contract that promises developers autonomy while guaranteeing security and standardization.&lt;/p&gt;

&lt;p&gt;Whether built, bought, or adopted, the mandate is clear: &lt;strong&gt;Abstract the complexity, pave the golden paths, and let your engineers do what they were hired to do—innovate!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>devops</category>
      <category>docker</category>
      <category>cloud</category>
    </item>
  </channel>
</rss>
