WEBVTT

1
00:00:11.665 --> 00:00:14.045
<00:00:11.665>Yes, <00:00:11.864>hello <00:00:12.065>and <00:00:12.264>welcome <00:00:12.465>to <00:00:12.665>this <00:00:12.864>afternoon <00:00:13.065>session.

2
00:00:14.625 --> 00:00:16.965
<00:00:14.625>Um, <00:00:14.858>this <00:00:15.091>is <00:00:15.325>also <00:00:15.558>not <00:00:15.791>about <00:00:16.024>ai.

3
00:00:17.705 --> 00:00:20.325
<00:00:17.705>Um, <00:00:18.055>it's <00:00:18.404>just <00:00:18.755>about <00:00:19.104>infrastructure

4
00:00:21.105 --> 00:00:24.005
<00:00:21.105>and <00:00:21.305>how <00:00:21.505>we, <00:00:21.705>how <00:00:21.905>we <00:00:22.105>failed <00:00:22.305>at <00:00:22.505>this.

5
00:00:26.345 --> 00:00:31.005
<00:00:26.345>So <00:00:26.461>I'm <00:00:26.578>waiting <00:00:26.695>for <00:00:26.811>the, <00:00:26.928>do <00:00:27.044>I <00:00:27.161>need <00:00:27.278>to <00:00:27.395>click? <00:00:27.511>I <00:00:27.628>will <00:00:27.744>try.

6
00:00:34.465 --> 00:00:38.325
<00:00:34.465>Ah, <00:00:34.592>okay. <00:00:34.719>Yeah, <00:00:34.846>this <00:00:34.974>is <00:00:35.101>what <00:00:35.228>we <00:00:35.355>are <00:00:35.483>going <00:00:35.610>to <00:00:35.737>talk <00:00:35.865>about.

7
00:00:38.585 --> 00:00:41.885
<00:00:38.585>Um, <00:00:38.760>I'm <00:00:38.935>going <00:00:39.110>to <00:00:39.285>spare <00:00:39.460>you <00:00:39.635>the, <00:00:39.810>the <00:00:39.985>details,

8
00:00:41.985 --> 00:00:44.245
<00:00:41.985>but <00:00:42.160>you <00:00:42.335>see <00:00:42.510>we <00:00:42.685>tried <00:00:42.860>a <00:00:43.035>lot <00:00:43.210>of <00:00:43.385>times

9
00:00:44.425 --> 00:00:46.005
<00:00:44.425>and <00:00:44.625>we <00:00:44.824>rolled <00:00:45.025>back <00:00:45.224>a <00:00:45.425>lot <00:00:45.625>of <00:00:45.824>times.

10
00:00:46.545 --> 00:00:50.165
<00:00:46.545>And <00:00:46.685>in <00:00:46.825>the <00:00:46.965>end, <00:00:47.105>I <00:00:47.245>want <00:00:47.385>to <00:00:47.525>take <00:00:47.665>the <00:00:47.805>takeaway <00:00:47.945>upfront.

11
00:00:52.825 --> 00:00:55.805
<00:00:52.825>If <00:00:52.965>you <00:00:53.105>ever <00:00:53.245>want <00:00:53.385>to, <00:00:53.525>if <00:00:53.665>you <00:00:53.805>ever <00:00:53.945>think <00:00:54.085>about <00:00:54.225>doing

12
00:00:56.585 --> 00:01:00.365
<00:00:56.585>IP <00:00:56.740>based <00:00:56.896>authentication <00:00:57.051>of <00:00:57.207>your <00:00:57.362>users, <00:00:57.518>please <00:00:57.673>don't <00:00:57.829>do <00:00:57.985>it.

13
00:01:01.765 --> 00:01:04.245
<00:01:01.765>I <00:01:01.905>will <00:01:02.045>tell <00:01:02.185>you <00:01:02.325>why. <00:01:02.465>So <00:01:02.605>why <00:01:02.745>are <00:01:02.885>we <00:01:03.025>doing <00:01:03.165>this?

14
00:01:04.865 --> 00:01:09.165
<00:01:04.864>So <00:01:05.004>at <00:01:05.144>Statista, <00:01:05.285>we <00:01:05.425>have <00:01:05.565>this <00:01:05.705>monolith <00:01:05.845>that <00:01:05.985>has <00:01:06.125>been <00:01:06.265>grown,

15
00:01:09.325 --> 00:01:12.525
<00:01:09.325>A-P-P-P-H-P <00:01:09.480>monolith <00:01:09.636>that <00:01:09.791>has <00:01:09.947>been <00:01:10.102>grown <00:01:10.258>for <00:01:10.413>like <00:01:10.569>15 <00:01:10.725>years,

16
00:01:12.545 --> 00:01:13.885
<00:01:12.545>pretty <00:01:13.751>uncontrollably.

17
00:01:15.105 --> 00:01:17.685
<00:01:15.105>And <00:01:15.338>at <00:01:15.571>a <00:01:15.805>certain <00:01:16.038>point <00:01:16.271>we <00:01:16.505>realized

18
00:01:17.785 --> 00:01:18.925
<00:01:17.785>we <00:01:17.990>can't <00:01:18.195>do <00:01:18.400>this <00:01:18.605>any <00:01:18.811>longer.

19
00:01:19.105 --> 00:01:21.685
<00:01:19.105>So <00:01:19.338>the <00:01:19.571>natural <00:01:19.805>thing <00:01:20.038>is <00:01:20.271>we <00:01:20.505>want

20
00:01:21.685 --> 00:01:23.325
<00:01:21.685>to <00:01:21.965>break <00:01:22.245>it <00:01:22.525>up <00:01:22.805>into <00:01:23.085>microservices.

21
00:01:24.305 --> 00:01:28.125
<00:01:24.305>And <00:01:24.445>the <00:01:24.585>first <00:01:24.725>thing <00:01:24.865>that <00:01:25.005>you <00:01:25.145>want <00:01:25.285>to <00:01:25.425>do <00:01:25.565>with <00:01:25.705>microservices

22
00:01:28.785 --> 00:01:31.325
<00:01:28.785>is <00:01:28.985>that <00:01:29.185>you <00:01:29.384>pull <00:01:29.585>the <00:01:29.785>authentication <00:01:29.985>upfront <00:01:30.185>so

23
00:01:31.325 --> 00:01:33.165
<00:01:31.325>that <00:01:31.791>your <00:01:32.258>users, <00:01:32.725>um,

24
00:01:34.275 --> 00:01:36.445
<00:01:34.275>they <00:01:34.508>end <00:01:34.741>up <00:01:34.975>at <00:01:35.208>the <00:01:35.441>first <00:01:35.675>endpoint

25
00:01:36.445 --> 00:01:38.325
<00:01:36.445>with <00:01:36.794>which <00:01:37.145>is <00:01:37.494>the <00:01:37.845>authentication

26
00:01:38.465 --> 00:01:41.525
<00:01:38.465>and <00:01:38.698>to <00:01:38.931>the <00:01:39.165>backends, <00:01:39.398>the <00:01:39.631>multiple <00:01:39.865>backends,

27
00:01:41.785 --> 00:01:43.365
<00:01:41.785>the <00:01:42.251>user's <00:01:42.718>authenticated, <00:01:43.185>right?

28
00:01:44.345 --> 00:01:46.445
<00:01:44.345>And <00:01:44.545>so <00:01:44.745>this <00:01:44.945>is <00:01:45.145>basically <00:01:45.345>where <00:01:45.545>we <00:01:45.745>started,

29
00:01:46.545 --> 00:01:48.365
<00:01:46.545>and <00:01:46.745>this <00:01:46.945>was <00:01:47.145>the <00:01:47.345>task <00:01:47.545>of <00:01:47.745>my <00:01:47.945>team

30
00:01:48.745 --> 00:01:52.365
<00:01:48.745>to <00:01:48.900>pull <00:01:49.056>out <00:01:49.211>the <00:01:49.367>authentication <00:01:49.522>from <00:01:49.678>the <00:01:49.833>monolith <00:01:49.989>in <00:01:50.145>front.

31
00:01:53.265 --> 00:01:57.405
<00:01:53.265>And, <00:01:53.392>um, <00:01:53.519>for <00:01:53.646>this, <00:01:53.774>we <00:01:53.901>chose <00:01:54.028>AU <00:01:54.155>zero <00:01:54.283>to <00:01:54.410>be <00:01:54.537>our <00:01:54.665>partner.

32
00:01:58.305 --> 00:02:00.685
<00:01:58.305>And <00:01:58.445>to <00:01:58.585>be <00:01:58.725>fair, <00:01:58.865>at <00:01:59.005>the <00:01:59.145>beginning <00:01:59.285>of <00:01:59.425>the, <00:01:59.565>the <00:01:59.705>project,

33
00:02:00.835 --> 00:02:04.165
<00:02:00.835>they <00:02:01.115>said <00:02:01.395>don't <00:02:01.675>do <00:02:01.955>IP <00:02:02.235>authentication.

34
00:02:05.115 --> 00:02:08.565
<00:02:05.115>Well, <00:02:05.289>but <00:02:05.464>this <00:02:05.640>takes <00:02:05.815>us <00:02:05.990>to <00:02:06.164>a <00:02:06.339>little <00:02:06.515>poll.

35
00:02:08.745 --> 00:02:12.085
<00:02:08.745>So <00:02:08.945>if <00:02:09.145>you <00:02:09.345>are <00:02:09.545>managing, <00:02:09.745>um, <00:02:09.945>any <00:02:10.145>platform,

36
00:02:12.545 --> 00:02:14.445
<00:02:12.545>put <00:02:12.744>your <00:02:12.945>hands <00:02:13.144>up <00:02:13.345>If <00:02:13.545>you <00:02:13.744>are <00:02:13.945>dealing

37
00:02:14.475 --> 00:02:16.325
<00:02:14.475>with <00:02:14.941>one <00:02:15.408>authentication <00:02:15.875>method

38
00:02:18.465 --> 00:02:20.085
<00:02:18.465>And <00:02:18.815>the <00:02:19.165>rest <00:02:19.515>don't <00:02:19.865>authenticate.

39
00:02:20.195 --> 00:02:21.445
<00:02:20.195>Okay? <00:02:20.420>But <00:02:20.644>keep <00:02:20.870>your <00:02:21.095>hands <00:02:21.320>up.

40
00:02:22.425 --> 00:02:26.965
<00:02:22.425>Do <00:02:22.580>you <00:02:22.736>have <00:02:22.891>to <00:02:23.047>deal <00:02:23.202>with <00:02:23.358>five <00:02:23.513>more <00:02:23.669>than <00:02:23.825>10?

41
00:02:28.585 --> 00:02:32.965
<00:02:28.585>That's <00:02:28.785>us. <00:02:28.985>We <00:02:29.185>have <00:02:29.385>11 <00:02:29.585>different <00:02:29.785>login <00:02:29.985>methods

42
00:02:33.305 --> 00:02:36.205
<00:02:33.305>and <00:02:33.445>here <00:02:33.585>you <00:02:33.725>can <00:02:33.865>see <00:02:34.005>all <00:02:34.145>of <00:02:34.285>them <00:02:34.425>in <00:02:34.565>the <00:02:34.705>beauty.

