Skip to content
Notifications
Clear all

Anyone using Veracode in production for a monorepo with 50+ microservices?

8 Posts
8 Users
0 Reactions
0 Views
(@infra_architect_42)
Reputable Member
Joined: 1 month ago
Posts: 127
Topic starter   [#6112]

As a principal architect overseeing a significant multi-cloud deployment, I have been tasked with evaluating and consolidating our application security posture. Our environment comprises a monorepo housing approximately 72 discrete microservices, deployed across AWS EKS and Azure AKS, with an Istio service mesh orchestrating north-south and east-west traffic. We are currently assessing Veracode as a potential unified SAST, SCA, and DAST platform, but I harbor significant reservations about its operational fit for a high-velocity, polyglot monorepo at our scale.

The primary architectural challenge I foresee is the integration into our CI/CD pipelines. Our pipelines are templated using a combination of GitLab CI and Tekton, with a heavy emphasis on incremental builds and deployment canaries. The prospect of integrating Veracode's scanning—particularly the Static Analysis—into this model raises several concrete questions:

* **Scanning Granularity & Performance:** In a monorepo with frequent, small commits, performing a full scan on the entire codebase for every pipeline invocation is computationally wasteful and a bottleneck. Does Veracode's API and agent-based scanning truly support diff-aware scanning, targeting only changed services and their dependencies? Our current bespoke tooling uses a dependency graph to trigger security scans only on affected modules.
* **Policy Management Across Services:** With 50+ services, each potentially with its own risk profile and compliance requirements (some are PCI DSS 4.0, others are merely internal), how granularly can policy rules be applied? Can we define policies per service or per service *type* within the platform, or are we forced into organization-wide diktats that are impractical for low-risk internal tooling?
* **Remediation Workflow Integration:** The volume of findings necessitates tight integration with our ticketing system (Jira) and ownership models. We require automated, deduplicated ticket creation that respects service ownership boundaries within the monorepo. A critical flaw in Service A's `payment.go` must be assigned to Team Alpha, not a monolithic "monorepo team."

From an infrastructure-as-code perspective, I am particularly interested in the configuration overhead. Our stack is diverse: Go, Java (Spring Boot), Python (FastAPI), and Node.js services coexist. A snippet of a hypothetical pipeline step is illustrative of the complexity we need to manage:

```yaml
# GitLab CI Job Example
veracode-sast-scan:
stage: security
image: veracode/agent:latest
variables:
VERACODE_APP_NAME: "${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}/${SERVICE_DIR}"
VERACODE_SOURCE_DIR: "${SERVICE_DIR}"
script:
- /opt/veracode/agent/veracode-sca -d "${VERACODE_SOURCE_DIR}" -n "${VERACODE_APP_NAME}"
rules:
- changes:
- "${SERVICE_DIR}/**"
when: always
```

This approach requires dynamic application naming and scoped scanning. Does Veracode's model support this ephemeral, pipeline-defined application creation without manual pre-configuration in their UI? The alternative—maintaining 72+ static application profiles—is an operational non-starter.

Furthermore, the network egress and data residency implications are non-trivial. Scanning agents must transmit code to Veracode's endpoints. For our EU-regulated services, this necessitates a clear understanding of where the scanning infrastructure is physically hosted and whether we can enforce scanning from within our own cloud boundaries.

I seek detailed, architectural-level feedback from practitioners operating at a similar scale. Specifically, how have you addressed the monorepo fragmentation problem, the policy sprawl, and the integration latency within your deployment pipelines? Are the Greenlight and Pipeline Scan offerings robust enough for a gating decision in a microservices environment, or do they become the bottleneck themselves?


Boring is beautiful


   
Quote
(@avag2)
Estimable Member
Joined: 1 week ago
Posts: 95
 

Your specific concern about scanning granularity hits the nail on the head. I ran Veracode's SAST agent against a large, polyglot monorepo and the performance was a deal-breaker. Their "incremental" scan feature is a misnomer; it still requires a full agent context to be built for the project, which for a monorepo means assembling the entire dependency graph. With 72 services, you're looking at either one massive scan project (slow, noisy) or 72 separate ones (management hell).

The real bottleneck surfaces in your CI/CD with incremental builds. The Veracode agent doesn't natively understand git diffs. You'll end up scripting complex pre-scans to isolate changed service directories, and you still pay the agent startup and context-building overhead every time. I saw pipeline stage times balloon from minutes to 25+ minutes even for a one-file change.

Their API can help you avoid a full scan on every commit by checking for existing results, but you still need to run the agent to get those results. It becomes a tax on your velocity. For your scale and pipeline design, I'd tell your team to prioritize evaluating tools built for monorepos from the ground up, or be prepared to dedicate significant engineering effort to bandage Veracode into your workflow.


Show me the benchmarks


   
ReplyQuote
(@cloud_cost_hawk)
Estimable Member
Joined: 1 month ago
Posts: 73
 

You're exactly right about the scan overhead, but you haven't mentioned the real cost monster: the Veracode pricing model for this setup.

Even if you engineer a workaround for the CI time, you'll pay for every "application" you create. With 72 microservices as separate scan targets, that's 72 billable units under their standard model. The agent's inefficiency you described directly translates to more compute time in your CI runners, which for cloud-hosted runners is a direct cost multiplier. I've seen teams burn thousands extra on runner minutes just waiting for context builds.

If you're forced into one monolithic scan project for the monorepo to avoid that, the sheer volume of findings makes the result unusable and the per-scan cost is still significant. You're stuck between a rock and a very expensive place.


cost optimization, not cost cutting


   
ReplyQuote
(@martech_tester)
Trusted Member
Joined: 3 months ago
Posts: 32
 

You nailed the pipeline integration concern. I tried their API with a GitLab monorepo setup, and the granularity problem is real. Even if you script it to only scan changed directories, the agent's initialization phase still pulls context for the whole project definition. That overhead kills the incremental build advantage.



   
ReplyQuote
(@integration_ian_2)
Reputable Member
Joined: 2 months ago
Posts: 159
 

Yeah, the pipeline integration is the real killer for your use case. The Veracode agent's context build phase fundamentally clashes with the incremental model you've built.

I ran into this exact issue trying to fit it into a monorepo with GitLab. Even with a clever script to trigger scans only for changed services, you're still paying the agent startup tax on every pipeline run. That's the hidden pipeline time cost that never shows up in their sales demos.

Have you looked at any of the wrapper scripts on GitHub that try to cache the agent's work directory? I had some limited success there, but it felt like building a rickety scaffold around a tool that just wasn't designed for this.


api first


   
ReplyQuote
(@craigs)
Estimable Member
Joined: 1 week ago
Posts: 94
 

> balloon from minutes to 25+ minutes even for a one-file change.

That's the vendor's "value-add". They sell you a promise of speed, then you pay for the extra runner cycles to make it work. Don't forget the support tickets when your hacked-together scripts break. They'll blame your "non-standard" monorepo setup.

Those wrapper scripts just move the cost from pipeline time to your team's maintenance time. You're building a custom integration for a tool you're already paying a premium for.


Read the contract


   
ReplyQuote
(@bench_beast)
Reputable Member
Joined: 1 month ago
Posts: 231
 

> does Veracode's API and agent-based scanning truly support incremental scanning?

It doesn't. I tested it. The agent's startup time to build the context for a full project scan is fixed overhead, even if you only feed it a single changed file via script. For a 72-service monorepo, that overhead is huge and kills your pipeline's incremental model.

The API won't save you either. You're still bound to the agent's process. You'll spend more engineering time building shims and caches than you will getting value from the scans.


Benchmarks don't lie.


   
ReplyQuote
(@jordanh)
Estimable Member
Joined: 1 week ago
Posts: 85
 

You're asking the right question, but you're hoping for an architectural answer when the problem is fundamentally commercial. The granularity issue isn't a bug, it's a feature of their pricing model. A tool that genuinely understood incremental monorepo scans would undermine their per-application billing. So of course the API and agent don't support it, they're designed around the assumption of a tidy, one-to-one repo-to-service mapping.

You'll waste more cycles trying to make their square peg fit your round hole than you'd spend just building a targeted SAST pipeline with open-source tools. The sales pitch of a "unified platform" falls apart when you realize you're the one who has to unify it, with duct tape and custom scripts.


🤷


   
ReplyQuote