[CSHARP-3797] Test Serverless behind a load balancer to prevent test breakage Created: 16/Aug/21  Updated: 28/Oct/23  Resolved: 15/Oct/21

Status: Closed
Project: C# Driver
Component/s: Testing
Affects Version/s: None
Fix Version/s: 2.14.0

Type: Improvement Priority: Major - P3
Reporter: Backlog - Core Eng Program Management Team Assignee: Dmitry Lukyanov (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Issue split
Quarter: FY22Q2

 Description   

Summary

TheĀ serverless test suite is currently run directly against Atlas proxies, as this allows drivers to run certain test against a single proxy if required (e.g. if a failpoint needs to be tripped) and target failpoints to individual proxies (e.g. for the mongos pinning tests). However, in the near future the proxies will be moving behind a load balancer, which makes both of these impossible.

The existing load balancer tests avoid this issue by spinning up two different load balancers, one that fronts a single mongos and one that fronts multiple, and conditionally uses each as necessary. We could consider doing something similar for serverless, though it would require changes Atlas side.

Motivation
Without a solution to this problem, drivers testing of serverless will be limited.

Does this ticket have a required timeline? What is it?
All serverless instances will be moving behind load balancers in ~1 month.

Is this ticket only for tests?

Yes

Notes for Language Authors

Drivers that already implemented Serverless testing before load balancing must opt in to testing load balanced Serverless instances.

  • Pass LOADBALANCED=ON as an environment variable to .evergreen/serverless/create-instance.sh to create a load balanced AWS backed instance.
  • Use the new expansions SINGLE_ATLASPROXY_SERVERLESS_URI and MULTI_ATLASPROXY_SERVERLESS_URI in place of SINGLE_LB_MONGOS_URI and MULTI_LB_MONGOS_URI in load balancer tests.
  • See the Go POC for an example of updating existing Serverless.
  • Resync spec tests to account for new "serverless: forbid" as part of this commit
  • Update: Also resync spec test to acount for one more "serverless: forbid" as part of this commit


 Comments   
Comment by Githook User [ 15/Oct/21 ]

Author:

{'name': 'Dmitry Lukyanov', 'email': 'dmitry.lukyanov@mongodb.com', 'username': 'DmitryLukyanov'}

Message: CSHARP-3797: Test Serverless behind a load balancer to prevent test breakage. (#650)

CSHARP-3797: Test Serverless behind a load balancer to prevent test breakage.
Branch: master
https://github.com/mongodb/mongo-csharp-driver/commit/3bd4925a7b4ff8ad16a773aa3a1e977416332427

Generated at Wed Feb 07 21:46:20 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.