43
00:02:37.345 --> 00:02:42.285
<00:02:37.345>The <00:02:37.472>red <00:02:37.599>ones <00:02:37.726>were <00:02:37.854>invented <00:02:37.981>by <00:02:38.108>us, <00:02:38.235>for <00:02:38.363>us, <00:02:38.490>for <00:02:38.617>our <00:02:38.745>customers.

44
00:02:43.185 --> 00:02:45.725
<00:02:43.185>And <00:02:43.385>as <00:02:43.585>you <00:02:43.785>probably <00:02:43.985>know, <00:02:44.185>inventing <00:02:44.385>I, <00:02:44.585>uh,

45
00:02:45.725 --> 00:02:48.565
<00:02:45.725>authentication <00:02:45.924>methods <00:02:46.125>is <00:02:46.325>not <00:02:46.525>a <00:02:46.725>very <00:02:46.924>good <00:02:47.125>idea.

46
00:02:49.985 --> 00:02:52.485
<00:02:49.985>But <00:02:50.185>what <00:02:50.385>is <00:02:50.585>this <00:02:50.785>login? <00:02:50.985>I <00:02:51.185>by <00:02:51.385>ip?

47
00:02:53.425 --> 00:02:57.245
<00:02:53.425>So <00:02:53.658>basically <00:02:53.891>we <00:02:54.125>have, <00:02:54.358>um, <00:02:54.591>big <00:02:54.825>clients

48
00:02:57.305 --> 00:02:58.445
<00:02:57.305>who <00:02:57.561>own <00:02:57.818>their <00:02:58.074>own <00:02:58.331>network

49
00:02:59.265 --> 00:03:00.805
<00:02:59.265>and <00:02:59.495>they <00:02:59.727>have <00:02:59.958>the <00:03:00.189>user <00:03:00.420>set <00:03:00.651>up

50
00:03:00.805 --> 00:03:02.125
<00:03:00.805>that <00:03:01.042>they <00:03:01.280>are <00:03:01.517>inside <00:03:01.755>their <00:03:01.993>network.

51
00:03:02.475 --> 00:03:04.925
<00:03:02.475>They <00:03:02.602>go <00:03:02.729>out <00:03:02.856>through <00:03:02.984>a <00:03:03.111>nut <00:03:03.238>router, <00:03:03.365>we <00:03:03.493>just <00:03:03.620>heard <00:03:03.747>about <00:03:03.875>it.

52
00:03:05.105 --> 00:03:09.165
<00:03:05.105>Um, <00:03:05.244>in <00:03:05.385>the <00:03:05.524>talk <00:03:05.665>before, <00:03:05.804>um, <00:03:05.945>through <00:03:06.084>their <00:03:06.225>fixed <00:03:06.364>IP <00:03:06.505>address,

53
00:03:09.165 --> 00:03:11.125
<00:03:09.165>they <00:03:09.515>arrive <00:03:09.864>at <00:03:10.215>our <00:03:10.565>systems

54
00:03:11.785 --> 00:03:14.245
<00:03:11.785>and <00:03:12.065>through <00:03:12.345>that, <00:03:12.625>um, <00:03:12.905>IP <00:03:13.185>address,

55
00:03:14.585 --> 00:03:18.045
<00:03:14.585>we <00:03:14.725>look <00:03:14.865>up <00:03:15.005>in <00:03:15.145>the <00:03:15.285>database <00:03:15.425>which <00:03:15.565>user <00:03:15.705>belongs <00:03:15.845>to <00:03:15.985>it,

56
00:03:18.505 --> 00:03:20.845
<00:03:18.505>and <00:03:18.738>then <00:03:18.971>the <00:03:19.204>user <00:03:19.438>is <00:03:19.671>locked <00:03:19.905>in.

57
00:03:21.025 --> 00:03:22.085
<00:03:21.025>Sounds <00:03:21.502>great, <00:03:21.979>right?

58
00:03:23.505 --> 00:03:27.545
<00:03:23.505>The <00:03:23.644>history <00:03:23.785>about <00:03:23.924>this <00:03:24.065>is <00:03:24.204>that <00:03:24.345>it's <00:03:24.484>a <00:03:24.625>very <00:03:24.765>common <00:03:24.905>method

59
00:03:28.165 --> 00:03:29.825
<00:03:28.165>in <00:03:28.515>academia <00:03:28.864>in <00:03:29.215>the <00:03:29.565>US

60
00:03:29.825 --> 00:03:34.105
<00:03:29.825>because <00:03:30.000>historically <00:03:30.174>they <00:03:30.350>always <00:03:30.524>had <00:03:30.700>very <00:03:30.875>large <00:03:31.049>IP <00:03:31.225>ranges,

61
00:03:34.905 --> 00:03:37.105
<00:03:34.905>IPV <00:03:35.105>four <00:03:35.305>ranges <00:03:35.505>that <00:03:35.705>they <00:03:35.905>could <00:03:36.105>just <00:03:36.305>use.

62
00:03:37.525 --> 00:03:39.705
<00:03:37.525>So <00:03:37.680>this <00:03:37.836>is <00:03:37.991>actually <00:03:38.147>their <00:03:38.302>preferred <00:03:38.458>way <00:03:38.613>to <00:03:38.769>do <00:03:38.925>it

63
00:03:39.705 --> 00:03:42.065
<00:03:39.704>because <00:03:39.880>it <00:03:40.054>also <00:03:40.230>doesn't <00:03:40.404>need <00:03:40.579>a <00:03:40.755>lot <00:03:40.929>of <00:03:41.105>setup

64
00:03:42.065 --> 00:03:43.705
<00:03:42.065>because <00:03:42.345>you <00:03:42.625>don't <00:03:42.905>need <00:03:43.185>much <00:03:43.465>infrastructure

65
00:03:43.935 --> 00:03:46.505
<00:03:43.935>besides <00:03:44.168>the <00:03:44.401>stuff <00:03:44.635>that <00:03:44.868>you <00:03:45.101>already <00:03:45.335>have.

66
00:03:48.575 --> 00:03:50.105
<00:03:48.575>Yeah. <00:03:48.771>Which <00:03:48.968>leads <00:03:49.165>us <00:03:49.361>to <00:03:49.558>the <00:03:49.755>good <00:03:49.952>stuff.

67
00:03:50.375 --> 00:03:54.065
<00:03:50.375>Like <00:03:50.515>I <00:03:50.655>said, <00:03:50.795>easy <00:03:50.935>to, <00:03:51.075>to <00:03:51.215>set <00:03:51.355>up <00:03:51.495>no <00:03:51.635>user <00:03:51.775>licensing

68
00:03:54.065 --> 00:03:57.905
<00:03:54.065>because <00:03:54.240>there's <00:03:54.415>only <00:03:54.590>one <00:03:54.765>user <00:03:54.940>that <00:03:55.115>arrives <00:03:55.290>at <00:03:55.465>Statista,

69
00:03:57.905 --> 00:03:59.545
<00:03:57.905>which <00:03:58.105>is <00:03:58.305>good <00:03:58.505>for <00:03:58.705>them, <00:03:58.905>bad <00:03:59.105>for <00:03:59.305>us.

70
00:04:00.335 --> 00:04:02.585
<00:04:00.335>They <00:04:00.535>kind <00:04:00.735>of <00:04:00.935>can <00:04:01.135>offer <00:04:01.335>a <00:04:01.535>campus-wide <00:04:01.735>license

71
00:04:02.585 --> 00:04:06.425
<00:04:02.585>because <00:04:02.760>everyone <00:04:02.935>in <00:04:03.110>the <00:04:03.285>network <00:04:03.460>is <00:04:03.635>automatically <00:04:03.810>has <00:04:03.985>access

72
00:04:06.445 --> 00:04:09.625
<00:04:06.445>to <00:04:06.620>the <00:04:06.795>resources, <00:04:06.970>and <00:04:07.144>there's <00:04:07.320>really <00:04:07.495>low <00:04:07.670>user <00:04:07.845>friction.

73
00:04:10.845 --> 00:04:12.665
<00:04:10.845>The <00:04:11.078>bad, <00:04:11.311>yeah, <00:04:11.545>I <00:04:11.778>already <00:04:12.011>said <00:04:12.245>it.

74
00:04:12.665 --> 00:04:14.905
<00:04:12.665>From <00:04:12.864>our <00:04:13.065>side, <00:04:13.265>we <00:04:13.465>only <00:04:13.665>see <00:04:13.864>one <00:04:14.065>user.

75
00:04:15.235 --> 00:04:19.185
<00:04:15.235>There <00:04:15.362>might <00:04:15.489>be <00:04:15.616>thousands <00:04:15.744>of <00:04:15.871>users <00:04:15.998>on <00:04:16.125>the <00:04:16.253>campus <00:04:16.380>in <00:04:16.507>the <00:04:16.635>us

76
00:04:19.845 --> 00:04:23.145
<00:04:19.845>but <00:04:19.961>we <00:04:20.078>only <00:04:20.195>see <00:04:20.311>one <00:04:20.428>user <00:04:20.545>coming <00:04:20.661>in, <00:04:20.778>so <00:04:20.895>we <00:04:21.011>don't <00:04:21.128>really <00:04:21.245>know.

77
00:04:23.455 --> 00:04:27.065
<00:04:23.455>Also <00:04:23.655>with <00:04:23.854>licensing, <00:04:24.055>um, <00:04:24.255>for <00:04:24.455>our <00:04:24.655>sales <00:04:24.854>department,

78
00:04:27.065 --> 00:04:28.465
<00:04:27.065>it <00:04:27.485>creates <00:04:27.905>a <00:04:28.325>headache.

79
00:04:29.565 --> 00:04:31.345
<00:04:29.565>Um, <00:04:30.265>limited <00:04:30.965>flexibility.

80
00:04:32.245 --> 00:04:33.905
<00:04:32.245>Um, <00:04:32.478>yeah, <00:04:32.711>that's <00:04:32.945>also <00:04:33.178>on <00:04:33.411>our <00:04:33.645>side

81
00:04:33.905 --> 00:04:37.025
<00:04:33.905>because <00:04:34.032>we <00:04:34.159>can, <00:04:34.286>we, <00:04:34.414>we <00:04:34.541>cannot <00:04:34.668>upsell <00:04:34.795>them <00:04:34.923>if <00:04:35.050>we <00:04:35.177>see, <00:04:35.304>um,

82
00:04:37.025 --> 00:04:40.425
<00:04:37.025>there's <00:04:37.304>more, <00:04:37.585>um, <00:04:37.864>no <00:04:38.145>individual <00:04:38.424>accountability

83
00:04:40.425 --> 00:04:42.985
<00:04:40.425>because <00:04:40.705>we <00:04:40.985>cannot <00:04:41.265>identify <00:04:41.545>individual <00:04:41.825>users.

84
00:04:43.205 --> 00:04:45.625
<00:04:43.205>So <00:04:43.555>also <00:04:43.905>everything <00:04:44.255>about <00:04:44.604>personalization

85
00:04:45.845 --> 00:04:47.025
<00:04:45.845>is <00:04:46.199>just <00:04:46.553>not <00:04:46.907>possible.

