<?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: Krishnam Murarka</title>
    <description>The latest articles on DEV Community by Krishnam Murarka (@krishnamm).</description>
    <link>https://dev.to/krishnamm</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4043871%2F98671391-ec31-4c2e-b69b-299db6ce1349.jpg</url>
      <title>DEV Community: Krishnam Murarka</title>
      <link>https://dev.to/krishnamm</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/krishnamm"/>
    <language>en</language>
    <item>
      <title>Zero Trust for Business Applications</title>
      <dc:creator>Krishnam Murarka</dc:creator>
      <pubDate>Thu, 23 Jul 2026 13:16:19 +0000</pubDate>
      <link>https://dev.to/krishnamm/zero-trust-for-business-applications-233c</link>
      <guid>https://dev.to/krishnamm/zero-trust-for-business-applications-233c</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on the Edilec blog: &lt;a href="https://edilec.com/blog/sec-4108/zero-trust-for-business-applications/" rel="noopener noreferrer"&gt;https://edilec.com/blog/sec-4108/zero-trust-for-business-applications/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Zero trust replaces implicit confidence based on network location with explicit, risk-informed decisions about each resource request. For a business application, that means authenticating people and workloads, authorizing the requested action on the specific resource, limiting session and credential scope, and using telemetry to reassess access. It does not mean distrusting employees as people, nor does it describe one product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Define scope in business and risk terms
&lt;/h2&gt;

&lt;p&gt;Bring together application owners, identity teams, endpoint operations, data stewards and support to map high-value resources and current access paths. Trace real requests from a person or workload through authentication, authorization and data access, including remote and partner scenarios.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inventory protected resources, data sensitivity, users, workloads and existing access paths.&lt;/li&gt;
&lt;li&gt;Express authorization in business actions and objects, not only network zones or broad roles.&lt;/li&gt;
&lt;li&gt;Strengthen identity, lifecycle and recovery according to risk.&lt;/li&gt;
&lt;li&gt;Give services verifiable identities and protect service-to-service calls.&lt;/li&gt;
&lt;li&gt;Collect policy, device, session and resource telemetry without making one signal absolute.&lt;/li&gt;
&lt;li&gt;Migrate one high-value journey with fallback and support before expanding.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Design the lifecycle, decisions and boundaries
&lt;/h2&gt;

&lt;p&gt;Represent access as a decision over subject, workload, device, resource, action and context. Enforcement must occur at the resource-facing layer for each meaningful request, not only at network entry.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resolve implementation details early
&lt;/h2&gt;

&lt;p&gt;Assign owners for resource classification, identity lifecycle, device evidence, authorization policy, enforcement and incident response. Document token lifetime, revocation, policy distribution, telemetry freshness, regional dependencies, privacy limits and emergency access.&lt;/p&gt;

&lt;h2&gt;
  
  
  Roll out with observable gates
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Baseline the current outcome, delay, failure demand and risk before changing the process.&lt;/li&gt;
&lt;li&gt;Build a thin end-to-end path and test contracts, permissions, telemetry and recovery.&lt;/li&gt;
&lt;li&gt;Run in simulation, shadow or limited-production mode where the control permits it.&lt;/li&gt;
&lt;li&gt;Release to a named cohort with an owner, support coverage, stop conditions and rollback steps.&lt;/li&gt;
&lt;li&gt;Review technical signals and business outcomes together; investigate segment differences.&lt;/li&gt;
&lt;li&gt;Expand only when exceptions are handled reliably and operating documentation matches reality.&lt;/li&gt;
&lt;li&gt;Retire the previous path, credentials, jobs and access after evidence and retention needs are satisfied.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Operate the capability after launch
&lt;/h2&gt;

&lt;p&gt;Establish governance around protected resources and access policies, not merely the zero-trust tooling. Review privileged roles, policy exceptions, service identities, signal quality and resources lacking enforcement. Workload identity is essential because modern applications call one another more often than people call each service directly. Give each deployable workload a distinct identity, authenticate both ends where feasible and authorize the specific API operation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Start from a complete business outcome and the evidence needed to trust it.&lt;/li&gt;
&lt;li&gt;Make identity, authority, state, exception handling and ownership explicit.&lt;/li&gt;
&lt;li&gt;Design failure, recovery and reconciliation before expanding volume.&lt;/li&gt;
&lt;li&gt;Roll out to controlled cohorts with measurable gates and practiced rollback.&lt;/li&gt;
&lt;li&gt;Treat configuration, policy, access and retirement as continuing product work.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;More from Edilec: RBAC design for internal tools (edilec.com/blog/sec-9002) and Edilec's cybersecurity services (edilec.com/services/cybersecurity).&lt;/p&gt;

