<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>ConsultorIA blog</title>
    <link>https://consultoria.com/blog/</link>
    <description>Cloud, applied AI and security, from production.</description>
    <language>en</language>
    <atom:link href="https://consultoria.com/blog/feed.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Choosing a vector database by the constraint that will actually bite</title>
      <link>https://consultoria.com/blog/vector-database-choice</link>
      <guid isPermaLink="true">https://consultoria.com/blog/vector-database-choice</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Most teams pick a vector store from a benchmark chart and then discover the thing that hurts is metadata filtering, tenancy or reindexing. If you already run PostgreSQL, pgvector is usually the right answer for longer than people expect.</description>
      <category>RAG</category>
    </item>
    <item>
      <title>Vault or your cloud&#x27;s secret manager</title>
      <link>https://consultoria.com/blog/vault-or-cloud-secret-manager</link>
      <guid isPermaLink="true">https://consultoria.com/blog/vault-or-cloud-secret-manager</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>The choice is not about features. It is about whether you are multi-cloud, whether you need short-lived database credentials, and how much operational load your team can carry.</description>
      <category>Identity and access</category>
    </item>
    <item>
      <title>The US state privacy patchwork: what a GDPR-compliant SaaS still has to build</title>
      <link>https://consultoria.com/blog/us-state-privacy-ccpa-cpra</link>
      <guid isPermaLink="true">https://consultoria.com/blog/us-state-privacy-ccpa-cpra</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>California set the template and a growing list of states copied it with variations. What differs from GDPR, why the browser opt-out signal is the part teams miss, and how to build once for a list that keeps growing.</description>
      <category>Compliance</category>
    </item>
    <item>
      <title>The number that matters is not the bill, it is the cost per customer</title>
      <link>https://consultoria.com/blog/unit-economics-cost-per-customer</link>
      <guid isPermaLink="true">https://consultoria.com/blog/unit-economics-cost-per-customer</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>A cloud bill growing with revenue is fine. One growing faster is a business problem hiding inside an infrastructure report. Pick the unit, attribute the shared cost, and the conversation with the board changes.</description>
      <category>FinOps</category>
    </item>
    <item>
      <title>The testing pyramid for infrastructure code</title>
      <link>https://consultoria.com/blog/testing-infrastructure-code</link>
      <guid isPermaLink="true">https://consultoria.com/blog/testing-infrastructure-code</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Formatting and validation are free, static analysis is nearly free, policy on the plan is cheap, and real apply-and-destroy tests are expensive and slow. Spend accordingly, and know what each layer cannot catch.</description>
      <category>Terraform</category><category>CI/CD and DevOps</category>
    </item>
    <item>
      <title>Modules people reuse instead of copying</title>
      <link>https://consultoria.com/blog/terraform-module-design</link>
      <guid isPermaLink="true">https://consultoria.com/blog/terraform-module-design</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>The two failures are a module that wraps one resource and adds nothing, and a module that does everything and nobody dares change. A minimal interface, safe defaults and honest versioning are what separate them.</description>
      <category>Terraform</category>
    </item>
    <item>
      <title>Stateful workloads in Kubernetes, and the question you should ask first</title>
      <link>https://consultoria.com/blog/stateful-workloads-kubernetes</link>
      <guid isPermaLink="true">https://consultoria.com/blog/stateful-workloads-kubernetes</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>A StatefulSet guarantees less than people assume, a volume pins a pod to a zone, and the honest question is whether that database belongs in the cluster at all.</description>
      <category>Kubernetes</category><category>Data platform</category>
    </item>
    <item>
      <title>SLOs that stop a deploy, and SLOs that decorate a dashboard</title>
      <link>https://consultoria.com/blog/slos-and-error-budgets</link>
      <guid isPermaLink="true">https://consultoria.com/blog/slos-and-error-budgets</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Most service level objectives are picked from the metric the team already had, and never change anyone&#x27;s behaviour. Here is how to choose the indicator from the user&#x27;s experience and wire an error budget to a real decision.</description>
      <category>Observability</category>
    </item>
    <item>
      <title>Reading a Terraform plan is not the same as seeing it</title>
      <link>https://consultoria.com/blog/skyline-terraform-before-apply</link>
      <guid isPermaLink="true">https://consultoria.com/blog/skyline-terraform-before-apply</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>A plan is a thousand lines of diff in a terminal. The questions you actually want answered — what does this cost, what does it expose, what breaks if it fails — are not in that format. Here is how we made Skyline answer them from the code alone.</description>
      <category>Terraform</category><category>FinOps</category>
    </item>
    <item>
      <title>“Read-only” is a claim until something checks it: how Skyline verifies credentials before scanning</title>
      <link>https://consultoria.com/blog/skyline-read-only-scan-guarantee</link>
      <guid isPermaLink="true">https://consultoria.com/blog/skyline-read-only-scan-guarantee</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Most inventory tools ask for read-only access and trust you got it right. We made Skyline prove it first, because the ReadOnlyAccess policy a team hands you is very often not what they think it is.</description>
      <category>Identity and access</category><category>AWS</category>
    </item>
    <item>
      <title>Nobody has seen the whole estate: what a multi-cloud map shows that four consoles cannot</title>
      <link>https://consultoria.com/blog/skyline-one-map-four-clouds</link>
      <guid isPermaLink="true">https://consultoria.com/blog/skyline-one-map-four-clouds</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Most teams running two or more clouds have never seen them on one page. When they do, the surprises are consistent enough to list: regions nobody chose, resources Terraform does not know about, and a cost distribution that does not match anyone&#x27;s mental model.</description>
      <category>AWS</category><category>FinOps</category>
    </item>
    <item>
      <title>A service mesh solves three problems and costs you an operator</title>
      <link>https://consultoria.com/blog/service-mesh-when-worth-it</link>
      <guid isPermaLink="true">https://consultoria.com/blog/service-mesh-when-worth-it</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Mutual TLS, fine-grained traffic control and uniform telemetry without touching application code. What each one actually costs in latency, memory and operational load, and the cheaper things that cover two out of three.</description>
      <category>Kubernetes</category>
    </item>
    <item>
      <title>Functions, managed containers or Kubernetes, decided by five variables</title>
      <link>https://consultoria.com/blog/serverless-vs-containers</link>
      <guid isPermaLink="true">https://consultoria.com/blog/serverless-vs-containers</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>The choice is not about elegance. It is traffic shape, cold start tolerance, execution duration, environment control and what your team can actually operate at three in the morning.</description>
      <category>Serverless and events</category>
    </item>
    <item>
      <title>Self-hosting an open-weight model: the break-even is further away than you think</title>
      <link>https://consultoria.com/blog/self-hosting-open-models-gpu-cost</link>
      <guid isPermaLink="true">https://consultoria.com/blog/self-hosting-open-models-gpu-cost</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>The cost per token looks obviously cheaper until you account for utilisation. GPUs bill by the hour whether or not anyone is asking questions, and that single fact decides most of these decisions.</description>
      <category>LLMs and agents</category><category>FinOps</category>
    </item>
    <item>
      <title>Rotation nobody does, because it breaks things</title>
      <link>https://consultoria.com/blog/secret-rotation-that-works</link>
      <guid isPermaLink="true">https://consultoria.com/blog/secret-rotation-that-works</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Rotation fails when the application reads the secret once at startup. Two valid credentials during the change window, an inventory that is real, and deletion instead of rotation for the credentials that should not exist at all.</description>
      <category>Identity and access</category>
    </item>
    <item>
      <title>RTO, RPO and the restore test almost nobody has run</title>
      <link>https://consultoria.com/blog/rto-rpo-and-the-restore-test</link>
      <guid isPermaLink="true">https://consultoria.com/blog/rto-rpo-and-the-restore-test</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Most teams have backups and no idea how long a restore takes. Set recovery targets per service, prove them with a quarterly restore test, and write the plan so it fits on one page.</description>
      <category>Resilience and continuity</category>
    </item>
    <item>
      <title>A queue and an event stream are not the same thing</title>
      <link>https://consultoria.com/blog/queues-and-event-streams</link>
      <guid isPermaLink="true">https://consultoria.com/blog/queues-and-event-streams</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>One distributes work and forgets it. The other is an ordered log several consumers can replay. Choosing the wrong one produces an architecture that fights you for years.</description>
      <category>Serverless and events</category><category>Data platform</category>
    </item>
    <item>
      <title>Infrastructure in a real programming language, and what it costs you</title>
      <link>https://consultoria.com/blog/pulumi-vs-terraform</link>
      <guid isPermaLink="true">https://consultoria.com/blog/pulumi-vs-terraform</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Loops, types and tests come free with a general-purpose language. What you give up is a plan a non-programmer can review, and a low floor for the people who have to maintain it at three in the morning.</description>
      <category>Terraform</category>
    </item>
    <item>
      <title>Prompt injection: you do not fix it with a better system prompt</title>
      <link>https://consultoria.com/blog/prompt-injection-defences</link>
      <guid isPermaLink="true">https://consultoria.com/blog/prompt-injection-defences</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Any agent that reads untrusted content and can act will eventually take instructions from that content. The defences that work are architectural, not textual.</description>
      <category>LLMs and agents</category><category>Compliance</category>
    </item>
    <item>
      <title>Prometheus stops working the way you first built it</title>
      <link>https://consultoria.com/blog/prometheus-at-scale</link>
      <guid isPermaLink="true">https://consultoria.com/blog/prometheus-at-scale</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Cardinality is behind almost every Prometheus problem you will have, and it is usually one label added by one well-meaning engineer. How to find it, how to survive retention and HA, and when Thanos or Mimir is actually justified.</description>
      <category>Observability</category><category>Kubernetes</category>
    </item>
    <item>
      <title>Tuning managed PostgreSQL, where you do not control the machine</title>
      <link>https://consultoria.com/blog/postgres-tuning-managed-cloud</link>
      <guid isPermaLink="true">https://consultoria.com/blog/postgres-tuning-managed-cloud</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Nearly every performance incident we investigate is a missing index, a connection pool that is not there, or autovacuum sized for a database a tenth the size. Resizing the instance is the fix people try first and it is almost never the answer.</description>
      <category>Data platform</category>
    </item>
    <item>
      <title>osquery turns your fleet into a table you can select from</title>
      <link>https://consultoria.com/blog/osquery-fleet-visibility</link>
      <guid isPermaLink="true">https://consultoria.com/blog/osquery-fleet-visibility</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Most questions during an incident or an audit are inventory questions, and most organisations answer them with a spreadsheet. A SQL interface over live endpoint state answers them in seconds, and the scheduling is where it goes wrong.</description>
      <category>Pentesting tools</category>
    </item>
    <item>
      <title>OpenTofu or Terraform, decided by who you are</title>
      <link>https://consultoria.com/blog/opentofu-or-terraform</link>
      <guid isPermaLink="true">https://consultoria.com/blog/opentofu-or-terraform</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>The licence change matters differently to an end user, a software vendor and a consultancy. Compatibility is high and diverging, migration is cheap and returning is not. Here is the decision framework without the partisanship.</description>
      <category>Terraform</category>
    </item>
    <item>
      <title>Adopting OpenTelemetry without stopping the team for a quarter</title>
      <link>https://consultoria.com/blog/opentelemetry-adoption</link>
      <guid isPermaLink="true">https://consultoria.com/blog/opentelemetry-adoption</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>OpenTelemetry is not equally mature across traces, metrics and logs, and the adoption plans that fail treat it as one migration. Here is the order that works and where the double-billing months come from.</description>
      <category>Observability</category>
    </item>
    <item>
      <title>Splitting a shared cluster&#x27;s bill so teams believe the number</title>
      <link>https://consultoria.com/blog/opencost-kubecost-showback</link>
      <guid isPermaLink="true">https://consultoria.com/blog/opencost-kubecost-showback</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Allocation by requests or by usage creates opposite incentives, shared costs start the argument, and showback before chargeback is what stops the whole exercise being rejected.</description>
      <category>FinOps</category><category>Kubernetes</category>
    </item>
    <item>
      <title>Controlling Oracle Cloud cost from the inside</title>
      <link>https://consultoria.com/blog/oci-cost-controls-and-commitments</link>
      <guid isPermaLink="true">https://consultoria.com/blog/oci-cost-controls-and-commitments</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Compartments and defined tags are the allocation model, flexible shapes make rightsizing continuous rather than stepwise, and the universal credit commitment behaves differently from a reservation.</description>
      <category>Oracle Cloud</category><category>FinOps</category>
    </item>
    <item>
      <title>Multi-region is a cost decision before it is an architecture decision</title>
      <link>https://consultoria.com/blog/multi-region-failover-cost</link>
      <guid isPermaLink="true">https://consultoria.com/blog/multi-region-failover-cost</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Cold, warm and hot standby differ by an order of magnitude in price and by minutes or hours in recovery. Pick the tier from what an outage actually costs you, and be honest that most estates should buy multi-zone instead.</description>
      <category>Resilience and continuity</category><category>FinOps</category>
    </item>
    <item>
      <title>Metasploit for confirming a finding, not for the demo</title>
      <link>https://consultoria.com/blog/metasploit-controlled-exploitation</link>
      <guid isPermaLink="true">https://consultoria.com/blog/metasploit-controlled-exploitation</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>A scanner says a host is probably vulnerable. Controlled exploitation in an authorised engagement turns &quot;probably&quot; into &quot;here is what an attacker gets&quot;, which is the difference between a finding people fix and one they file.</description>
      <category>Pentesting tools</category>
    </item>
    <item>
      <title>Logs are the line that grows without anyone deciding it should</title>
      <link>https://consultoria.com/blog/logging-cost-and-structure</link>
      <guid isPermaLink="true">https://consultoria.com/blog/logging-cost-and-structure</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Log volume rises with traffic, with every new service and with every debugging session somebody forgot to turn off. Structure decides whether they are useful, and six rules decide whether they are affordable.</description>
      <category>Observability</category><category>FinOps</category>
    </item>
    <item>
      <title>Guardrails that earn their latency</title>
      <link>https://consultoria.com/blog/llm-guardrails-in-production</link>
      <guid isPermaLink="true">https://consultoria.com/blog/llm-guardrails-in-production</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>A classifier on every request costs time and money on every request. What to check on input, what to check on output, and how to decide whether the guardrail is worth what it takes.</description>
      <category>LLMs and agents</category>
    </item>
    <item>
      <title>Evaluating an LLM feature without building a research lab</title>
      <link>https://consultoria.com/blog/llm-evaluation-beyond-vibes</link>
      <guid isPermaLink="true">https://consultoria.com/blog/llm-evaluation-beyond-vibes</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>A hundred real cases, per-task metrics instead of one score, and a judge calibrated against human labels. That is enough to catch regressions and to decide whether a model change is safe.</description>
      <category>LLMs and agents</category>
    </item>
    <item>
      <title>Choosing an analytics platform by the constraint that binds</title>
      <link>https://consultoria.com/blog/lakehouse-snowflake-databricks</link>
      <guid isPermaLink="true">https://consultoria.com/blog/lakehouse-snowflake-databricks</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Open table formats changed the negotiation by separating storage from compute. What is left to decide is your workload mix, your governance boundary, and which cost model you can actually control.</description>
      <category>Data platform</category>
    </item>
    <item>
      <title>Policy in the cluster, without the webhook that takes it down</title>
      <link>https://consultoria.com/blog/kyverno-vs-gatekeeper</link>
      <guid isPermaLink="true">https://consultoria.com/blog/kyverno-vs-gatekeeper</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Kyverno or Gatekeeper is a smaller decision than how you roll policy out. Audit, then warn, then enforce, with system namespaces excluded and a failure policy you have thought about.</description>
      <category>Kubernetes</category><category>Compliance</category>
    </item>
    <item>
      <title>Cluster posture scanning, and the six findings that are always there</title>
      <link>https://consultoria.com/blog/kubescape-cluster-posture</link>
      <guid isPermaLink="true">https://consultoria.com/blog/kubescape-cluster-posture</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Every Kubernetes benchmark scan produces hundreds of findings and the same handful matter. Here is which ones, why the control plane checks mostly do not apply on managed clusters, and how to stop the report being ignored.</description>
      <category>Pentesting tools</category><category>Kubernetes</category>
    </item>
    <item>
      <title>Several teams, one cluster, without anyone standing on anyone</title>
      <link>https://consultoria.com/blog/kubernetes-multi-tenancy</link>
      <guid isPermaLink="true">https://consultoria.com/blog/kubernetes-multi-tenancy</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>A namespace is a naming boundary, not a security boundary. Quotas, default-deny network policy, workload identity and a clear answer on node isolation are what make a shared cluster work.</description>
      <category>Kubernetes</category><category>Identity and access</category>
    </item>
    <item>
      <title>Cluster upgrades stop being an event when you do them monthly</title>
      <link>https://consultoria.com/blog/kubernetes-cluster-upgrades</link>
      <guid isPermaLink="true">https://consultoria.com/blog/kubernetes-cluster-upgrades</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>The support calendar decides your schedule whether you plan or not. Deprecated APIs, blocked drains and add-ons that lag the control plane are the three things that turn an upgrade into an incident.</description>
      <category>Kubernetes</category>
    </item>
    <item>
      <title>Jenkins in 2026: when to keep it and when to migrate</title>
      <link>https://consultoria.com/blog/jenkins-in-2026-keep-or-migrate</link>
      <guid isPermaLink="true">https://consultoria.com/blog/jenkins-in-2026-keep-or-migrate</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Most companies running Jenkins are not running it badly, they are running it unattended. How to tell a Jenkins worth keeping from one that is quietly costing you a day a week, and what migration actually costs.</description>
      <category>CI/CD and DevOps</category><category>Automation</category>
    </item>
    <item>
      <title>ISO 42001 is the management system your AI Act file will lean on</title>
      <link>https://consultoria.com/blog/iso-42001-ai-management</link>
      <guid isPermaLink="true">https://consultoria.com/blog/iso-42001-ai-management</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>It is not a certification of your model. It is the scaffolding that makes AI governance repeatable, and if you already run ISO 27001, most of the machinery is built.</description>
      <category>Compliance</category><category>LLMs and agents</category>
    </item>
    <item>
      <title>Cost is decided in the pull request, not in the invoice review</title>
      <link>https://consultoria.com/blog/infracost-in-pull-requests</link>
      <guid isPermaLink="true">https://consultoria.com/blog/infracost-in-pull-requests</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Infracost turns a Terraform plan into a monthly delta on the pull request. What it estimates well, what it cannot estimate at all, and how to keep the comment from becoming wallpaper.</description>
      <category>FinOps</category><category>CI/CD and DevOps</category>
    </item>
    <item>
      <title>The runbook you use at 3am, not the one you show the auditor</title>
      <link>https://consultoria.com/blog/incident-response-runbooks</link>
      <guid isPermaLink="true">https://consultoria.com/blog/incident-response-runbooks</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Severity defined by criteria instead of instinct, three roles, one timeline and a named person who decides whether to notify. Everything else in an incident process is optional.</description>
      <category>Resilience and continuity</category><category>Compliance</category>
    </item>
    <item>
      <title>Human in the loop: choosing where the approval goes</title>
      <link>https://consultoria.com/blog/human-in-the-loop-approvals</link>
      <guid isPermaLink="true">https://consultoria.com/blog/human-in-the-loop-approvals</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>An approval step is the cheapest safety control and the easiest one to place badly. Put it too early and you have automated nothing; too late and you are rubber-stamping. Four placements and when each is right.</description>
      <category>Automation</category><category>LLMs and agents</category>
    </item>
    <item>
      <title>HIPAA on cloud infrastructure, where scope reduction does most of the work</title>
      <link>https://consultoria.com/blog/hipaa-cloud-workloads</link>
      <guid isPermaLink="true">https://consultoria.com/blog/hipaa-cloud-workloads</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>The business associate agreement is the easy part. Which services you may use, which data you can avoid holding, and the six technical safeguards that turn into actual configuration.</description>
      <category>Compliance</category>
    </item>
    <item>
      <title>GDPR as engineering controls, not legal theory</title>
      <link>https://consultoria.com/blog/gdpr-engineering-controls</link>
      <guid isPermaLink="true">https://consultoria.com/blog/gdpr-engineering-controls</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>The auditor does not read your privacy policy. They ask which system holds personal data, how long it keeps it, who can read it and what happens when someone asks for a copy. Those are engineering questions.</description>
      <category>Compliance</category>
    </item>
    <item>
      <title>Cloud Logging and Cloud Storage, where the quiet Google Cloud money goes</title>
      <link>https://consultoria.com/blog/gcp-logging-and-storage-costs</link>
      <guid isPermaLink="true">https://consultoria.com/blog/gcp-logging-and-storage-costs</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>An exclusion filter at the sink is the highest-return control in the whole platform, and the storage class minimums punish a lifecycle rule written without reading them.</description>
      <category>Google Cloud</category><category>FinOps</category>
    </item>
    <item>
      <title>GKE cost, and why Autopilot moves the waste rather than removing it</title>
      <link>https://consultoria.com/blog/gcp-gke-cost-and-autoscaling</link>
      <guid isPermaLink="true">https://consultoria.com/blog/gcp-gke-cost-and-autoscaling</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Standard bills for nodes you provision, Autopilot bills for pod resources you request. Both are dominated by the same number, and it is the gap between what pods ask for and what they use.</description>
      <category>Google Cloud</category><category>Kubernetes</category><category>FinOps</category>
    </item>
    <item>
      <title>Ingress ran out of road. Gateway API is the replacement, and the argument is the org chart</title>
      <link>https://consultoria.com/blog/gateway-api-vs-ingress</link>
      <guid isPermaLink="true">https://consultoria.com/blog/gateway-api-vs-ingress</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Gateway API is usually sold on features. The real reason to move is that Ingress has no separation between the team that owns the load balancer and the team that owns the route. Here is the migration that does not need a maintenance window.</description>
      <category>Kubernetes</category>
    </item>
    <item>
      <title>FOCUS, and why comparing two clouds is harder than it should be</title>
      <link>https://consultoria.com/blog/focus-billing-standard</link>
      <guid isPermaLink="true">https://consultoria.com/blog/focus-billing-standard</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Every provider names, groups and dates its billing data differently, so multi-cloud cost reporting turns into a translation project. An open specification fixes the schema, and what it cannot fix is worth knowing before you build.</description>
      <category>FinOps</category>
    </item>
    <item>
      <title>Fine-tuning, RAG or a better prompt: they fix different problems</title>
      <link>https://consultoria.com/blog/fine-tuning-vs-prompting</link>
      <guid isPermaLink="true">https://consultoria.com/blog/fine-tuning-vs-prompting</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Fine-tuning teaches behaviour and format. Retrieval supplies knowledge. Prompting shapes the immediate task. Most teams reach for the expensive one to fix a problem it cannot fix.</description>
      <category>LLMs and agents</category>
    </item>
    <item>
      <title>Selling to the US public sector: FedRAMP against SOC 2, honestly</title>
      <link>https://consultoria.com/blog/fedramp-vs-soc2</link>
      <guid isPermaLink="true">https://consultoria.com/blog/fedramp-vs-soc2</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>They look like neighbours and they are not. One is an attestation you commission, the other is an authorisation you earn against a prescribed control baseline, and the cost difference is an order of magnitude.</description>
      <category>Compliance</category>
    </item>
    <item>
      <title>Falco tells you what a container did, not what it might do</title>
      <link>https://consultoria.com/blog/falco-runtime-detection</link>
      <guid isPermaLink="true">https://consultoria.com/blog/falco-runtime-detection</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Image scanning finds known vulnerabilities before deployment. Runtime detection catches the shell that spawned inside a running pod at three in the morning. The default rules are noisy and tuning them is the entire project.</description>
      <category>Pentesting tools</category><category>Kubernetes</category>
    </item>
    <item>
      <title>A Kubernetes Secret is base64, and everyone learns this too late</title>
      <link>https://consultoria.com/blog/external-secrets-operator</link>
      <guid isPermaLink="true">https://consultoria.com/blog/external-secrets-operator</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Getting secrets out of manifests means an operator that syncs from your cloud&#x27;s vault, a driver that mounts them, or both. The part that decides which is what your application does when the value changes.</description>
      <category>Kubernetes</category><category>Identity and access</category>
    </item>
    <item>
      <title>Where your data actually sits, and what the buyer is really asking</title>
      <link>https://consultoria.com/blog/eu-us-data-transfers</link>
      <guid isPermaLink="true">https://consultoria.com/blog/eu-us-data-transfers</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Transfer mechanisms, region choice and support access are three different questions that get merged into one. How to answer a European buyer&#x27;s questionnaire with facts rather than assurances.</description>
      <category>Compliance</category>
    </item>
    <item>
      <title>The Cyber Resilience Act turns your product into a regulated object</title>
      <link>https://consultoria.com/blog/eu-cyber-resilience-act</link>
      <guid isPermaLink="true">https://consultoria.com/blog/eu-cyber-resilience-act</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>If you sell software or connected hardware into the EU, security stops being a quality attribute and becomes a market access requirement, with a vulnerability reporting clock and a support period you must declare.</description>
      <category>Compliance</category>
    </item>
    <item>
      <title>The EU AI Act, translated into engineering work</title>
      <link>https://consultoria.com/blog/eu-ai-act-obligations</link>
      <guid isPermaLink="true">https://consultoria.com/blog/eu-ai-act-obligations</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Most teams either assume the AI Act does not touch them or assume it bans what they are building. How to establish your role and risk tier, and what the obligations cost an engineering team.</description>
      <category>Compliance</category><category>LLMs and agents</category>
    </item>
    <item>
      <title>Traces you actually debug with, not traces you collect</title>
      <link>https://consultoria.com/blog/distributed-tracing-debugging</link>
      <guid isPermaLink="true">https://consultoria.com/blog/distributed-tracing-debugging</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Most tracing deployments produce disconnected single spans and a bill. Context propagation, tail sampling and a handful of useful attributes are what turn a trace store into the tool you open during an incident.</description>
      <category>Observability</category>
    </item>
    <item>
      <title>Detection as code, so your rules survive changing your SIEM</title>
      <link>https://consultoria.com/blog/detection-as-code-sigma</link>
      <guid isPermaLink="true">https://consultoria.com/blog/detection-as-code-sigma</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Sigma is a vendor-neutral format for detection logic that compiles to your platform&#x27;s query language. The format is the easy part. Version control, testing and a lifecycle for rules are what make detection work.</description>
      <category>Pentesting tools</category><category>Compliance</category>
    </item>
    <item>
      <title>Crossplane turns infrastructure into a control plane, and that is the whole argument</title>
      <link>https://consultoria.com/blog/crossplane-control-plane</link>
      <guid isPermaLink="true">https://consultoria.com/blog/crossplane-control-plane</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>A pipeline runs when someone triggers it. A controller reconciles continuously, which fixes drift by construction. What you pay is another control plane to operate and a harder debugging story.</description>
      <category>Terraform</category><category>Kubernetes</category>
    </item>
    <item>
      <title>Finding the runaway before the invoice does</title>
      <link>https://consultoria.com/blog/cost-anomaly-detection</link>
      <guid isPermaLink="true">https://consultoria.com/blog/cost-anomaly-detection</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>A budget does not stop spending and a forecast alert arrives late. What actually catches a cost spike is a short detection window, a small set of known failure shapes and a named owner.</description>
      <category>FinOps</category>
    </item>
    <item>
      <title>Chunking and embeddings decide RAG quality, not the generator</title>
      <link>https://consultoria.com/blog/chunking-and-embeddings</link>
      <guid isPermaLink="true">https://consultoria.com/blog/chunking-and-embeddings</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Teams upgrade the generation model to fix a retrieval problem. The chunk boundaries, what context travels with each chunk, the embedding model and a reranker account for most of the quality gap.</description>
      <category>RAG</category>
    </item>
    <item>
      <title>Your first five chaos experiments, and the ones to run in staging</title>
      <link>https://consultoria.com/blog/chaos-engineering-first-experiments</link>
      <guid isPermaLink="true">https://consultoria.com/blog/chaos-engineering-first-experiments</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Chaos engineering fails when it starts with a tool and a production cluster. Start with a hypothesis, a small blast radius and a stop condition, and the first five experiments will find something every time.</description>
      <category>Resilience and continuity</category>
    </item>
    <item>
      <title>The cache that fixes your latency and creates three new problems</title>
      <link>https://consultoria.com/blog/caching-redis-valkey</link>
      <guid isPermaLink="true">https://consultoria.com/blog/caching-redis-valkey</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Invalidation, stampede and the day the cache fills are the three. A time to live is the boring correct answer to the first, and most caching problems turn out to be a missing index.</description>
      <category>Data platform</category>
    </item>
    <item>
      <title>A backup the attacker can delete is not a backup</title>
      <link>https://consultoria.com/blog/backup-strategy-and-ransomware</link>
      <guid isPermaLink="true">https://consultoria.com/blog/backup-strategy-and-ransomware</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Ransomware crews go for the backups first, and cloud backups are easier to delete than tape ever was. Immutability, credential separation and a copy outside the blast radius are what turn a backup into a recovery.</description>
      <category>Resilience and continuity</category><category>Compliance</category>
    </item>
    <item>
      <title>A developer portal is only as good as its catalogue, and catalogues rot</title>
      <link>https://consultoria.com/blog/backstage-developer-portal</link>
      <guid isPermaLink="true">https://consultoria.com/blog/backstage-developer-portal</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Backstage solves three real problems: finding who owns a service, creating one with the right scaffolding, and keeping docs near the code. It fails when the catalogue is maintained by hand.</description>
      <category>CI/CD and DevOps</category>
    </item>
    <item>
      <title>Azure storage and data transfer: where the quiet money goes</title>
      <link>https://consultoria.com/blog/azure-storage-and-egress-costs</link>
      <guid isPermaLink="true">https://consultoria.com/blog/azure-storage-and-egress-costs</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Storage looks cheap per gigabyte, so nobody audits it. Then redundancy, transactions, early-deletion penalties and cross-region transfer turn a small line into a large one.</description>
      <category>Azure</category><category>FinOps</category>
    </item>
    <item>
      <title>Azure Monitor bills you for the logs nobody reads</title>
      <link>https://consultoria.com/blog/azure-monitor-log-analytics-cost</link>
      <guid isPermaLink="true">https://consultoria.com/blog/azure-monitor-log-analytics-cost</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Log Analytics ingestion is the line that grows without anyone deciding it should. Six controls bring it down, and none of them mean losing the telemetry you actually use.</description>
      <category>Azure</category><category>FinOps</category>
    </item>
    <item>
      <title>AKS spend: the node pool decisions that set your bill</title>
      <link>https://consultoria.com/blog/azure-aks-cost-and-autoscaling</link>
      <guid isPermaLink="true">https://consultoria.com/blog/azure-aks-cost-and-autoscaling</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>The AKS control plane is nearly free, so everything you pay comes from node pools, and the defaults are expensive. Here is what we change, in the order that finds money fastest.</description>
      <category>Azure</category><category>Kubernetes</category><category>FinOps</category>
    </item>
    <item>
      <title>S3 and data transfer: the two AWS lines nobody audits</title>
      <link>https://consultoria.com/blog/aws-s3-and-data-transfer-costs</link>
      <guid isPermaLink="true">https://consultoria.com/blog/aws-s3-and-data-transfer-costs</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>S3 looks like a per-gigabyte price and it is not. Minimum durations, per-object overheads, transition requests and the transfer boundaries around the bucket are where the money actually goes.</description>
      <category>AWS</category><category>FinOps</category>
    </item>
    <item>
      <title>CloudWatch bills on five axes and most teams watch one</title>
      <link>https://consultoria.com/blog/aws-cloudwatch-cost-control</link>
      <guid isPermaLink="true">https://consultoria.com/blog/aws-cloudwatch-cost-control</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Ingestion, storage, custom metrics, dashboards and queries are priced separately. The dimension explosion in custom metrics and debug logging left on in production account for most of the surprise.</description>
      <category>AWS</category><category>FinOps</category>
    </item>
    <item>
      <title>Where the AWS bill hides: five layers to check before buying Savings Plans</title>
      <link>https://consultoria.com/blog/aws-bill-five-layers</link>
      <guid isPermaLink="true">https://consultoria.com/blog/aws-bill-five-layers</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Commitments lock in whatever you are running today. Before you sign one, walk the bill layer by layer and remove what should not be there. Here is the order we use.</description>
      <category>AWS</category><category>FinOps</category>
    </item>
    <item>
      <title>Your detections are untested until you generate the behaviour</title>
      <link>https://consultoria.com/blog/atomic-red-team-purple-teaming</link>
      <guid isPermaLink="true">https://consultoria.com/blog/atomic-red-team-purple-teaming</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>A rule that has never fired is either excellent or broken, and you cannot tell from the outside. Adversary emulation runs the technique deliberately, in a controlled way, so that the answer stops being a guess.</description>
      <category>Pentesting tools</category>
    </item>
    <item>
      <title>Alerts people answer, and the ones they learned to ignore</title>
      <link>https://consultoria.com/blog/alerting-people-answer</link>
      <guid isPermaLink="true">https://consultoria.com/blog/alerting-people-answer</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>An on-call rota that gets 40 pages a week is not monitoring, it is a filter that trains humans to dismiss things. Alert on symptoms, alert on burn rate, and delete everything nobody has ever acted on.</description>
      <category>Observability</category>
    </item>
    <item>
      <title>Orchestration and transformation without building a data team</title>
      <link>https://consultoria.com/blog/airflow-dbt-pipelines</link>
      <guid isPermaLink="true">https://consultoria.com/blog/airflow-dbt-pipelines</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <description>Airflow should schedule and coordinate, never process. dbt should transform inside the warehouse with tests attached. The failure that costs most is data quality nobody checked until a dashboard was wrong for a quarter.</description>
      <category>Data platform</category>
    </item>
    <item>
      <title>A Jenkins that does not rot: configuration as code, ephemeral agents, shared libraries</title>
      <link>https://consultoria.com/blog/jenkins-pipelines-that-scale</link>
      <guid isPermaLink="true">https://consultoria.com/blog/jenkins-pipelines-that-scale</guid>
      <pubDate>Sat, 12 Sep 2026 00:00:00 +0000</pubDate>
      <description>The three changes that turn a hand-configured Jenkins into one you can rebuild from an empty machine in twenty minutes, and what each one costs to adopt.</description>
      <category>CI/CD and DevOps</category><category>Kubernetes</category>
    </item>
    <item>
      <title>The AWS landing zone we actually build: what goes in each account</title>
      <link>https://consultoria.com/blog/aws-landing-zone-multi-account</link>
      <guid isPermaLink="true">https://consultoria.com/blog/aws-landing-zone-multi-account</guid>
      <pubDate>Sat, 12 Sep 2026 00:00:00 +0000</pubDate>
      <description>Most multi-account designs fail because nobody agreed what an account is for. Here is the account map we deploy, what lives in each one, and the three guardrails that make it hold.</description>
      <category>AWS</category><category>Terraform</category>
    </item>
    <item>
      <title>Observability for AI automations: what to log when the step is non-deterministic</title>
      <link>https://consultoria.com/blog/ai-automation-observability</link>
      <guid isPermaLink="true">https://consultoria.com/blog/ai-automation-observability</guid>
      <pubDate>Sat, 12 Sep 2026 00:00:00 +0000</pubDate>
      <description>Traditional monitoring tells you the workflow succeeded. With a model in the middle, succeeding and being right are different things. What to capture, and the three dashboards worth building.</description>
      <category>Automation</category><category>LLMs and agents</category>
    </item>
    <item>
      <title>MCP: giving agents your internal tools without giving them your production database</title>
      <link>https://consultoria.com/blog/mcp-servers-internal-tools</link>
      <guid isPermaLink="true">https://consultoria.com/blog/mcp-servers-internal-tools</guid>
      <pubDate>Fri, 11 Sep 2026 00:00:00 +0000</pubDate>
      <description>The Model Context Protocol turns an internal API into something an agent can call. The protocol is the easy part; the design decisions are which operations to expose, at what granularity, and under whose identity.</description>
      <category>Automation</category><category>LLMs and agents</category>
    </item>
    <item>
      <title>GitLab CI vs GitHub Actions: choosing the one you will not regret</title>
      <link>https://consultoria.com/blog/gitlab-ci-vs-github-actions</link>
      <guid isPermaLink="true">https://consultoria.com/blog/gitlab-ci-vs-github-actions</guid>
      <pubDate>Fri, 11 Sep 2026 00:00:00 +0000</pubDate>
      <description>Both will build your containers. The differences that actually decide it are runner economics, how each handles multi-repo pipelines, and what happens to your secrets.</description>
      <category>CI/CD and DevOps</category><category>Automation</category>
    </item>
    <item>
      <title>RAG on your own cloud: the four decisions that matter more than the model</title>
      <link>https://consultoria.com/blog/rag-four-decisions</link>
      <guid isPermaLink="true">https://consultoria.com/blog/rag-four-decisions</guid>
      <pubDate>Thu, 10 Sep 2026 00:00:00 +0000</pubDate>
      <description>Teams argue about which model to use and then ship an assistant that answers confidently from the wrong document. The decisions that actually decide quality are about chunks, permissions, evaluation and cost.</description>
      <category>RAG</category><category>LLMs and agents</category><category>AWS</category>
    </item>
    <item>
      <title>Self-hosted GitHub Actions runners: when the maths works and how not to get owned</title>
      <link>https://consultoria.com/blog/github-actions-self-hosted-runners</link>
      <guid isPermaLink="true">https://consultoria.com/blog/github-actions-self-hosted-runners</guid>
      <pubDate>Thu, 10 Sep 2026 00:00:00 +0000</pubDate>
      <description>Hosted minutes stop being cheap somewhere around 100,000 a month. Running your own runners on Kubernetes is straightforward; running them safely takes three specific decisions.</description>
      <category>CI/CD and DevOps</category><category>Kubernetes</category>
    </item>
    <item>
      <title>Why your pipeline takes 40 minutes, and the four fixes that actually work</title>
      <link>https://consultoria.com/blog/pipeline-speed-and-build-cache</link>
      <guid isPermaLink="true">https://consultoria.com/blog/pipeline-speed-and-build-cache</guid>
      <pubDate>Wed, 09 Sep 2026 00:00:00 +0000</pubDate>
      <description>Pipeline duration is the cheapest developer productivity lever most teams never pull. Where the time really goes, and how to get a 40-minute build under 10 without changing CI vendor.</description>
      <category>CI/CD and DevOps</category><category>Automation</category>
    </item>
    <item>
      <title>CLAUDE.md, AGENTS.md and the file that makes a coding agent useful</title>
      <link>https://consultoria.com/blog/agents-md-and-context-files</link>
      <guid isPermaLink="true">https://consultoria.com/blog/agents-md-and-context-files</guid>
      <pubDate>Wed, 09 Sep 2026 00:00:00 +0000</pubDate>
      <description>Most of the friction people blame on the model is a missing paragraph in the repository. What belongs in a context file, what does not, and why the ones that grow past a page stop working.</description>
      <category>Coding agents</category><category>LLMs and agents</category>
    </item>
    <item>
      <title>Least privilege in AWS without guessing: the Access Analyzer workflow</title>
      <link>https://consultoria.com/blog/aws-iam-least-privilege-access-analyzer</link>
      <guid isPermaLink="true">https://consultoria.com/blog/aws-iam-least-privilege-access-analyzer</guid>
      <pubDate>Tue, 08 Sep 2026 00:00:00 +0000</pubDate>
      <description>Nobody writes a minimal IAM policy from a blank page. You harvest it from what the role actually did. Here is the loop we run to shrink permissions without breaking production.</description>
      <category>AWS</category><category>Identity and access</category>
    </item>
    <item>
      <title>Argo CD in production: what GitOps actually changes about your deploys</title>
      <link>https://consultoria.com/blog/argocd-gitops-production</link>
      <guid isPermaLink="true">https://consultoria.com/blog/argocd-gitops-production</guid>
      <pubDate>Tue, 08 Sep 2026 00:00:00 +0000</pubDate>
      <description>Argo CD is easy to install and easy to misuse. The repository layout, the sync policy and the secrets decision that separate a working GitOps setup from a dashboard full of red.</description>
      <category>CI/CD and DevOps</category><category>Kubernetes</category>
    </item>
    <item>
      <title>Getting long-lived cloud keys out of your CI</title>
      <link>https://consultoria.com/blog/ci-secrets-oidc-federation</link>
      <guid isPermaLink="true">https://consultoria.com/blog/ci-secrets-oidc-federation</guid>
      <pubDate>Mon, 07 Sep 2026 00:00:00 +0000</pubDate>
      <description>The static access key in your pipeline is the credential most likely to end up in a breach report. OIDC federation removes it in an afternoon, and the trust policy is where people get it wrong.</description>
      <category>CI/CD and DevOps</category><category>Identity and access</category>
    </item>
    <item>
      <title>Reviewing code when half the diff was written by an agent</title>
      <link>https://consultoria.com/blog/ai-coding-agent-review-gates</link>
      <guid isPermaLink="true">https://consultoria.com/blog/ai-coding-agent-review-gates</guid>
      <pubDate>Mon, 07 Sep 2026 00:00:00 +0000</pubDate>
      <description>The bottleneck moved from writing to reviewing, and the old review habits do not scale to it. Four gates that keep quality without turning one senior engineer into a queue.</description>
      <category>Coding agents</category><category>LLMs and agents</category>
    </item>
    <item>
      <title>Canary deploys that actually catch problems: Argo Rollouts and Flagger</title>
      <link>https://consultoria.com/blog/progressive-delivery-argo-rollouts-flagger</link>
      <guid isPermaLink="true">https://consultoria.com/blog/progressive-delivery-argo-rollouts-flagger</guid>
      <pubDate>Sun, 06 Sep 2026 00:00:00 +0000</pubDate>
      <description>Shifting 10 percent of traffic to a new version is not a canary if nothing is watching. The metrics, the analysis window and the abort rule that make progressive delivery worth the complexity.</description>
      <category>CI/CD and DevOps</category><category>Kubernetes</category>
    </item>
    <item>
      <title>Eight open-source tools we run in every cloud posture review</title>
      <link>https://consultoria.com/blog/cloud-posture-open-source-tools</link>
      <guid isPermaLink="true">https://consultoria.com/blog/cloud-posture-open-source-tools</guid>
      <pubDate>Sun, 06 Sep 2026 00:00:00 +0000</pubDate>
      <description>A posture review is only as good as its coverage. These are the scanners, IAM analysers and infrastructure-as-code checkers we run on AWS, Google Cloud and Azure, what each one is good at, and where it misleads.</description>
      <category>Pentesting tools</category><category>AWS</category><category>Identity and access</category>
    </item>
    <item>
      <title>Cursor or Claude Code: the editor and the terminal solve different problems</title>
      <link>https://consultoria.com/blog/cursor-vs-claude-code</link>
      <guid isPermaLink="true">https://consultoria.com/blog/cursor-vs-claude-code</guid>
      <pubDate>Sat, 05 Sep 2026 00:00:00 +0000</pubDate>
      <description>One keeps you in the loop at every keystroke, the other takes a task away and brings back a diff. Most teams that argue about which to standardise on end up using both, for reasons that are easy to state.</description>
      <category>Coding agents</category><category>LLMs and agents</category>
    </item>
    <item>
      <title>Ansible and Terraform are not competitors, and treating them as one costs you</title>
      <link>https://consultoria.com/blog/ansible-and-terraform-together</link>
      <guid isPermaLink="true">https://consultoria.com/blog/ansible-and-terraform-together</guid>
      <pubDate>Sat, 05 Sep 2026 00:00:00 +0000</pubDate>
      <description>Terraform creates the machine, Ansible decides what is on it. Where the boundary belongs, why provisioners are a trap, and what changes when your estate is mostly containers.</description>
      <category>CI/CD and DevOps</category><category>Terraform</category>
    </item>
    <item>
      <title>Running CI inside Kubernetes: Tekton, Argo Workflows and when not to</title>
      <link>https://consultoria.com/blog/ci-cd-on-kubernetes-tekton-argo-workflows</link>
      <guid isPermaLink="true">https://consultoria.com/blog/ci-cd-on-kubernetes-tekton-argo-workflows</guid>
      <pubDate>Fri, 04 Sep 2026 00:00:00 +0000</pubDate>
      <description>Kubernetes-native CI gives you pipelines as custom resources and scaling for free. It also gives you a pipeline engine you now operate. When that trade is worth making.</description>
      <category>CI/CD and DevOps</category><category>Kubernetes</category>
    </item>
    <item>
      <title>Moving to Graviton: what actually breaks and what it saves</title>
      <link>https://consultoria.com/blog/aws-graviton-migration</link>
      <guid isPermaLink="true">https://consultoria.com/blog/aws-graviton-migration</guid>
      <pubDate>Fri, 04 Sep 2026 00:00:00 +0000</pubDate>
      <description>ARM instances are 20 to 40 percent cheaper for the same work, and the migration is mostly a build problem, not a code problem. Here is the order we do it in and the four things that bite.</description>
      <category>AWS</category><category>FinOps</category>
    </item>
    <item>
      <title>Claude Code in a team: what changes when the agent runs in the terminal</title>
      <link>https://consultoria.com/blog/claude-code-in-a-team</link>
      <guid isPermaLink="true">https://consultoria.com/blog/claude-code-in-a-team</guid>
      <pubDate>Thu, 03 Sep 2026 00:00:00 +0000</pubDate>
      <description>A coding agent with shell access and repo context is a different tool from an autocomplete. The gains are real and they land unevenly; the cost is that review becomes the bottleneck. What we changed after six months.</description>
      <category>Coding agents</category><category>LLMs and agents</category>
    </item>
    <item>
      <title>Permissions for agents that act: sizing the blast radius before you hand over the keys</title>
      <link>https://consultoria.com/blog/agent-tool-permissions-blast-radius</link>
      <guid isPermaLink="true">https://consultoria.com/blog/agent-tool-permissions-blast-radius</guid>
      <pubDate>Tue, 01 Sep 2026 00:00:00 +0000</pubDate>
      <description>An agent is an identity that takes instructions from text it did not write. Scope it like a service account you assume is partly compromised, because in the injection case it is.</description>
      <category>Automation</category><category>Identity and access</category>
    </item>
    <item>
      <title>Why your EKS cluster costs twice what it should</title>
      <link>https://consultoria.com/blog/aws-eks-cost-and-autoscaling</link>
      <guid isPermaLink="true">https://consultoria.com/blog/aws-eks-cost-and-autoscaling</guid>
      <pubDate>Mon, 31 Aug 2026 00:00:00 +0000</pubDate>
      <description>Kubernetes hides waste better than any other platform, because everything looks busy. Four measurements tell you where the money goes, and three changes usually halve it.</description>
      <category>AWS</category><category>Kubernetes</category>
    </item>
    <item>
      <title>OpenClaw and the self-hosted personal agent: what it is good for, and what it can reach</title>
      <link>https://consultoria.com/blog/openclaw-self-hosted-assistant</link>
      <guid isPermaLink="true">https://consultoria.com/blog/openclaw-self-hosted-assistant</guid>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <description>An open-source assistant that lives on your own server, talks to you through the messaging app you already use and runs tools on your behalf. Genuinely useful, and the most over-permissioned thing most people will ever install.</description>
      <category>Automation</category><category>LLMs and agents</category>
    </item>
    <item>
      <title>What an AI automation actually costs per run</title>
      <link>https://consultoria.com/blog/automation-cost-per-run</link>
      <guid isPermaLink="true">https://consultoria.com/blog/automation-cost-per-run</guid>
      <pubDate>Fri, 28 Aug 2026 00:00:00 +0000</pubDate>
      <description>The model is rarely the expensive part. Platform operations, the APIs you call, the retries and the human who checks the output usually add up to more. A worked breakdown of one real invoice-processing flow.</description>
      <category>Automation</category><category>FinOps</category>
    </item>
    <item>
      <title>Turning GuardDuty from noise into a rota someone answers</title>
      <link>https://consultoria.com/blog/aws-guardduty-noise-to-signal</link>
      <guid isPermaLink="true">https://consultoria.com/blog/aws-guardduty-noise-to-signal</guid>
      <pubDate>Thu, 27 Aug 2026 00:00:00 +0000</pubDate>
      <description>GuardDuty is enabled in most accounts and read in almost none. The fix is not more tuning, it is deciding in advance which five findings wake a human and what they do next.</description>
      <category>AWS</category><category>Compliance</category>
    </item>
    <item>
      <title>Retries, idempotency and dead letters: the boring half of every automation</title>
      <link>https://consultoria.com/blog/automation-idempotency-retries</link>
      <guid isPermaLink="true">https://consultoria.com/blog/automation-idempotency-retries</guid>
      <pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate>
      <description>Automations fail on a Tuesday at 3am and nobody notices until the customer calls. Four mechanisms — idempotency keys, bounded retries, a dead letter queue and an alert that names the business event — fix most of it.</description>
      <category>Automation</category>
    </item>
    <item>
      <title>LLM steps inside n8n: where the agent node helps and where it ruins you</title>
      <link>https://consultoria.com/blog/n8n-ai-agent-nodes</link>
      <guid isPermaLink="true">https://consultoria.com/blog/n8n-ai-agent-nodes</guid>
      <pubDate>Mon, 24 Aug 2026 00:00:00 +0000</pubDate>
      <description>An AI node in a workflow is a non-deterministic step in a deterministic pipeline. That is fine for classification and drafting, and dangerous for routing and writes. Here is where we draw the line.</description>
      <category>Automation</category><category>LLMs and agents</category>
    </item>
    <item>
      <title>S3 security beyond &quot;block public access&quot;: the eight checks we run</title>
      <link>https://consultoria.com/blog/aws-s3-security-checklist</link>
      <guid isPermaLink="true">https://consultoria.com/blog/aws-s3-security-checklist</guid>
      <pubDate>Sun, 23 Aug 2026 00:00:00 +0000</pubDate>
      <description>Public buckets are the headline and the easy part. The leaks we find now come from bucket policies, presigned URLs, replication and logs nobody reads. Here is the full pass.</description>
      <category>AWS</category><category>Compliance</category>
    </item>
    <item>
      <title>Make at scale: the operation counter is the architecture</title>
      <link>https://consultoria.com/blog/make-scenarios-at-scale</link>
      <guid isPermaLink="true">https://consultoria.com/blog/make-scenarios-at-scale</guid>
      <pubDate>Sat, 22 Aug 2026 00:00:00 +0000</pubDate>
      <description>In Make, every module run is money, so the cheapest scenario and the fastest scenario are usually the same one. Five patterns that cut consumption by half without changing what the automation does.</description>
      <category>Automation</category><category>FinOps</category>
    </item>
    <item>
      <title>One control set, four frameworks: mapping compliance so you only do the work once</title>
      <link>https://consultoria.com/blog/compliance-as-code-control-mapping</link>
      <guid isPermaLink="true">https://consultoria.com/blog/compliance-as-code-control-mapping</guid>
      <pubDate>Fri, 21 Aug 2026 00:00:00 +0000</pubDate>
      <description>ISO 27001, SOC 2, ENS and NIS2 overlap heavily. Running them as four separate projects triples the cost. How to build a single control set with a single evidence pipeline, and where the mapping genuinely breaks down.</description>
      <category>Compliance</category>
    </item>
    <item>
      <title>n8n, Make or Zapier: choosing by the constraint that will actually bind</title>
      <link>https://consultoria.com/blog/n8n-vs-make-vs-zapier</link>
      <guid isPermaLink="true">https://consultoria.com/blog/n8n-vs-make-vs-zapier</guid>
      <pubDate>Thu, 20 Aug 2026 00:00:00 +0000</pubDate>
      <description>The three tools do the same demo. They diverge on pricing shape, where your data sits, and what happens when a workflow needs real code. Pick on those, not on the connector count.</description>
      <category>Automation</category><category>FinOps</category>
    </item>
    <item>
      <title>Bedrock in production: what the managed pieces do and do not solve</title>
      <link>https://consultoria.com/blog/aws-bedrock-rag-production</link>
      <guid isPermaLink="true">https://consultoria.com/blog/aws-bedrock-rag-production</guid>
      <pubDate>Wed, 19 Aug 2026 00:00:00 +0000</pubDate>
      <description>Knowledge Bases, Guardrails and Agents remove a lot of plumbing. They do not remove the retrieval, permission and evaluation decisions, and that is where projects still fail.</description>
      <category>AWS</category><category>RAG</category>
    </item>
    <item>
      <title>Self-hosting n8n in production: the four things that break</title>
      <link>https://consultoria.com/blog/n8n-self-hosted-production</link>
      <guid isPermaLink="true">https://consultoria.com/blog/n8n-self-hosted-production</guid>
      <pubDate>Tue, 18 Aug 2026 00:00:00 +0000</pubDate>
      <description>n8n on a single container is a demo. Running it for a company means queue mode, a real database, a plan for credentials and a restore you have tested. Here is the shape that survives.</description>
      <category>Automation</category><category>Kubernetes</category>
    </item>
    <item>
      <title>DORA for a technology supplier to financial entities</title>
      <link>https://consultoria.com/blog/dora-financial-resilience</link>
      <guid isPermaLink="true">https://consultoria.com/blog/dora-financial-resilience</guid>
      <pubDate>Mon, 17 Aug 2026 00:00:00 +0000</pubDate>
      <description>DORA applies to banks and insurers, but its contractual and oversight provisions reach their ICT providers directly. What changes in your contracts, your exit plans and your incident reporting if your customers are regulated.</description>
      <category>Compliance</category>
    </item>
    <item>
      <title>Agents on cloud operations: read-only first, and pull requests after that</title>
      <link>https://consultoria.com/blog/automating-cloud-ops-with-agents</link>
      <guid isPermaLink="true">https://consultoria.com/blog/automating-cloud-ops-with-agents</guid>
      <pubDate>Sun, 16 Aug 2026 00:00:00 +0000</pubDate>
      <description>An agent with cloud credentials is the most useful and most dangerous automation you can build. The pattern that works is investigation with a read-only role and change as a reviewed plan.</description>
      <category>Automation</category><category>Terraform</category>
    </item>
    <item>
      <title>Terraform on AWS: state layout, pipelines and the drift you will find</title>
      <link>https://consultoria.com/blog/aws-terraform-state-and-pipelines</link>
      <guid isPermaLink="true">https://consultoria.com/blog/aws-terraform-state-and-pipelines</guid>
      <pubDate>Sat, 15 Aug 2026 00:00:00 +0000</pubDate>
      <description>Most Terraform pain is not HCL. It is one enormous state file, applies from laptops and three years of manual console changes nobody imported. Here is how we untangle it.</description>
      <category>AWS</category><category>Terraform</category>
    </item>
    <item>
      <title>The boring backbone: webhooks, queues and workers behind every automation that survives</title>
      <link>https://consultoria.com/blog/webhook-queue-architecture</link>
      <guid isPermaLink="true">https://consultoria.com/blog/webhook-queue-architecture</guid>
      <pubDate>Fri, 14 Aug 2026 00:00:00 +0000</pubDate>
      <description>Whatever platform draws the boxes, the automations that stay up have the same three pieces underneath. Here is the shape, and the five decisions that make it hold under load.</description>
      <category>Automation</category>
    </item>
    <item>
      <title>PCI DSS 4.0 in the cloud: the only strategy that works is shrinking the scope</title>
      <link>https://consultoria.com/blog/pci-dss-4-cloud-scope</link>
      <guid isPermaLink="true">https://consultoria.com/blog/pci-dss-4-cloud-scope</guid>
      <pubDate>Thu, 13 Aug 2026 00:00:00 +0000</pubDate>
      <description>Every control in PCI DSS applies to everything in scope, so the cheapest compliance project is the one that removes systems from scope. How tokenisation, segmentation and a hosted payment page change the size of the problem.</description>
      <category>Compliance</category>
    </item>
    <item>
      <title>Versioning prompts and evaluating automations without building a research lab</title>
      <link>https://consultoria.com/blog/prompt-versioning-and-evals</link>
      <guid isPermaLink="true">https://consultoria.com/blog/prompt-versioning-and-evals</guid>
      <pubDate>Wed, 12 Aug 2026 00:00:00 +0000</pubDate>
      <description>A prompt is production configuration that changes behaviour silently. Treat it like code, and build the smallest evaluation that can tell you whether a change made things better.</description>
      <category>Automation</category><category>LLMs and agents</category>
    </item>
    <item>
      <title>RDS to Aurora: when it is worth it and how to move without a long outage</title>
      <link>https://consultoria.com/blog/aws-rds-aurora-migration</link>
      <guid isPermaLink="true">https://consultoria.com/blog/aws-rds-aurora-migration</guid>
      <pubDate>Tue, 11 Aug 2026 00:00:00 +0000</pubDate>
      <description>Aurora is not automatically better or cheaper. It wins on specific axes, loses on others, and the migration has one path that keeps downtime under a minute. Here is the decision and the runbook.</description>
      <category>AWS</category>
    </item>
    <item>
      <title>Browser agents and RPA versus an API: when driving the screen is the right call</title>
      <link>https://consultoria.com/blog/rpa-vs-api-first-automation</link>
      <guid isPermaLink="true">https://consultoria.com/blog/rpa-vs-api-first-automation</guid>
      <pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate>
      <description>An agent that clicks through a web interface can automate systems that have no API at all. It is also the most fragile automation you can build. Where the trade actually lands, and how to make the fragile version survive.</description>
      <category>Automation</category>
    </item>
    <item>
      <title>ISO 27017 and 27018: the cloud extensions worth adding, and when they are not</title>
      <link>https://consultoria.com/blog/iso-27017-27018-cloud-privacy</link>
      <guid isPermaLink="true">https://consultoria.com/blog/iso-27017-27018-cloud-privacy</guid>
      <pubDate>Sun, 09 Aug 2026 00:00:00 +0000</pubDate>
      <description>Two supplementary standards that extend ISO 27001 into cloud services and personal data in the cloud. What each adds, who actually asks for them, and how much extra audit they cost.</description>
      <category>Compliance</category>
    </item>
    <item>
      <title>Ninety days to roll out AI automation in a company that has never done it</title>
      <link>https://consultoria.com/blog/automation-rollout-90-days</link>
      <guid isPermaLink="true">https://consultoria.com/blog/automation-rollout-90-days</guid>
      <pubDate>Sat, 08 Aug 2026 00:00:00 +0000</pubDate>
      <description>Not a strategy deck. A sequence: find the work, ship one thing that matters, build the platform underneath it, then let other people build. What goes wrong at each stage and how to tell if it is working.</description>
      <category>Automation</category>
    </item>
    <item>
      <title>Six VPC decisions you cannot easily undo</title>
      <link>https://consultoria.com/blog/aws-vpc-networking-mistakes</link>
      <guid isPermaLink="true">https://consultoria.com/blog/aws-vpc-networking-mistakes</guid>
      <pubDate>Fri, 07 Aug 2026 00:00:00 +0000</pubDate>
      <description>Networking mistakes in AWS are the expensive kind, because fixing them means moving workloads. These six come up in almost every estate we review, and five of them are cheap to get right on day one.</description>
      <category>AWS</category>
    </item>
    <item>
      <title>ENS certification for a cloud supplier selling to Spanish public administration</title>
      <link>https://consultoria.com/blog/ens-certification-spain</link>
      <guid isPermaLink="true">https://consultoria.com/blog/ens-certification-spain</guid>
      <pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate>
      <description>The Esquema Nacional de Seguridad is not optional if you want public sector contracts in Spain. How the categories work, what the 2022 revision changed, and where a cloud-native company usually fails.</description>
      <category>Compliance</category>
    </item>
    <item>
      <title>Getting the Google Cloud hierarchy right: folders, projects and org policies</title>
      <link>https://consultoria.com/blog/gcp-project-hierarchy-org-policies</link>
      <guid isPermaLink="true">https://consultoria.com/blog/gcp-project-hierarchy-org-policies</guid>
      <pubDate>Mon, 03 Aug 2026 00:00:00 +0000</pubDate>
      <description>In GCP the project is the blast radius and the folder is where policy lives. Most estates we see have neither used deliberately. Here is the structure we deploy and the eight policies we set on day one.</description>
      <category>Google Cloud</category><category>Terraform</category>
    </item>
    <item>
      <title>NIS2: whether you are in scope, and what it asks of an engineering team</title>
      <link>https://consultoria.com/blog/nis2-scope-and-obligations</link>
      <guid isPermaLink="true">https://consultoria.com/blog/nis2-scope-and-obligations</guid>
      <pubDate>Sat, 01 Aug 2026 00:00:00 +0000</pubDate>
      <description>NIS2 pulled in far more companies than its predecessor, added personal liability for management, and set a 24-hour first notification. What the directive actually requires, in engineering terms.</description>
      <category>Compliance</category>
    </item>
    <item>
      <title>BigQuery bills that triple overnight, and the six controls that stop it</title>
      <link>https://consultoria.com/blog/gcp-bigquery-cost-control</link>
      <guid isPermaLink="true">https://consultoria.com/blog/gcp-bigquery-cost-control</guid>
      <pubDate>Thu, 30 Jul 2026 00:00:00 +0000</pubDate>
      <description>On-demand BigQuery charges for bytes scanned, so one badly written dashboard can cost more than your compute. Here is how we cap it without slowing anyone down.</description>
      <category>Google Cloud</category><category>FinOps</category>
    </item>
    <item>
      <title>Automating SOC 2 evidence so the observation window is not a second job</title>
      <link>https://consultoria.com/blog/soc2-evidence-automation</link>
      <guid isPermaLink="true">https://consultoria.com/blog/soc2-evidence-automation</guid>
      <pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate>
      <description>A Type II window means proving, month after month, that controls ran. Collecting that by hand consumes an engineer. What to automate, what to buy, and what still has to be done by a person.</description>
      <category>Compliance</category>
    </item>
    <item>
      <title>Service account keys are the GCP credential that leaks. Here is how to stop creating them</title>
      <link>https://consultoria.com/blog/gcp-iam-conditions-service-accounts</link>
      <guid isPermaLink="true">https://consultoria.com/blog/gcp-iam-conditions-service-accounts</guid>
      <pubDate>Sun, 26 Jul 2026 00:00:00 +0000</pubDate>
      <description>Almost every Google Cloud incident we have investigated started with a JSON key file. Workload Identity Federation removes the need for them entirely, and the migration is smaller than you think.</description>
      <category>Google Cloud</category><category>Identity and access</category>
    </item>
    <item>
      <title>SOC 2 Type I or Type II: which one to do first, and what it actually costs</title>
      <link>https://consultoria.com/blog/soc2-type-1-vs-type-2</link>
      <guid isPermaLink="true">https://consultoria.com/blog/soc2-type-1-vs-type-2</guid>
      <pubDate>Fri, 24 Jul 2026 00:00:00 +0000</pubDate>
      <description>Type I is a photograph, Type II is a film. The choice changes your timeline by months and what a customer will accept. How to pick, how long each takes, and where the money goes.</description>
      <category>Compliance</category>
    </item>
    <item>
      <title>GKE Autopilot or Standard: the decision, with the costs nobody quotes</title>
      <link>https://consultoria.com/blog/gcp-gke-autopilot-vs-standard</link>
      <guid isPermaLink="true">https://consultoria.com/blog/gcp-gke-autopilot-vs-standard</guid>
      <pubDate>Wed, 22 Jul 2026 00:00:00 +0000</pubDate>
      <description>Autopilot charges for what your pods request and removes node management. That is a better deal than it sounds for most teams and a worse one for a few. Here is how to tell which you are.</description>
      <category>Google Cloud</category><category>Kubernetes</category>
    </item>
    <item>
      <title>The Statement of Applicability is the document the auditor reads first</title>
      <link>https://consultoria.com/blog/iso-27001-statement-of-applicability</link>
      <guid isPermaLink="true">https://consultoria.com/blog/iso-27001-statement-of-applicability</guid>
      <pubDate>Mon, 20 Jul 2026 00:00:00 +0000</pubDate>
      <description>Most ISO 27001 projects write the SoA last, as a spreadsheet of 93 rows marked &quot;applicable&quot;. Done properly it falls out of the risk assessment, and it is what makes the rest of the audit go quickly.</description>
      <category>Compliance</category>
    </item>
    <item>
      <title>Vertex AI for RAG: the pieces worth using and the ones to build yourself</title>
      <link>https://consultoria.com/blog/gcp-vertex-ai-rag-production</link>
      <guid isPermaLink="true">https://consultoria.com/blog/gcp-vertex-ai-rag-production</guid>
      <pubDate>Sat, 18 Jul 2026 00:00:00 +0000</pubDate>
      <description>Vertex gives you a managed vector search, a grounding API and an evaluation service. Two of those are worth taking as-is. Here is how we assemble a production assistant on Google Cloud.</description>
      <category>Google Cloud</category><category>RAG</category>
    </item>
    <item>
      <title>ISO 27001 Annex A in a cloud-native company: which controls are already done</title>
      <link>https://consultoria.com/blog/iso-27001-annex-a-controls-cloud</link>
      <guid isPermaLink="true">https://consultoria.com/blog/iso-27001-annex-a-controls-cloud</guid>
      <pubDate>Thu, 16 Jul 2026 00:00:00 +0000</pubDate>
      <description>A company running entirely on managed cloud services already satisfies a large part of Annex A without knowing it. The work is evidencing that, and finding the dozen controls that genuinely need building.</description>
      <category>Compliance</category>
    </item>
    <item>
      <title>Cloud Run or GKE: the four questions that decide it</title>
      <link>https://consultoria.com/blog/gcp-cloud-run-vs-gke</link>
      <guid isPermaLink="true">https://consultoria.com/blog/gcp-cloud-run-vs-gke</guid>
      <pubDate>Tue, 14 Jul 2026 00:00:00 +0000</pubDate>
      <description>Most teams running GKE would be better served by Cloud Run, and a few running Cloud Run are fighting it. The decision is not about scale — it is about four specific requirements.</description>
      <category>Google Cloud</category><category>Kubernetes</category>
    </item>
    <item>
      <title>Wazuh as a small team&#x27;s SIEM: what it does well and where it hurts</title>
      <link>https://consultoria.com/blog/wazuh-open-source-siem</link>
      <guid isPermaLink="true">https://consultoria.com/blog/wazuh-open-source-siem</guid>
      <pubDate>Sun, 12 Jul 2026 00:00:00 +0000</pubDate>
      <description>An open-source SIEM is a real option when the alternative is paying per gigabyte, but only if you accept the operational cost. What Wazuh gives you out of the box, what you have to build, and when to stop and buy.</description>
      <category>Pentesting tools</category><category>Compliance</category>
    </item>
    <item>
      <title>Security Command Center without the wall of findings</title>
      <link>https://consultoria.com/blog/gcp-scc-findings-triage</link>
      <guid isPermaLink="true">https://consultoria.com/blog/gcp-scc-findings-triage</guid>
      <pubDate>Fri, 10 Jul 2026 00:00:00 +0000</pubDate>
      <description>SCC Premium turns on and produces thousands of findings in an hour. Here is the triage order that gets an estate from &quot;unreadable&quot; to &quot;twelve open items&quot; in about three weeks.</description>
      <category>Google Cloud</category><category>Compliance</category>
    </item>
    <item>
      <title>BloodHound and the identity attack path: from a helpdesk account to domain admin</title>
      <link>https://consultoria.com/blog/bloodhound-identity-attack-paths</link>
      <guid isPermaLink="true">https://consultoria.com/blog/bloodhound-identity-attack-paths</guid>
      <pubDate>Wed, 08 Jul 2026 00:00:00 +0000</pubDate>
      <description>Identity is where the escalation happens, and graphs are how you see it. What BloodHound reveals about Active Directory and Entra ID, how to read the paths, and which edges are worth cutting first.</description>
      <category>Pentesting tools</category><category>Identity and access</category>
    </item>
    <item>
      <title>Committed use discounts in Google Cloud, and the order to buy them in</title>
      <link>https://consultoria.com/blog/gcp-committed-use-discounts</link>
      <guid isPermaLink="true">https://consultoria.com/blog/gcp-committed-use-discounts</guid>
      <pubDate>Mon, 06 Jul 2026 00:00:00 +0000</pubDate>
      <description>CUDs come in two flavours that behave very differently, and buying the wrong one locks you to a machine family for three years. Here is the sequence we follow.</description>
      <category>Google Cloud</category><category>FinOps</category>
    </item>
    <item>
      <title>OSV-Scanner, SBOMs and the supply chain question customers now ask</title>
      <link>https://consultoria.com/blog/osv-scanner-sbom-supply-chain</link>
      <guid isPermaLink="true">https://consultoria.com/blog/osv-scanner-sbom-supply-chain</guid>
      <pubDate>Sat, 04 Jul 2026 00:00:00 +0000</pubDate>
      <description>Dependency scanning is mature; what changed is that customers and regulators now ask for the inventory itself. How to generate SBOMs that are useful rather than ceremonial, and how to answer &quot;are we affected?&quot; in an hour.</description>
      <category>Pentesting tools</category><category>Compliance</category>
    </item>
    <item>
      <title>VPC Service Controls: the only real defence against data exfiltration in GCP, and why it is hard</title>
      <link>https://consultoria.com/blog/gcp-vpc-service-controls</link>
      <guid isPermaLink="true">https://consultoria.com/blog/gcp-vpc-service-controls</guid>
      <pubDate>Thu, 02 Jul 2026 00:00:00 +0000</pubDate>
      <description>IAM stops the wrong people reading your data. It does not stop the right people copying it somewhere else. Service perimeters do, and they will break things on the way in. Here is how to roll one out without an outage.</description>
      <category>Google Cloud</category><category>Compliance</category>
    </item>
    <item>
      <title>Secret scanning with Gitleaks and TruffleHog, and what to do the moment one is found</title>
      <link>https://consultoria.com/blog/gitleaks-trufflehog-secret-scanning</link>
      <guid isPermaLink="true">https://consultoria.com/blog/gitleaks-trufflehog-secret-scanning</guid>
      <pubDate>Tue, 30 Jun 2026 00:00:00 +0000</pubDate>
      <description>Finding a credential in git history is the easy part. The hard parts are verifying it is live, rotating it without an outage, and stopping the next one — in that order, and usually within the hour.</description>
      <category>Pentesting tools</category><category>Identity and access</category>
    </item>
    <item>
      <title>Terraform on Google Cloud: the patterns that hold and the traps in the provider</title>
      <link>https://consultoria.com/blog/gcp-terraform-google-provider</link>
      <guid isPermaLink="true">https://consultoria.com/blog/gcp-terraform-google-provider</guid>
      <pubDate>Sun, 28 Jun 2026 00:00:00 +0000</pubDate>
      <description>The google provider has behaviours that will surprise you the first time — authoritative IAM resources that wipe bindings, projects that will not delete, APIs that must be enabled before anything works. Here is the setup we use.</description>
      <category>Google Cloud</category><category>Terraform</category>
    </item>
    <item>
      <title>Trivy and Grype: making container scanning produce fixes instead of numbers</title>
      <link>https://consultoria.com/blog/trivy-grype-container-scanning</link>
      <guid isPermaLink="true">https://consultoria.com/blog/trivy-grype-container-scanning</guid>
      <pubDate>Fri, 26 Jun 2026 00:00:00 +0000</pubDate>
      <description>Every image scan returns hundreds of CVEs and almost none of them are reachable. How we cut the list down to what is exploitable, where each tool is stronger, and why the base image is the whole game.</description>
      <category>Pentesting tools</category><category>Kubernetes</category>
    </item>
    <item>
      <title>An Azure landing zone you can actually maintain</title>
      <link>https://consultoria.com/blog/azure-landing-zone-management-groups</link>
      <guid isPermaLink="true">https://consultoria.com/blog/azure-landing-zone-management-groups</guid>
      <pubDate>Wed, 24 Jun 2026 00:00:00 +0000</pubDate>
      <description>The Cloud Adoption Framework reference architecture is large and most teams deploy a fraction of it. Here is the subset that carries the weight: management groups, subscription boundaries and the policies that hold it together.</description>
      <category>Azure</category><category>Terraform</category>
    </item>
    <item>
      <title>Semgrep rules developers actually keep: SAST that does not get switched off</title>
      <link>https://consultoria.com/blog/semgrep-sast-developers-use</link>
      <guid isPermaLink="true">https://consultoria.com/blog/semgrep-sast-developers-use</guid>
      <pubDate>Mon, 22 Jun 2026 00:00:00 +0000</pubDate>
      <description>Most static analysis dies from noise. The way to keep SAST alive is to start with a tiny high-precision rule set, write rules for your own codebase&#x27;s mistakes, and scan the diff rather than the repository.</description>
      <category>Pentesting tools</category>
    </item>
    <item>
      <title>Conditional Access policies that hold, and the emergency account you must create first</title>
      <link>https://consultoria.com/blog/azure-entra-id-conditional-access</link>
      <guid isPermaLink="true">https://consultoria.com/blog/azure-entra-id-conditional-access</guid>
      <pubDate>Sat, 20 Jun 2026 00:00:00 +0000</pubDate>
      <description>Conditional Access is the strongest control in Entra ID and the easiest way to lock your entire organisation out of its own tenant. Here is the baseline set, and the order to deploy it in.</description>
      <category>Azure</category><category>Identity and access</category>
    </item>
    <item>
      <title>OWASP ZAP in CI without breaking every build</title>
      <link>https://consultoria.com/blog/zap-dast-in-ci</link>
      <guid isPermaLink="true">https://consultoria.com/blog/zap-dast-in-ci</guid>
      <pubDate>Thu, 18 Jun 2026 00:00:00 +0000</pubDate>
      <description>Dynamic scanning in a pipeline fails for predictable reasons: no authentication, no seeded data, a scan that takes forty minutes and a threshold that fails builds on informational alerts. How to configure ZAP so the result is trusted.</description>
      <category>Pentesting tools</category>
    </item>
    <item>
      <title>The Azure bill, in the order we take it apart</title>
      <link>https://consultoria.com/blog/azure-cost-management-reservations</link>
      <guid isPermaLink="true">https://consultoria.com/blog/azure-cost-management-reservations</guid>
      <pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate>
      <description>Azure has more discount mechanisms than any other cloud and they stack in a specific order. Get the order wrong and you commit to capacity a hybrid benefit would have made unnecessary.</description>
      <category>Azure</category><category>FinOps</category>
    </item>
    <item>
      <title>Nuclei as a continuous attack surface check, not a one-off scan</title>
      <link>https://consultoria.com/blog/nuclei-continuous-attack-surface</link>
      <guid isPermaLink="true">https://consultoria.com/blog/nuclei-continuous-attack-surface</guid>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate>
      <description>Nuclei is fast enough to run against your whole external surface every night. The value is in the template selection, the target list and the diff between runs, not in the raw number of findings.</description>
      <category>Pentesting tools</category>
    </item>
    <item>
      <title>Putting AKS into production: the decisions that are hard to change later</title>
      <link>https://consultoria.com/blog/azure-aks-production-checklist</link>
      <guid isPermaLink="true">https://consultoria.com/blog/azure-aks-production-checklist</guid>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <description>Network plugin, identity model, node pool layout and upgrade strategy are all chosen in the first hour and all painful to change afterwards. Here is what we pick and why.</description>
      <category>Azure</category><category>Kubernetes</category>
    </item>
    <item>
      <title>A Burp Suite workflow that finds real bugs, not just alerts</title>
      <link>https://consultoria.com/blog/burp-suite-web-assessment</link>
      <guid isPermaLink="true">https://consultoria.com/blog/burp-suite-web-assessment</guid>
      <pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate>
      <description>The scanner is the least interesting part of Burp. This is how we set up scope, authentication and session handling for a web application assessment, which extensions earn their place, and how to tell a finding from a false positive.</description>
      <category>Pentesting tools</category>
    </item>
    <item>
      <title>Azure OpenAI in production: quotas, networking and the permission model</title>
      <link>https://consultoria.com/blog/azure-openai-rag-production</link>
      <guid isPermaLink="true">https://consultoria.com/blog/azure-openai-rag-production</guid>
      <pubDate>Mon, 08 Jun 2026 00:00:00 +0000</pubDate>
      <description>The model is the easy part. What decides whether an Azure OpenAI assistant reaches production is token quota per region, private networking and whether retrieval respects who is asking.</description>
      <category>Azure</category><category>RAG</category>
    </item>
    <item>
      <title>Nmap against a cloud perimeter: what is worth scanning and what is noise</title>
      <link>https://consultoria.com/blog/nmap-recon-cloud-perimeter</link>
      <guid isPermaLink="true">https://consultoria.com/blog/nmap-recon-cloud-perimeter</guid>
      <pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate>
      <description>Nmap still finds the things that matter on a cloud perimeter, but only if you scan the right address space with the right flags. How we build the target list, which scan types earn their time, and how to read the output without wasting a week.</description>
      <category>Pentesting tools</category><category>AWS</category>
    </item>
    <item>
      <title>Defender for Cloud: what to enable, what to ignore and why secure score is not the goal</title>
      <link>https://consultoria.com/blog/azure-defender-cloud-secure-score</link>
      <guid isPermaLink="true">https://consultoria.com/blog/azure-defender-cloud-secure-score</guid>
      <pubDate>Thu, 04 Jun 2026 00:00:00 +0000</pubDate>
      <description>Defender has eight separately priced plans and a score that rewards volume over risk. Here is how we decide which plans earn their cost and how to triage the recommendations that matter.</description>
      <category>Azure</category><category>Compliance</category>
    </item>
    <item>
      <title>Private endpoints, service endpoints and the DNS problem nobody warns you about</title>
      <link>https://consultoria.com/blog/azure-private-endpoints-networking</link>
      <guid isPermaLink="true">https://consultoria.com/blog/azure-private-endpoints-networking</guid>
      <pubDate>Sun, 31 May 2026 00:00:00 +0000</pubDate>
      <description>Locking down PaaS services in Azure is straightforward until the name resolution breaks in a way that only shows up from one subnet. Here is the model that works and how to lay out the hub.</description>
      <category>Azure</category>
    </item>
    <item>
      <title>Azure Policy as code: the deployment pattern that does not cause outages</title>
      <link>https://consultoria.com/blog/azure-policy-as-code</link>
      <guid isPermaLink="true">https://consultoria.com/blog/azure-policy-as-code</guid>
      <pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate>
      <description>Azure Policy is the strongest governance engine of the three big clouds and the easiest to misuse. Here is how we write, test and roll out policy so a Deny effect never surprises a deployment.</description>
      <category>Azure</category><category>Compliance</category>
    </item>
    <item>
      <title>Azure SQL Database, Managed Instance or SQL on a VM: choosing without regret</title>
      <link>https://consultoria.com/blog/azure-sql-vs-managed-instance</link>
      <guid isPermaLink="true">https://consultoria.com/blog/azure-sql-vs-managed-instance</guid>
      <pubDate>Sat, 23 May 2026 00:00:00 +0000</pubDate>
      <description>The three options differ on features, cost and how much of your existing database you have to change. Here is the decision tree and the migration that keeps downtime short.</description>
      <category>Azure</category>
    </item>
    <item>
      <title>Bicep or Terraform for Azure: an honest comparison</title>
      <link>https://consultoria.com/blog/azure-bicep-vs-terraform</link>
      <guid isPermaLink="true">https://consultoria.com/blog/azure-bicep-vs-terraform</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate>
      <description>Bicep is better at Azure than Terraform in several specific ways, and worse in several others. The right answer depends on whether Azure is your only cloud and who maintains the code.</description>
      <category>Azure</category><category>Terraform</category>
    </item>
    <item>
      <title>Compartments are not folders: designing an OCI tenancy that stays manageable</title>
      <link>https://consultoria.com/blog/oci-compartments-tenancy-design</link>
      <guid isPermaLink="true">https://consultoria.com/blog/oci-compartments-tenancy-design</guid>
      <pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate>
      <description>Oracle Cloud puts everything in one tenancy and separates it with compartments. That is a different model from AWS accounts or Azure subscriptions, and copying either one produces a mess.</description>
      <category>Oracle Cloud</category>
    </item>
    <item>
      <title>OCI policies read like English, which is why they are easy to get dangerously wrong</title>
      <link>https://consultoria.com/blog/oci-iam-policies-dynamic-groups</link>
      <guid isPermaLink="true">https://consultoria.com/blog/oci-iam-policies-dynamic-groups</guid>
      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>
      <description>An OCI policy statement is one readable line, and one readable line can grant far more than it appears to. Here is how we write, verify and constrain them.</description>
      <category>Oracle Cloud</category><category>Identity and access</category>
    </item>
    <item>
      <title>Why Oracle Cloud bills look different, and where the savings are real</title>
      <link>https://consultoria.com/blog/oci-cost-model-vs-aws</link>
      <guid isPermaLink="true">https://consultoria.com/blog/oci-cost-model-vs-aws</guid>
      <pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate>
      <description>OCI prices egress and compute differently enough that a like-for-like comparison with AWS misleads in both directions. Here is what genuinely moves and how we model it.</description>
      <category>Oracle Cloud</category><category>FinOps</category>
    </item>
    <item>
      <title>OKE in production: what is different from EKS and GKE</title>
      <link>https://consultoria.com/blog/oci-oke-kubernetes-production</link>
      <guid isPermaLink="true">https://consultoria.com/blog/oci-oke-kubernetes-production</guid>
      <pubDate>Sun, 03 May 2026 00:00:00 +0000</pubDate>
      <description>Oracle&#x27;s managed Kubernetes is closer to the others than people expect, with three genuine differences: the free control plane, the ARM allowance and a networking model you choose at creation.</description>
      <category>Oracle Cloud</category><category>Kubernetes</category>
    </item>
    <item>
      <title>Autonomous Database: what &quot;autonomous&quot; actually removes, and what it does not</title>
      <link>https://consultoria.com/blog/oci-autonomous-database</link>
      <guid isPermaLink="true">https://consultoria.com/blog/oci-autonomous-database</guid>
      <pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate>
      <description>It genuinely removes patching, tuning and backup configuration. It does not remove schema design, connection management or the need to understand what your queries do. Here is where it fits.</description>
      <category>Oracle Cloud</category>
    </item>
    <item>
      <title>Cloud Guard and Security Zones: OCI&#x27;s prevention layer is better than its detection layer</title>
      <link>https://consultoria.com/blog/oci-cloud-guard-security-zones</link>
      <guid isPermaLink="true">https://consultoria.com/blog/oci-cloud-guard-security-zones</guid>
      <pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate>
      <description>Most cloud security products tell you what went wrong. Security Zones refuse the misconfiguration at creation. That is a meaningful difference, and it is the OCI feature worth building around.</description>
      <category>Oracle Cloud</category><category>Compliance</category>
    </item>
    <item>
      <title>OCI networking: security lists, NSGs, the DRG and the gateway you will forget</title>
      <link>https://consultoria.com/blog/oci-networking-vcn-fastconnect</link>
      <guid isPermaLink="true">https://consultoria.com/blog/oci-networking-vcn-fastconnect</guid>
      <pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate>
      <description>A VCN looks like a VPC until you meet the four gateway types and two firewall models. Here is the layout we build and the specific choices that avoid rework.</description>
      <category>Oracle Cloud</category>
    </item>
    <item>
      <title>OCI Generative AI: where it fits and what you build around it</title>
      <link>https://consultoria.com/blog/oci-generative-ai-service</link>
      <guid isPermaLink="true">https://consultoria.com/blog/oci-generative-ai-service</guid>
      <pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate>
      <description>Oracle&#x27;s managed model service covers the plumbing for a standard assistant, including a vector-capable database you probably already have. Here is the architecture and the decisions it does not make for you.</description>
      <category>Oracle Cloud</category><category>LLMs and agents</category>
    </item>
    <item>
      <title>Terraform on OCI: the provider, Resource Manager and whether to run your own pipeline</title>
      <link>https://consultoria.com/blog/oci-terraform-resource-manager</link>
      <guid isPermaLink="true">https://consultoria.com/blog/oci-terraform-resource-manager</guid>
      <pubDate>Mon, 13 Apr 2026 00:00:00 +0000</pubDate>
      <description>Oracle ships a managed Terraform service that removes the backend and the runner. Here is when it is the right call, when to run your own pipeline, and the OCI-specific things that catch people.</description>
      <category>Oracle Cloud</category><category>Terraform</category>
    </item>
    <item>
      <title>Migrating a workload from AWS to Oracle Cloud: the mapping and the parts that do not map</title>
      <link>https://consultoria.com/blog/oci-migration-from-aws</link>
      <guid isPermaLink="true">https://consultoria.com/blog/oci-migration-from-aws</guid>
      <pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate>
      <description>Most services have a counterpart and the translation is mechanical. Three things are not mechanical, and they decide whether the migration is worth doing at all.</description>
      <category>Oracle Cloud</category>
    </item>
  </channel>
</rss>