86
00:04:48.805 --> 00:04:52.225
<00:04:48.805>And <00:04:48.945>the <00:04:49.085>ARC <00:04:49.225>leads, <00:04:49.365>I'm <00:04:49.505>going <00:04:49.645>to <00:04:49.785>go <00:04:49.925>into <00:04:50.065>IT <00:04:50.205>proxies

87
00:04:52.295 --> 00:04:53.385
<00:04:52.295>that <00:04:52.785>we <00:04:53.276>encounter.

88
00:04:54.085 --> 00:04:57.305
<00:04:54.085>Um, <00:04:54.240>yeah, <00:04:54.396>there's <00:04:54.551>no <00:04:54.707>distinct <00:04:54.862>login <00:04:55.018>event <00:04:55.173>by <00:04:55.329>the <00:04:55.484>users.

89
00:04:57.335 --> 00:04:59.625
<00:04:57.335>They <00:04:57.490>go <00:04:57.646>to <00:04:57.801>our <00:04:57.957>site <00:04:58.112>and <00:04:58.268>they're <00:04:58.423>automatically <00:04:58.579>logged <00:04:58.734>in.

90
00:04:59.625 --> 00:05:02.065
<00:04:59.625>They <00:04:59.780>don't <00:04:59.936>even <00:05:00.091>click <00:05:00.247>on <00:05:00.402>login. <00:05:00.558>It's <00:05:00.713>a <00:05:00.869>bad <00:05:01.025>design.

91
00:05:03.165 --> 00:05:07.425
<00:05:03.165>And <00:05:03.340>then <00:05:03.515>there's, <00:05:03.690>um, <00:05:03.865>network <00:05:04.040>address <00:05:04.215>translation, <00:05:04.390>VPNs <00:05:04.565>in

92
00:05:07.425 --> 00:05:09.545
<00:05:07.425>between, <00:05:07.891>um, <00:05:08.358>the <00:05:08.825>university

93
00:05:09.545 --> 00:05:12.425
<00:05:09.545>and <00:05:09.745>us, <00:05:09.945>which <00:05:10.145>creates <00:05:10.345>all <00:05:10.545>sorts <00:05:10.745>of <00:05:10.945>things.

94
00:05:13.165 --> 00:05:16.705
<00:05:13.165>And <00:05:13.292>then <00:05:13.419>IPV <00:05:13.546>six, <00:05:13.674>I <00:05:13.801>don't <00:05:13.928>even <00:05:14.055>want <00:05:14.183>to <00:05:14.310>go <00:05:14.437>into <00:05:14.565>it

95
00:05:16.725 --> 00:05:18.025
<00:05:16.725>and <00:05:16.959>not <00:05:17.193>even <00:05:17.427>think <00:05:17.661>about <00:05:17.895>it

96
00:05:18.025 --> 00:05:20.905
<00:05:18.025>because <00:05:18.200>it <00:05:18.375>just <00:05:18.549>creates <00:05:18.724>headaches, <00:05:18.900>uh, <00:05:19.075>thinking <00:05:19.250>about <00:05:19.424>this.

97
00:05:22.845 --> 00:05:26.145
<00:05:22.845>But <00:05:22.972>how <00:05:23.099>did <00:05:23.226>we <00:05:23.354>implement <00:05:23.481>this <00:05:23.608>when <00:05:23.735>we <00:05:23.863>realized <00:05:23.990>we <00:05:24.117>have <00:05:24.245>to,

98
00:05:26.685 --> 00:05:30.105
<00:05:26.685>so <00:05:26.840>we <00:05:26.996>have <00:05:27.151>the <00:05:27.307>user <00:05:27.462>that <00:05:27.618>connects <00:05:27.773>to <00:05:27.929>A <00:05:28.085>CDN,

99
00:05:30.125 --> 00:05:32.945
<00:05:30.125>and <00:05:30.300>then <00:05:30.475>as <00:05:30.650>the <00:05:30.825>user <00:05:31.000>arrives <00:05:31.175>at <00:05:31.350>our <00:05:31.525>monolith,

100
00:05:32.945 --> 00:05:37.305
<00:05:32.945>and <00:05:33.100>there <00:05:33.256>we <00:05:33.411>have <00:05:33.567>a <00:05:33.722>PHP <00:05:33.878>function <00:05:34.033>check <00:05:34.189>IP <00:05:34.344>cookie,

101
00:05:37.485 --> 00:05:40.345
<00:05:37.485>and <00:05:37.718>that <00:05:37.951>looks <00:05:38.185>for <00:05:38.418>a <00:05:38.651>SSO <00:05:38.885>cookie

102
00:05:40.885 --> 00:05:44.905
<00:05:40.885>in <00:05:41.025>which <00:05:41.164>we <00:05:41.305>save <00:05:41.445>the <00:05:41.585>IP <00:05:41.724>address <00:05:41.865>of <00:05:42.005>an <00:05:42.145>authenticated <00:05:42.284>user.

103
00:05:45.565 --> 00:05:48.305
<00:05:45.565>If <00:05:45.705>the <00:05:45.844>cookie <00:05:45.985>isn't <00:05:46.125>there <00:05:46.265>or <00:05:46.405>the <00:05:46.545>IP <00:05:46.685>address <00:05:46.825>doesn't <00:05:46.965>match,

104
00:05:48.365 --> 00:05:50.065
<00:05:48.365>and <00:05:48.598>this <00:05:48.831>will <00:05:49.065>become <00:05:49.298>important <00:05:49.531>later <00:05:49.765>on,

105
00:05:50.885 --> 00:05:53.865
<00:05:50.885>we <00:05:51.060>hand <00:05:51.235>this <00:05:51.409>request <00:05:51.585>off <00:05:51.760>to <00:05:51.935>a <00:05:52.110>Lambda <00:05:52.284>function.

106
00:05:54.405 --> 00:05:57.765
<00:05:54.405>We <00:05:54.544>call <00:05:54.684>it <00:05:54.825>remix, <00:05:54.965>SSO, <00:05:55.104>that <00:05:55.244>then <00:05:55.385>talks <00:05:55.525>to <00:05:55.664>Author <00:05:55.804>Zero.

107
00:05:58.555 --> 00:06:02.005
<00:05:58.555>That <00:05:58.730>goes <00:05:58.905>to <00:05:59.080>another <00:05:59.255>Lambda <00:05:59.430>function, <00:05:59.605>which <00:05:59.780>finally <00:05:59.955>connects

108
00:06:02.005 --> 00:06:03.325
<00:06:02.005>to <00:06:02.401>the <00:06:02.796>user <00:06:03.193>database.

109
00:06:03.945 --> 00:06:07.765
<00:06:03.945>And <00:06:04.072>then <00:06:04.199>all <00:06:04.326>of <00:06:04.454>this <00:06:04.581>goes <00:06:04.708>back <00:06:04.835>to <00:06:04.963>the <00:06:05.090>remix. <00:06:05.217>SSO <00:06:05.344>Lambda.

110
00:06:08.705 --> 00:06:11.765
<00:06:08.705>We <00:06:08.938>write <00:06:09.171>some <00:06:09.405>cookies <00:06:09.638>like <00:06:09.871>this <00:06:10.104>one

111
00:06:11.985 --> 00:06:15.125
<00:06:11.985>and <00:06:12.160>this <00:06:12.335>one <00:06:12.510>for <00:06:12.685>caching, <00:06:12.860>so <00:06:13.035>we <00:06:13.210>don't <00:06:13.385>have

112
00:06:15.125 --> 00:06:16.285
<00:06:15.125>to <00:06:15.333>do <00:06:15.542>this <00:06:15.751>all <00:06:15.960>the <00:06:16.169>time.

113
00:06:17.145 --> 00:06:19.405
<00:06:17.145>And <00:06:17.344>then <00:06:17.544>we <00:06:17.745>redirect <00:06:17.945>the <00:06:18.145>user <00:06:18.344>again, <00:06:18.544>say,

114
00:06:19.545 --> 00:06:22.805
<00:06:19.545>please <00:06:19.720>try <00:06:19.895>again <00:06:20.070>now <00:06:20.245>with <00:06:20.420>your <00:06:20.595>cookies <00:06:20.770>in <00:06:20.945>place.

115
00:06:23.265 --> 00:06:24.925
<00:06:23.265>And <00:06:23.498>then <00:06:23.731>the <00:06:23.965>request <00:06:24.198>is <00:06:24.431>much <00:06:24.664>faster

116
00:06:24.925 --> 00:06:28.525
<00:06:24.925>because <00:06:25.158>then <00:06:25.391>this <00:06:25.625>check <00:06:25.858>IP <00:06:26.091>cookie, <00:06:26.325>uh,

117
00:06:28.585 --> 00:06:31.965
<00:06:28.585>thingy <00:06:28.724>will <00:06:28.864>look <00:06:29.005>into <00:06:29.145>the <00:06:29.284>cookie <00:06:29.424>and <00:06:29.565>see <00:06:29.705>yeah, <00:06:29.844>the <00:06:29.984>user

118
00:06:32.265 --> 00:06:33.965
<00:06:32.265>or <00:06:32.498>the <00:06:32.731>IP <00:06:32.965>address <00:06:33.198>in <00:06:33.431>the <00:06:33.664>cookie

119
00:06:34.545 --> 00:06:37.405
<00:06:34.545>and <00:06:34.685>the <00:06:34.825>IP <00:06:34.965>address <00:06:35.105>that <00:06:35.245>the <00:06:35.385>user <00:06:35.525>arrived <00:06:35.665>here <00:06:35.805>with <00:06:35.945>matches.

120
00:06:37.745 --> 00:06:39.765
<00:06:37.745>And <00:06:37.920>that's <00:06:38.095>how <00:06:38.270>we <00:06:38.445>determined <00:06:38.620>they <00:06:38.795>are <00:06:38.970>logged <00:06:39.145>in.

121
00:06:42.265 --> 00:06:45.205
<00:06:42.265>So <00:06:42.498>our <00:06:42.731>task <00:06:42.965>was <00:06:43.198>to <00:06:43.431>migrate <00:06:43.664>all

122
00:06:45.205 --> 00:06:46.965
<00:06:45.205>of <00:06:45.484>these <00:06:45.765>11 <00:06:46.044>different <00:06:46.325>logins <00:06:46.604>methods.

123
00:06:47.345 --> 00:06:49.485
<00:06:47.345>And <00:06:47.578>so <00:06:47.811>our <00:06:48.045>preparation <00:06:48.278>was <00:06:48.511>really <00:06:48.745>great.

124
00:06:49.665 --> 00:06:53.725
<00:06:49.665>We, <00:06:49.898>we <00:06:50.131>switched <00:06:50.365>10 <00:06:50.598>login <00:06:50.831>methods, <00:06:51.065>two

125
00:06:53.745 --> 00:06:55.525
<00:06:53.745>or <00:06:54.025>zero <00:06:54.305>away <00:06:54.585>from <00:06:54.865>the <00:06:55.145>monolith.

126
00:06:55.525 --> 00:06:56.605
<00:06:55.525>It <00:06:55.768>was <00:06:56.010>a <00:06:56.254>great <00:06:56.497>success.

127
00:06:57.305 --> 00:07:00.565
<00:06:57.305>Um, <00:06:57.480>we <00:06:57.655>were <00:06:57.830>kind <00:06:58.005>of <00:06:58.180>hiding <00:06:58.355>these <00:06:58.530>login <00:06:58.705>functionalities