</description>
      <category>security</category>
      <category>zerotrust</category>
      <category>cloud</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>CI/CD Pipelines for Growing Products: Fast Releases, Verifiable Recovery</title>
      <dc:creator>Krishnam Murarka</dc:creator>
      <pubDate>Thu, 23 Jul 2026 13:14:36 +0000</pubDate>
      <link>https://dev.to/krishnamm/cicd-pipelines-for-growing-products-fast-releases-verifiable-recovery-1j6f</link>
      <guid>https://dev.to/krishnamm/cicd-pipelines-for-growing-products-fast-releases-verifiable-recovery-1j6f</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on the Edilec blog: &lt;a href="https://edilec.com/blog/cld-3102/ci-cd-pipelines-for-growing-products/" rel="noopener noreferrer"&gt;https://edilec.com/blog/cld-3102/ci-cd-pipelines-for-growing-products/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;CI/CD pipelines for growing products should reduce the uncertainty of change, not merely reduce the number of clicks before production. A dependable pipeline answers five questions for every release: what changed, who reviewed it, which immutable artifact was tested, which policy allowed it to advance, and how the team will detect and recover from harm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Define the release contract
&lt;/h2&gt;

&lt;p&gt;Write down the unit that moves through the pipeline: container digest, signed package, mobile build or versioned function bundle. Define the environments it crosses, required evidence, approval authority, exposure strategy and recovery objective. Classify changes by consequence: a documentation-only update, a stateless API patch, a schema migration and an identity-policy change should not share an identical path.&lt;/p&gt;

&lt;h2&gt;
  
  
  Create one trusted build artifact
&lt;/h2&gt;

&lt;p&gt;A commit should enter a controlled build environment with pinned tools and dependencies. The pipeline compiles or packages once, runs tests against the resulting artifact, records dependency and build metadata, and publishes it to an immutable repository. Rebuilding separately for staging and production weakens the claim that production received what was tested.&lt;/p&gt;

&lt;h2&gt;
  
  
  Order checks for fast, useful feedback
&lt;/h2&gt;

&lt;p&gt;Put formatting, static analysis, unit tests, secret detection and configuration validation close to the commit because they are fast and deterministic. Run contract and integration tests against realistic boundaries. Reserve expensive performance and resilience suites for changes or stages where they materially reduce risk.&lt;/p&gt;

&lt;h2&gt;
  
  
  Secure pipeline identities and execution
&lt;/h2&gt;

&lt;p&gt;A delivery pipeline is a privileged production system. Use workload identity federation or another short-lived credential mechanism instead of static cloud keys. Scope each stage to the environment and action it needs, and separate build from deployment identities.&lt;/p&gt;

&lt;h2&gt;
  
  
  Separate deployment from release exposure
&lt;/h2&gt;

&lt;p&gt;Deployment places the artifact in an environment; release exposes users or traffic. Feature flags, canaries, rings and blue-green strategies let teams separate those moments. Compare errors, latency, saturation and a product-specific success signal against a valid baseline before expanding exposure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rehearse recovery across data boundaries
&lt;/h2&gt;

&lt;p&gt;Rollback is not simply redeploying the previous binary. A release may change schemas, produce events old consumers cannot parse, or start an irreversible external action. Prefer backward-compatible expand-and-contract migrations, and test restoration of schema, state, queues and flags, not only compute.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Build an artifact once, identify it by digest, and promote that exact artifact across environments.&lt;/li&gt;
&lt;li&gt;Apply fast deterministic checks early and risk-sensitive checks before exposure.&lt;/li&gt;
&lt;li&gt;Keep credentials short-lived and scoped; protect pipeline configuration and runners as production assets.&lt;/li&gt;
&lt;li&gt;Separate deployment from full release so exposure can increase gradually.&lt;/li&gt;
&lt;li&gt;Rehearse rollback and forward repair with database, queue and compatibility effects included.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;More from Edilec: Deployment rollbacks architecture guide (edilec.com/blog/km-cld-0012) and Edilec's cloud and DevOps services (edilec.com/services/cloud-devops).&lt;/p&gt;

