Skip to content
Notifications
Clear all

Switched from Zscaler to Fortinet Secure SD-WAN - which is better?

4 Posts
4 Users
0 Reactions
9 Views
(@data_pipeline_rookie_42)
Estimable Member
Joined: 3 months ago
Posts: 93
Topic starter   [#12848]

Hi everyone. I've been lurking here for a while, learning a ton about data pipelines (Airflow, dbt, BigQuery are my current world). I'm usually posting over in the data engineering forums, but I have a big infrastructure question that's been stressing me out.

My company recently switched our primary security stack from Zscaler to Fortinet's Secure SD-WAN. The switch was driven by the networking team, citing cost and performance for our branch offices. From my narrow data engineering viewpoint, it's been… disruptive. My main job is to keep the ETLs flowing into our cloud data warehouse, and I'm nervous about which setup is actually better for data pipeline stability.

With Zscaler, our cloud-to-cloud traffic (like from our app databases to BigQuery) was straightforward because everything was funneled through their cloud. The main issue was sometimes latency spikes that would cause timeouts in our Python ingestion scripts.

Now with Fortinet, the architecture feels different. I'm not sure if it's the SD-WAN policies or something else, but we're seeing intermittent packet loss during large data transfers. It *feels* less predictable. I have to add more retry logic and error handling everywhere.

Has anyone else managed data pipelines through both? I'm trying to figure out if what I'm seeing is just a configuration teething problem, or if one platform is inherently more suited to reliable, high-volume data movement. I don't want to blame the new system if I just need to adjust my pipeline patterns to be more resilient.

For example, my simple task to load a file from cloud storage now looks like this because of the flakes:

```python
def load_with_retry(uri, max_retries=5):
for attempt in range(max_retries):
try:
# ... bigquery load job
return job.result()
except RequestException as e:
if attempt == max_retries - 1:
raise
time.sleep(2 ** attempt)
```

Is this just the new normal? Any insights from a data movement perspective would be really helpful.



   
Quote
(@brianc)
Trusted Member
Joined: 5 days ago
Posts: 39
 

Hey there, I'm Brian, and I handle IT and tooling procurement at a mid-sized fintech with about 400 employees. Our own data teams run a similar pipeline to yours (app DBs to Snowflake), and we've had both Zscaler ZIA and Fortinet Secure SD-WAN in production over the last three years.

Let me break down what you're feeling from a practical, day-to-day ops perspective.

**Core Comparison: Zscaler vs. Fortinet Secure SD-WAN**

1. **Pricing & Cost Model**
Zscaler's consumption-based licensing (their "ZIA" package) typically ran us $8 to $12 per user per month, and it scaled predictably with headcount. The hidden cost was in "premium support," which we found necessary and which added about 20%. Fortinet's upfront appliance cost per branch was steep, but the three-year total cost of ownership for our 25 locations was about 40% lower. The operational cost shifted from cloud Opex to managing our own hardware and circuits.

2. **Performance for Bulk Data Transfers**
Zscaler gave us consistent but sometimes capped throughput for large cloud-to-cloud syncs; we saw a reliable 500 Mbps per tunnel, but hitting their cloud during regional peak times could add 80-100ms of latency. Fortinet, once tuned, can push line-rate (we get 1 Gbps) on dedicated circuits, but the packet loss you're seeing is classic. It's often the stateful inspection on the FortiGate affecting large, persistent TCP streams. We had to specifically adjust the 'session-ttl' and turn off certain threat inspection profiles for our data transfer subnets.

3. **Architecture & Predictability**
Zscaler's cloud-centric model meant all traffic, including your app DB to BigQuery path, took a deterministic route to their nearest pop. It was simple for app teams. Fortinet's SD-WAN is dynamic; it constantly evaluates multiple WAN paths (like MPLS, broadband, LTE) based on jitter, packet loss, and latency. This is great for VoIP, but it can be disastrous for large data transfers if the policy flips the connection mid-session. Your intermittent loss sounds like a policy steering issue.

4. **Operational Overhead & Team Fit**
Zscaler is largely managed by a cloud console, so network and security teams work together in one interface. Fortinet requires deep networking knowledge to get right. The switch is often driven by networking teams wanting more control, but it adds config complexity. For us, tuning for data stability required creating a separate, static SD-WAN rule for our data pipeline IPs that pinned them to our most stable WAN link, bypassing the dynamic path selection.

**My pick:** For your specific goal of data pipeline stability, a pure Zscaler Internet Access setup is the simpler, more predictable choice. It abstracts the network away, which is what you want. Fortinet is the stronger pick if the business needs to integrate firewall, SD-WAN, and LAN control into a single box at each branch for cost savings, but it demands careful, joint tuning between network and data teams.

To make a clean call, tell us: how many branch offices are involved in these data transfers, and is your networking team willing to create and maintain dedicated, non-steering SD-WAN policies for your data subnets?


customer first


   
ReplyQuote
(@crm_hopper_2025)
Estimable Member
Joined: 2 months ago
Posts: 113
 

Brian, that 80-100ms latency hit with Zscaler during peak times is the exact kind of "background noise" that wrecks my automated syncs from Salesforce to our warehouse. A delay that small can cause a cascading failure in a sequenced job. I'd take a consistent, slightly lower throughput from an on-prem appliance any day over that unpredictable cloud jitter.

Our finance team made a similar TCO argument for Fortinet. The hidden cost they missed was the internal RevOps labor to rework all our API-based integrations after the switch. Suddenly, we had to account for new network paths and MFA handshakes at the firewall level that Zscaler just handled transparently. It took us two months to get our lead routing stable again.



   
ReplyQuote
(@harperl)
Trusted Member
Joined: 1 week ago
Posts: 32
 

Yeah, the switch from cloud to appliance-based security can feel like that. With Zscaler, the cloud proxy was a single, known choke point for your scripts. Fortinet's SD-WAN introduces more variables, like local traffic steering and per-branch firewall rules.

That packet loss during large transfers you mentioned could be from a bandwidth constraint or session limit on the FortiGate that wasn't present before. Have you talked to your networking team about creating a specific, high-bandwidth policy rule for your ETL traffic? They might be treating it as generic bulk traffic.

I'm curious, do your Airflow tasks log the specific source IP they run from? That might help pinpoint if the issue is isolated to a certain branch or data center path now.


Ask me in a year


   
ReplyQuote