128
00:07:00.675 --> 00:07:03.365
<00:07:00.675>between <00:07:00.955>ments, <00:07:01.235>uh, <00:07:01.515>features, <00:07:01.795>which <00:07:02.075>is

129
00:07:04.145 --> 00:07:07.405
<00:07:04.145>we <00:07:04.261>set <00:07:04.378>up <00:07:04.495>a <00:07:04.611>fixed <00:07:04.728>IP <00:07:04.844>for <00:07:04.961>us <00:07:05.078>with <00:07:05.195>a <00:07:05.311>tunnel <00:07:05.428>to <00:07:05.544>test

130
00:07:07.465 --> 00:07:10.165
<00:07:07.465>and <00:07:07.640>everything <00:07:07.815>always <00:07:07.989>worked, <00:07:08.164>and <00:07:08.340>we <00:07:08.515>were <00:07:08.690>really <00:07:08.864>happy

131
00:07:10.385 --> 00:07:11.965
<00:07:10.385>and <00:07:10.664>we <00:07:10.945>wanted <00:07:11.224>to <00:07:11.505>go <00:07:11.784>live.

132
00:07:12.785 --> 00:07:15.485
<00:07:12.785>And <00:07:12.960>so <00:07:13.135>this <00:07:13.310>was <00:07:13.485>at <00:07:13.660>the <00:07:13.835>end <00:07:14.010>of <00:07:14.185>November.

133
00:07:16.265 --> 00:07:18.765
<00:07:16.265>We <00:07:16.544>did <00:07:16.825>our <00:07:17.104>first <00:07:17.385>live <00:07:17.664>deployment,

134
00:07:18.985 --> 00:07:22.045
<00:07:18.985>or <00:07:19.125>our <00:07:19.265>first <00:07:19.405>attempt <00:07:19.545>of <00:07:19.685>a <00:07:19.825>live <00:07:19.965>deployment <00:07:20.105>of <00:07:20.245>this <00:07:20.385>thing.

135
00:07:22.705 --> 00:07:25.805
<00:07:22.705>You <00:07:22.860>can <00:07:23.016>see <00:07:23.171>the <00:07:23.327>team <00:07:23.482>there <00:07:23.638>in <00:07:23.793>the <00:07:23.949>group <00:07:24.104>call.

136
00:07:26.905 --> 00:07:31.805
<00:07:26.905>Um, <00:07:27.138>but <00:07:27.371>then <00:07:27.604>our <00:07:27.838>website <00:07:28.071>got <00:07:28.304>really,

137
00:07:31.805 --> 00:07:35.285
<00:07:31.805>really <00:07:32.085>slow <00:07:32.365>and <00:07:32.645>everything <00:07:32.925>was <00:07:33.205>like

138
00:07:36.345 --> 00:07:39.765
<00:07:36.345>almost <00:07:36.472>coming <00:07:36.599>to <00:07:36.726>a <00:07:36.854>halt, <00:07:36.981>and <00:07:37.108>we <00:07:37.235>had <00:07:37.363>a <00:07:37.490>huge <00:07:37.617>error <00:07:37.745>spike.

139
00:07:41.455 --> 00:07:44.555
<00:07:41.455>And <00:07:41.610>so <00:07:41.766>looking <00:07:41.921>at <00:07:42.077>the <00:07:42.232>error <00:07:42.388>spike, <00:07:42.543>it <00:07:42.699>was <00:07:42.854>really,

140
00:07:44.855 --> 00:07:48.635
<00:07:44.855>really <00:07:45.321>big, <00:07:45.788>like <00:07:46.255>110

141
00:07:49.195 --> 00:07:52.555
<00:07:49.195>K <00:07:49.350>errors, <00:07:49.506>um, <00:07:49.661>in <00:07:49.817>a <00:07:49.972>very <00:07:50.128>small <00:07:50.283>amount <00:07:50.439>of <00:07:50.594>time.

142
00:07:52.655 --> 00:07:56.915
<00:07:52.655>So <00:07:52.782>we <00:07:52.909>said <00:07:53.036>we <00:07:53.164>need <00:07:53.291>to <00:07:53.418>roll <00:07:53.545>back. <00:07:53.673>And <00:07:53.800>so <00:07:53.927>we <00:07:54.054>did.

143
00:07:58.865 --> 00:08:00.915
<00:07:58.865>Then <00:07:59.098>we <00:07:59.331>went <00:07:59.565>into <00:07:59.798>the <00:08:00.031>analysis <00:08:00.265>phase,

144
00:08:01.295 --> 00:08:04.235
<00:08:01.295>and <00:08:01.435>then <00:08:01.575>we <00:08:01.715>saw, <00:08:01.855>we <00:08:01.995>looked <00:08:02.135>at <00:08:02.275>our <00:08:02.415>Lambda <00:08:02.555>spin <00:08:02.695>ups

145
00:08:04.855 --> 00:08:06.195
<00:08:04.855>and <00:08:05.257>we <00:08:05.659>saw, <00:08:06.061>whoa,

146
00:08:06.425 --> 00:08:08.995
<00:08:06.425>they're <00:08:06.658>capped <00:08:06.891>30 <00:08:07.125>seconds <00:08:07.358>they <00:08:07.591>were <00:08:07.825>running,

147
00:08:09.335 --> 00:08:11.595
<00:08:09.335>and <00:08:09.510>then <00:08:09.685>they <00:08:09.859>were, <00:08:10.034>they <00:08:10.210>were <00:08:10.385>killed <00:08:10.560>by <00:08:10.734>AWS,

148
00:08:11.595 --> 00:08:13.795
<00:08:11.595>which <00:08:11.828>is <00:08:12.061>pretty <00:08:12.295>much <00:08:12.528>the <00:08:12.761>default <00:08:12.995>setup.

149
00:08:15.015 --> 00:08:18.355
<00:08:15.015>So <00:08:15.155>we <00:08:15.294>looked <00:08:15.435>at <00:08:15.575>our <00:08:15.715>architecture, <00:08:15.854>what <00:08:15.995>could <00:08:16.135>go <00:08:16.275>wrong <00:08:16.414>here?

150
00:08:19.615 --> 00:08:23.995
<00:08:19.615>And <00:08:19.755>we <00:08:19.895>focused <00:08:20.035>on <00:08:20.175>this <00:08:20.315>thing, <00:08:20.455>this <00:08:20.595>user <00:08:20.735>db, <00:08:20.875>um, <00:08:21.015>lookup.

151
00:08:23.995 --> 00:08:28.555
<00:08:23.995>It's <00:08:24.135>a <00:08:24.275>MySQL <00:08:24.415>database. <00:08:24.555>And <00:08:24.695>so <00:08:24.835>what <00:08:24.975>does <00:08:25.115>it <00:08:25.255>actually <00:08:25.395>do?

152
00:08:28.695 --> 00:08:33.275
<00:08:28.695>So <00:08:28.811>an <00:08:28.928>IP <00:08:29.045>address, <00:08:29.161>um, <00:08:29.278>arrives <00:08:29.395>here, <00:08:29.511>we <00:08:29.628>look <00:08:29.745>it <00:08:29.861>up. <00:08:29.978>Oh <00:08:30.094>yeah.

153
00:08:33.275 --> 00:08:35.915
<00:08:33.275>And <00:08:33.430>then <00:08:33.586>in, <00:08:33.741>in, <00:08:33.897>in, <00:08:34.052>in <00:08:34.208>the <00:08:34.363>user <00:08:34.519>database, <00:08:34.674>we,

154
00:08:36.215 --> 00:08:39.115
<00:08:36.215>we <00:08:36.415>save <00:08:36.615>side <00:08:36.815>arranges <00:08:37.015>for, <00:08:37.215>for <00:08:37.415>our <00:08:37.615>customers.

155
00:08:39.895 --> 00:08:42.555
<00:08:39.895>And <00:08:40.069>so <00:08:40.245>in <00:08:40.419>a <00:08:40.595>matter <00:08:40.770>of <00:08:40.944>milliseconds, <00:08:41.120>we <00:08:41.294>have

156
00:08:42.555 --> 00:08:45.675
<00:08:42.554>to <00:08:42.755>determine <00:08:42.954>does <00:08:43.155>this <00:08:43.354>IP <00:08:43.554>address <00:08:43.755>match <00:08:43.954>any

157
00:08:45.735 --> 00:08:47.195
<00:08:45.735>of <00:08:46.173>those <00:08:46.611>side <00:08:47.049>arranges?

158
00:08:48.535 --> 00:08:52.835
<00:08:48.535>And <00:08:48.675>we <00:08:48.814>did <00:08:48.954>this, <00:08:49.094>well, <00:08:49.235>we <00:08:49.375>found <00:08:49.515>this <00:08:49.655>on <00:08:49.795>Stack <00:08:49.935>overflow,

159
00:08:52.835 --> 00:08:54.955
<00:08:52.835>that's <00:08:52.975>how <00:08:53.115>you <00:08:53.255>do <00:08:53.395>it, <00:08:53.535>because <00:08:53.675>we <00:08:53.815>thought <00:08:53.955>maybe <00:08:54.095>we <00:08:54.235>can

160
00:08:55.045 --> 00:08:57.205
<00:08:55.045>improve <00:08:55.200>it, <00:08:55.356>and <00:08:55.511>we <00:08:55.667>just <00:08:55.822>didn't <00:08:55.978>do <00:08:56.133>it <00:08:56.289>very <00:08:56.444>well.

161
00:08:57.715 --> 00:09:01.685
<00:08:57.715>Well, <00:08:57.855>turns <00:08:57.995>out <00:08:58.135>the <00:08:58.275>same <00:08:58.415>code, <00:08:58.555>um, <00:08:58.695>is <00:08:58.835>in <00:08:58.975>our <00:08:59.115>code.

162
00:09:01.825 --> 00:09:05.565
<00:09:01.825>So <00:09:01.965>the <00:09:02.105>person <00:09:02.245>who <00:09:02.385>initially <00:09:02.525>implemented <00:09:02.665>it <00:09:02.805>at <00:09:02.945>our <00:09:03.085>site <00:09:03.225>just

163
00:09:05.565 --> 00:09:07.165
<00:09:05.565>copied <00:09:05.915>it <00:09:06.265>from <00:09:06.615>Stack <00:09:06.965>Overflow.

164
00:09:07.455 --> 00:09:12.125
<00:09:07.455>Great. <00:09:07.655>So <00:09:07.855>we <00:09:08.055>thought, <00:09:08.255>let's <00:09:08.455>cap <00:09:08.655>this <00:09:08.855>connection,

165
00:09:12.325 --> 00:09:13.765
<00:09:12.325>replaces <00:09:12.973>Bio <00:09:13.621>Redis,

166
00:09:13.945 --> 00:09:17.765
<00:09:13.945>and <00:09:14.085>really <00:09:14.225>just <00:09:14.365>then <00:09:14.505>have <00:09:14.645>a <00:09:14.785>quick <00:09:14.925>Redis <00:09:15.065>lookup <00:09:15.205>with <00:09:15.345>really

167
00:09:18.465 --> 00:09:21.885
<00:09:18.465>IP <00:09:18.698>address <00:09:18.931>and <00:09:19.165>customer <00:09:19.398>no <00:09:19.631>cider <00:09:19.865>lookups.