</description>
      <category>devops</category>
      <category>cicd</category>
      <category>cloud</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>RAG for Company Knowledge and Support: Architecture, Controls and Rollout</title>
      <dc:creator>Krishnam Murarka</dc:creator>
      <pubDate>Thu, 23 Jul 2026 13:03:35 +0000</pubDate>
      <link>https://dev.to/krishnamm/rag-for-company-knowledge-and-support-architecture-controls-and-rollout-k5d</link>
      <guid>https://dev.to/krishnamm/rag-for-company-knowledge-and-support-architecture-controls-and-rollout-k5d</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on the Edilec blog: &lt;a href="https://edilec.com/blog/ai-1080/rag-for-company-knowledge-and-support/" rel="noopener noreferrer"&gt;https://edilec.com/blog/ai-1080/rag-for-company-knowledge-and-support/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Retrieval-augmented generation, or RAG, can help employees and support teams answer questions from approved policies, product documentation, procedures and case history. The system searches a controlled corpus at request time, supplies selected passages to a model and asks it to answer from that evidence. This makes knowledge easier to update, but it does not make every answer correct. A production design must treat content quality, retrieval, authorization, generation and human escalation as separate controls.&lt;/p&gt;

&lt;h2&gt;
  
  
  What RAG does and where it fits
&lt;/h2&gt;

&lt;p&gt;Ingest approved sources, divide them into retrievable units, attach metadata and permissions, create lexical and vector representations, retrieve candidates, rank them, assemble a bounded context and generate an answer with evidence references. RAG is an information system with a generative interface, not merely a prompt attached to a document folder.&lt;/p&gt;

&lt;h2&gt;
  
  
  Retrieval is not authorization
&lt;/h2&gt;

&lt;p&gt;A relevant document may still be restricted. Enforce access before passages enter model context, and test authorization at query time. Hiding a citation after generation does not undo disclosure to the model or user.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prepare the knowledge base before tuning the model
&lt;/h2&gt;

&lt;p&gt;Duplicate procedures, expired policies and contradictory product notes will produce inconsistent answers regardless of model quality. Inventory sources and classify each as authoritative, supplementary or excluded. Chunking should follow meaning, not an arbitrary character count.&lt;/p&gt;

&lt;h2&gt;
  
  
  Design retrieval and answering as observable stages
&lt;/h2&gt;

&lt;p&gt;Lexical search is strong for error codes, names and distinctive phrases; vector search helps when user wording differs from the documents. Hybrid retrieval runs both and combines their candidates. Do not assume more retrieved chunks always improves answers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Evaluate the pipeline, not only the final prose
&lt;/h2&gt;

&lt;p&gt;Build a representative evaluation set from real, de-identified questions, including common requests, rare terms, typos, ambiguous wording, restricted documents and questions with no answer. Measure recall, ranking quality, groundedness, citation correctness, abstention quality and authorization.&lt;/p&gt;

