Nov 2019
11 Mon
12 Tue
13 Wed
14 Thu
15 Fri
16 Sat 09:15 AM – 05:00 PM IST
17 Sun
Vasanth Pandian
Modern development moves fast, with businesses expected to push out multiple iterations and updates in very shorter sprint cycles. And with the current release model, daily deployments are unavoidable. Doing a deployment without impacting the system is being used by 150,000 business across the world, serving 500K requests per minute was a very big challenge. And building test cases to capture all production like scenarios is highly difficult since many issues might occur only during high load with complex business use cases.
Ever thought about testing a code with production traffic? This talk will showcase how we test major changes with live traffic.
The code will become eligible for GoLive only after ensuring the error rates, status codes & performance on the request shadow environment.
What ?
Mirroring portion/full live production traffic to an air-gapped shadow VPC to mimic the actual requests.
Why?
To test major changes in Code/Infra before rolling to Production
■ Docker
■ Rails/Ruby Upgrade
■ OS version Upgrades
Internals - How it works?
In actual VPC:
Every web request is stamped at HAProxy (by looking at domain, cookies etc)
Stamped requests are mirrored by Envoy sidecar.
In shadow VPC:
Requests are received by NLB and forwarded to HAProxy (similar to Production setup)
All external http requests go via shadow proxy
Read only Infra IAM Role for all machines in Shadow VPC
NAT level ACL rules to control outbound traffic
Tech Stack:
HAProxy
Envoy
Diffy - developed by Lua (https://github.com/twitter/diffy)
Golang
Lua
Vasanth Pandian is a Sr. Devops Engineer at Freshworks
Hosted by
{{ gettext('Login to leave a comment') }}
{{ gettext('Post a comment…') }}{{ errorMsg }}
{{ gettext('No comments posted yet') }}