168
00:09:22.625 --> 00:09:24.805
<00:09:22.625>Um, <00:09:23.325>and <00:09:24.025>so

169
00:09:26.025 --> 00:09:27.765
<00:09:26.025>our <00:09:26.305>new <00:09:26.584>architecture <00:09:26.865>looked <00:09:27.145>like <00:09:27.425>this,

170
00:09:28.345 --> 00:09:30.365
<00:09:28.345>and <00:09:28.625>we <00:09:28.905>were <00:09:29.185>very <00:09:29.465>confident <00:09:29.745>again,

171
00:09:30.465 --> 00:09:32.565
<00:09:30.465>but <00:09:30.640>then <00:09:30.815>we <00:09:30.990>thought <00:09:31.165>maybe <00:09:31.340>we <00:09:31.515>should <00:09:31.690>look <00:09:31.865>at

172
00:09:32.785 --> 00:09:34.365
<00:09:32.785>how <00:09:33.064>much <00:09:33.344>requests <00:09:33.625>we <00:09:33.905>actually <00:09:34.185>get.

173
00:09:34.385 --> 00:09:35.605
<00:09:34.385>We <00:09:34.604>didn't <00:09:34.824>look <00:09:35.043>at <00:09:35.263>that <00:09:35.483>before.

174
00:09:36.065 --> 00:09:40.405
<00:09:36.065>So <00:09:36.220>we <00:09:36.376>have <00:09:36.531>72 <00:09:36.687>million <00:09:36.842>IP <00:09:36.998>addresses <00:09:37.153>now <00:09:37.309>in <00:09:37.465>Redis,

175
00:09:40.905 --> 00:09:44.045
<00:09:40.905>and <00:09:41.079>we <00:09:41.255>get <00:09:41.430>hit <00:09:41.605>with <00:09:41.780>120 <00:09:41.954>requests <00:09:42.130>per <00:09:42.305>second.

176
00:09:44.635 --> 00:09:48.285
<00:09:44.635>Okay, <00:09:44.775>we <00:09:44.915>thought <00:09:45.055>Redis <00:09:45.194>will <00:09:45.335>handle <00:09:45.475>it. <00:09:45.615>Alright, <00:09:45.755>off <00:09:45.895>we <00:09:46.035>go.

177
00:09:48.295 --> 00:09:52.645
<00:09:48.295>Deployment <00:09:48.495>number <00:09:48.694>two, <00:09:48.895>we <00:09:49.094>again, <00:09:49.295>were <00:09:49.495>very <00:09:49.694>confident,

178
00:09:53.265 --> 00:09:55.365
<00:09:53.265>but <00:09:53.615>then <00:09:53.965>again, <00:09:54.314>error <00:09:54.665>spike.

179
00:09:55.905 --> 00:09:59.805
<00:09:55.905>And <00:09:56.060>we <00:09:56.216>were <00:09:56.371>like, <00:09:56.527>no, <00:09:56.682>wasn't <00:09:56.838>that <00:09:56.993>bad <00:09:57.149>as <00:09:57.305>before,

180
00:09:59.985 --> 00:10:03.245
<00:09:59.985>but <00:10:00.218>rollback <00:10:00.451>number <00:10:00.685>two, <00:10:00.918>there <00:10:01.151>we <00:10:01.385>go.

181
00:10:04.945 --> 00:10:07.885
<00:10:04.945>And <00:10:05.120>so <00:10:05.295>then <00:10:05.470>further <00:10:05.645>looking <00:10:05.820>into <00:10:05.995>it <00:10:06.170>and, <00:10:06.345>and,

182
00:10:07.905 --> 00:10:11.125
<00:10:07.905>and <00:10:08.079>having <00:10:08.255>a <00:10:08.430>chat <00:10:08.605>with, <00:10:08.780>um, <00:10:08.954>with <00:10:09.130>some <00:10:09.305>customers.

183
00:10:11.225 --> 00:10:15.725
<00:10:11.225>We, <00:10:11.380>we <00:10:11.536>always <00:10:11.691>saw <00:10:11.847>this <00:10:12.002>page <00:10:12.158>and <00:10:12.313>it's <00:10:12.469>very <00:10:12.625>dubious.

184
00:10:15.795 --> 00:10:18.365
<00:10:15.795>It's <00:10:15.995>like <00:10:16.194>says, <00:10:16.395>yeah, <00:10:16.594>an <00:10:16.795>unexpected <00:10:16.995>error <00:10:17.194>occurred.

185
00:10:19.105 --> 00:10:21.285
<00:10:19.105>You <00:10:19.305>may <00:10:19.505>have <00:10:19.705>pressed <00:10:19.905>the <00:10:20.105>back <00:10:20.305>button <00:10:20.505>refreshed

186
00:10:21.285 --> 00:10:23.205
<00:10:21.285>during <00:10:21.518>login <00:10:21.751>open, <00:10:21.985>too <00:10:22.218>many <00:10:22.451>login <00:10:22.685>dialogues

187
00:10:23.205 --> 00:10:24.525
<00:10:23.205>or <00:10:23.502>disabled <00:10:23.799>cookie <00:10:24.096>usage <00:10:24.393>since

188
00:10:24.525 --> 00:10:25.645
<00:10:24.525>we <00:10:24.776>couldn't <00:10:25.029>find <00:10:25.281>your <00:10:25.533>session.

189
00:10:26.425 --> 00:10:29.325
<00:10:26.425>Please <00:10:26.580>try <00:10:26.736>again <00:10:26.891>letter <00:10:27.047>if <00:10:27.202>the <00:10:27.358>problem <00:10:27.513>persists, <00:10:27.669>blah, <00:10:27.824>blah,

190
00:10:29.325 --> 00:10:32.005
<00:10:29.325>blah, <00:10:29.500>it <00:10:29.675>doesn't <00:10:29.850>give <00:10:30.025>us <00:10:30.200>any <00:10:30.375>value <00:10:30.550>at <00:10:30.725>all.

191
00:10:34.785 --> 00:10:37.165
<00:10:34.785>But <00:10:34.959>then <00:10:35.135>it <00:10:35.310>was <00:10:35.485>time <00:10:35.660>for <00:10:35.834>Christmas <00:10:36.010>for <00:10:36.185>us

192
00:10:37.265 --> 00:10:39.885
<00:10:37.265>and <00:10:37.615>everyone <00:10:37.965>was, <00:10:38.314>um, <00:10:38.665>relaxing.

193
00:10:41.065 --> 00:10:44.405
<00:10:41.065>And <00:10:41.192>after <00:10:41.319>that <00:10:41.446>we, <00:10:41.574>we <00:10:41.701>sat <00:10:41.828>down <00:10:41.955>and <00:10:42.083>we <00:10:42.210>did <00:10:42.337>a <00:10:42.465>pre-mortem

194
00:10:44.405 --> 00:10:47.805
<00:10:44.405>and <00:10:44.560>we <00:10:44.716>thought <00:10:44.871>about <00:10:45.027>what <00:10:45.182>could <00:10:45.338>go <00:10:45.493>wrong <00:10:45.649>this <00:10:45.805>time

195
00:10:47.835 --> 00:10:48.925
<00:10:47.835>when <00:10:48.080>we <00:10:48.325>try <00:10:48.570>it <00:10:48.815>again.

196
00:10:49.825 --> 00:10:52.605
<00:10:49.825>So <00:10:50.000>we <00:10:50.175>looked <00:10:50.350>at <00:10:50.525>failure <00:10:50.700>scenarios, <00:10:50.875>we <00:10:51.050>looked <00:10:51.225>at

197
00:10:52.785 --> 00:10:56.165
<00:10:52.785>how <00:10:52.940>do <00:10:53.096>we <00:10:53.251>want <00:10:53.407>to <00:10:53.562>react <00:10:53.718>to <00:10:53.873>these <00:10:54.029>failure <00:10:54.185>scenarios?

198
00:10:56.825 --> 00:10:59.925
<00:10:56.825>And <00:10:56.980>we <00:10:57.136>really <00:10:57.291>said, <00:10:57.447>this <00:10:57.602>time <00:10:57.758>we <00:10:57.913>don't <00:10:58.069>draw <00:10:58.225>back.

199
00:11:00.505 --> 00:11:04.085
<00:11:00.505>We <00:11:00.971>fail <00:11:01.438>forward. <00:11:01.905>Alright?

200
00:11:04.505 --> 00:11:08.885
<00:11:04.505>So <00:11:04.705>production <00:11:04.905>deployment <00:11:05.105>number <00:11:05.305>three, <00:11:05.505>again <00:11:05.705>for <00:11:05.905>us,

201
00:11:08.985 --> 00:11:11.805
<00:11:08.985>for <00:11:09.125>our <00:11:09.265>setup <00:11:09.405>with <00:11:09.545>our <00:11:09.685>fixed <00:11:09.825>IP <00:11:09.965>address <00:11:10.105>through <00:11:10.245>the <00:11:10.385>tunnel,

202
00:11:11.815 --> 00:11:13.325
<00:11:11.815>everything <00:11:12.494>always <00:11:13.174>worked.

203
00:11:13.385 --> 00:11:15.845
<00:11:13.385>No <00:11:13.540>matter <00:11:13.696>what <00:11:13.851>we <00:11:14.007>tried, <00:11:14.162>we <00:11:14.318>couldn't <00:11:14.473>reproduce <00:11:14.629>this <00:11:14.785>error.

204
00:11:17.665 --> 00:11:20.525
<00:11:17.665>So <00:11:17.865>we <00:11:18.064>deployed <00:11:18.265>again <00:11:18.464>with <00:11:18.665>almost <00:11:18.865>no <00:11:19.064>changes.

205
00:11:21.865 --> 00:11:24.645
<00:11:21.865>And <00:11:22.145>again, <00:11:22.425>large <00:11:22.705>error <00:11:22.985>spike, <00:11:23.265>right?

206
00:11:25.705 --> 00:11:27.925
<00:11:25.705>But <00:11:25.905>we <00:11:26.105>don't <00:11:26.305>roll <00:11:26.505>back. <00:11:26.705>We <00:11:26.905>fail <00:11:27.105>forward.

207
00:11:28.305 --> 00:11:30.005
<00:11:28.305>And <00:11:28.538>we <00:11:28.771>looked <00:11:29.005>into <00:11:29.238>our <00:11:29.471>myro <00:11:29.704>board

208
00:11:30.705 --> 00:11:32.365
<00:11:30.705>and <00:11:31.055>looked <00:11:31.405>at, <00:11:31.755>yeah, <00:11:32.105>what's,

209
00:11:32.705 --> 00:11:34.605
<00:11:32.705>did <00:11:32.938>we <00:11:33.171>write <00:11:33.405>down <00:11:33.638>anything <00:11:33.871>about <00:11:34.105>this?

210
00:11:34.785 --> 00:11:39.165
<00:11:34.785>And <00:11:34.925>yeah, <00:11:35.064>we <00:11:35.204>did. <00:11:35.344>Things <00:11:35.485>will <00:11:35.625>start <00:11:35.765>to <00:11:35.905>fail <00:11:36.045>only, <00:11:36.185>um,