&lt;h2&gt;
  
  
  A staged RAG rollout plan
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Inventory and govern one bounded domain with named source owners.&lt;/li&gt;
&lt;li&gt;Build retrieval first, and tune it against labeled questions before adding generation.&lt;/li&gt;
&lt;li&gt;Add answer generation offline and test citations and no-answer behavior.&lt;/li&gt;
&lt;li&gt;Run a limited internal pilot with required review.&lt;/li&gt;
&lt;li&gt;Expand with gates only when authorization, freshness and relevance meet criteria.&lt;/li&gt;
&lt;li&gt;Operate continuously and retain a tested rollback path.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Treat RAG as a governed information system, not a prompt attached to a document folder.&lt;/li&gt;
&lt;li&gt;Clean, classify and assign owners to source content before tuning retrieval.&lt;/li&gt;
&lt;li&gt;Enforce user and document permissions before evidence enters model context.&lt;/li&gt;
&lt;li&gt;Evaluate retrieval, groundedness, citations, abstention and operations separately.&lt;/li&gt;
&lt;li&gt;Start with a bounded, reviewable use case and expand only through measured gates.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;More from Edilec: How AI agents work in business workflows (edilec.com/blog/ai-1024) and Edilec's AI automation services (edilec.com/services/ai-automation).&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>rag</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>How AI Agents Work in Business Workflows: Architecture, Controls and Rollout</title>
      <dc:creator>Krishnam Murarka</dc:creator>
      <pubDate>Thu, 23 Jul 2026 13:01:21 +0000</pubDate>
      <link>https://dev.to/krishnamm/how-ai-agents-work-in-business-workflows-architecture-controls-and-rollout-57k6</link>
      <guid>https://dev.to/krishnamm/how-ai-agents-work-in-business-workflows-architecture-controls-and-rollout-57k6</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on the Edilec blog: &lt;a href="https://edilec.com/blog/ai-1024/how-ai-agents-work-in-business-workflows/" rel="noopener noreferrer"&gt;https://edilec.com/blog/ai-1024/how-ai-agents-work-in-business-workflows/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;An AI agent becomes business software when it can pursue a bounded goal, obtain approved context, choose from permitted tools, observe results and stop safely. The language model is only one component. Identity, workflow state, APIs, approval rules, logs and fallback queues determine whether the agent produces dependable work or merely an impressive demonstration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Workflow, agent or assistant
&lt;/h2&gt;

&lt;p&gt;A conventional workflow follows paths written in code. An assistant generates or retrieves information while a person remains the operator. An agent chooses its next step within a defined action space. Use the least autonomous pattern that solves the problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  The agent loop
&lt;/h2&gt;

&lt;p&gt;The orchestrator sends a goal, instructions, current state and available tool schemas to a model. The model returns a proposed tool call, a user-facing answer, a clarification request or a stop signal. The application validates the proposal, executes an allowed action, records the result and returns an observation for the next turn.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Goal: a specific outcome, not a vague instruction.&lt;/li&gt;
&lt;li&gt;Context: the minimum records and policies needed for the decision.&lt;/li&gt;
&lt;li&gt;Action: a read, calculation, draft or write operation through a typed tool contract.&lt;/li&gt;
&lt;li&gt;Observation: the tool result or approval decision.&lt;/li&gt;
&lt;li&gt;Stop condition: success, timeout, budget exhaustion or human escalation.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tools and memory do different jobs
&lt;/h2&gt;

&lt;p&gt;A tool is an enforceable interface to the outside world with a narrow purpose and typed input schema. Memory persists information across turns; treat durable memory as application data with a defined source, access control and deletion path.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failure modes and controls
&lt;/h2&gt;

&lt;p&gt;Wrong context, prompt injection, excessive action, looping and silent partial failure are the common failure modes. Narrow tools, least privilege, approval gates, rate limits and idempotent execution contain them.&lt;/p&gt;

&lt;h2&gt;
  
  
  A staged rollout
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Define one workflow, owner and success criteria.&lt;/li&gt;
&lt;li&gt;Map every data source and action; classify read, draft or write.&lt;/li&gt;
&lt;li&gt;Build an offline scenario set before connecting production tools.&lt;/li&gt;
&lt;li&gt;Run in shadow mode where the agent proposes but does not act.&lt;/li&gt;
&lt;li&gt;Move to draft mode for a small cohort and capture edits and approvals.&lt;/li&gt;
&lt;li&gt;Enable one low-risk reversible action with narrow permissions.&lt;/li&gt;
&lt;li&gt;Review quality, exceptions and cost, then expand only with evidence.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The model proposes; the application authorizes, executes and records.&lt;/li&gt;
&lt;li&gt;Agents are justified by variable multi-step work, not every automation opportunity.&lt;/li&gt;
&lt;li&gt;Tools should be narrow contracts; memory should be governed application data.&lt;/li&gt;
&lt;li&gt;Evaluation must cover the complete trajectory and real business outcome.&lt;/li&gt;
&lt;li&gt;Autonomy should increase one reversible capability at a time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;More from Edilec: RAG for company knowledge and support (edilec.com/blog/ai-1080) and Edilec's AI automation services (edilec.com/services/ai-automation).&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>architecture</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
