Sri (@__karnati) header
Sri (@__karnati) profile picture

DevOps Engineer turned Sales Engineer / Forward Deployed Engineer, working at the intersection of engineering, AI, and enterprise adoption.

Bengaluru, India
Joined January 2021
Photo by Sri (@__karnati)Photo by Sri (@__karnati)Photo by Sri (@__karnati)Photo by Sri (@__karnati)Photo by Sri (@__karnati)Photo by Sri (@__karnati)Photo by Sri (@__karnati)Photo by Sri (@__karnati)Photo by Sri (@__karnati)Photo by Sri (@__karnati)
Pinned Tweet
It's Sept 2, 2026. Starting today, I'll be investing more on my Personal branding. I will be taking more time on X and other online platforms. So for new people here or seeing me for the first time, here's a bit about me 👇👇 I’m Srinivas Karnati, a DevOps Engineer turned Sales Engineer / Forward Deployed Engineer, working at the intersection of engineering, AI, and enterprise adoption. I kinda work with enterprises to know their technical and business challenges, design solutions around their existing environments, and help them move from PoC to production. My work spans AI workflows, cloud infrastructure, DevOps, observability, application deployments, and enterprise integrations. Over past years, I’ve worked with teams to deploy applications across enterprises, build and improve CI/CD and cloud infrastructure, troubleshoot production systems, and design solutions that actually scale. With the current AI age, I’ve been helping enterprises adapt their engineering and business workflows for AI, identifying where AI and agentic workflows can create real value, integrating them into existing systems, and helping teams deploy and operate them reliably in production.
7
31
1,717
A successful PoC proves an idea. It doesn't prove the customer's team can operate it. That needs its own acceptance criteria. Before calling a production handover done, I'd ask five questions: 1. Ownership Who handles this after handover? Name the responsible team, the escalation contact and who can make a decision when something breaks. 2. Access Can the customer operate it with the permissions intended for production, rather than the broad access used to get the build moving? 3. Failure handling If a dependency times out, what does the user see? Where does the team see the failure? Is retrying safe, or could it repeat an action? 4. Success evidence What outcome did we agree to improve, and where can the customer measure it? "The deployment is healthy" and "the workflow is useful" are different checks. 5. Recovery How do we get back to a good state? What does rollback actually undo, and which data changes or external actions need separate repair? These questions belong in the delivery plan, not in a document written after the team has moved on. My handover test: could the customer's team handle a bad day without depending on the builder's memory? If not, the PoC may be successful. The operational handover isn't finished.
1
2
250
Sri retweeted
A Google Cloud zone in London was offline for about 6 hours last week. The facility had backup generators and two redundant controllers to start them. Both failed the same way, at the same moment. Here is what Google's incident report says, and the three lessons I take from it. What happened, from the report: - The site was mid-repair: one utility feed was locked out for fixes, so a single feed carried everything - That live feed then failed, from an underground cable fault on the utility network - The generator controllers sensed voltage on the wrong side of the locked-out breaker, concluded power was fine, and never started the generators - The UPS batteries bridged about 5 minutes, then the zone lost power - Failover traffic moved to the surviving zones and saturated them, causing errors across the region Lesson 1: redundancy is not independence. Duplicated components with one shared design flaw fail together. The useful question is not 'do we have two?' but 'can one mistake take out both?' Lesson 2: planned maintenance is your most fragile state. The site was intentionally degraded when the accident hit. Before maintenance, ask what must still work while the component is out, and test that state, not the normal one. Lesson 3: failover is a second event. The surge from the dead zone hurt the healthy ones. Capacity for failover traffic is part of disaster recovery design, not an afterthought. One thing Google got right: they recovered slowly on purpose, letting storage systems that lost power abruptly finish recovery before re-admitting traffic, because restoring services sooner would have made things worse. And a caveat worth keeping: testing lowers the chance of surprises. It does not prove recovery will work. When did you last test failover while part of your redundancy was already offline? Report in here: status.cloud.google.com/inci…
2
1
1
11
698
A Google Cloud zone in London was offline for about 6 hours last week. The facility had backup generators and two redundant controllers to start them. Both failed the same way, at the same moment. Here is what Google's incident report says, and the three lessons I take from it. What happened, from the report: - The site was mid-repair: one utility feed was locked out for fixes, so a single feed carried everything - That live feed then failed, from an underground cable fault on the utility network - The generator controllers sensed voltage on the wrong side of the locked-out breaker, concluded power was fine, and never started the generators - The UPS batteries bridged about 5 minutes, then the zone lost power - Failover traffic moved to the surviving zones and saturated them, causing errors across the region Lesson 1: redundancy is not independence. Duplicated components with one shared design flaw fail together. The useful question is not 'do we have two?' but 'can one mistake take out both?' Lesson 2: planned maintenance is your most fragile state. The site was intentionally degraded when the accident hit. Before maintenance, ask what must still work while the component is out, and test that state, not the normal one. Lesson 3: failover is a second event. The surge from the dead zone hurt the healthy ones. Capacity for failover traffic is part of disaster recovery design, not an afterthought. One thing Google got right: they recovered slowly on purpose, letting storage systems that lost power abruptly finish recovery before re-admitting traffic, because restoring services sooner would have made things worse. And a caveat worth keeping: testing lowers the chance of surprises. It does not prove recovery will work. When did you last test failover while part of your redundancy was already offline? Report in here: status.cloud.google.com/inci…
2
1
1
11
698
If your AI agent does something wrong, can you tell which step caused it? If you are only logging the final reply, you can't. Treat an agent run like a distributed request, not a chat message. One trace per run. One span for every model call and every tool call. Imagine a ServiceNow agent. It reads a ticket, looks up customer data, then updates a record. - The customer-data call times out and is retried twice. - The update then lands on the wrong record. - The final log line says: "agent failed". - The trace shows exactly where it went wrong. What I'd log on every step: - A trace ID for the run, plus the user and the request it was for. - The step type, the tool name, and how long it took - The outcome: ok, error, timeout, retry count - Which tool or model version was used What I'd keep out by default: raw prompts, tool arguments, and tool results. They can hold customer data. Log them only for a short time, in a restricted place, when you truly need them. If your agent did something wrong last night, could you replay which tool call caused it?
5
10
593
For just once, I want to complete all tasks in my to-do list
1
3
432
Sri retweeted
If your AI agent calls enterprise systems, your logs should tell you three things: - who acted, on whose behalf, and with what access. If you can't, the solution isn't production-ready. Imagine an agent that reads a support ticket, looks up customer data, and updates a record. If it runs on one shared account, the audit trail shows the same name for every action. If it forwards one token to every system, the agent is invisible, and a stolen token can reach further. What I'd want instead: - A token meant for one system only - Narrow permissions, asked for when needed - A log that records both the user and the agent An agent can act for a user, but it needs the right token for each system it connects to. It should get that token through the system's supported authorization process, with only the permissions it needs. A shared service account can work too, if its access is limited and you can trace each action back to who requested it. The point is to choose deliberately, not just use whatever gets the demo working. This is usually one of the first questions in an enterprise security review. Getting it right early shapes the architecture. Fixing it later is expensive. Could you tell from your logs which agent action was done for which user?
6
4
15
635
If your AI agent calls enterprise systems, your logs should tell you three things: - who acted, on whose behalf, and with what access. If you can't, the solution isn't production-ready. Imagine an agent that reads a support ticket, looks up customer data, and updates a record. If it runs on one shared account, the audit trail shows the same name for every action. If it forwards one token to every system, the agent is invisible, and a stolen token can reach further. What I'd want instead: - A token meant for one system only - Narrow permissions, asked for when needed - A log that records both the user and the agent An agent can act for a user, but it needs the right token for each system it connects to. It should get that token through the system's supported authorization process, with only the permissions it needs. A shared service account can work too, if its access is limited and you can trace each action back to who requested it. The point is to choose deliberately, not just use whatever gets the demo working. This is usually one of the first questions in an enterprise security review. Getting it right early shapes the architecture. Fixing it later is expensive. Could you tell from your logs which agent action was done for which user?
6
4
15
635
Sri retweeted
Before you draw the architecture, understand the customer's constraints. I have been working with multiple orgs for the past 5+ years. In enterprises, the design is often decided by things that are not in the spec: - Can data leave their environment? - Can workloads reach the internet or image registries? - Which identity system must we use? - When are changes allowed? - Who runs it after go-live? The answers change the design. No outbound internet changes how you handle updates, images and API calls. A strict identity system changes how services authenticate. A good solution is not just technically right. It fits the place it has to run. What's the one customer constraint that most often changes your design?
2
3
13
530
Before you draw the architecture, understand the customer's constraints. I have been working with multiple orgs for the past 5+ years. In enterprises, the design is often decided by things that are not in the spec: - Can data leave their environment? - Can workloads reach the internet or image registries? - Which identity system must we use? - When are changes allowed? - Who runs it after go-live? The answers change the design. No outbound internet changes how you handle updates, images and API calls. A strict identity system changes how services authenticate. A good solution is not just technically right. It fits the place it has to run. What's the one customer constraint that most often changes your design?
2
3
13
530
Sri retweeted
Your pod says "Running" but the app is down. Running doesn't mean ready to serve requests. One place to look: readiness vs liveness probes. Readiness asks: should this pod get traffic? A failed check marks it not ready. Normal Service traffic stops going to it, but the container isn't restarted. Liveness asks: does this container need a restart? After the configured number of consecutive failures, the kubelet restarts it. Two mistakes worth avoiding: - No readiness check: traffic can reach an app before it's ready. - Overly strict liveness checks: a slow-starting app can get stuck restarting. Slow to boot? Use a startup probe with enough time for startup. Readiness and liveness checks wait until it succeeds. Readiness controls traffic. Liveness controls restarts. Which has bitten you more: missing readiness checks or an over-eager liveness probe? #Kubernetes #DevOps #SRE
1
2
6
521
Your pod says "Running" but the app is down. Running doesn't mean ready to serve requests. One place to look: readiness vs liveness probes. Readiness asks: should this pod get traffic? A failed check marks it not ready. Normal Service traffic stops going to it, but the container isn't restarted. Liveness asks: does this container need a restart? After the configured number of consecutive failures, the kubelet restarts it. Two mistakes worth avoiding: - No readiness check: traffic can reach an app before it's ready. - Overly strict liveness checks: a slow-starting app can get stuck restarting. Slow to boot? Use a startup probe with enough time for startup. Readiness and liveness checks wait until it succeeds. Readiness controls traffic. Liveness controls restarts. Which has bitten you more: missing readiness checks or an over-eager liveness probe? #Kubernetes #DevOps #SRE
1
2
6
521
Sri retweeted
Getting agents to work in a demo is one thing. But making it reliable enough for people to use every day in an enterprise environment is another. I worked with orgs to build cloud infrastructure and CI/CD for enterprise environments earlier. Now, as a forward-deployed engineer, I work with enterprises to take solutions from understanding the problem to running them in production. For me, that means a few practical questions: - Can the solution connect to the tools and data the team already uses? - How can we determine whether its answers and actions are correct? - Can it access only the data it's allowed to use? - Can we be able to figure out what happened when something goes wrong? - Who fixes it, and can we undo a bad change? A demo/PoC shows what's possible. Production means people can rely on it for their daily work. If you've taken agentic systems from a demo to production, what was the hardest part?
6
1
9
555
Sri retweeted
Disaster Recovery & Business Continuity: Most teams pick a DR strategy before they know their numbers. It works better the other way around. Sketch 1: the four classic DR strategies - Backup & Restore, Pilot Light, Warm Standby, and Multi-Site (Active-Active) - and the core trade-off: faster recovery and lower data loss cost more. Sketch 2: the metrics that drive the decision: - RPO: how much data you can afford to lose - RTO: how long you can be down - MTD: the maximum tolerable downtime - the real deadline - WRT: catch-up time after systems are back - MTTR & MTBF: and how they add up to the availability "nines" Rule of thumb: agree RPO and RTO with the business first. The strategy picks itself after that. #DevOps #SRE #SystemDesign #DisasterRecovery #BusinessContinuity
1
8
21
665
Getting agents to work in a demo is one thing. But making it reliable enough for people to use every day in an enterprise environment is another. I worked with orgs to build cloud infrastructure and CI/CD for enterprise environments earlier. Now, as a forward-deployed engineer, I work with enterprises to take solutions from understanding the problem to running them in production. For me, that means a few practical questions: - Can the solution connect to the tools and data the team already uses? - How can we determine whether its answers and actions are correct? - Can it access only the data it's allowed to use? - Can we be able to figure out what happened when something goes wrong? - Who fixes it, and can we undo a bad change? A demo/PoC shows what's possible. Production means people can rely on it for their daily work. If you've taken agentic systems from a demo to production, what was the hardest part?
6
1
9
555
Disaster Recovery & Business Continuity: Most teams pick a DR strategy before they know their numbers. It works better the other way around. Sketch 1: the four classic DR strategies - Backup & Restore, Pilot Light, Warm Standby, and Multi-Site (Active-Active) - and the core trade-off: faster recovery and lower data loss cost more. Sketch 2: the metrics that drive the decision: - RPO: how much data you can afford to lose - RTO: how long you can be down - MTD: the maximum tolerable downtime - the real deadline - WRT: catch-up time after systems are back - MTTR & MTBF: and how they add up to the availability "nines" Rule of thumb: agree RPO and RTO with the business first. The strategy picks itself after that. #DevOps #SRE #SystemDesign #DisasterRecovery #BusinessContinuity
1
8
21
665
Hey, X! 👋 I am Bhavya, I am working in Developer Relations in DevOps and Cloud, creating technical content, and now exploring the world of AI. ☁️ Cloud, DevOps & AI ✍🏻 Technical writing & content creation 🎤 Developer communities & public speaking 🌱 Learning, building & sharing along the way Here to share what I learn, connect with people in tech, and build my personal brand. If we haven’t connected yet, let’s fix that. 🤝 What’s everyone building these days? – at Bengaluru South, India
16
1
29
2,045
Working as an FDE is cool.
2
1
11
775
Sri retweeted
This is how your production EKS cluster should look like 👇👇 VPC • Multiple AZs • Private subnets for nodes • Public subnets only for load balancers EKS Control Plane • Managed by Amazon Elastic Kubernetes Service • Endpoint access restricted Worker Nodes • Managed Node Groups • Spread across multiple AZs Networking • Amazon VPC CNI • AWS Load Balancer Controller for ALB/NLB • Security Groups for Pods when needed Ingress • Application Load Balancer for HTTP services • Network Load Balancer for TCP workloads Autoscaling • Cluster Autoscaler or Karpenter • Horizontal Pod Autoscaler Security • IAM Roles for Service Accounts (IRSA) • Pod Identity • Secrets stored in AWS Secrets Manager with KMS • Network policies enabled Observability • Metrics → Amazon Managed Service for Prometheus • Logs → Amazon CloudWatch • Tracing → AWS X-Ray Reliability • Multi-AZ node groups • Pod disruption budgets • Readiness & liveness probes Storage • Amazon EBS via CSI driver • Amazon S3 for object storage Deployment • GitOps via Argo CD
10
13
1
75
3,467
This is how your production EKS cluster should look like 👇👇 VPC • Multiple AZs • Private subnets for nodes • Public subnets only for load balancers EKS Control Plane • Managed by Amazon Elastic Kubernetes Service • Endpoint access restricted Worker Nodes • Managed Node Groups • Spread across multiple AZs Networking • Amazon VPC CNI • AWS Load Balancer Controller for ALB/NLB • Security Groups for Pods when needed Ingress • Application Load Balancer for HTTP services • Network Load Balancer for TCP workloads Autoscaling • Cluster Autoscaler or Karpenter • Horizontal Pod Autoscaler Security • IAM Roles for Service Accounts (IRSA) • Pod Identity • Secrets stored in AWS Secrets Manager with KMS • Network policies enabled Observability • Metrics → Amazon Managed Service for Prometheus • Logs → Amazon CloudWatch • Tracing → AWS X-Ray Reliability • Multi-AZ node groups • Pod disruption budgets • Readiness & liveness probes Storage • Amazon EBS via CSI driver • Amazon S3 for object storage Deployment • GitOps via Argo CD
10
13
1
75
3,467