211
00:11:40.505 --> 00:11:42.885
<00:11:40.505>at <00:11:40.785>scale, <00:11:41.064>which <00:11:41.345>was <00:11:41.625>pretty <00:11:41.905>true.

212
00:11:43.625 --> 00:11:45.445
<00:11:43.625>And <00:11:43.975>the <00:11:44.325>return <00:11:44.675>of <00:11:45.025>the,

213
00:11:45.465 --> 00:11:47.765
<00:11:45.465>you <00:11:45.665>may <00:11:45.865>have <00:11:46.065>pressed <00:11:46.265>the <00:11:46.465>back <00:11:46.665>button <00:11:46.865>error.

214
00:11:48.665 --> 00:11:51.285
<00:11:48.665>That's, <00:11:48.805>and <00:11:48.944>so <00:11:49.084>then <00:11:49.224>we <00:11:49.365>also <00:11:49.505>looked, <00:11:49.645>yeah, <00:11:49.785>what <00:11:49.925>do <00:11:50.064>we,

215
00:11:51.285 --> 00:11:52.485
<00:11:51.285>what <00:11:51.439>did <00:11:51.593>we <00:11:51.747>say <00:11:51.902>we <00:11:52.056>want <00:11:52.210>to <00:11:52.365>do?

216
00:11:53.025 --> 00:11:55.325
<00:11:53.025>Yes, <00:11:53.199>we <00:11:53.375>want <00:11:53.550>to <00:11:53.725>reach <00:11:53.900>out <00:11:54.074>to <00:11:54.250>the <00:11:54.425>customers

217
00:11:55.465 --> 00:11:57.245
<00:11:55.465>who <00:11:55.931>are <00:11:56.398>experiencing <00:11:56.865>this

218
00:11:57.705 --> 00:12:00.045
<00:11:57.705>and <00:11:57.905>kind <00:11:58.105>of <00:11:58.305>do <00:11:58.505>a <00:11:58.705>screen <00:11:58.905>sharing <00:11:59.105>session,

219
00:12:00.075 --> 00:12:01.365
<00:12:00.075>look <00:12:00.365>at <00:12:00.655>their <00:12:00.945>network <00:12:01.236>tab,

220
00:12:01.365 --> 00:12:02.965
<00:12:01.365>what's <00:12:01.598>going <00:12:01.831>on <00:12:02.065>there <00:12:02.298>to <00:12:02.531>find <00:12:02.765>out.

221
00:12:05.625 --> 00:12:10.445
<00:12:05.625>And <00:12:05.825>then <00:12:06.025>finally, <00:12:06.225>our <00:12:06.425>customer <00:12:06.625>success <00:12:06.825>managers <00:12:07.025>manage

222
00:12:10.505 --> 00:12:14.925
<00:12:10.505>to <00:12:10.632>get <00:12:10.759>a <00:12:10.886>very <00:12:11.014>nice <00:12:11.141>lady <00:12:11.268>from <00:12:11.395>from <00:12:11.523>Brussels <00:12:11.650>on <00:12:11.777>the <00:12:11.905>line

223
00:12:15.025 --> 00:12:18.285
<00:12:15.025>who <00:12:15.165>had <00:12:15.305>this <00:12:15.444>problem, <00:12:15.584>who <00:12:15.725>then <00:12:15.865>shared <00:12:16.005>the <00:12:16.145>screen <00:12:16.285>and, <00:12:16.425>and,

224
00:12:18.345 --> 00:12:20.565
<00:12:18.345>and, <00:12:18.545>and <00:12:18.745>told <00:12:18.945>us <00:12:19.145>like <00:12:19.345>what <00:12:19.545>she <00:12:19.745>sees.

225
00:12:20.565 --> 00:12:22.405
<00:12:20.565>And <00:12:20.740>we <00:12:20.915>were <00:12:21.090>able <00:12:21.265>to <00:12:21.440>see <00:12:21.615>the <00:12:21.790>network <00:12:21.965>tab

226
00:12:22.405 --> 00:12:23.965
<00:12:22.405>and <00:12:22.755>was, <00:12:23.105>it <00:12:23.454>was <00:12:23.805>great.

227
00:12:25.025 --> 00:12:27.125
<00:12:25.025>And <00:12:26.425>yeah,

228
00:12:27.155 --> 00:12:31.605
<00:12:27.155>then <00:12:27.355>unfortunately <00:12:27.555>also <00:12:27.755>another <00:12:27.954>team <00:12:28.155>deployed <00:12:28.355>something <00:12:28.555>like

229
00:12:31.665 --> 00:12:34.125
<00:12:31.665>the <00:12:31.839>frame <00:12:32.015>of <00:12:32.189>our <00:12:32.365>site <00:12:32.540>in <00:12:32.714>the <00:12:32.890>wrong <00:12:33.064>way.

230
00:12:34.545 --> 00:12:37.205
<00:12:34.545>So <00:12:34.672>all <00:12:34.799>of <00:12:34.926>a <00:12:35.054>sudden <00:12:35.181>our, <00:12:35.308>our <00:12:35.435>page <00:12:35.563>even <00:12:35.690>looked <00:12:35.817>like <00:12:35.944>this

231
00:12:37.205 --> 00:12:39.645
<00:12:37.205>and <00:12:37.405>we <00:12:37.605>thought <00:12:37.805>we <00:12:38.005>were <00:12:38.205>to <00:12:38.405>blame, <00:12:38.605>but,

232
00:12:39.785 --> 00:12:41.085
<00:12:39.785>but <00:12:39.980>it <00:12:40.175>was <00:12:40.370>really <00:12:40.565>the <00:12:40.760>other <00:12:40.955>team,

233
00:12:41.085 --> 00:12:42.485
<00:12:41.085>but <00:12:41.337>it <00:12:41.589>was <00:12:41.841>all <00:12:42.093>coming <00:12:42.345>together.

234
00:12:42.865 --> 00:12:47.645
<00:12:42.865>It <00:12:43.215>was <00:12:43.565>horrible. <00:12:43.915>So <00:12:44.265>we

235
00:12:47.885 --> 00:12:51.285
<00:12:47.885>deployed <00:12:48.085>26 <00:12:48.285>times, <00:12:48.485>um, <00:12:48.685>in <00:12:48.885>four <00:12:49.085>days, <00:12:49.285>um,

236
00:12:51.345 --> 00:12:52.365
<00:12:51.345>to <00:12:51.528>get <00:12:51.712>rid <00:12:51.895>of <00:12:52.079>this <00:12:52.263>error.

237
00:12:52.765 --> 00:12:55.045
<00:12:52.765>Normally <00:12:52.998>we <00:12:53.231>deploy <00:12:53.465>once <00:12:53.698>every <00:12:53.931>two <00:12:54.165>weeks.

238
00:12:55.705 --> 00:13:00.205
<00:12:55.705>So <00:12:55.985>this <00:12:56.265>was <00:12:56.545>continuous <00:12:56.825>deployment <00:12:57.105>unexpectedly.

239
00:13:00.865 --> 00:13:02.605
<00:13:00.865>And <00:13:01.065>we <00:13:01.265>had <00:13:01.465>kind <00:13:01.665>of <00:13:01.865>eight <00:13:02.065>customer <00:13:02.265>calls

240
00:13:02.605 --> 00:13:03.805
<00:13:02.605>that <00:13:02.875>were <00:13:03.145>really <00:13:03.415>helping <00:13:03.685>us

241
00:13:04.865 --> 00:13:08.925
<00:13:04.865>and <00:13:05.020>then, <00:13:05.176>um, <00:13:05.331>to <00:13:05.487>really <00:13:05.642>see <00:13:05.798>what <00:13:05.953>was <00:13:06.109>going <00:13:06.265>on.

242
00:13:09.025 --> 00:13:11.445
<00:13:09.025>And <00:13:09.258>then <00:13:09.491>we <00:13:09.725>understood <00:13:09.958>what <00:13:10.191>was <00:13:10.425>happening.

243
00:13:13.305 --> 00:13:17.405
<00:13:13.305>So <00:13:13.444>I <00:13:13.584>told <00:13:13.724>you <00:13:13.864>here, <00:13:14.005>we <00:13:14.145>check <00:13:14.285>for <00:13:14.425>the <00:13:14.564>IP <00:13:14.704>address

244
00:13:17.405 --> 00:13:18.405
<00:13:17.405>that <00:13:17.704>we <00:13:18.005>are <00:13:18.305>receiving,

245
00:13:19.705 --> 00:13:24.005
<00:13:19.705>and <00:13:19.845>here <00:13:19.985>we <00:13:20.125>are <00:13:20.265>also, <00:13:20.405>again <00:13:20.545>checking <00:13:20.685>for <00:13:20.825>the <00:13:20.965>IP <00:13:21.105>address

246
00:13:24.435 --> 00:13:28.005
<00:13:24.435>that <00:13:24.574>we <00:13:24.714>are <00:13:24.854>receiving <00:13:24.994>since <00:13:25.135>we <00:13:25.275>are <00:13:25.415>in <00:13:25.555>a <00:13:25.694>transition <00:13:25.834>phase,

247
00:13:28.655 --> 00:13:31.605
<00:13:28.655>these <00:13:28.810>two <00:13:28.966>things, <00:13:29.121>the <00:13:29.277>PHP <00:13:29.432>monolith <00:13:29.588>lies <00:13:29.743>in <00:13:29.899>a <00:13:30.055>very,

248
00:13:31.675 --> 00:13:33.485
<00:13:31.675>very <00:13:32.141>old <00:13:32.608>AWS <00:13:33.074>account.

249
00:13:33.785 --> 00:13:36.925
<00:13:33.785>And <00:13:33.912>of <00:13:34.039>course <00:13:34.166>the, <00:13:34.294>the <00:13:34.421>brand <00:13:34.548>new <00:13:34.675>stuff <00:13:34.803>lives <00:13:34.930>in <00:13:35.057>a <00:13:35.185>brand

250
00:13:36.925 --> 00:13:38.125
<00:13:36.925>new <00:13:37.464>AWS <00:13:38.005>account.

251
00:13:38.585 --> 00:13:40.085
<00:13:38.585>So <00:13:38.922>there's <00:13:39.260>like <00:13:39.597>different <00:13:39.935>network

252
00:13:40.895 --> 00:13:42.725
<00:13:40.895>stuff <00:13:41.175>in <00:13:41.454>front <00:13:41.735>of <00:13:42.015>these <00:13:42.295>systems.

253
00:13:45.225 --> 00:13:48.445
<00:13:45.225>And <00:13:45.425>so <00:13:45.625>what <00:13:45.825>was <00:13:46.025>really <00:13:46.225>happening <00:13:46.425>is <00:13:46.625>that

254
00:13:49.295 --> 00:13:51.005
<00:13:49.295>these <00:13:49.645>two <00:13:49.995>things <00:13:50.344>had, <00:13:50.694>um,

255
00:13:51.075 --> 00:13:53.405
<00:13:51.075>were <00:13:51.425>detecting <00:13:51.775>different <00:13:52.125>IP <00:13:52.475>addresses.

256
00:13:53.785 --> 00:13:58.605
<00:13:53.785>And <00:13:53.901>that's <00:13:54.018>how <00:13:54.135>we <00:13:54.251>sent <00:13:54.368>the <00:13:54.485>user <00:13:54.601>into <00:13:54.718>kind <00:13:54.834>of <00:13:54.951>an <00:13:55.068>a, <00:13:55.185>a,

257
00:13:59.145 --> 00:14:00.845
<00:13:59.145>an <00:13:59.611>infinite <00:14:00.078>redirect <00:14:00.545>loop.

258
00:14:01.035 --> 00:14:03.685
<00:14:01.035>Most <00:14:01.190>of <00:14:01.346>it <00:14:01.501>were <00:14:01.657>bots <00:14:01.812>that <00:14:01.968>were <00:14:02.123>not <00:14:02.279>accepting <00:14:02.435>cookies,

259
00:14:04.385 --> 00:14:05.925
<00:14:04.385>but <00:14:04.583>we <00:14:04.781>didn't <00:14:04.978>know <00:14:05.177>that <00:14:05.375>at <00:14:05.573>that <00:14:05.771>time.

260
00:14:06.905 --> 00:14:09.085
<00:14:06.905>And <00:14:07.105>since <00:14:07.305>we <00:14:07.505>were <00:14:07.704>in <00:14:07.905>this <00:14:08.105>redirect <00:14:08.305>loop,

261
00:14:09.785 --> 00:14:13.085
<00:14:09.785>at <00:14:09.925>some <00:14:10.064>point <00:14:10.204>Al <00:14:10.344>zero <00:14:10.485>said, <00:14:10.625>this <00:14:10.765>is <00:14:10.905>too <00:14:11.045>many <00:14:11.185>requests.

262
00:14:13.085 --> 00:14:14.565
<00:14:13.085>We <00:14:13.275>are <00:14:13.465>just <00:14:13.655>going <00:14:13.846>to <00:14:14.036>render <00:14:14.226>this <00:14:14.417>very,

263
00:14:14.565 --> 00:14:15.845
<00:14:14.565>very <00:14:14.949>generic <00:14:15.333>error <00:14:15.717>page

264
00:14:15.845 --> 00:14:18.125
<00:14:15.845>because <00:14:16.045>they <00:14:16.245>also <00:14:16.445>don't <00:14:16.645>know <00:14:16.845>what's <00:14:17.045>going <00:14:17.245>on.

265
00:14:20.305 --> 00:14:22.045
<00:14:20.305>And <00:14:20.538>then <00:14:20.771>we <00:14:21.005>looked <00:14:21.238>at, <00:14:21.471>yeah, <00:14:21.704>so

266
00:14:23.195 --> 00:14:25.085
<00:14:23.195>this <00:14:23.370>is <00:14:23.545>the <00:14:23.720>header <00:14:23.895>we <00:14:24.070>were <00:14:24.245>looking <00:14:24.420>at <00:14:24.595>here,

267
00:14:25.705 --> 00:14:28.365
<00:14:25.705>and <00:14:25.985>in <00:14:26.265>this <00:14:26.545>remix, <00:14:26.825>SSO <00:14:27.105>Lambda,

268
00:14:28.365 --> 00:14:29.805
<00:14:28.365>we <00:14:28.581>were <00:14:28.797>looking <00:14:29.013>at <00:14:29.228>a <00:14:29.444>different <00:14:29.661>header

269
00:14:29.805 --> 00:14:33.685
<00:14:29.805>to <00:14:29.960>determine <00:14:30.116>DIP <00:14:30.271>address, <00:14:30.427>which <00:14:30.582>was <00:14:30.738>a <00:14:30.893>very <00:14:31.049>bad <00:14:31.204>idea.

270
00:14:35.585 --> 00:14:39.245
<00:14:35.585>And <00:14:35.740>then <00:14:35.896>we <00:14:36.051>found <00:14:36.207>out <00:14:36.362>cloud <00:14:36.518>front <00:14:36.673>to <00:14:36.829>the <00:14:36.985>rescue,

271
00:14:39.635 --> 00:14:41.845
<00:14:39.635>they <00:14:39.868>also <00:14:40.101>inject <00:14:40.335>the <00:14:40.568>header <00:14:40.801>into <00:14:41.035>it.

272
00:14:42.065 --> 00:14:46.085
<00:14:42.065>And <00:14:42.220>since <00:14:42.376>everything <00:14:42.531>is <00:14:42.687>behind <00:14:42.842>the <00:14:42.998>same <00:14:43.153>CDN, <00:14:43.309>luckily, <00:14:43.465>um,

273
00:14:46.545 --> 00:14:49.565
<00:14:46.545>that's <00:14:46.778>where <00:14:47.011>we <00:14:47.245>then <00:14:47.478>started <00:14:47.711>to <00:14:47.944>look

274
00:14:49.625 --> 00:14:53.405
<00:14:49.625>for <00:14:49.800>the <00:14:49.975>real <00:14:50.150>IP <00:14:50.325>address <00:14:50.500>that <00:14:50.675>we <00:14:50.850>were, <00:14:51.025>uh,

275
00:14:53.405 --> 00:14:54.485
<00:14:53.405>that <00:14:53.648>we <00:14:53.891>want <00:14:54.134>to <00:14:54.377>compare.

276
00:14:57.775 --> 00:15:00.955
<00:14:57.775>Lo <00:14:57.930>and <00:14:58.086>behold, <00:14:58.241>this <00:14:58.397>is <00:14:58.552>when <00:14:58.708>we <00:14:58.863>implemented <00:14:59.019>the <00:14:59.175>fix

277
00:15:01.615 --> 00:15:03.635
<00:15:01.615>and <00:15:01.848>the <00:15:02.081>errors <00:15:02.315>have <00:15:02.548>really <00:15:02.781>dropped <00:15:03.015>there.

278
00:15:05.885 --> 00:15:07.415
<00:15:05.885>Also <00:15:06.229>down <00:15:06.573>here, <00:15:06.917>the <00:15:07.262>emergency

279
00:15:07.415 --> 00:15:09.255
<00:15:07.415>and <00:15:07.694>error <00:15:07.974>events <00:15:08.255>really <00:15:08.535>went <00:15:08.814>down

280
00:15:10.235 --> 00:15:12.215
<00:15:10.235>and <00:15:10.585>we <00:15:10.935>said <00:15:11.285>mission <00:15:11.635>complete,

281
00:15:14.475 --> 00:15:16.655
<00:15:14.475>But <00:15:14.675>along <00:15:14.875>the <00:15:15.075>lines <00:15:15.275>we <00:15:15.475>learned <00:15:15.675>a <00:15:15.875>lot

282
00:15:16.655 --> 00:15:19.135
<00:15:16.655>of <00:15:16.795>live <00:15:16.935>different <00:15:17.074>things, <00:15:17.214>which <00:15:17.355>I'm <00:15:17.495>going <00:15:17.635>to <00:15:17.775>share <00:15:17.915>with <00:15:18.055>you.

283
00:15:19.915 --> 00:15:23.415
<00:15:19.915>So <00:15:20.265>Yeah, <00:15:20.615>let's <00:15:20.964>go <00:15:21.314>back.

284
00:15:23.415 --> 00:15:25.695
<00:15:23.415>This <00:15:23.555>is <00:15:23.694>how <00:15:23.834>we <00:15:23.974>all <00:15:24.115>imagine <00:15:24.255>the <00:15:24.395>web <00:15:24.535>to <00:15:24.675>work, <00:15:24.814>right?

285
00:15:25.755 --> 00:15:28.695
<00:15:25.755>The <00:15:25.988>users <00:15:26.221>there <00:15:26.455>goes <00:15:26.688>through <00:15:26.921>this <00:15:27.155>cloud

286
00:15:28.795 --> 00:15:30.215
<00:15:28.795>and <00:15:29.114>arrives <00:15:29.434>at <00:15:29.753>a <00:15:30.073>website,

287
00:15:30.955 --> 00:15:33.295
<00:15:30.955>but <00:15:31.155>the <00:15:31.355>reality <00:15:31.555>for <00:15:31.755>many, <00:15:31.955>many <00:15:32.155>users <00:15:32.355>is

288
00:15:33.295 --> 00:15:34.575
<00:15:33.295>that <00:15:33.525>they're <00:15:33.755>going <00:15:33.986>through <00:15:34.216>a <00:15:34.447>proxy.

289
00:15:35.275 --> 00:15:38.135
<00:15:35.275>And <00:15:35.430>these <00:15:35.586>proxies <00:15:35.741>try <00:15:35.897>to <00:15:36.052>be <00:15:36.208>transparent, <00:15:36.363>but <00:15:36.519>they're <00:15:36.675>not.

290
00:15:39.035 --> 00:15:43.655
<00:15:39.035>Um, <00:15:39.175>so <00:15:39.314>if <00:15:39.454>you <00:15:39.594>look <00:15:39.735>at <00:15:39.875>this <00:15:40.015>page, <00:15:40.155>our <00:15:40.295>front <00:15:40.435>page,

291
00:15:43.655 --> 00:15:46.775
<00:15:43.655>it <00:15:43.782>looks <00:15:43.909>very <00:15:44.036>nice, <00:15:44.164>but <00:15:44.291>if <00:15:44.418>you <00:15:44.545>look <00:15:44.673>closely <00:15:44.800>to <00:15:44.927>the <00:15:45.055>URL,

292
00:15:48.445 --> 00:15:49.735
<00:15:48.445>it's <00:15:49.025>very <00:15:49.606>strange.

293
00:15:50.835 --> 00:15:53.815
<00:15:50.835>And <00:15:50.962>this <00:15:51.089>is <00:15:51.216>how <00:15:51.344>a <00:15:51.471>lot <00:15:51.598>of <00:15:51.725>our <00:15:51.853>users, <00:15:51.980>especially <00:15:52.107>in <00:15:52.235>academia,

294
00:15:54.515 --> 00:15:55.895
<00:15:54.515>um, <00:15:54.929>visit <00:15:55.343>our <00:15:55.757>page.

295
00:15:55.895 --> 00:15:56.975
<00:15:55.895>They <00:15:56.219>have <00:15:56.543>IP <00:15:56.867>login

296
00:15:57.515 --> 00:16:01.455
<00:15:57.515>and <00:15:57.748>the <00:15:57.981>proxy <00:15:58.215>changes <00:15:58.448>the <00:15:58.681>URL, <00:15:58.915>um,

297
00:16:01.515 --> 00:16:03.135
<00:16:01.515>of <00:16:01.795>the <00:16:02.074>resource <00:16:02.355>that <00:16:02.635>you're <00:16:02.915>accessing.

298
00:16:03.675 --> 00:16:06.175
<00:16:03.675>And <00:16:03.830>so <00:16:03.986>then <00:16:04.141>if <00:16:04.297>you <00:16:04.452>then <00:16:04.608>look <00:16:04.763>into <00:16:04.919>the <00:16:05.074>cookies,

299
00:16:06.965 --> 00:16:09.415
<00:16:06.965>they <00:16:07.165>are <00:16:07.365>just <00:16:07.565>not <00:16:07.765>passing <00:16:07.965>through <00:16:08.165>many <00:16:08.365>cookies.

300
00:16:09.555 --> 00:16:12.335
<00:16:09.555>So <00:16:09.729>this <00:16:09.905>is <00:16:10.079>like <00:16:10.255>the <00:16:10.430>cookies <00:16:10.604>that, <00:16:10.780>uh, <00:16:10.954>one

301
00:16:12.335 --> 00:16:13.655
<00:16:12.335>of <00:16:12.632>these <00:16:12.929>proxies <00:16:13.226>passes <00:16:13.523>through,

302
00:16:13.715 --> 00:16:15.375
<00:16:13.715>and <00:16:13.915>this <00:16:14.115>is <00:16:14.315>the <00:16:14.515>actual <00:16:14.715>amount <00:16:14.915>of <00:16:15.115>cookies

303
00:16:15.405 --> 00:16:16.815
<00:16:15.405>that <00:16:15.828>our <00:16:16.251>site <00:16:16.674>requires.

304
00:16:17.155 --> 00:16:19.375
<00:16:17.155>So <00:16:17.388>there's <00:16:17.621>really <00:16:17.855>strange <00:16:18.088>things <00:16:18.321>happening <00:16:18.555>there.

305
00:16:19.845 --> 00:16:23.695
<00:16:19.845>Also, <00:16:20.000>cookies <00:16:20.156>are <00:16:20.311>getting <00:16:20.467>rewritten <00:16:20.622>and <00:16:20.778>all <00:16:20.933>sorts <00:16:21.089>of <00:16:21.245>things.

306
00:16:26.085 --> 00:16:30.495
<00:16:26.085>Also, <00:16:26.318>corporates <00:16:26.551>also <00:16:26.785>have <00:16:27.018>transparent <00:16:27.251>gateways <00:16:27.485>in

307
00:16:30.495 --> 00:16:32.655
<00:16:30.495>between <00:16:30.775>there <00:16:31.055>that <00:16:31.335>do <00:16:31.615>security <00:16:31.895>filtering,

308
00:16:32.915 --> 00:16:35.175
<00:16:32.915>and <00:16:33.115>they <00:16:33.314>also <00:16:33.515>tend <00:16:33.714>to <00:16:33.915>mess <00:16:34.115>with <00:16:34.314>cookies.

309
00:16:35.995 --> 00:16:39.375
<00:16:35.995>Um, <00:16:36.195>yeah, <00:16:36.395>so <00:16:36.595>that <00:16:36.795>was <00:16:36.995>unexpected <00:16:37.195>for <00:16:37.395>us.

310
00:16:39.435 --> 00:16:41.415
<00:16:39.435>We <00:16:39.714>thought <00:16:39.994>the <00:16:40.275>web <00:16:40.555>was <00:16:40.834>working

311
00:16:41.755 --> 00:16:43.655
<00:16:41.755>how <00:16:41.988>we <00:16:42.221>learned <00:16:42.455>it, <00:16:42.688>but <00:16:42.921>it <00:16:43.155>doesn't.

312
00:16:45.885 --> 00:16:49.415
<00:16:45.885>Then <00:16:46.060>also, <00:16:46.235>this <00:16:46.410>is <00:16:46.585>a <00:16:46.760>screenshot <00:16:46.935>from <00:16:47.110>our <00:16:47.285>CRM

313
00:16:49.755 --> 00:16:51.655
<00:16:49.755>and <00:16:50.105>our <00:16:50.455>customer <00:16:50.805>success <00:16:51.155>managers.

314
00:16:51.885 --> 00:16:54.855
<00:16:51.885>They <00:16:52.040>enter <00:16:52.196>the <00:16:52.351>site <00:16:52.507>arranges <00:16:52.662>that <00:16:52.818>the <00:16:52.973>clients <00:16:53.129>tell <00:16:53.285>them,

315
00:16:55.435 --> 00:16:57.295
<00:16:55.435>and <00:16:55.635>they, <00:16:55.834>they <00:16:56.035>don't <00:16:56.234>have <00:16:56.435>a <00:16:56.635>technical <00:16:56.834>background.

316
00:16:57.475 --> 00:17:00.615
<00:16:57.475>And <00:16:57.675>so <00:16:57.875>also <00:16:58.075>during <00:16:58.275>all <00:16:58.475>of <00:16:58.675>this <00:16:58.875>period,

317
00:17:00.715 --> 00:17:03.535
<00:17:00.715>we <00:17:00.915>found <00:17:01.115>ourself <00:17:01.315>being <00:17:01.515>locked <00:17:01.715>in <00:17:01.915>our <00:17:02.115>ways

318
00:17:04.245 --> 00:17:05.575
<00:17:04.244>from <00:17:04.644>our <00:17:05.042>main <00:17:05.442>office,

319
00:17:06.075 --> 00:17:08.935
<00:17:06.075>but <00:17:06.250>also <00:17:06.425>from, <00:17:06.600>from <00:17:06.775>people <00:17:06.950>that <00:17:07.125>were <00:17:07.300>at <00:17:07.475>home.

320
00:17:08.935 --> 00:17:10.735
<00:17:08.935>They <00:17:09.135>were <00:17:09.335>also <00:17:09.534>logged <00:17:09.734>in <00:17:09.935>with <00:17:10.135>one <00:17:10.335>account.

321
00:17:10.795 --> 00:17:13.015
<00:17:10.795>And <00:17:10.950>then <00:17:11.106>we <00:17:11.261>were <00:17:11.417>like, <00:17:11.572>let's <00:17:11.728>look <00:17:11.883>at <00:17:12.039>this <00:17:12.195>account.

322
00:17:13.675 --> 00:17:17.375
<00:17:13.675>And <00:17:13.802>we <00:17:13.929>found <00:17:14.056>out <00:17:14.184>that <00:17:14.311>someone <00:17:14.438>entered <00:17:14.565>a <00:17:14.693>slash <00:17:14.820>six <00:17:14.947>into <00:17:15.075>the

323
00:17:17.495 --> 00:17:22.375
<00:17:17.494>CRM <00:17:17.650>for <00:17:17.806>this <00:17:17.961>customer, <00:17:18.117>which <00:17:18.272>gave <00:17:18.428>access <00:17:18.583>to, <00:17:18.739>yeah, <00:17:18.895>1.5%

324
00:17:22.375 --> 00:17:24.775
<00:17:22.375>of <00:17:22.550>total <00:17:22.724>I <00:17:22.900>pv <00:17:23.075>four <00:17:23.250>addresses, <00:17:23.425>which <00:17:23.599>are <00:17:23.775>available.

325
00:17:25.515 --> 00:17:28.415
<00:17:25.515>Um, <00:17:25.642>so <00:17:25.769>for <00:17:25.896>I <00:17:26.024>think <00:17:26.151>it <00:17:26.278>was <00:17:26.405>like <00:17:26.533>three <00:17:26.660>hours, <00:17:26.787>we <00:17:26.915>kind

326
00:17:28.415 --> 00:17:30.855
<00:17:28.415>of <00:17:28.590>gave <00:17:28.764>all <00:17:28.940>of <00:17:29.115>our <00:17:29.290>content <00:17:29.465>away <00:17:29.639>for <00:17:29.815>free.

327
00:17:33.565 --> 00:17:36.775
<00:17:33.565>Another <00:17:33.765>random <00:17:33.965>observation <00:17:34.165>is <00:17:34.365>we, <00:17:34.565>we <00:17:34.765>did <00:17:34.965>all

328
00:17:36.775 --> 00:17:38.375
<00:17:36.775>of <00:17:37.055>this <00:17:37.335>in <00:17:37.615>these <00:17:37.895>M <00:17:38.175>sessions,

329
00:17:38.515 --> 00:17:40.775
<00:17:38.515>and <00:17:38.715>this <00:17:38.915>is <00:17:39.115>really <00:17:39.315>helpful <00:17:39.515>for <00:17:39.715>team <00:17:39.915>building,

330
00:17:40.875 --> 00:17:45.415
<00:17:40.875>for <00:17:41.030>knowledge <00:17:41.186>sharing <00:17:41.341>and <00:17:41.497>for <00:17:41.652>like <00:17:41.808>not <00:17:41.963>getting <00:17:42.119>insane, <00:17:42.275>um,

331
00:17:45.765 --> 00:17:49.165
<00:17:45.765>because <00:17:45.940>everyone <00:17:46.115>is <00:17:46.290>in <00:17:46.465>the <00:17:46.640>same <00:17:46.815>boat <00:17:46.990>working <00:17:47.165>together.

332
00:17:49.985 --> 00:17:53.205
<00:17:49.985>And <00:17:50.140>these <00:17:50.296>screen <00:17:50.451>sessions <00:17:50.607>were <00:17:50.762>just <00:17:50.918>really <00:17:51.073>great <00:17:51.229>to, <00:17:51.385>to,

333
00:17:53.585 --> 00:17:56.645
<00:17:53.585>to <00:17:53.692>have <00:17:53.800>a <00:17:53.908>feeling <00:17:54.015>as <00:17:54.123>a <00:17:54.231>team <00:17:54.338>to <00:17:54.446>work <00:17:54.554>on <00:17:54.661>all <00:17:54.769>of <00:17:54.877>this <00:17:54.985>together.

334
00:17:56.865 --> 00:17:59.205
<00:17:56.865>And <00:17:57.098>everyone <00:17:57.331>chipped <00:17:57.565>in <00:17:57.798>with <00:17:58.031>their <00:17:58.265>knowledge

335
00:17:59.205 --> 00:18:01.525
<00:17:59.205>and <00:17:59.405>their <00:17:59.605>hypothesis, <00:17:59.804>what <00:18:00.004>went <00:18:00.205>wrong <00:18:00.405>this <00:18:00.605>time.

336
00:18:04.705 --> 00:18:09.565
<00:18:04.705>And <00:18:04.938>yeah, <00:18:05.171>so <00:18:05.405>in <00:18:05.638>the <00:18:05.871>end, <00:18:06.105>this

337
00:18:10.345 --> 00:18:12.925
<00:18:10.345>is <00:18:10.695>not <00:18:11.045>anymore <00:18:11.395>the <00:18:11.745>architecture

338
00:18:12.925 --> 00:18:14.405
<00:18:12.925>that <00:18:13.191>we <00:18:13.457>are <00:18:13.724>currently <00:18:13.990>operating <00:18:14.257>with.

339
00:18:14.665 --> 00:18:16.045
<00:18:14.665>We <00:18:15.079>also <00:18:15.493>iterated <00:18:15.907>there

340
00:18:16.045 --> 00:18:19.165
<00:18:16.045>because <00:18:16.278>yeah, <00:18:16.511>we <00:18:16.745>replaced <00:18:16.978>the <00:18:17.211>Lambdas, <00:18:17.445>um,

341
00:18:19.165 --> 00:18:22.445
<00:18:19.165>with <00:18:19.365>Fargate <00:18:19.565>instances <00:18:19.764>because <00:18:19.965>it's <00:18:20.165>much <00:18:20.365>cheaper, <00:18:20.565>um,

342
00:18:22.505 --> 00:18:23.565
<00:18:22.505>and <00:18:22.743>all <00:18:22.982>kinds <00:18:23.220>of <00:18:23.459>things.

343
00:18:24.385 --> 00:18:28.765
<00:18:24.385>Um, <00:18:24.618>but <00:18:24.851>yeah, <00:18:25.085>I <00:18:25.318>guess <00:18:25.551>that's <00:18:25.785>it.