WEBVTT

1
00:00:17.065 --> 00:00:19.365
<00:00:17.065>Um, <00:00:17.240>so <00:00:17.415>the <00:00:17.590>title <00:00:17.765>of <00:00:17.940>the <00:00:18.115>session <00:00:18.290>is <00:00:18.465>Application

2
00:00:19.485 --> 00:00:20.845
<00:00:19.485>Modernization <00:00:20.096>and <00:00:20.709>Rabbits.

3
00:00:20.945 --> 00:00:21.965
<00:00:20.945>And <00:00:21.174>I'm <00:00:21.404>gonna <00:00:21.633>show <00:00:21.863>you,

4
00:00:22.145 --> 00:00:25.045
<00:00:22.145>or <00:00:22.300>explain <00:00:22.456>in <00:00:22.611>a <00:00:22.767>minute <00:00:22.922>why <00:00:23.078>I <00:00:23.233>chose <00:00:23.389>the <00:00:23.544>title.

5
00:00:25.615 --> 00:00:27.205
<00:00:25.615>Again, <00:00:25.895>my <00:00:26.174>name <00:00:26.455>is <00:00:26.735>Nicholas <00:00:27.014>Helo.

6
00:00:27.445 --> 00:00:30.005
<00:00:27.445>I <00:00:27.645>work <00:00:27.845>as <00:00:28.045>a <00:00:28.245>developer <00:00:28.445>advocate <00:00:28.645>at <00:00:28.845>IBM,

7
00:00:30.585 --> 00:00:32.965
<00:00:30.585>and <00:00:30.785>I <00:00:30.985>love <00:00:31.185>working <00:00:31.385>as <00:00:31.585>a <00:00:31.785>developer <00:00:31.985>advocate

8
00:00:33.075 --> 00:00:35.805
<00:00:33.075>because <00:00:33.275>I <00:00:33.475>can <00:00:33.675>learn <00:00:33.875>new <00:00:34.075>technologies <00:00:34.275>every <00:00:34.475>day.

9
00:00:36.585 --> 00:00:40.205
<00:00:36.585>And <00:00:36.725>the <00:00:36.865>best <00:00:37.005>way <00:00:37.145>for <00:00:37.285>me <00:00:37.425>to <00:00:37.565>learn <00:00:37.705>new <00:00:37.845>technologies <00:00:37.985>is

10
00:00:40.205 --> 00:00:43.045
<00:00:40.205>to <00:00:40.379>actually <00:00:40.555>try <00:00:40.730>them <00:00:40.905>and <00:00:41.080>to <00:00:41.254>develop <00:00:41.430>something <00:00:41.605>myself.

11
00:00:43.625 --> 00:00:45.805
<00:00:43.625>And <00:00:43.825>that's <00:00:44.025>exactly <00:00:44.225>what <00:00:44.425>I've <00:00:44.625>done <00:00:44.825>in <00:00:45.025>order

12
00:00:45.825 --> 00:00:48.125
<00:00:45.825>to <00:00:46.105>learn <00:00:46.385>the <00:00:46.665>topic <00:00:46.945>application <00:00:47.225>modernization.

13
00:00:48.705 --> 00:00:50.405
<00:00:48.705>So <00:00:48.985>I've <00:00:49.265>built <00:00:49.545>this <00:00:49.824>one <00:00:50.105>sample

14
00:00:50.835 --> 00:00:53.645
<00:00:50.835>that <00:00:50.975>I'm <00:00:51.115>gonna <00:00:51.255>use <00:00:51.395>throughout <00:00:51.535>the <00:00:51.675>session <00:00:51.815>so <00:00:51.955>that <00:00:52.095>every <00:00:52.235>one

15
00:00:53.645 --> 00:00:55.565
<00:00:53.645>of <00:00:53.995>you <00:00:54.345>can <00:00:54.695>run <00:00:55.045>all

16
00:00:55.565 --> 00:00:57.965
<00:00:55.565>of <00:00:55.765>the <00:00:55.964>demos <00:00:56.165>yourself <00:00:56.364>right <00:00:56.565>after <00:00:56.765>the <00:00:56.964>session.

17
00:00:58.275 --> 00:00:59.605
<00:00:58.275>It's <00:00:58.574>available <00:00:58.873>as <00:00:59.172>open <00:00:59.471>source.

18
00:00:59.605 --> 00:01:02.645
<00:00:59.605>And <00:00:59.732>I'm <00:00:59.859>gonna <00:00:59.986>show <00:01:00.114>the <00:01:00.241>link <00:01:00.368>at <00:01:00.495>the <00:01:00.623>end <00:01:00.750>of <00:01:00.877>this <00:01:01.004>presentation.

19
00:01:04.065 --> 00:01:08.285
<00:01:04.065>Um, <00:01:04.414>so <00:01:04.765>let's, <00:01:05.114>uh, <00:01:05.465>need

20
00:01:08.285 --> 00:01:09.925
<00:01:08.285>to <00:01:08.634>activate <00:01:08.985>my <00:01:09.335>screen <00:01:09.685>here.

21
00:01:10.035 --> 00:01:12.965
<00:01:10.035>Okay, <00:01:10.210>so <00:01:10.384>now <00:01:10.560>why <00:01:10.735>did <00:01:10.910>I <00:01:11.085>choose <00:01:11.259>the <00:01:11.435>title

22
00:01:13.675 --> 00:01:15.845
<00:01:13.675>Application <00:01:14.141>modernization <00:01:14.608>and <00:01:15.075>rabbits?

23
00:01:16.185 --> 00:01:18.205
<00:01:16.185>And <00:01:16.360>in <00:01:16.535>order <00:01:16.710>to <00:01:16.885>do <00:01:17.060>that, <00:01:17.235>to <00:01:17.410>explain <00:01:17.585>that,

24
00:01:18.265 --> 00:01:20.325
<00:01:18.265>let <00:01:18.440>me <00:01:18.615>show <00:01:18.790>you <00:01:18.965>a <00:01:19.140>really <00:01:19.315>quick <00:01:19.490>two <00:01:19.665>minutes

25
00:01:20.375 --> 00:01:21.845
<00:01:20.375>video <00:01:20.816>that <00:01:21.257>explains <00:01:21.698>it.

26
00:01:24.785 --> 00:01:27.645
<00:01:24.785>Hi, <00:01:25.018>I'm <00:01:25.251>Nicholas, <00:01:25.485>an <00:01:25.718>IBM <00:01:25.951>developer <00:01:26.185>advocate

27
00:01:27.905 --> 00:01:29.645
<00:01:27.905>and <00:01:28.371>part-time <00:01:28.838>bunny <00:01:29.305>keeper.

28
00:01:30.615 --> 00:01:34.325
<00:01:30.615>Today <00:01:30.770>I'm <00:01:30.926>going <00:01:31.081>to <00:01:31.237>explain <00:01:31.392>the <00:01:31.548>benefits <00:01:31.703>of <00:01:31.859>a <00:01:32.015>modernization

29
00:01:34.935 --> 00:01:36.125
<00:01:34.935>using <00:01:36.006>rabbits.

30
00:01:37.285 --> 00:01:39.445
<00:01:37.285>I <00:01:37.485>got <00:01:37.685>my <00:01:37.884>kids <00:01:38.085>two <00:01:38.285>rabbits <00:01:38.485>this <00:01:38.685>spring.

31
00:01:40.025 --> 00:01:41.445
<00:01:40.025>We <00:01:40.238>put <00:01:40.451>them <00:01:40.664>in <00:01:40.877>a <00:01:41.090>simple <00:01:41.303>cage

32
00:01:41.825 --> 00:01:43.285
<00:01:41.825>and <00:01:42.153>everything <00:01:42.482>was <00:01:42.810>just <00:01:43.139>fine

33
00:01:43.815 --> 00:01:45.725
<00:01:43.815>until <00:01:44.095>we <00:01:44.375>had <00:01:44.655>the <00:01:44.935>bunny <00:01:45.215>explosion.

34
00:01:46.685 --> 00:01:48.685
<00:01:46.685>A <00:01:46.885>simple <00:01:47.085>cage <00:01:47.285>is <00:01:47.485>like <00:01:47.685>your <00:01:47.885>monolithic <00:01:48.085>app.

35
00:01:49.145 --> 00:01:52.445
<00:01:49.145>It <00:01:49.300>may <00:01:49.456>be <00:01:49.611>working <00:01:49.767>fine <00:01:49.922>until <00:01:50.078>you <00:01:50.233>have <00:01:50.389>an <00:01:50.545>explosion

36
00:01:52.445 --> 00:01:55.045
<00:01:52.445>of <00:01:52.645>requests, <00:01:52.845>and <00:01:53.044>then <00:01:53.244>you <00:01:53.445>need <00:01:53.645>to <00:01:53.845>modernize.

37
00:01:55.915 --> 00:01:58.845
<00:01:55.914>This <00:01:56.070>was <00:01:56.226>a <00:01:56.381>catalyst <00:01:56.537>for <00:01:56.692>us <00:01:56.848>to <00:01:57.003>modernize <00:01:57.159>the <00:01:57.315>cage

38
00:01:59.305 --> 00:02:00.925
<00:01:59.305>and <00:01:59.585>replace <00:01:59.865>it <00:02:00.145>with <00:02:00.425>a <00:02:00.705>structure

39
00:02:01.145 --> 00:02:03.005
<00:02:01.145>of <00:02:01.494>several <00:02:01.845>hutches <00:02:02.195>and <00:02:02.545>pathways.

40
00:02:03.815 --> 00:02:06.685
<00:02:03.815>Let's <00:02:03.990>look <00:02:04.164>at <00:02:04.340>this <00:02:04.515>structure <00:02:04.690>as <00:02:04.865>a <00:02:05.039>microservices <00:02:05.215>application.

41
00:02:07.255 --> 00:02:09.885
<00:02:07.255>These <00:02:07.535>hus <00:02:07.815>are <00:02:08.095>connected <00:02:08.375>with <00:02:08.655>pathways,

42
00:02:10.515 --> 00:02:12.685
<00:02:10.514>just <00:02:10.864>like <00:02:11.214>loosely <00:02:11.565>coupled <00:02:11.915>microservices.

43
00:02:13.385 --> 00:02:15.645
<00:02:13.385>My <00:02:13.584>end <00:02:13.785>users <00:02:13.984>are <00:02:14.185>having <00:02:14.385>a <00:02:14.584>much <00:02:14.785>better

44
00:02:15.825 --> 00:02:18.525
<00:02:15.825>and <00:02:16.058>faster <00:02:16.291>experience <00:02:16.524>with <00:02:16.758>this <00:02:16.991>modernized <00:02:17.225>structure.

45
00:02:19.155 --> 00:02:21.445
<00:02:19.155>When <00:02:19.330>I <00:02:19.505>need <00:02:19.680>to <00:02:19.855>repair <00:02:20.030>one <00:02:20.205>of <00:02:20.380>these <00:02:20.555>huts,

46
00:02:21.665 --> 00:02:23.725
<00:02:21.665>the <00:02:21.945>rabbits <00:02:22.225>can <00:02:22.505>continue <00:02:22.785>moving <00:02:23.065>around.

47
00:02:24.105 --> 00:02:27.245
<00:02:24.105>And <00:02:24.280>similarly, <00:02:24.454>for <00:02:24.630>a <00:02:24.804>microservices <00:02:24.980>application, <00:02:25.155>if <00:02:25.329>you <00:02:25.505>need

48
00:02:27.245 --> 00:02:29.965
<00:02:27.245>to <00:02:27.445>fix <00:02:27.645>or <00:02:27.845>extend <00:02:28.045>one <00:02:28.245>of <00:02:28.445>your <00:02:28.645>microservices,

49
00:02:30.425 --> 00:02:34.285
<00:02:30.425>you <00:02:30.580>can <00:02:30.736>replace <00:02:30.891>it <00:02:31.047>while <00:02:31.202>your <00:02:31.358>application <00:02:31.513>continues <00:02:31.669>to <00:02:31.825>run.

50
00:02:34.705 --> 00:02:37.245
<00:02:34.704>In <00:02:34.904>other <00:02:35.105>words, <00:02:35.304>you <00:02:35.505>are <00:02:35.704>more <00:02:35.904>agile <00:02:36.105>compared

51
00:02:37.305 --> 00:02:38.805
<00:02:37.305>to <00:02:37.980>monolithic <00:02:38.655>architectures.

52
00:02:39.305 --> 00:02:42.645
<00:02:39.305>The <00:02:39.505>other <00:02:39.705>benefit <00:02:39.905>of <00:02:40.105>ad <00:02:40.305>modernization <00:02:40.505>is <00:02:40.705>efficiency.

53
00:02:43.185 --> 00:02:45.725
<00:02:43.185>All <00:02:43.340>kits <00:02:43.496>can <00:02:43.651>feed <00:02:43.807>the <00:02:43.962>rabbits <00:02:44.118>at <00:02:44.273>the <00:02:44.429>same <00:02:44.585>time,

54
00:02:46.175 --> 00:02:48.085
<00:02:46.175>which <00:02:46.455>means <00:02:46.735>we <00:02:47.015>are <00:02:47.295>done <00:02:47.575>faster,

55
00:02:49.265 --> 00:02:51.085
<00:02:49.265>and <00:02:49.498>now <00:02:49.731>I <00:02:49.964>need <00:02:50.198>to <00:02:50.431>make <00:02:50.665>sure

56
00:02:51.235 --> 00:02:53.845
<00:02:51.235>that <00:02:51.435>my <00:02:51.635>end <00:02:51.835>users <00:02:52.035>are <00:02:52.235>cleaning <00:02:52.435>the <00:02:52.635>hutches.

57
00:02:58.615 --> 00:03:00.165
<00:02:58.615>Okay, <00:02:58.894>so <00:02:59.173>that <00:02:59.452>was <00:02:59.731>the <00:03:00.010>video.

58
00:03:00.585 --> 00:03:03.245
<00:03:00.585>Um, <00:03:00.725>now <00:03:00.865>there <00:03:01.005>was <00:03:01.145>a <00:03:01.285>lot <00:03:01.425>of <00:03:01.565>information <00:03:01.705>in <00:03:01.845>this <00:03:01.985>video.

59
00:03:03.425 --> 00:03:04.645
<00:03:03.425>Let <00:03:03.791>me <00:03:04.157>recap <00:03:04.523>quickly,

60
00:03:04.985 --> 00:03:07.205
<00:03:04.985>the <00:03:05.218>main <00:03:05.451>reasons <00:03:05.685>why <00:03:05.918>you <00:03:06.151>should <00:03:06.385>consider

61
00:03:07.435 --> 00:03:08.965
<00:03:07.435>modernizing <00:03:08.123>your <00:03:08.812>applications.

62
00:03:09.585 --> 00:03:11.405
<00:03:09.585>Number <00:03:10.051>one, <00:03:10.518>more <00:03:10.985>agility.

63
00:03:12.245 --> 00:03:14.465
<00:03:12.245>Number <00:03:12.595>two, <00:03:12.945>better <00:03:13.295>user <00:03:13.645>experiences.

64
00:03:15.125 --> 00:03:17.425
<00:03:15.125>And <00:03:15.475>number <00:03:15.825>three, <00:03:16.175>reduce <00:03:16.525>costs.

65
00:03:18.205 --> 00:03:19.345
<00:03:18.204>In <00:03:18.547>this <00:03:18.888>session <00:03:19.231>today,

66
00:03:19.785 --> 00:03:22.345
<00:03:19.785>I <00:03:19.960>will <00:03:20.135>focus <00:03:20.310>on <00:03:20.484>the <00:03:20.660>first <00:03:20.835>reason <00:03:21.010>more <00:03:21.185>agility.

67
00:03:22.525 --> 00:03:24.225
<00:03:22.525>In <00:03:22.875>other <00:03:23.225>words, <00:03:23.575>the <00:03:23.925>ability

68
00:03:24.925 --> 00:03:26.945
<00:03:24.925>to <00:03:25.275>faster <00:03:25.625>deliver <00:03:25.975>new <00:03:26.325>functionality

69
00:03:27.245 --> 00:03:29.105
<00:03:27.245>and <00:03:27.595>the <00:03:27.945>ability <00:03:28.295>to <00:03:28.645>innovate.

70
00:03:31.105 --> 00:03:34.125
<00:03:31.105>So <00:03:31.212>there <00:03:31.320>are, <00:03:31.428>as <00:03:31.535>I <00:03:31.643>said <00:03:31.751>in <00:03:31.858>the <00:03:31.966>video, <00:03:32.074>there <00:03:32.181>are <00:03:32.289>a <00:03:32.397>number <00:03:32.505>of

71
00:03:34.735 --> 00:03:38.325
<00:03:34.735>advantages <00:03:34.968>that <00:03:35.201>microservices <00:03:35.435>based <00:03:35.668>architectures <00:03:35.901>give <00:03:36.135>you.

72
00:03:39.105 --> 00:03:41.285
<00:03:39.105>The <00:03:39.338>advantage <00:03:39.571>that <00:03:39.804>I <00:03:40.038>highlighted <00:03:40.271>in <00:03:40.505>the

73
00:03:41.285 --> 00:03:42.405
<00:03:41.285>video <00:03:41.789>was <00:03:42.293>resiliency.

74
00:03:43.235 --> 00:03:47.765
<00:03:43.235>When <00:03:43.410>you <00:03:43.585>break <00:03:43.760>down <00:03:43.935>a <00:03:44.110>monolith <00:03:44.285>into <00:03:44.460>separate <00:03:44.635>microservices,

75
00:03:48.465 --> 00:03:50.965
<00:03:48.465>the <00:03:48.698>application <00:03:48.931>cannot <00:03:49.165>crash <00:03:49.398>as <00:03:49.631>a <00:03:49.865>whole.

76
00:03:51.385 --> 00:03:53.005
<00:03:51.385>You <00:03:51.851>can <00:03:52.318>update <00:03:52.785>separate

77
00:03:53.035 --> 00:03:55.325
<00:03:53.035>microservices <00:03:53.385>independently <00:03:53.734>from <00:03:54.085>each <00:03:54.435>other.

78
00:03:55.585 --> 00:03:58.045
<00:03:55.585>And <00:03:55.785>that <00:03:55.985>certainly <00:03:56.185>one <00:03:56.385>of <00:03:56.585>the <00:03:56.785>huge <00:03:56.985>advantages

79
00:03:58.065 --> 00:04:00.045
<00:03:58.065>of <00:03:58.765>microservices <00:03:59.465>compared

80
00:04:00.075 --> 00:04:02.405
<00:04:00.075>with <00:04:00.541>classic <00:04:01.008>monolithic <00:04:01.475>architectures.

81
00:04:04.125 --> 00:04:05.475
<00:04:04.125>There <00:04:04.368>are <00:04:04.611>a <00:04:04.853>number <00:04:05.097>of <00:04:05.340>reasons

82
00:04:05.855 --> 00:04:07.155
<00:04:05.855>or <00:04:06.147>a <00:04:06.440>number <00:04:06.732>of <00:04:07.025>strategies,

83
00:04:07.615 --> 00:04:09.515
<00:04:07.615>how <00:04:07.895>you <00:04:08.175>can <00:04:08.455>modernize <00:04:08.735>your <00:04:09.015>applications

84
00:04:09.895 --> 00:04:12.795
<00:04:09.895>or <00:04:10.095>how <00:04:10.295>you <00:04:10.495>can <00:04:10.695>deal <00:04:10.895>with <00:04:11.095>legacy <00:04:11.295>applications.

85
00:04:13.695 --> 00:04:16.755
<00:04:13.695>Number <00:04:14.045>one, <00:04:14.394>simply <00:04:14.745>retire <00:04:15.095>applications.

86
00:04:17.055 --> 00:04:19.475
<00:04:17.055>And <00:04:17.288>this <00:04:17.521>might <00:04:17.755>sound <00:04:17.988>obvious <00:04:18.221>or <00:04:18.454>stupid,

87
00:04:20.095 --> 00:04:23.075
<00:04:20.095>but <00:04:20.235>in <00:04:20.375>reality, <00:04:20.515>what <00:04:20.655>we <00:04:20.795>have <00:04:20.935>seen <00:04:21.075>is <00:04:21.215>that <00:04:21.355>there's <00:04:21.495>number,

88
00:04:23.715 --> 00:04:26.595
<00:04:23.715>a <00:04:23.890>big <00:04:24.065>number <00:04:24.239>of <00:04:24.414>applications <00:04:24.590>that <00:04:24.765>is <00:04:24.940>not <00:04:25.114>used

89
00:04:26.695 --> 00:04:29.035
<00:04:26.695>and <00:04:26.895>people <00:04:27.094>are <00:04:27.295>just <00:04:27.495>too <00:04:27.695>scared <00:04:27.895>to <00:04:28.094>shut

90
00:04:29.255 --> 00:04:30.875
<00:04:29.255>or <00:04:29.534>to, <00:04:29.815>to <00:04:30.094>remove <00:04:30.375>these <00:04:30.655>applications.

91
00:04:32.015 --> 00:04:35.275
<00:04:32.015>Number <00:04:32.248>two <00:04:32.481>is <00:04:32.715>don't <00:04:32.948>touch <00:04:33.181>the <00:04:33.414>applications.

92
00:04:35.535 --> 00:04:37.635
<00:04:35.534>And <00:04:35.768>again, <00:04:36.001>that <00:04:36.234>might <00:04:36.468>sound <00:04:36.701>sound <00:04:36.934>stupid,

93
00:04:38.055 --> 00:04:39.635
<00:04:38.055>but <00:04:38.335>it's <00:04:38.615>also <00:04:38.895>a <00:04:39.175>valid <00:04:39.455>strategy,

94
00:04:39.765 --> 00:04:42.795
<00:04:39.765>especially <00:04:39.965>if <00:04:40.164>you <00:04:40.365>don't <00:04:40.565>have <00:04:40.765>the <00:04:40.965>skills <00:04:41.164>anymore

95
00:04:43.665 --> 00:04:46.515
<00:04:43.665>that <00:04:43.820>really <00:04:43.976>allow <00:04:44.131>you <00:04:44.287>to <00:04:44.442>make <00:04:44.598>changes <00:04:44.753>to <00:04:44.909>the <00:04:45.065>application.

96
00:04:47.695 --> 00:04:49.395
<00:04:47.695>Number <00:04:48.045>three, <00:04:48.395>lift <00:04:48.745>and <00:04:49.094>shift.

97
00:04:49.865 --> 00:04:51.475
<00:04:49.865>This <00:04:50.145>is <00:04:50.425>suddenly <00:04:50.705>the <00:04:50.985>easiest <00:04:51.265>way

98
00:04:51.855 --> 00:04:54.315
<00:04:51.855>to <00:04:52.088>move <00:04:52.321>existing <00:04:52.555>workloads <00:04:52.788>into <00:04:53.021>the <00:04:53.255>cloud.

99
00:04:54.625 --> 00:04:57.395
<00:04:54.625>However, <00:04:54.780>at <00:04:54.936>the <00:04:55.091>same <00:04:55.247>time, <00:04:55.402>it <00:04:55.558>gives <00:04:55.713>you <00:04:55.869>some <00:04:56.025>advantages,

100
00:04:57.415 --> 00:05:00.715
<00:04:57.415>but <00:04:57.590>not <00:04:57.765>the <00:04:57.940>full <00:04:58.115>benefits <00:04:58.290>of <00:04:58.465>cloud <00:04:58.640>native <00:04:58.815>applications.

101
00:05:01.255 --> 00:05:03.315
<00:05:01.255>The <00:05:01.455>good <00:05:01.655>news <00:05:01.855>about <00:05:02.055>lift <00:05:02.255>and <00:05:02.455>shift <00:05:02.655>is,

102
00:05:03.315 --> 00:05:05.635
<00:05:03.315>and <00:05:03.490>the <00:05:03.665>reason <00:05:03.840>why <00:05:04.015>many <00:05:04.190>people <00:05:04.365>do <00:05:04.540>that <00:05:04.715>is

103
00:05:05.635 --> 00:05:07.435
<00:05:05.635>because <00:05:05.835>you <00:05:06.034>don't <00:05:06.235>have <00:05:06.435>to <00:05:06.635>change <00:05:06.835>your <00:05:07.034>code.

104
00:05:08.615 --> 00:05:10.955
<00:05:08.615>The <00:05:08.895>two <00:05:09.175>most <00:05:09.455>exciting <00:05:09.735>strategies, <00:05:10.015>though,

105
00:05:11.175 --> 00:05:14.395
<00:05:11.175>are <00:05:11.455>four <00:05:11.735>containerized <00:05:12.015>and <00:05:12.295>five <00:05:12.575>refactor.

106
00:05:15.135 --> 00:05:17.075
<00:05:15.135>And <00:05:15.485>these <00:05:15.835>two <00:05:16.185>strategies <00:05:16.534>is

107
00:05:17.075 --> 00:05:19.115
<00:05:17.075>what <00:05:17.308>I'm <00:05:17.541>gonna <00:05:17.775>explain <00:05:18.008>in <00:05:18.241>this <00:05:18.474>talk.

108
00:05:21.315 --> 00:05:24.095
<00:05:21.315>As <00:05:21.490>I <00:05:21.665>said, <00:05:21.840>I <00:05:22.015>built <00:05:22.190>my <00:05:22.365>own <00:05:22.540>sample <00:05:22.715>application

109
00:05:24.315 --> 00:05:26.895
<00:05:24.315>and <00:05:24.490>in, <00:05:24.665>well, <00:05:24.840>I <00:05:25.015>didn't <00:05:25.190>build <00:05:25.365>the <00:05:25.540>original <00:05:25.715>version.

110
00:05:26.955 --> 00:05:28.815
<00:05:26.955>The <00:05:27.188>original <00:05:27.421>version <00:05:27.655>was <00:05:27.888>10 <00:05:28.121>years <00:05:28.354>old,

111
00:05:28.815 --> 00:05:31.695
<00:05:28.815>which <00:05:28.955>you <00:05:29.094>see <00:05:29.235>here <00:05:29.375>on <00:05:29.515>the <00:05:29.655>left <00:05:29.795>hand <00:05:29.935>side, <00:05:30.075>it <00:05:30.215>comes

112
00:05:31.765 --> 00:05:34.615
<00:05:31.765>with <00:05:31.940>a <00:05:32.115>web <00:05:32.289>interface <00:05:32.465>built <00:05:32.640>with <00:05:32.815>the <00:05:32.990>Dojo <00:05:33.164>toolkit,

113
00:05:34.745 --> 00:05:36.295
<00:05:34.745>which <00:05:35.024>was <00:05:35.303>popular <00:05:35.582>at <00:05:35.861>that <00:05:36.140>time.

114
00:05:36.875 --> 00:05:38.215
<00:05:36.875>And <00:05:37.116>on <00:05:37.357>the <00:05:37.598>right <00:05:37.839>hand <00:05:38.081>side,

115
00:05:38.225 --> 00:05:40.975
<00:05:38.225>there <00:05:38.400>is <00:05:38.575>a <00:05:38.750>new <00:05:38.925>modernized <00:05:39.100>version <00:05:39.275>of <00:05:39.450>this <00:05:39.625>application.

116
00:05:41.345 --> 00:05:43.775
<00:05:41.345>Again, <00:05:41.520>let's <00:05:41.695>take <00:05:41.870>a <00:05:42.045>quick <00:05:42.220>look <00:05:42.395>how <00:05:42.570>these <00:05:42.745>work,

117
00:05:44.155 --> 00:05:45.255
<00:05:44.155>how <00:05:44.484>these <00:05:44.815>applications <00:05:45.145>work.

118
00:05:46.435 --> 00:05:48.805
<00:05:46.435>Okay, <00:05:46.610>so <00:05:46.785>this <00:05:46.960>is <00:05:47.135>the <00:05:47.310>Dojo <00:05:47.485>based, <00:05:47.660>uh, <00:05:47.835>version.

119
00:05:48.985 --> 00:05:50.645
<00:05:48.985>And <00:05:49.218>I <00:05:49.451>should <00:05:49.685>say <00:05:49.918>it's <00:05:50.151>an <00:05:50.385>e-commerce

120
00:05:50.915 --> 00:05:52.725
<00:05:50.915>application, <00:05:51.265>a <00:05:51.615>really <00:05:51.965>simple <00:05:52.315>one.

121
00:05:52.725 --> 00:05:54.525
<00:05:52.725>There <00:05:52.900>isn't <00:05:53.075>a <00:05:53.250>whole <00:05:53.425>lot <00:05:53.600>of <00:05:53.775>functionality <00:05:53.950>in <00:05:54.125>it.

122
00:05:55.065 --> 00:05:56.405
<00:05:55.065>Um, <00:05:55.366>but <00:05:55.668>that's <00:05:55.969>on <00:05:56.270>purpose

123
00:05:56.405 --> 00:05:59.005
<00:05:56.405>because <00:05:56.560>I, <00:05:56.716>I <00:05:56.871>wanna <00:05:57.027>really <00:05:57.182>focus <00:05:57.338>here <00:05:57.493>on <00:05:57.649>the <00:05:57.804>technology

124
00:05:59.025 --> 00:06:01.325
<00:05:59.025>rather <00:05:59.224>than, <00:05:59.424>you <00:05:59.625>know, <00:05:59.825>complicated <00:06:00.025>business <00:06:00.224>use <00:06:00.424>cases.

125
00:06:01.865 --> 00:06:03.645
<00:06:01.865>So <00:06:02.040>what <00:06:02.215>you <00:06:02.390>can <00:06:02.565>do <00:06:02.740>as <00:06:02.915>an <00:06:03.090>end <00:06:03.265>user

126
00:06:03.665 --> 00:06:05.725
<00:06:03.665>of <00:06:03.820>this <00:06:03.976>application <00:06:04.131>is <00:06:04.287>you <00:06:04.442>can <00:06:04.598>go <00:06:04.753>to <00:06:04.909>the <00:06:05.065>shop

127
00:06:06.025 --> 00:06:08.245
<00:06:06.025>or <00:06:06.258>to <00:06:06.491>the <00:06:06.724>catalog, <00:06:06.958>you <00:06:07.191>can <00:06:07.424>navigate

128
00:06:08.245 --> 00:06:09.805
<00:06:08.245>through <00:06:08.711>the <00:06:09.178>different <00:06:09.645>categories.

129
00:06:10.505 --> 00:06:12.325
<00:06:10.505>You <00:06:10.738>can <00:06:10.971>choose <00:06:11.205>one <00:06:11.438>of <00:06:11.671>the <00:06:11.905>products,

130
00:06:12.665 --> 00:06:16.645
<00:06:12.665>and <00:06:12.792>then <00:06:12.919>back <00:06:13.046>then, <00:06:13.174>10 <00:06:13.301>years <00:06:13.428>ago, <00:06:13.555>you <00:06:13.683>would <00:06:13.810>use <00:06:13.937>a <00:06:14.065>drag

131
00:06:16.645 --> 00:06:19.565
<00:06:16.645>and <00:06:16.820>drop <00:06:16.995>to <00:06:17.169>drag <00:06:17.344>something <00:06:17.520>into <00:06:17.695>your <00:06:17.870>shopping <00:06:18.044>cart.

132
00:06:19.665 --> 00:06:20.725
<00:06:19.665>The <00:06:19.983>shopping <00:06:20.301>cart <00:06:20.619>is,

133
00:06:20.825 --> 00:06:22.845
<00:06:20.825>is <00:06:21.025>displayed <00:06:21.224>here <00:06:21.425>in <00:06:21.625>the <00:06:21.825>right, <00:06:22.025>um, <00:06:22.224>column.

134
00:06:23.265 --> 00:06:25.325
<00:06:23.265>And <00:06:23.498>there's <00:06:23.731>also <00:06:23.965>this <00:06:24.198>order <00:06:24.431>history <00:06:24.664>tab.

135
00:06:26.155 --> 00:06:27.445
<00:06:26.155>This <00:06:26.445>is <00:06:26.735>the <00:06:27.025>new <00:06:27.316>application.

136
00:06:27.755 --> 00:06:30.085
<00:06:27.755>It's <00:06:27.955>very <00:06:28.155>similar <00:06:28.355>in <00:06:28.555>terms <00:06:28.755>of <00:06:28.955>functionality, <00:06:29.155>right?

137
00:06:30.185 --> 00:06:32.125
<00:06:30.185>You <00:06:30.535>have <00:06:30.885>the <00:06:31.235>catalog <00:06:31.585>again,

138
00:06:32.125 --> 00:06:35.205
<00:06:32.125>or <00:06:32.265>the <00:06:32.405>navigator <00:06:32.545>with <00:06:32.685>a <00:06:32.825>catalog <00:06:32.965>on <00:06:33.105>the <00:06:33.245>left <00:06:33.385>hand <00:06:33.525>side.

139
00:06:35.825 --> 00:06:38.125
<00:06:35.825>You <00:06:36.058>can <00:06:36.291>switch <00:06:36.525>between <00:06:36.758>the <00:06:36.991>different <00:06:37.224>categories.

140
00:06:38.665 --> 00:06:41.005
<00:06:38.665>And <00:06:38.840>again, <00:06:39.015>you <00:06:39.190>can <00:06:39.365>pick <00:06:39.540>one <00:06:39.715>of <00:06:39.890>these <00:06:40.065>items

141
00:06:41.265 --> 00:06:42.685
<00:06:41.265>and <00:06:41.478>add <00:06:41.691>them <00:06:41.904>to <00:06:42.117>the <00:06:42.330>shopping <00:06:42.543>cart.

142
00:06:43.185 --> 00:06:44.325
<00:06:43.185>And <00:06:43.527>then <00:06:43.869>the <00:06:44.211>number

143
00:06:44.345 --> 00:06:47.685
<00:06:44.345>of <00:06:44.485>items <00:06:44.625>in <00:06:44.765>the <00:06:44.905>shopping <00:06:45.045>cart <00:06:45.185>is <00:06:45.325>updated <00:06:45.465>in <00:06:45.605>the <00:06:45.745>navigator.

144
00:06:48.065 --> 00:06:50.805
<00:06:48.065>And <00:06:48.181>you <00:06:48.298>can <00:06:48.415>also <00:06:48.531>go <00:06:48.648>into <00:06:48.765>the <00:06:48.881>shopping <00:06:48.998>cart <00:06:49.115>to <00:06:49.231>see <00:06:49.348>the <00:06:49.465>list

145
00:06:50.825 --> 00:06:52.285
<00:06:50.825>of <00:06:51.087>all <00:06:51.350>items <00:06:51.613>that <00:06:51.876>you <00:06:52.138>ordered.

146
00:06:53.265 --> 00:06:56.045
<00:06:53.265>Now, <00:06:53.440>this <00:06:53.615>is <00:06:53.789>the <00:06:53.965>result <00:06:54.140>of <00:06:54.315>this <00:06:54.490>modernized <00:06:54.664>application,

147
00:06:56.045 --> 00:06:57.645
<00:06:56.045>which <00:06:56.278>I'm <00:06:56.511>gonna <00:06:56.745>explain <00:06:56.978>in <00:06:57.211>this <00:06:57.445>talk.

148
00:06:58.025 --> 00:07:00.405
<00:06:58.025>As <00:06:58.180>you <00:06:58.336>can <00:06:58.491>see, <00:06:58.647>I'm <00:06:58.802>not <00:06:58.958>only <00:06:59.113>having <00:06:59.269>here <00:06:59.424>one

149
00:07:00.555 --> 00:07:02.205
<00:07:00.555>application <00:07:01.021>or <00:07:01.488>one <00:07:01.955>container.

150
00:07:02.285 --> 00:07:05.485
<00:07:02.285>I <00:07:02.401>actually <00:07:02.518>have, <00:07:02.635>uh, <00:07:02.751>I <00:07:02.868>dunno, <00:07:02.985>10 <00:07:03.101>more <00:07:03.218>than <00:07:03.335>10, <00:07:03.451>14, <00:07:03.568>I <00:07:03.685>think,

151
00:07:05.985 --> 00:07:07.285
<00:07:05.985>um, <00:07:06.570>different <00:07:07.155>containers.

152
00:07:07.465 --> 00:07:10.045
<00:07:07.465>And <00:07:07.640>I <00:07:07.815>explained <00:07:07.989>most <00:07:08.164>of <00:07:08.340>them <00:07:08.515>in <00:07:08.690>this <00:07:08.864>presentation.

153
00:07:11.075 --> 00:07:14.365
<00:07:11.075>So <00:07:11.230>let, <00:07:11.386>let's <00:07:11.541>go <00:07:11.697>back <00:07:11.852>to <00:07:12.008>the <00:07:12.163>slides <00:07:12.319>right <00:07:12.474>here.

154
00:07:15.515 --> 00:07:18.015
<00:07:15.515>Now, <00:07:15.715>before <00:07:15.914>I <00:07:16.115>really <00:07:16.315>get <00:07:16.515>started <00:07:16.715>to <00:07:16.914>explain

155
00:07:18.195 --> 00:07:19.895
<00:07:18.195>how <00:07:18.474>exactly <00:07:18.755>I've <00:07:19.034>done <00:07:19.315>that, <00:07:19.594>um,

156
00:07:20.015 --> 00:07:23.175
<00:07:20.015>I <00:07:20.170>wanna <00:07:20.326>make <00:07:20.481>sure <00:07:20.637>you <00:07:20.792>understand <00:07:20.948>that <00:07:21.103>application <00:07:21.259>jour, <00:07:21.414>uh,

157
00:07:23.175 --> 00:07:25.415
<00:07:23.175>application <00:07:23.525>modernization <00:07:23.875>is <00:07:24.225>a <00:07:24.575>journey.

158
00:07:26.195 --> 00:07:27.895
<00:07:26.195>It <00:07:26.661>doesn't <00:07:27.128>happen <00:07:27.594>overnight.

159
00:07:28.185 --> 00:07:31.575
<00:07:28.185>There <00:07:28.360>is <00:07:28.535>no <00:07:28.710>magic <00:07:28.885>and <00:07:29.060>it <00:07:29.235>doesn't <00:07:29.410>happen <00:07:29.585>automatically.

160
00:07:32.155 --> 00:07:34.415
<00:07:32.155>You <00:07:32.354>have <00:07:32.554>to <00:07:32.755>really <00:07:32.955>understand <00:07:33.155>what <00:07:33.354>you <00:07:33.554>do.

161
00:07:34.595 --> 00:07:37.095
<00:07:34.595>And <00:07:34.828>my <00:07:35.061>advice <00:07:35.295>is <00:07:35.528>take <00:07:35.761>baby <00:07:35.995>steps.

162
00:07:37.345 --> 00:07:39.815
<00:07:37.345>Don't <00:07:37.545>try <00:07:37.745>to <00:07:37.945>boil <00:07:38.145>the <00:07:38.345>ocean, <00:07:38.545>don't <00:07:38.745>try

163
00:07:39.815 --> 00:07:43.455
<00:07:39.815>to <00:07:39.955>do <00:07:40.094>too <00:07:40.235>much <00:07:40.375>in <00:07:40.515>one <00:07:40.655>step, <00:07:40.795>modernize <00:07:40.935>step <00:07:41.075>by <00:07:41.215>step,

164
00:07:44.335 --> 00:07:45.935
<00:07:44.335>evaluate <00:07:44.801>the <00:07:45.268>value <00:07:45.734>add

165
00:07:45.955 --> 00:07:49.695
<00:07:45.955>and <00:07:46.094>whether <00:07:46.234>it <00:07:46.375>was <00:07:46.515>worth <00:07:46.655>doing <00:07:46.794>that <00:07:46.935>step <00:07:47.075>and <00:07:47.215>then <00:07:47.354>continue.

166
00:07:49.995 --> 00:07:51.615
<00:07:49.995>And <00:07:50.195>the <00:07:50.395>reason <00:07:50.595>why <00:07:50.795>I <00:07:50.995>suggest <00:07:51.195>that <00:07:51.395>is

167
00:07:51.615 --> 00:07:54.055
<00:07:51.615>because <00:07:51.815>there's <00:07:52.015>less <00:07:52.215>risk <00:07:52.415>that <00:07:52.615>you <00:07:52.815>break <00:07:53.015>something.

168
00:07:54.395 --> 00:07:56.935
<00:07:54.395>And <00:07:54.594>again, <00:07:54.794>you <00:07:54.995>can <00:07:55.195>see <00:07:55.395>the <00:07:55.594>actual <00:07:55.794>value

169
00:07:57.775 --> 00:07:58.815
<00:07:57.775>directly <00:07:58.087>after <00:07:58.399>every <00:07:58.711>step.

170
00:08:01.055 --> 00:08:02.595
<00:08:01.055>So <00:08:01.401>in <00:08:01.748>my <00:08:02.094>sample <00:08:02.441>application,

171
00:08:02.755 --> 00:08:04.915
<00:08:02.755>I <00:08:02.988>actually <00:08:03.221>u <00:08:03.455>used <00:08:03.688>eight <00:08:03.921>different <00:08:04.155>steps,

172
00:08:05.295 --> 00:08:09.235
<00:08:05.295>and <00:08:05.411>this <00:08:05.528>is <00:08:05.645>too <00:08:05.761>much <00:08:05.878>to <00:08:05.995>cover <00:08:06.111>in <00:08:06.228>only <00:08:06.345>30, <00:08:06.461>40 <00:08:06.578>minutes <00:08:06.695>today,

173
00:08:09.495 --> 00:08:11.315
<00:08:09.495>but <00:08:09.650>you <00:08:09.806>can <00:08:09.961>go <00:08:10.117>to <00:08:10.272>the <00:08:10.428>repo <00:08:10.583>to <00:08:10.739>learn <00:08:10.895>more.

174
00:08:11.705 --> 00:08:15.395
<00:08:11.705>Essentially <00:08:11.860>what <00:08:12.016>I <00:08:12.171>did <00:08:12.327>was <00:08:12.482>to <00:08:12.638>use <00:08:12.793>a <00:08:12.949>10-year-old <00:08:13.104>application,

175
00:08:15.495 --> 00:08:17.595
<00:08:15.495>or <00:08:15.670>maybe <00:08:15.845>12 <00:08:16.020>years, <00:08:16.195>I <00:08:16.370>don't <00:08:16.545>even <00:08:16.720>know <00:08:16.895>anymore.

176
00:08:18.055 --> 00:08:20.515
<00:08:18.055>It <00:08:18.288>was <00:08:18.521>built <00:08:18.755>with <00:08:18.988>Java <00:08:19.221>EE <00:08:19.455>six,

177
00:08:20.775 --> 00:08:22.315
<00:08:20.775>and <00:08:21.052>it <00:08:21.329>was <00:08:21.606>run <00:08:21.883>on <00:08:22.161>WebSphere,

178
00:08:22.315 --> 00:08:24.835
<00:08:22.315>traditional <00:08:22.515>eight <00:08:22.715>five <00:08:22.915>running <00:08:23.115>in <00:08:23.315>a <00:08:23.515>virtual <00:08:23.715>machine.

179
00:08:25.865 --> 00:08:29.795
<00:08:25.865>Then <00:08:26.040>I <00:08:26.215>moved <00:08:26.390>the <00:08:26.565>application <00:08:26.740>over <00:08:26.915>into <00:08:27.090>a <00:08:27.265>container,

180
00:08:29.965 --> 00:08:32.995
<00:08:29.965>which <00:08:30.244>gave <00:08:30.525>me <00:08:30.804>operational, <00:08:31.085>um, <00:08:31.364>modernization

181
00:08:33.095 --> 00:08:35.715
<00:08:33.095>or <00:08:33.375>capabilities <00:08:33.655>in <00:08:33.935>the <00:08:34.215>next <00:08:34.495>step.

182
00:08:35.715 --> 00:08:39.475
<00:08:35.715>Number <00:08:35.915>three, <00:08:36.115>I <00:08:36.315>actually <00:08:36.515>updated <00:08:36.715>from <00:08:36.915>WebSphere <00:08:37.115>traditional

183
00:08:39.535 --> 00:08:42.035
<00:08:39.534>to <00:08:39.768>a <00:08:40.001>more <00:08:40.235>modern <00:08:40.468>Java <00:08:40.701>application <00:08:40.934>runtime,

184
00:08:42.045 --> 00:08:43.195
<00:08:42.044>which <00:08:42.390>is <00:08:42.735>web <00:08:43.080>avail.

185
00:08:44.705 --> 00:08:48.635
<00:08:44.705>Step <00:08:44.832>four, <00:08:44.959>I <00:08:45.086>separated <00:08:45.214>the <00:08:45.341>front <00:08:45.468>end <00:08:45.595>from <00:08:45.723>the <00:08:45.850>back <00:08:45.977>end <00:08:46.105>so

186
00:08:48.635 --> 00:08:51.555
<00:08:48.635>that <00:08:48.868>I <00:08:49.101>could <00:08:49.335>easier <00:08:49.568>change <00:08:49.801>the <00:08:50.035>UI

187
00:08:51.575 --> 00:08:53.755
<00:08:51.575>or <00:08:51.775>the <00:08:51.975>web <00:08:52.175>application <00:08:52.375>in <00:08:52.575>a <00:08:52.775>later <00:08:52.975>step.

188
00:08:54.785 --> 00:08:56.465
<00:08:54.785>Step <00:08:55.251>number <00:08:55.718>five, <00:08:56.185>I

189
00:08:57.055 --> 00:08:59.145
<00:08:57.055>changed <00:08:57.288>from <00:08:57.521>Webs <00:08:57.755>Liberty <00:08:57.988>to <00:08:58.221>open <00:08:58.454>Liberty.

190
00:08:59.335 --> 00:09:02.425
<00:08:59.335>Open <00:08:59.490>Liberty <00:08:59.646>is <00:08:59.801>the <00:08:59.957>open <00:09:00.112>source <00:09:00.268>version <00:09:00.423>of <00:09:00.579>Webs <00:09:00.735>Liberty.

191
00:09:02.575 --> 00:09:07.115
<00:09:02.575>It's <00:09:02.750>basically <00:09:02.925>the <00:09:03.100>upstream <00:09:03.275>project <00:09:03.450>number <00:09:03.625>six <00:09:03.800>and <00:09:03.975>seven.

192
00:09:07.595 --> 00:09:10.035
<00:09:07.595>I <00:09:07.750>use <00:09:07.906>the <00:09:08.061>Strangler <00:09:08.217>PLA <00:09:08.372>pattern, <00:09:08.528>which <00:09:08.683>I <00:09:08.839>will <00:09:08.995>explain

193
00:09:10.375 --> 00:09:12.955
<00:09:10.375>to <00:09:10.575>really <00:09:10.775>separate <00:09:10.975>a <00:09:11.175>certain <00:09:11.375>piece <00:09:11.575>of <00:09:11.775>functionality,

194
00:09:13.475 --> 00:09:16.395
<00:09:13.475>functionality, <00:09:13.650>the <00:09:13.825>catalog <00:09:14.000>from <00:09:14.175>the <00:09:14.350>monolith <00:09:14.525>to <00:09:14.700>be <00:09:14.875>able

195
00:09:16.395 --> 00:09:17.635
<00:09:16.395>to <00:09:16.953>scale <00:09:17.511>independently.

196
00:09:18.175 --> 00:09:19.995
<00:09:18.175>And <00:09:18.349>in <00:09:18.525>the <00:09:18.699>last <00:09:18.875>step, <00:09:19.050>I <00:09:19.224>actually <00:09:19.400>used <00:09:19.574>micro

197
00:09:20.005 --> 00:09:21.235
<00:09:20.005>front <00:09:20.281>ends <00:09:20.558>for <00:09:20.835>the <00:09:21.112>ui.

198
00:09:21.295 --> 00:09:24.795
<00:09:21.295>And <00:09:21.469>again, <00:09:21.645>I'm <00:09:21.819>gonna, <00:09:21.995>um, <00:09:22.170>explain <00:09:22.344>why <00:09:22.520>I've <00:09:22.694>done

199
00:09:24.795 --> 00:09:26.195
<00:09:24.795>that <00:09:25.005>at <00:09:25.215>the <00:09:25.425>end <00:09:25.635>of <00:09:25.845>this <00:09:26.055>talk.

200
00:09:27.375 --> 00:09:29.675
<00:09:27.375>So <00:09:27.530>let's <00:09:27.686>take <00:09:27.841>a <00:09:27.997>look <00:09:28.152>at <00:09:28.308>the <00:09:28.463>very <00:09:28.619>beginning <00:09:28.775>here.

201
00:09:29.675 --> 00:09:31.195
<00:09:29.675>The <00:09:29.948>starting <00:09:30.222>point, <00:09:30.495>this <00:09:30.769>is <00:09:31.043>kind

202
00:09:31.195 --> 00:09:32.515
<00:09:31.195>of <00:09:31.492>the <00:09:31.789>high <00:09:32.086>level <00:09:32.383>architecture.

203
00:09:32.965 --> 00:09:34.635
<00:09:32.965>There <00:09:33.245>are <00:09:33.525>only <00:09:33.805>two <00:09:34.085>virtual <00:09:34.365>machines.

204
00:09:34.855 --> 00:09:37.275
<00:09:34.855>One <00:09:35.010>is <00:09:35.166>running <00:09:35.321>the <00:09:35.477>database, <00:09:35.632>in <00:09:35.788>this <00:09:35.943>case, <00:09:36.099>DB <00:09:36.255>two.

205
00:09:37.735 --> 00:09:40.915
<00:09:37.735>The <00:09:37.890>other <00:09:38.046>one <00:09:38.201>is <00:09:38.357>running <00:09:38.512>the <00:09:38.668>web <00:09:38.823>sphere <00:09:38.979>traditional <00:09:39.135>server.

206
00:09:41.335 --> 00:09:43.435
<00:09:41.335>And <00:09:41.615>both <00:09:41.895>the <00:09:42.175>monolith <00:09:42.455>U <00:09:42.735>UI

207
00:09:43.435 --> 00:09:46.395
<00:09:43.435>and <00:09:43.635>the <00:09:43.834>monolith <00:09:44.035>backend <00:09:44.234>is <00:09:44.435>really <00:09:44.635>one <00:09:44.834>application.

208
00:09:48.475 --> 00:09:52.775
<00:09:48.475>So <00:09:48.602>now <00:09:48.729>in <00:09:48.856>the <00:09:48.984>first <00:09:49.111>step, <00:09:49.238>I <00:09:49.365>had <00:09:49.493>to <00:09:49.620>move <00:09:49.747>the <00:09:49.875>workload,

209
00:09:53.235 --> 00:09:56.015
<00:09:53.235>the <00:09:53.410>application <00:09:53.585>from <00:09:53.760>a <00:09:53.935>virtual <00:09:54.110>machine <00:09:54.285>into <00:09:54.460>a <00:09:54.635>container.

210
00:09:56.035 --> 00:09:57.695
<00:09:56.035>And <00:09:56.385>again, <00:09:56.735>that <00:09:57.084>allows <00:09:57.435>me

211
00:09:57.875 --> 00:10:00.455
<00:09:57.875>to <00:09:58.225>benefit <00:09:58.575>from <00:09:58.925>operational <00:09:59.275>advantages.

212
00:10:00.915 --> 00:10:04.215
<00:10:00.915>For <00:10:01.115>example, <00:10:01.314>if <00:10:01.515>all <00:10:01.714>you <00:10:01.915>have, <00:10:02.115>um, <00:10:02.314>is,

213
00:10:04.275 --> 00:10:05.415
<00:10:04.275>is <00:10:04.617>a <00:10:04.959>Kubernetes <00:10:05.300>cluster

214
00:10:05.515 --> 00:10:07.295
<00:10:05.515>or <00:10:05.795>OpenShift, <00:10:06.074>you <00:10:06.355>can <00:10:06.635>manage <00:10:06.915>all

215
00:10:07.295 --> 00:10:09.695
<00:10:07.295>of <00:10:07.645>your <00:10:07.995>workloads <00:10:08.344>consistently, <00:10:08.694>consistently.

216
00:10:09.715 --> 00:10:11.895
<00:10:09.715>You <00:10:09.890>can <00:10:10.065>use <00:10:10.240>the <00:10:10.415>same <00:10:10.590>monitoring, <00:10:10.765>the <00:10:10.940>same <00:10:11.115>logging.

217
00:10:12.395 --> 00:10:14.535
<00:10:12.395>Um, <00:10:12.628>you <00:10:12.861>don't <00:10:13.095>need <00:10:13.328>any <00:10:13.561>specific <00:10:13.795>skills,

218
00:10:14.635 --> 00:10:15.735
<00:10:14.635>any <00:10:15.130>proprietary <00:10:15.625>skills.

219
00:10:16.235 --> 00:10:18.575
<00:10:16.235>And <00:10:16.468>that <00:10:16.701>allows <00:10:16.935>you <00:10:17.168>to, <00:10:17.401>uh, <00:10:17.635>manage

220
00:10:18.575 --> 00:10:20.695
<00:10:18.575>and <00:10:18.855>organize <00:10:19.135>your <00:10:19.415>applications <00:10:19.695>much <00:10:19.975>easier,

221
00:10:21.085 --> 00:10:24.215
<00:10:21.085>even <00:10:21.260>though <00:10:21.435>you <00:10:21.610>don't <00:10:21.785>really <00:10:21.960>benefit <00:10:22.135>from, <00:10:22.310>you <00:10:22.485>know,

222
00:10:24.225 --> 00:10:26.495
<00:10:24.225>cloud <00:10:24.505>native <00:10:24.785>capabilities <00:10:25.065>like <00:10:25.345>health <00:10:25.625>checks

223
00:10:26.635 --> 00:10:30.015
<00:10:26.635>or, <00:10:26.868>you <00:10:27.101>know, <00:10:27.335>any <00:10:27.568>advanced <00:10:27.801>microservices <00:10:28.035>technologies.

224
00:10:30.835 --> 00:10:34.015
<00:10:30.835>In <00:10:30.962>order <00:10:31.089>to <00:10:31.216>do <00:10:31.344>that, <00:10:31.471>I've <00:10:31.598>used <00:10:31.725>a <00:10:31.853>tool <00:10:31.980>that <00:10:32.107>IBM <00:10:32.235>provides.

225
00:10:34.085 --> 00:10:36.735
<00:10:34.085>It's <00:10:34.318>called <00:10:34.551>the <00:10:34.785>IBM <00:10:35.018>Cloud <00:10:35.251>Transformation <00:10:35.485>Advisor.

226
00:10:37.475 --> 00:10:40.935
<00:10:37.475>You <00:10:37.615>can <00:10:37.755>run <00:10:37.895>this <00:10:38.035>tool <00:10:38.175>locally, <00:10:38.315>it's <00:10:38.455>just <00:10:38.595>a <00:10:38.735>docker <00:10:38.875>container

227
00:10:41.435 --> 00:10:42.695
<00:10:41.435>and <00:10:41.718>it <00:10:42.002>collects <00:10:42.285>the <00:10:42.569>data,

228
00:10:42.835 --> 00:10:45.975
<00:10:42.835>and <00:10:42.962>as <00:10:43.089>a <00:10:43.216>result, <00:10:43.344>it <00:10:43.471>tells <00:10:43.598>you <00:10:43.725>what <00:10:43.853>you <00:10:43.980>need <00:10:44.107>to <00:10:44.235>change.

229
00:10:46.265 --> 00:10:48.255
<00:10:46.265>Again, <00:10:46.545>in <00:10:46.824>this <00:10:47.105>step, <00:10:47.385>I <00:10:47.665>want

230
00:10:48.255 --> 00:10:51.855
<00:10:48.255>to <00:10:48.410>move <00:10:48.566>my <00:10:48.721>application <00:10:48.877>from <00:10:49.032>a <00:10:49.188>BM <00:10:49.343>into <00:10:49.499>a <00:10:49.655>container.

231
00:10:52.635 --> 00:10:54.815
<00:10:52.635>Um, <00:10:52.985>so <00:10:53.335>application, <00:10:53.685>uh, <00:10:54.035>uh,

232
00:10:54.815 --> 00:10:58.575
<00:10:54.815>transformation <00:10:54.970>Advisor <00:10:55.126>shows <00:10:55.281>you <00:10:55.437>the, <00:10:55.592>the <00:10:55.748>places <00:10:55.903>in <00:10:56.059>the <00:10:56.215>code

233
00:10:58.725 --> 00:10:59.975
<00:10:58.725>that <00:10:59.006>you <00:10:59.287>need <00:10:59.568>to <00:10:59.850>change.

234
00:11:00.115 --> 00:11:02.415
<00:11:00.115>And <00:11:00.231>I'm <00:11:00.348>gonna <00:11:00.465>talk <00:11:00.581>a <00:11:00.698>little <00:11:00.815>bit <00:11:00.931>more <00:11:01.048>about <00:11:01.165>that <00:11:01.281>in <00:11:01.398>a <00:11:01.515>minute.

235
00:11:03.035 --> 00:11:07.295
<00:11:03.035>And <00:11:03.209>most <00:11:03.385>importantly, <00:11:03.560>it <00:11:03.735>also <00:11:03.910>generates <00:11:04.084>these <00:11:04.260>property <00:11:04.435>files

236
00:11:07.475 --> 00:11:09.095
<00:11:07.475>or <00:11:07.825>the, <00:11:08.175>these <00:11:08.525>configuration <00:11:08.875>files.

237
00:11:09.765 --> 00:11:12.415
<00:11:09.765>Most <00:11:09.939>important <00:11:10.115>one <00:11:10.290>is <00:11:10.465>obviously <00:11:10.640>the <00:11:10.814>Docker <00:11:10.990>file, <00:11:11.165>right?

238
00:11:12.435 --> 00:11:14.135
<00:11:12.435>So <00:11:12.609>it <00:11:12.785>tells <00:11:12.959>you <00:11:13.135>this <00:11:13.310>is <00:11:13.484>a <00:11:13.660>Docker <00:11:13.834>file

239
00:11:14.135 --> 00:11:17.495
<00:11:14.135>and <00:11:14.262>this <00:11:14.389>is <00:11:14.516>how <00:11:14.644>you <00:11:14.771>move <00:11:14.898>from <00:11:15.025>a <00:11:15.153>VM <00:11:15.280>into <00:11:15.407>a <00:11:15.535>container.

240
00:11:18.155 --> 00:11:21.375
<00:11:18.155>And <00:11:18.295>also <00:11:18.435>there's <00:11:18.574>a <00:11:18.714>server <00:11:18.855>X <00:11:18.995>ml, <00:11:19.135>which <00:11:19.275>is <00:11:19.415>the <00:11:19.555>configuration

241
00:11:21.435 --> 00:11:24.855
<00:11:21.435>of <00:11:21.668>UMBC <00:11:21.901>applications, <00:11:22.135>web, <00:11:22.368>web <00:11:22.601>application <00:11:22.834>servers.

242
00:11:25.195 --> 00:11:28.335
<00:11:25.195>And <00:11:25.350>POM <00:11:25.506>XML <00:11:25.661>obviously <00:11:25.817>is <00:11:25.972>what <00:11:26.128>is <00:11:26.283>used <00:11:26.439>with <00:11:26.595>Maven

243
00:11:28.335 --> 00:11:29.455
<00:11:28.335>for <00:11:28.839>dependency <00:11:29.343>management.

244
00:11:29.455 --> 00:11:30.855
<00:11:29.455>So <00:11:29.770>all <00:11:30.085>of <00:11:30.400>these <00:11:30.715>are

245
00:11:31.175 --> 00:11:34.095
<00:11:31.175>provided <00:11:31.375>for <00:11:31.574>you, <00:11:31.775>which <00:11:31.974>makes <00:11:32.175>this <00:11:32.375>migration <00:11:32.574>step

246
00:11:34.095 --> 00:11:35.935
<00:11:34.095>or <00:11:34.445>modernization <00:11:34.795>step <00:11:35.145>very <00:11:35.495>easy.

247
00:11:38.025 --> 00:11:41.085
<00:11:38.025>Now, <00:11:38.152>I, <00:11:38.279>I <00:11:38.406>said, <00:11:38.534>um, <00:11:38.661>you <00:11:38.788>need <00:11:38.915>in <00:11:39.043>some <00:11:39.170>cases <00:11:39.297>all <00:11:39.425>to,

248
00:11:41.085 --> 00:11:42.125
<00:11:41.085>to <00:11:41.553>change <00:11:42.021>code.

249
00:11:42.825 --> 00:11:45.205
<00:11:42.825>And <00:11:43.058>we <00:11:43.291>have <00:11:43.525>another <00:11:43.758>really <00:11:43.991>great <00:11:44.225>tool,

250
00:11:45.215 --> 00:11:47.085
<00:11:45.215>which <00:11:45.495>is <00:11:45.775>called <00:11:46.055>the <00:11:46.335>IBM <00:11:46.615>WebSphere

251
00:11:47.085 --> 00:11:48.165
<00:11:47.085>Application <00:11:47.571>Migration <00:11:48.057>Toolkit.

252
00:11:48.795 --> 00:11:50.645
<00:11:48.795>It's <00:11:49.145>an <00:11:49.495>extension <00:11:49.844>to <00:11:50.194>Eclipse

253
00:11:50.985 --> 00:11:54.325
<00:11:50.985>and <00:11:51.112>it <00:11:51.239>allows <00:11:51.366>you <00:11:51.494>to <00:11:51.621>see <00:11:51.748>all <00:11:51.875>the <00:11:52.003>places <00:11:52.130>in <00:11:52.257>the <00:11:52.385>code

254
00:11:54.325 --> 00:11:56.525
<00:11:54.325>that <00:11:54.500>you <00:11:54.675>need <00:11:54.850>to <00:11:55.025>change <00:11:55.200>directly <00:11:55.375>in <00:11:55.550>your <00:11:55.725>code.

255
00:11:56.525 --> 00:11:58.725
<00:11:56.525>And <00:11:56.680>here's <00:11:56.836>how <00:11:56.991>it <00:11:57.147>looks <00:11:57.302>like <00:11:57.458>in <00:11:57.613>the <00:11:57.769>first <00:11:57.925>step,

256
00:11:59.185 --> 00:12:00.725
<00:11:59.185>you <00:11:59.646>define <00:12:00.109>the <00:12:00.571>configuration.

257
00:12:00.745 --> 00:12:03.765
<00:12:00.745>So <00:12:00.872>what <00:12:00.999>I <00:12:01.126>do <00:12:01.254>here <00:12:01.381>is <00:12:01.508>to <00:12:01.635>say <00:12:01.763>I <00:12:01.890>want <00:12:02.017>to, <00:12:02.145>um,

258
00:12:04.075 --> 00:12:06.765
<00:12:04.075>modernize <00:12:04.355>from <00:12:04.635>web <00:12:04.915>PHE <00:12:05.195>application <00:12:05.475>server,

259
00:12:06.765 --> 00:12:09.685
<00:12:06.765>traditional <00:12:06.998>eight <00:12:07.231>five <00:12:07.465>to <00:12:07.698>Liberty, <00:12:07.931>I <00:12:08.165>want

260
00:12:09.825 --> 00:12:12.725
<00:12:09.825>to <00:12:09.980>switch <00:12:10.136>from <00:12:10.291>Java <00:12:10.447>E <00:12:10.602>six <00:12:10.758>to <00:12:10.913>eight, <00:12:11.069>I <00:12:11.225>want

261
00:12:12.725 --> 00:12:14.645
<00:12:12.725>to <00:12:12.900>switch <00:12:13.075>from <00:12:13.250>Java <00:12:13.425>six <00:12:13.600>to <00:12:13.775>eight, <00:12:13.950>et <00:12:14.125>cetera.

262
00:12:15.145 --> 00:12:16.885
<00:12:15.145>And <00:12:15.345>then <00:12:15.545>as <00:12:15.745>a <00:12:15.944>result, <00:12:16.145>you <00:12:16.345>get <00:12:16.545>this,

263
00:12:16.885 --> 00:12:19.645
<00:12:16.885>you <00:12:17.025>get <00:12:17.165>two <00:12:17.305>eclipse <00:12:17.444>views, <00:12:17.585>one <00:12:17.725>is <00:12:17.865>here <00:12:18.005>at <00:12:18.145>the <00:12:18.285>bottom.

264
00:12:20.115 --> 00:12:22.165
<00:12:20.115>That <00:12:20.270>one <00:12:20.426>shows <00:12:20.581>you <00:12:20.737>all <00:12:20.892>the <00:12:21.048>places <00:12:21.203>in <00:12:21.359>the <00:12:21.515>code

265
00:12:22.335 --> 00:12:23.885
<00:12:22.335>where <00:12:22.567>you <00:12:22.800>might <00:12:23.032>have <00:12:23.265>to <00:12:23.497>do <00:12:23.730>changes.

266
00:12:24.625 --> 00:12:26.525
<00:12:24.625>And <00:12:24.825>the <00:12:25.025>Eclipse <00:12:25.225>view <00:12:25.425>in <00:12:25.625>the <00:12:25.825>right <00:12:26.025>column,

267
00:12:26.785 --> 00:12:29.325
<00:12:26.785>it <00:12:26.925>shows <00:12:27.064>you <00:12:27.204>basically <00:12:27.344>the, <00:12:27.485>the <00:12:27.625>help <00:12:27.765>you <00:12:27.905>know, <00:12:28.045>it, <00:12:28.185>it,

268
00:12:29.325 --> 00:12:31.765
<00:12:29.325>it <00:12:29.500>tells <00:12:29.675>you <00:12:29.850>what <00:12:30.025>and <00:12:30.200>how <00:12:30.375>to <00:12:30.550>change <00:12:30.725>things.

269
00:12:32.185 --> 00:12:35.005
<00:12:32.185>In <00:12:32.385>the <00:12:32.584>easiest <00:12:32.785>case, <00:12:32.984>there's <00:12:33.185>even <00:12:33.385>sometimes, <00:12:33.584>um,

270
00:12:35.205 --> 00:12:36.445
<00:12:35.205>a <00:12:35.577>quick <00:12:35.949>fix <00:12:36.321>capability,

271
00:12:36.575 --> 00:12:38.645
<00:12:36.575>which <00:12:36.775>makes <00:12:36.975>it <00:12:37.175>even <00:12:37.375>easier <00:12:37.575>to <00:12:37.775>change <00:12:37.975>code.

272
00:12:40.595 --> 00:12:43.245
<00:12:40.595>Okay, <00:12:40.750>so <00:12:40.906>I, <00:12:41.061>I <00:12:41.217>skipped <00:12:41.372>a <00:12:41.528>couple <00:12:41.683>of <00:12:41.839>details <00:12:41.995>now,

273
00:12:43.265 --> 00:12:46.685
<00:12:43.265>but <00:12:43.465>essentially <00:12:43.665>I've <00:12:43.865>now <00:12:44.064>moved <00:12:44.265>from <00:12:44.465>WebSphere <00:12:44.665>traditional

274
00:12:46.685 --> 00:12:49.045
<00:12:46.685>from <00:12:46.964>Java <00:12:47.244>E <00:12:47.525>six <00:12:47.805>to <00:12:48.084>Web.

275
00:12:50.145 --> 00:12:54.125
<00:12:50.145>Now <00:12:50.272>in <00:12:50.399>the <00:12:50.526>next <00:12:50.654>step, <00:12:50.781>I <00:12:50.908>switched <00:12:51.035>or <00:12:51.163>I <00:12:51.290>separated <00:12:51.417>the <00:12:51.545>UIs.

276
00:12:54.305 --> 00:12:55.765
<00:12:54.305>And <00:12:54.469>this <00:12:54.633>is <00:12:54.797>kind <00:12:54.962>of <00:12:55.126>what <00:12:55.290>you <00:12:55.454>see <00:12:55.619>here.

277
00:12:56.345 --> 00:12:58.045
<00:12:56.345>So <00:12:56.578>now <00:12:56.811>we <00:12:57.045>have <00:12:57.278>a <00:12:57.511>data <00:12:57.745>layer,

278
00:12:58.205 --> 00:12:59.845
<00:12:58.205>a <00:12:58.438>backend <00:12:58.671>layer <00:12:58.905>in <00:12:59.138>the <00:12:59.371>frontend <00:12:59.605>layer,

279
00:12:59.845 --> 00:13:02.565
<00:12:59.845>basically <00:13:00.020>a <00:13:00.195>typical <00:13:00.370>three <00:13:00.545>tiers <00:13:00.720>architecture <00:13:00.895>if <00:13:01.070>you <00:13:01.245>want.

280
00:13:03.225 --> 00:13:05.645
<00:13:03.225>And <00:13:03.425>in <00:13:03.625>order <00:13:03.825>to <00:13:04.025>communicate <00:13:04.225>between <00:13:04.425>the <00:13:04.625>frontend

281
00:13:05.645 --> 00:13:07.765
<00:13:05.645>and <00:13:05.925>backend, <00:13:06.204>rest <00:13:06.485>APIs <00:13:06.765>are <00:13:07.045>used.

282
00:13:08.275 --> 00:13:10.845
<00:13:08.275>However, <00:13:08.555>these <00:13:08.834>are <00:13:09.115>not <00:13:09.395>restful <00:13:09.675>APIs.

283
00:13:10.945 --> 00:13:12.285
<00:13:10.945>You <00:13:11.186>know, <00:13:11.427>some <00:13:11.668>people <00:13:11.909>think <00:13:12.151>that

284
00:13:12.745 --> 00:13:15.885
<00:13:12.745>or <00:13:12.945>you <00:13:13.145>know, <00:13:13.345>are <00:13:13.545>want <00:13:13.745>everything <00:13:13.945>that <00:13:14.145>has

285
00:13:15.885 --> 00:13:17.045
<00:13:15.885>to <00:13:16.146>do <00:13:16.406>with <00:13:16.668>rest <00:13:16.929>restful.

286
00:13:17.185 --> 00:13:18.845
<00:13:17.185>In <00:13:17.418>this <00:13:17.651>case, <00:13:17.885>I've <00:13:18.118>used <00:13:18.351>another <00:13:18.584>pattern,

287
00:13:18.955 --> 00:13:20.485
<00:13:18.955>it's <00:13:19.230>called <00:13:19.505>backend <00:13:19.781>for <00:13:20.056>front <00:13:20.332>end.

288
00:13:20.865 --> 00:13:22.125
<00:13:20.865>So <00:13:21.243>they're <00:13:21.621>rest <00:13:21.999>APIs,

289
00:13:22.125 --> 00:13:25.165
<00:13:22.125>but <00:13:22.300>these <00:13:22.475>APIs <00:13:22.650>are <00:13:22.825>not <00:13:23.000>really <00:13:23.175>focused <00:13:23.350>on <00:13:23.525>resources,

290
00:13:25.185 --> 00:13:27.285
<00:13:25.185>but <00:13:25.535>they're <00:13:25.885>really <00:13:26.234>business <00:13:26.584>oriented

291
00:13:27.745 --> 00:13:30.005
<00:13:27.745>and <00:13:28.025>they <00:13:28.305>give <00:13:28.585>more <00:13:28.865>optimized <00:13:29.145>api

292
00:13:30.005 --> 00:13:33.445
<00:13:30.005>or <00:13:30.160>they <00:13:30.316>provide <00:13:30.471>more <00:13:30.627>optimized <00:13:30.782>APIs <00:13:30.938>for <00:13:31.093>the <00:13:31.249>front <00:13:31.405>end.

293
00:13:33.865 --> 00:13:36.805
<00:13:33.865>So <00:13:34.040>there's <00:13:34.215>a <00:13:34.390>communication, <00:13:34.565>you <00:13:34.740>know, <00:13:34.915>between <00:13:35.090>the <00:13:35.265>UI

294
00:13:36.825 --> 00:13:39.845
<00:13:36.825>and <00:13:37.000>the <00:13:37.175>backend <00:13:37.350>using <00:13:37.525>rest, <00:13:37.700>but <00:13:37.875>again, <00:13:38.050>not <00:13:38.225>restful.

295
00:13:41.555 --> 00:13:43.775
<00:13:41.555>So <00:13:41.729>now <00:13:41.905>in <00:13:42.079>the <00:13:42.255>next <00:13:42.430>step, <00:13:42.604>um, <00:13:42.780>I <00:13:42.954>want

296
00:13:43.775 --> 00:13:46.735
<00:13:43.775>to <00:13:43.949>upgrade <00:13:44.125>from <00:13:44.300>Webs <00:13:44.475>valid <00:13:44.650>liberty <00:13:44.824>to <00:13:45.000>open <00:13:45.175>liberty.

297
00:13:46.905 --> 00:13:49.055
<00:13:46.905>Again, <00:13:47.105>open <00:13:47.305>Liberty <00:13:47.505>is <00:13:47.704>the <00:13:47.905>open <00:13:48.105>source <00:13:48.305>version

298
00:13:49.055 --> 00:13:50.295
<00:13:49.055>of <00:13:49.426>Webs <00:13:49.799>validity <00:13:50.170>webs,

299
00:13:50.295 --> 00:13:52.015
<00:13:50.295>valid <00:13:50.574>liberty <00:13:50.854>is <00:13:51.135>IBM's <00:13:51.415>commercial <00:13:51.694>offering.

300
00:13:52.635 --> 00:13:55.975
<00:13:52.635>Um, <00:13:52.790>one <00:13:52.946>reason <00:13:53.101>why <00:13:53.257>I <00:13:53.412>wanted <00:13:53.568>to <00:13:53.723>do <00:13:53.879>that <00:13:54.035>is

301
00:13:55.975 --> 00:13:57.495
<00:13:55.975>because <00:13:56.170>I'm <00:13:56.365>a <00:13:56.561>big <00:13:56.756>fan <00:13:56.952>of <00:13:57.147>open <00:13:57.343>source.

302
00:13:57.595 --> 00:13:59.335
<00:13:57.595>You <00:13:57.875>know, <00:13:58.155>whenever <00:13:58.435>possible <00:13:58.715>I <00:13:58.995>want

303
00:13:59.335 --> 00:14:00.895
<00:13:59.335>to <00:13:59.535>use <00:13:59.735>open <00:13:59.935>source, <00:14:00.135>that <00:14:00.335>that's <00:14:00.535>one <00:14:00.735>reason.

304
00:14:01.405 --> 00:14:03.735
<00:14:01.405>Another <00:14:01.579>reason <00:14:01.755>which <00:14:01.930>might <00:14:02.105>be <00:14:02.280>even <00:14:02.454>more <00:14:02.630>important <00:14:02.805>is

305
00:14:03.735 --> 00:14:05.455
<00:14:03.735>that <00:14:03.935>I've <00:14:04.135>heard, <00:14:04.335>I <00:14:04.535>I'm <00:14:04.735>not <00:14:04.935>a <00:14:05.135>salesperson,

306
00:14:05.655 --> 00:14:07.135
<00:14:05.655>I <00:14:05.988>I'm <00:14:06.321>a <00:14:06.654>technical <00:14:06.987>person.

307
00:14:07.515 --> 00:14:09.735
<00:14:07.515>Um, <00:14:07.655>but <00:14:07.795>I've <00:14:07.935>also <00:14:08.074>heard <00:14:08.215>you <00:14:08.355>can <00:14:08.495>save <00:14:08.635>some <00:14:08.775>license <00:14:08.915>costs.

308
00:14:10.195 --> 00:14:11.975
<00:14:10.195>And <00:14:10.428>maybe <00:14:10.661>the <00:14:10.895>most <00:14:11.128>important <00:14:11.361>point <00:14:11.595>is

309
00:14:12.005 --> 00:14:14.095
<00:14:12.005>that <00:14:12.238>Open <00:14:12.471>Liberty <00:14:12.705>has <00:14:12.938>a <00:14:13.171>great <00:14:13.405>community,

310
00:14:14.275 --> 00:14:16.215
<00:14:14.275>and <00:14:14.415>as <00:14:14.555>a <00:14:14.694>developer, <00:14:14.834>I <00:14:14.975>want <00:14:15.115>to <00:14:15.255>be <00:14:15.395>able <00:14:15.535>to <00:14:15.675>go

311
00:14:16.215 --> 00:14:17.615
<00:14:16.215>to <00:14:16.530>Stick <00:14:16.845>Overflow <00:14:17.160>or <00:14:17.475>to,

312
00:14:17.835 --> 00:14:20.055
<00:14:17.835>to <00:14:17.975>the <00:14:18.115>Open <00:14:18.255>Liberty <00:14:18.395>website, <00:14:18.535>and <00:14:18.675>I <00:14:18.815>want <00:14:18.955>to <00:14:19.095>get <00:14:19.235>help.

313
00:14:20.115 --> 00:14:22.535
<00:14:20.115>And <00:14:20.395>this <00:14:20.675>is <00:14:20.955>certainly, <00:14:21.235>um, <00:14:21.515>possible.

314
00:14:22.535 --> 00:14:23.735
<00:14:22.535>There's <00:14:22.805>a, <00:14:23.075>a <00:14:23.345>really <00:14:23.615>big

315
00:14:23.755 --> 00:14:25.975
<00:14:23.755>and <00:14:24.035>successful <00:14:24.314>community <00:14:24.595>around <00:14:24.875>open <00:14:25.155>liberty

316
00:14:25.975 --> 00:14:28.415
<00:14:25.975>because <00:14:26.150>it's <00:14:26.325>based <00:14:26.500>on <00:14:26.675>open <00:14:26.850>source <00:14:27.025>that <00:14:27.200>allows <00:14:27.375>you

317
00:14:28.415 --> 00:14:31.095
<00:14:28.415>to <00:14:28.555>get <00:14:28.694>support <00:14:28.834>in <00:14:28.974>many <00:14:29.115>cases, <00:14:29.255>much <00:14:29.395>quicker <00:14:29.535>than <00:14:29.675>any <00:14:29.814>other,

318
00:14:31.435 --> 00:14:32.655
<00:14:31.435>um, <00:14:31.983>um, <00:14:32.533>option.

319
00:14:33.395 --> 00:14:37.495
<00:14:33.395>Um, <00:14:33.522>so <00:14:33.649>before <00:14:33.776>I <00:14:33.904>move <00:14:34.031>on, <00:14:34.158>um, <00:14:34.285>let <00:14:34.413>me <00:14:34.540>be <00:14:34.667>very <00:14:34.795>clear.

320
00:14:38.255 --> 00:14:41.535
<00:14:38.255>I <00:14:38.395>think <00:14:38.535>there <00:14:38.675>are <00:14:38.814>different <00:14:38.955>options <00:14:39.095>when <00:14:39.235>you <00:14:39.375>want <00:14:39.515>to <00:14:39.655>migrate

321
00:14:41.535 --> 00:14:44.615
<00:14:41.535>or <00:14:41.768>modernize <00:14:42.001>an <00:14:42.235>old <00:14:42.468>10-year-old <00:14:42.701>Java <00:14:42.935>application.

322
00:14:44.615 --> 00:14:47.495
<00:14:44.615>There <00:14:44.790>are <00:14:44.965>certainly <00:14:45.140>many <00:14:45.315>options <00:14:45.490>for <00:14:45.665>the <00:14:45.840>target <00:14:46.015>runtime.

323
00:14:47.795 --> 00:14:49.775
<00:14:47.795>You <00:14:47.969>know, <00:14:48.145>it <00:14:48.319>could <00:14:48.495>be <00:14:48.670>a <00:14:48.844>Jakarta <00:14:49.020>EE <00:14:49.194>server,

324
00:14:49.915 --> 00:14:52.965
<00:14:49.915>it <00:14:50.042>could <00:14:50.169>be <00:14:50.296>caros, <00:14:50.424>it <00:14:50.551>could <00:14:50.678>be <00:14:50.805>Spring, <00:14:50.933>it <00:14:51.060>could <00:14:51.187>be <00:14:51.314>other,

325
00:14:53.425 --> 00:14:54.685
<00:14:53.425>um, <00:14:53.992>Java <00:14:54.559>frameworks.

326
00:14:55.185 --> 00:14:57.125
<00:14:55.185>My <00:14:55.464>recommendation <00:14:55.744>is <00:14:56.025>if <00:14:56.305>you <00:14:56.584>want

327
00:14:57.125 --> 00:14:59.645
<00:14:57.125>to <00:14:57.405>modernize <00:14:57.685>a <00:14:57.965>Java <00:14:58.245>EE <00:14:58.525>application,

328
00:15:00.265 --> 00:15:03.885
<00:15:00.265>the <00:15:00.439>best <00:15:00.615>target <00:15:00.790>is <00:15:00.965>certainly <00:15:01.140>a <00:15:01.314>modern <00:15:01.490>Jakarta <00:15:01.665>EE

329
00:15:04.035 --> 00:15:05.285
<00:15:04.035>application <00:15:05.160>runtime.

330
00:15:05.785 --> 00:15:08.405
<00:15:05.785>And <00:15:06.064>the <00:15:06.344>reason <00:15:06.625>is <00:15:06.905>because <00:15:07.185>Jakarta

331
00:15:08.405 --> 00:15:11.845
<00:15:08.405>or <00:15:08.685>Java <00:15:08.964>EE <00:15:09.245>supports <00:15:09.525>upwards <00:15:09.805>compatibility,

332
00:15:12.265 --> 00:15:14.085
<00:15:12.265>at <00:15:12.465>least <00:15:12.665>in <00:15:12.865>many <00:15:13.064>cases, <00:15:13.265>maybe <00:15:13.465>not <00:15:13.665>all.

333
00:15:14.155 --> 00:15:16.325
<00:15:14.155>I've <00:15:14.355>seen <00:15:14.555>some <00:15:14.755>issues, <00:15:14.954>but <00:15:15.155>there's <00:15:15.355>in <00:15:15.555>general,

334
00:15:16.715 --> 00:15:18.725
<00:15:16.715>it's <00:15:16.948>much <00:15:17.181>easier <00:15:17.415>to <00:15:17.648>update <00:15:17.881>from, <00:15:18.115>um,

335
00:15:19.115 --> 00:15:21.165
<00:15:19.115>Jaka <00:15:19.395>Java <00:15:19.675>EE <00:15:19.955>to <00:15:20.235>Jakarta <00:15:20.515>ee.

336
00:15:21.425 --> 00:15:22.565
<00:15:21.425>So <00:15:21.681>that's <00:15:21.938>the <00:15:22.194>big <00:15:22.451>advantage,

337
00:15:22.705 --> 00:15:25.085
<00:15:22.705>and <00:15:22.860>that's <00:15:23.016>the <00:15:23.171>reason <00:15:23.327>why <00:15:23.482>I've <00:15:23.638>used <00:15:23.793>open <00:15:23.949>liberty <00:15:24.105>here

338
00:15:25.305 --> 00:15:26.725
<00:15:25.305>as <00:15:25.731>my <00:15:26.157>target <00:15:26.583>runtime.

339
00:15:29.345 --> 00:15:33.835
<00:15:29.345>Okay, <00:15:29.461>so <00:15:29.578>in <00:15:29.695>the <00:15:29.811>next <00:15:29.928>step <00:15:30.045>though, <00:15:30.161>I <00:15:30.278>want <00:15:30.395>to <00:15:30.511>show, <00:15:30.628>um, <00:15:30.745>how

340
00:15:33.855 --> 00:15:35.715
<00:15:33.855>to <00:15:34.321>actually <00:15:34.788>use <00:15:35.255>microservices.

341
00:15:35.975 --> 00:15:37.635
<00:15:35.975>So <00:15:36.255>far, <00:15:36.535>I <00:15:36.815>haven't <00:15:37.095>used <00:15:37.375>microservices.

342
00:15:37.795 --> 00:15:38.995
<00:15:37.795>I <00:15:38.011>haven't <00:15:38.227>really <00:15:38.443>used <00:15:38.659>Cloud <00:15:38.875>native.

343
00:15:39.235 --> 00:15:42.595
<00:15:39.235>I, <00:15:39.362>all <00:15:39.489>I <00:15:39.616>did <00:15:39.744>was <00:15:39.871>to <00:15:39.998>move <00:15:40.125>an <00:15:40.253>existing <00:15:40.380>monolith <00:15:40.507>into <00:15:40.635>a

344
00:15:42.595 --> 00:15:45.715
<00:15:42.595>container <00:15:42.875>and <00:15:43.155>modernize <00:15:43.435>the <00:15:43.715>application <00:15:43.995>runtime.

345
00:15:45.915 --> 00:15:48.195
<00:15:45.915>I <00:15:46.115>haven't <00:15:46.314>really <00:15:46.515>done <00:15:46.714>any <00:15:46.915>big <00:15:47.115>code <00:15:47.314>changes.

346
00:15:48.355 --> 00:15:50.115
<00:15:48.355>I <00:15:48.635>haven't <00:15:48.915>really <00:15:49.195>done <00:15:49.475>any <00:15:49.755>refactoring.

347
00:15:50.775 --> 00:15:52.555
<00:15:50.775>Um, <00:15:51.125>and, <00:15:51.475>and <00:15:51.824>there's <00:15:52.175>benefits

348
00:15:52.575 --> 00:15:53.915
<00:15:52.575>as <00:15:52.776>I <00:15:52.977>explained <00:15:53.178>earlier <00:15:53.379>in <00:15:53.579>the <00:15:53.781>video.

349
00:15:54.385 --> 00:15:57.315
<00:15:54.385>However, <00:15:54.525>at <00:15:54.665>the <00:15:54.805>same <00:15:54.944>time, <00:15:55.085>I <00:15:55.225>wanna <00:15:55.365>make <00:15:55.505>clear <00:15:55.645>you <00:15:55.785>understand

350
00:15:57.625 --> 00:16:00.915
<00:15:57.625>that <00:15:57.858>monoliths <00:15:58.091>don't <00:15:58.325>have <00:15:58.558>to <00:15:58.791>be <00:15:59.025>evil.

351
00:16:00.915 --> 00:16:01.955
<00:16:00.915>They're <00:16:01.227>not <00:16:01.539>always <00:16:01.851>evil,

352
00:16:02.305 --> 00:16:05.275
<00:16:02.305>they <00:16:02.505>are <00:16:02.704>good <00:16:02.905>reasons <00:16:03.104>why <00:16:03.305>you <00:16:03.505>might <00:16:03.704>want

353
00:16:05.735 --> 00:16:06.995
<00:16:05.735>to <00:16:06.113>stick <00:16:06.491>with <00:16:06.869>monoliths.

354
00:16:07.415 --> 00:16:10.875
<00:16:07.415>And <00:16:07.648>a <00:16:07.881>good <00:16:08.115>example <00:16:08.348>is <00:16:08.581>certainly <00:16:08.814>transactions.

355
00:16:11.315 --> 00:16:13.915
<00:16:11.315>I <00:16:11.470>think, <00:16:11.626>you <00:16:11.781>know, <00:16:11.937>it's <00:16:12.092>much <00:16:12.248>easier <00:16:12.403>to <00:16:12.559>do <00:16:12.715>transactions

356
00:16:14.105 --> 00:16:17.475
<00:16:14.105>that <00:16:14.338>spawn <00:16:14.571>multiple <00:16:14.805>components <00:16:15.038>in <00:16:15.271>one <00:16:15.505>monolith.

357
00:16:17.905 --> 00:16:19.475
<00:16:17.905>It's <00:16:18.255>also <00:16:18.605>possible <00:16:18.954>in <00:16:19.305>microservices,

358
00:16:19.975 --> 00:16:22.555
<00:16:19.975>but <00:16:20.130>I <00:16:20.286>think <00:16:20.441>it's <00:16:20.597>a <00:16:20.752>lot <00:16:20.908>more <00:16:21.063>complicated <00:16:21.219>in <00:16:21.375>many,

359
00:16:22.555 --> 00:16:25.595
<00:16:22.555>in <00:16:22.788>many <00:16:23.021>cases, <00:16:23.255>not <00:16:23.488>worse <00:16:23.721>worth <00:16:23.954>it.

360
00:16:26.345 --> 00:16:28.155
<00:16:26.345>Another <00:16:26.578>reason <00:16:26.811>why <00:16:27.045>you <00:16:27.278>might <00:16:27.511>wanna <00:16:27.745>stick

361
00:16:28.155 --> 00:16:30.915
<00:16:28.155>with <00:16:28.310>monoliths <00:16:28.466>is <00:16:28.621>like, <00:16:28.777>if <00:16:28.932>you <00:16:29.088>only <00:16:29.243>have, <00:16:29.399>let's <00:16:29.555>say,

362
00:16:30.995 --> 00:16:32.155
<00:16:30.995>I <00:16:31.256>don't <00:16:31.516>know, <00:16:31.778>a <00:16:32.039>hundred

363
00:16:32.295 --> 00:16:33.835
<00:16:32.295>or <00:16:32.492>a <00:16:32.691>couple <00:16:32.889>of <00:16:33.087>hundred <00:16:33.285>lines <00:16:33.483>of <00:16:33.681>code,

364
00:16:34.135 --> 00:16:36.115
<00:16:34.135>it <00:16:34.335>might <00:16:34.535>not <00:16:34.735>make <00:16:34.935>really <00:16:35.135>sense <00:16:35.335>to <00:16:35.535>to,

365
00:16:36.175 --> 00:16:38.275
<00:16:36.175>to <00:16:36.349>split <00:16:36.525>these <00:16:36.699>two <00:16:36.875>different <00:16:37.050>things <00:16:37.224>to, <00:16:37.400>you <00:16:37.574>know,

366
00:16:38.275 --> 00:16:40.635
<00:16:38.275>because <00:16:38.430>it's <00:16:38.586>much <00:16:38.741>easier <00:16:38.897>to <00:16:39.052>have <00:16:39.208>everything <00:16:39.363>in <00:16:39.519>one <00:16:39.675>place.

367
00:16:41.095 --> 00:16:43.675
<00:16:41.095>But <00:16:41.328>again, <00:16:41.561>mileage <00:16:41.795>my <00:16:42.028>wary <00:16:42.261>for <00:16:42.495>you.

368
00:16:46.295 --> 00:16:49.195
<00:16:46.295>But <00:16:46.450>now <00:16:46.606>let's <00:16:46.761>move <00:16:46.917>on <00:16:47.072>and <00:16:47.228>let's <00:16:47.383>talk <00:16:47.539>about <00:16:47.694>microservices.

369
00:16:49.895 --> 00:16:53.395
<00:16:49.895>Um, <00:16:50.095>now <00:16:50.295>one <00:16:50.495>good <00:16:50.694>way <00:16:50.895>to <00:16:51.095>do <00:16:51.295>that

370
00:16:53.495 --> 00:16:56.915
<00:16:53.495>to <00:16:53.670>start <00:16:53.845>using <00:16:54.020>microservices <00:16:54.195>is <00:16:54.370>using <00:16:54.545>the <00:16:54.720>strangler <00:16:54.895>pattern.

371
00:16:57.455 --> 00:17:01.755
<00:16:57.455>The <00:16:57.610>strangler <00:16:57.766>pattern <00:16:57.921>can <00:16:58.077>be <00:16:58.232>used <00:16:58.388>to <00:16:58.543>identify <00:16:58.699>the <00:16:58.855>first

372
00:17:02.355 --> 00:17:05.675
<00:17:02.355>microservice <00:17:02.555>or <00:17:02.755>the <00:17:02.955>first <00:17:03.155>microservices <00:17:03.355>that <00:17:03.555>you <00:17:03.755>want

373
00:17:05.675 --> 00:17:07.875
<00:17:05.675>to <00:17:05.954>split <00:17:06.234>from <00:17:06.514>your <00:17:06.794>existing <00:17:07.075>monolith

374
00:17:08.215 --> 00:17:10.595
<00:17:08.214>and <00:17:08.494>run <00:17:08.774>independently <00:17:09.054>from <00:17:09.334>the <00:17:09.615>monolith.

375
00:17:11.215 --> 00:17:12.795
<00:17:11.214>And <00:17:11.494>I <00:17:11.774>really <00:17:12.054>like <00:17:12.334>this <00:17:12.615>pattern

376
00:17:12.795 --> 00:17:15.835
<00:17:12.795>because <00:17:12.950>it <00:17:13.106>allows <00:17:13.261>you <00:17:13.417>to <00:17:13.572>do, <00:17:13.728>um, <00:17:13.883>changes <00:17:14.039>in <00:17:14.195>stages.

377
00:17:15.985 --> 00:17:18.395
<00:17:15.984>This <00:17:16.125>goes <00:17:16.264>back <00:17:16.405>to <00:17:16.544>what <00:17:16.685>I <00:17:16.824>said <00:17:16.964>earlier, <00:17:17.104>take <00:17:17.244>baby <00:17:17.385>steps,

378
00:17:18.845 --> 00:17:21.795
<00:17:18.845>don't <00:17:18.985>try <00:17:19.125>to <00:17:19.265>do <00:17:19.405>too <00:17:19.545>many <00:17:19.685>things <00:17:19.825>at <00:17:19.964>the <00:17:20.105>same <00:17:20.245>time.

379
00:17:22.375 --> 00:17:25.555
<00:17:22.375>And <00:17:22.515>the <00:17:22.655>strangler <00:17:22.795>pattern <00:17:22.935>is <00:17:23.075>a <00:17:23.214>really <00:17:23.355>good <00:17:23.494>way <00:17:23.635>to <00:17:23.775>just,

380
00:17:25.655 --> 00:17:29.795
<00:17:25.655>you <00:17:25.855>know, <00:17:26.055>uh, <00:17:26.254>identify <00:17:26.454>the <00:17:26.655>first <00:17:26.855>microservices, <00:17:27.055>um,

381
00:17:29.815 --> 00:17:30.915
<00:17:29.815>the <00:17:30.310>first <00:17:30.805>microservice

382
00:17:31.065 --> 00:17:34.075
<00:17:31.065>that <00:17:31.240>could <00:17:31.415>be <00:17:31.590>independent <00:17:31.765>from <00:17:31.940>the <00:17:32.115>monolith <00:17:32.290>so <00:17:32.465>that

383
00:17:34.075 --> 00:17:36.235
<00:17:34.075>for <00:17:34.308>example, <00:17:34.541>you <00:17:34.775>can <00:17:35.008>scale <00:17:35.241>these <00:17:35.475>services

384
00:17:36.335 --> 00:17:38.315
<00:17:36.335>and <00:17:36.568>these <00:17:36.801>applications <00:17:37.035>separately <00:17:37.268>from <00:17:37.501>each <00:17:37.735>other.

385
00:17:39.255 --> 00:17:42.315
<00:17:39.255>In <00:17:39.382>my <00:17:39.509>case, <00:17:39.636>in <00:17:39.764>my <00:17:39.891>example, <00:17:40.018>this <00:17:40.145>makes <00:17:40.273>a <00:17:40.400>lot <00:17:40.527>of <00:17:40.655>sense

386
00:17:42.385 --> 00:17:47.035
<00:17:42.385>because <00:17:42.585>the <00:17:42.785>catalog <00:17:42.985>is <00:17:43.185>primarily <00:17:43.385>used <00:17:43.585>by <00:17:43.785>users,

387
00:17:47.655 --> 00:17:49.725
<00:17:47.655>or <00:17:47.888>most <00:17:48.121>users <00:17:48.355>use <00:17:48.588>the <00:17:48.821>catalog <00:17:49.055>only.

388
00:17:49.815 --> 00:17:52.365
<00:17:49.815>Let's <00:17:49.990>put <00:17:50.165>it <00:17:50.340>this <00:17:50.515>way, <00:17:50.690>most <00:17:50.865>users <00:17:51.040>only <00:17:51.215>browse

389
00:17:52.365 --> 00:17:54.565
<00:17:52.365>through <00:17:52.598>the <00:17:52.831>catalog <00:17:53.065>and <00:17:53.298>only <00:17:53.531>few <00:17:53.765>users

390
00:17:55.125 --> 00:17:56.445
<00:17:55.125>actually <00:17:55.422>start <00:17:55.719>the <00:17:56.015>order <00:17:56.312>process.

391
00:17:56.985 --> 00:17:58.725
<00:17:56.985>So <00:17:57.140>it <00:17:57.296>makes <00:17:57.451>a <00:17:57.607>lot <00:17:57.762>of <00:17:57.918>sense <00:17:58.073>to <00:17:58.229>be <00:17:58.385>able

392
00:17:58.745 --> 00:18:00.365
<00:17:58.745>to <00:17:59.094>scale <00:17:59.445>the <00:17:59.794>catalog <00:18:00.145>service

393
00:18:00.885 --> 00:18:03.365
<00:18:00.885>independently <00:18:01.118>from <00:18:01.351>the <00:18:01.585>rest <00:18:01.818>of <00:18:02.051>the <00:18:02.285>application.

394
00:18:03.985 --> 00:18:06.405
<00:18:03.985>And <00:18:04.140>this <00:18:04.296>pattern <00:18:04.451>is <00:18:04.607>actually <00:18:04.762>something <00:18:04.918>that <00:18:05.073>I <00:18:05.229>didn't <00:18:05.385>invent.

395
00:18:06.465 --> 00:18:08.725
<00:18:06.465>It <00:18:06.639>has <00:18:06.814>been <00:18:06.990>around <00:18:07.165>for <00:18:07.340>a <00:18:07.514>lot <00:18:07.689>long <00:18:07.865>time,

396
00:18:08.985 --> 00:18:11.605
<00:18:08.985>and, <00:18:09.159>um, <00:18:09.334>as <00:18:09.510>often <00:18:09.685>Martin <00:18:09.860>Fowler <00:18:10.034>was <00:18:10.209>the <00:18:10.385>first

397
00:18:11.625 --> 00:18:13.005
<00:18:11.625>one <00:18:11.935>who <00:18:12.246>wrote <00:18:12.556>about <00:18:12.867>it.

398
00:18:15.065 --> 00:18:17.765
<00:18:15.065>Now, <00:18:15.265>in <00:18:15.465>order <00:18:15.665>to <00:18:15.865>identify <00:18:16.065>the <00:18:16.265>first <00:18:16.465>microservice

399
00:18:17.955 --> 00:18:18.965
<00:18:17.955>that <00:18:18.182>you <00:18:18.409>want <00:18:18.636>to <00:18:18.864>separate

400
00:18:19.225 --> 00:18:21.885
<00:18:19.225>or <00:18:19.399>split <00:18:19.574>from <00:18:19.750>your <00:18:19.925>monolith, <00:18:20.100>there <00:18:20.274>are <00:18:20.449>different <00:18:20.625>approaches.

401
00:18:22.545 --> 00:18:25.605
<00:18:22.545>One <00:18:22.700>approach <00:18:22.856>that <00:18:23.011>I <00:18:23.167>really <00:18:23.322>like <00:18:23.478>is <00:18:23.633>yet <00:18:23.789>another <00:18:23.945>tool

402
00:18:25.635 --> 00:18:26.805
<00:18:25.635>that <00:18:26.161>IBM <00:18:26.688>provides.

403
00:18:26.915 --> 00:18:28.285
<00:18:26.915>It's <00:18:27.223>called <00:18:27.531>Mono <00:18:27.839>two <00:18:28.148>Micro.

404
00:18:29.345 --> 00:18:32.645
<00:18:29.345>The <00:18:29.472>way <00:18:29.599>this <00:18:29.726>this, <00:18:29.854>um, <00:18:29.981>tool <00:18:30.108>works <00:18:30.235>is <00:18:30.363>that <00:18:30.490>you <00:18:30.617>point <00:18:30.745>it

405
00:18:32.705 --> 00:18:35.245
<00:18:32.705>to <00:18:32.905>your <00:18:33.105>existing <00:18:33.304>source <00:18:33.504>code, <00:18:33.705>the <00:18:33.905>source <00:18:34.105>code

406
00:18:35.245 --> 00:18:38.565
<00:18:35.245>of <00:18:35.385>the <00:18:35.524>monolith, <00:18:35.665>and <00:18:35.804>it <00:18:35.945>reads <00:18:36.084>all <00:18:36.225>the <00:18:36.364>classes <00:18:36.504>and <00:18:36.645>methods

407
00:18:38.665 --> 00:18:40.005
<00:18:38.665>and <00:18:38.966>dependencies <00:18:39.268>and <00:18:39.569>so <00:18:39.871>forth,

408
00:18:40.585 --> 00:18:45.365
<00:18:40.585>but <00:18:40.785>also <00:18:40.985>it <00:18:41.185>evaluates <00:18:41.385>the <00:18:41.585>invocation, <00:18:41.785>um, <00:18:41.985>hierarchies,

409
00:18:45.665 --> 00:18:48.925
<00:18:45.665>um, <00:18:45.865>or <00:18:46.065>chains <00:18:46.264>of <00:18:46.465>method <00:18:46.665>calls <00:18:46.865>at <00:18:47.065>runtime.

410
00:18:49.105 --> 00:18:51.125
<00:18:49.105>So <00:18:49.245>the <00:18:49.385>way <00:18:49.525>you <00:18:49.665>do <00:18:49.805>that <00:18:49.945>is <00:18:50.085>to <00:18:50.225>define <00:18:50.365>use <00:18:50.505>cases.

411
00:18:51.265 --> 00:18:53.125
<00:18:51.265>So <00:18:51.465>the <00:18:51.665>typical <00:18:51.865>things <00:18:52.065>end <00:18:52.265>users <00:18:52.465>would <00:18:52.665>do,

412
00:18:53.545 --> 00:18:54.925
<00:18:53.545>and <00:18:53.793>that <00:18:54.041>is <00:18:54.290>measured <00:18:54.538>as <00:18:54.787>well.

413
00:18:55.305 --> 00:18:59.685
<00:18:55.305>And <00:18:55.505>monitor <00:18:55.705>micro <00:18:55.905>basically <00:18:56.105>creates, <00:18:56.305>um, <00:18:56.505>a <00:18:56.705>proposal

414
00:19:00.225 --> 00:19:02.405
<00:19:00.225>for <00:19:00.458>you <00:19:00.691>or <00:19:00.925>recommendation <00:19:01.158>how <00:19:01.391>you <00:19:01.625>want

415
00:19:02.405 --> 00:19:04.965
<00:19:02.405>to <00:19:02.638>split <00:19:02.871>your <00:19:03.105>application <00:19:03.338>into <00:19:03.571>multiple <00:19:03.805>parts.

416
00:19:05.585 --> 00:19:08.285
<00:19:05.585>So <00:19:05.725>what <00:19:05.865>you <00:19:06.005>see <00:19:06.145>here, <00:19:06.285>and <00:19:06.425>let's <00:19:06.565>ignore <00:19:06.705>everything <00:19:06.845>on <00:19:06.985>the

417
00:19:08.285 --> 00:19:09.845
<00:19:08.285>left <00:19:08.565>hand <00:19:08.845>side, <00:19:09.125>let's <00:19:09.405>ignore <00:19:09.685>everything

418
00:19:09.845 --> 00:19:11.045
<00:19:09.845>here <00:19:10.115>in <00:19:10.385>red <00:19:10.655>and <00:19:10.925>blue.

419
00:19:11.215 --> 00:19:13.645
<00:19:11.215>Let's <00:19:11.370>just <00:19:11.526>focus <00:19:11.681>on <00:19:11.837>the <00:19:11.992>red, <00:19:12.148>uh, <00:19:12.303>the, <00:19:12.459>the <00:19:12.615>purple

420
00:19:13.705 --> 00:19:15.325
<00:19:13.705>and <00:19:13.985>the <00:19:14.264>green, <00:19:14.544>um, <00:19:14.824>circles <00:19:15.105>here.

421
00:19:15.815 --> 00:19:18.605
<00:19:15.815>Everything <00:19:16.095>in <00:19:16.375>green <00:19:16.655>is <00:19:16.935>basically <00:19:17.215>the

422
00:19:18.605 --> 00:19:20.045
<00:19:18.605>remaining <00:19:19.253>monolith, <00:19:19.901>right?

423
00:19:20.245 --> 00:19:22.685
<00:19:20.245>Ordering <00:19:20.594>and, <00:19:20.945>and <00:19:21.294>force <00:19:21.645>histories.

424
00:19:23.505 --> 00:19:26.165
<00:19:23.505>And, <00:19:23.705>um, <00:19:23.905>everything <00:19:24.105>in <00:19:24.305>purple <00:19:24.505>is <00:19:24.705>the <00:19:24.905>catalog.

425
00:19:26.425 --> 00:19:29.845
<00:19:26.425>So <00:19:26.658>basically <00:19:26.891>mono <00:19:27.125>to <00:19:27.358>micro <00:19:27.591>basically <00:19:27.825>confirmed

426
00:19:30.235 --> 00:19:31.965
<00:19:30.235>what <00:19:30.435>I <00:19:30.635>told <00:19:30.834>you <00:19:31.034>earlier, <00:19:31.235>and <00:19:31.435>this <00:19:31.635>is

427
00:19:31.965 --> 00:19:33.085
<00:19:31.965>exactly <00:19:32.216>what <00:19:32.469>I <00:19:32.721>wanted, <00:19:32.973>right?

428
00:19:33.105 --> 00:19:36.005
<00:19:33.105>So <00:19:33.245>it's, <00:19:33.385>it's <00:19:33.525>a <00:19:33.665>really <00:19:33.805>great <00:19:33.945>tool <00:19:34.085>that <00:19:34.225>helps <00:19:34.365>you <00:19:34.505>to,

429
00:19:36.025 --> 00:19:38.485
<00:19:36.025>you <00:19:36.305>know, <00:19:36.585>identify <00:19:36.865>the <00:19:37.145>first <00:19:37.425>microservice

430
00:19:38.715 --> 00:19:41.445
<00:19:38.715>that <00:19:38.915>you <00:19:39.115>might <00:19:39.314>wanna <00:19:39.514>split <00:19:39.715>from <00:19:39.915>the <00:19:40.115>monolith.

431
00:19:42.265 --> 00:19:45.125
<00:19:42.265>Now, <00:19:42.440>the <00:19:42.615>important <00:19:42.790>thing <00:19:42.965>here <00:19:43.140>is <00:19:43.315>that <00:19:43.490>you <00:19:43.665>need

432
00:19:45.125 --> 00:19:46.645
<00:19:45.125>to <00:19:45.581>minimize <00:19:46.037>the <00:19:46.493>dependencies

433
00:19:46.995 --> 00:19:48.685
<00:19:46.995>between <00:19:47.461>these <00:19:47.928>different <00:19:48.395>rectangles.

434
00:19:49.225 --> 00:19:50.685
<00:19:49.225>And <00:19:49.412>I, <00:19:49.600>I <00:19:49.788>should <00:19:49.975>say <00:19:50.163>one <00:19:50.351>more <00:19:50.539>thing.

435
00:19:50.945 --> 00:19:54.005
<00:19:50.945>The <00:19:51.120>reason <00:19:51.294>why <00:19:51.470>these <00:19:51.645>rectangles <00:19:51.820>are <00:19:51.995>called <00:19:52.169>petition <00:19:52.345>zero

436
00:19:54.065 --> 00:19:55.605
<00:19:54.065>and <00:19:54.527>petition <00:19:54.989>two <00:19:55.451>is

437
00:19:55.605 --> 00:19:59.365
<00:19:55.605>because, <00:19:55.805>um, <00:19:56.005>mono <00:19:56.205>to <00:19:56.405>micro <00:19:56.605>uses <00:19:56.805>AI <00:19:57.005>internally.

438
00:19:59.745 --> 00:20:01.245
<00:19:59.745>And, <00:20:00.014>and <00:20:00.284>these <00:20:00.554>are <00:20:00.824>terms <00:20:01.094>that

439
00:20:01.245 --> 00:20:03.125
<00:20:01.245>that <00:20:01.524>data <00:20:01.804>scientists <00:20:02.084>et <00:20:02.364>cetera <00:20:02.645>use.

440
00:20:03.505 --> 00:20:05.525
<00:20:03.505>Um, <00:20:03.680>now <00:20:03.855>as <00:20:04.030>a <00:20:04.205>developer <00:20:04.380>you <00:20:04.555>might, <00:20:04.730>you <00:20:04.905>know,

441
00:20:05.545 --> 00:20:07.845
<00:20:05.545>expect <00:20:05.825>rather <00:20:06.105>something <00:20:06.385>like <00:20:06.665>microservice <00:20:06.945>one,

442
00:20:07.845 --> 00:20:08.925
<00:20:07.845>microservice <00:20:08.169>two <00:20:08.493>or <00:20:08.817>something,

443
00:20:09.065 --> 00:20:12.725
<00:20:09.065>but <00:20:09.205>you <00:20:09.345>know, <00:20:09.485>that <00:20:09.625>aside <00:20:09.765>the <00:20:09.905>result <00:20:10.045>is, <00:20:10.185>is <00:20:10.325>pretty <00:20:10.465>good.

444
00:20:12.985 --> 00:20:14.725
<00:20:12.985>Now, <00:20:13.159>again, <00:20:13.334>back <00:20:13.510>to <00:20:13.685>what <00:20:13.860>I <00:20:14.034>started <00:20:14.209>to <00:20:14.385>say

445
00:20:14.745 --> 00:20:17.525
<00:20:14.745>or <00:20:14.978>started <00:20:15.211>to <00:20:15.445>explain, <00:20:15.678>um, <00:20:15.911>the <00:20:16.145>dependencies

446
00:20:17.645 --> 00:20:20.245
<00:20:17.645>between <00:20:17.845>these <00:20:18.045>rectangles, <00:20:18.245>they <00:20:18.445>have <00:20:18.645>to <00:20:18.845>be <00:20:19.045>minimized.

447
00:20:20.305 --> 00:20:22.405
<00:20:20.305>So <00:20:20.505>in <00:20:20.705>this <00:20:20.905>case, <00:20:21.105>it's <00:20:21.305>actually <00:20:21.505>rather <00:20:21.705>good.

448
00:20:22.405 --> 00:20:24.485
<00:20:22.405>There's <00:20:22.638>only <00:20:22.871>two <00:20:23.105>lines <00:20:23.338>between <00:20:23.571>the <00:20:23.805>purple

449
00:20:24.625 --> 00:20:26.125
<00:20:24.625>and <00:20:25.075>the <00:20:25.525>green <00:20:25.975>circles.

450
00:20:26.545 --> 00:20:29.405
<00:20:26.545>And <00:20:26.720>that's <00:20:26.895>good <00:20:27.070>because <00:20:27.245>you <00:20:27.420>know, <00:20:27.595>you <00:20:27.770>don't <00:20:27.945>want

451
00:20:29.465 --> 00:20:31.445
<00:20:29.465>to <00:20:29.745>create <00:20:30.024>microservices <00:20:30.304>for <00:20:30.584>the <00:20:30.865>purpose

452
00:20:31.445 --> 00:20:32.605
<00:20:31.445>of <00:20:31.966>creating <00:20:32.489>microservices.

453
00:20:32.755 --> 00:20:34.285
<00:20:32.755>What <00:20:33.099>you <00:20:33.443>really <00:20:33.787>want <00:20:34.132>is

454
00:20:34.285 --> 00:20:38.365
<00:20:34.285>to <00:20:34.518>decouple <00:20:34.751>certain <00:20:34.985>components <00:20:35.218>within <00:20:35.451>your <00:20:35.685>application,

455
00:20:39.105 --> 00:20:41.405
<00:20:39.105>and <00:20:39.385>that <00:20:39.665>is <00:20:39.945>achieved <00:20:40.225>by <00:20:40.505>having

456
00:20:41.945 --> 00:20:43.725
<00:20:41.945>as <00:20:42.294>little <00:20:42.645>dependencies <00:20:42.995>as <00:20:43.345>possible.

457
00:20:44.395 --> 00:20:47.685
<00:20:44.395>Because <00:20:44.570>what <00:20:44.745>you <00:20:44.920>really <00:20:45.095>don't <00:20:45.270>want <00:20:45.445>to <00:20:45.620>do <00:20:45.795>is

458
00:20:47.685 --> 00:20:49.885
<00:20:47.685>to <00:20:48.151>build <00:20:48.618>distributed <00:20:49.085>monoliths.

459
00:20:50.225 --> 00:20:52.405
<00:20:50.225>And <00:20:50.365>this <00:20:50.504>is <00:20:50.645>something <00:20:50.784>that <00:20:50.925>I've <00:20:51.064>seen <00:20:51.205>a <00:20:51.344>lot, <00:20:51.485>you <00:20:51.625>know,

460
00:20:52.405 --> 00:20:54.325
<00:20:52.405>people <00:20:52.754>have <00:20:53.105>heard <00:20:53.455>about <00:20:53.805>microservices

461
00:20:54.465 --> 00:20:55.645
<00:20:54.465>and <00:20:54.677>they <00:20:54.889>just <00:20:55.102>wanna <00:20:55.314>try <00:20:55.527>it,

462
00:20:55.645 --> 00:20:56.885
<00:20:55.645>and <00:20:55.924>they <00:20:56.203>start, <00:20:56.482>you <00:20:56.761>know,

463
00:20:57.085 --> 00:20:59.365
<00:20:57.085>breaking <00:20:57.318>down <00:20:57.551>a <00:20:57.785>monolith <00:20:58.018>in <00:20:58.251>five <00:20:58.485>microservices.

464
00:20:59.665 --> 00:21:01.085
<00:20:59.665>But <00:20:59.847>all <00:21:00.030>they <00:21:00.212>really <00:21:00.395>have <00:21:00.577>at <00:21:00.760>the <00:21:00.943>end

465
00:21:01.085 --> 00:21:04.685
<00:21:01.085>of <00:21:01.285>the <00:21:01.485>day <00:21:01.685>is <00:21:01.885>often <00:21:02.085>distributed <00:21:02.285>monoliths <00:21:02.485>where

466
00:21:05.235 --> 00:21:07.165
<00:21:05.235>microservices <00:21:05.935>have <00:21:06.635>dependencies

467
00:21:07.625 --> 00:21:11.445
<00:21:07.625>and <00:21:07.800>invoke <00:21:07.975>rest <00:21:08.150>APIs <00:21:08.325>between <00:21:08.500>each <00:21:08.675>other <00:21:08.850>in <00:21:09.025>a

468
00:21:12.125 --> 00:21:13.725
<00:21:12.125>synchronous <00:21:12.405>way, <00:21:12.685>in <00:21:12.965>a <00:21:13.245>blocking <00:21:13.525>way.

469
00:21:14.305 --> 00:21:16.525
<00:21:14.305>And <00:21:14.585>this <00:21:14.865>is <00:21:15.145>certainly <00:21:15.425>an <00:21:15.705>anti-pattern,

470
00:21:16.525 --> 00:21:18.445
<00:21:16.525>something <00:21:16.805>you <00:21:17.085>really <00:21:17.365>need <00:21:17.645>to <00:21:17.925>avoid.

471
00:21:19.955 --> 00:21:23.095
<00:21:19.955>Now, <00:21:20.129>I <00:21:20.304>think <00:21:20.480>the <00:21:20.655>best <00:21:20.830>reason <00:21:21.004>to <00:21:21.179>avoid <00:21:21.355>that,

472
00:21:23.095 --> 00:21:26.175
<00:21:23.095>or <00:21:23.270>at <00:21:23.445>least <00:21:23.620>to <00:21:23.795>mi <00:21:23.970>uh, <00:21:24.145>mitigate <00:21:24.320>that <00:21:24.495>is

473
00:21:26.175 --> 00:21:28.815
<00:21:26.175>to <00:21:26.641>use <00:21:27.108>event-driven <00:21:27.575>architectures.

474
00:21:29.475 --> 00:21:30.815
<00:21:29.475>And <00:21:29.776>this <00:21:30.078>is <00:21:30.379>something <00:21:30.681>again

475
00:21:30.815 --> 00:21:32.655
<00:21:30.815>that <00:21:31.015>I've <00:21:31.215>used <00:21:31.415>in <00:21:31.615>my <00:21:31.815>example <00:21:32.015>as <00:21:32.215>well.

476
00:21:33.395 --> 00:21:35.895
<00:21:33.395>So <00:21:33.745>in <00:21:34.095>rather <00:21:34.445>than <00:21:34.795>invoking

477
00:21:36.415 --> 00:21:39.615
<00:21:36.415>synchronous <00:21:36.648>rest <00:21:36.881>APIs <00:21:37.115>I <00:21:37.348>use <00:21:37.581>here <00:21:37.815>Kafka

478
00:21:39.755 --> 00:21:41.535
<00:21:39.755>as <00:21:40.035>messaging <00:21:40.315>service <00:21:40.595>in <00:21:40.875>the <00:21:41.155>backend.

479
00:21:42.155 --> 00:21:45.415
<00:21:42.155>And <00:21:42.282>let <00:21:42.409>me <00:21:42.536>show <00:21:42.664>you, <00:21:42.791>um, <00:21:42.918>I <00:21:43.045>think, <00:21:43.173>oh, <00:21:43.300>actually <00:21:43.427>I <00:21:43.555>have,

480
00:21:45.435 --> 00:21:47.535
<00:21:45.435>before <00:21:45.590>I <00:21:45.746>show <00:21:45.901>the <00:21:46.057>architecture <00:21:46.212>slide, <00:21:46.368>let <00:21:46.523>me <00:21:46.679>show <00:21:46.835>you

481
00:21:47.535 --> 00:21:48.695
<00:21:47.535>how <00:21:47.709>this <00:21:47.883>looks <00:21:48.057>like <00:21:48.231>in <00:21:48.405>the <00:21:48.579>ui.

482
00:21:49.005 --> 00:21:50.615
<00:21:49.005>Okay, <00:21:49.238>so <00:21:49.471>this <00:21:49.705>is <00:21:49.938>the <00:21:50.171>modernized <00:21:50.405>version

483
00:21:51.555 --> 00:21:52.575
<00:21:51.555>and <00:21:51.784>what <00:21:52.014>I <00:21:52.243>do <00:21:52.473>here,

484
00:21:56.425 --> 00:21:57.965
<00:21:56.425>um, <00:21:57.118>one <00:21:57.811>second.

485
00:21:58.865 --> 00:22:03.235
<00:21:58.865>Oh <00:21:59.065>no, <00:21:59.265>that <00:21:59.465>was <00:21:59.665>not <00:21:59.865>it. <00:22:00.065>One <00:22:00.265>second.

486
00:22:08.105 --> 00:22:10.485
<00:22:08.105>That's <00:22:08.280>the <00:22:08.455>right <00:22:08.630>one, <00:22:08.805>sorry. <00:22:08.980>So <00:22:09.155>that's <00:22:09.330>a <00:22:09.505>video.

487
00:22:11.155 --> 00:22:12.845
<00:22:11.155>Okay, <00:22:11.388>so <00:22:11.621>this <00:22:11.855>is <00:22:12.088>the <00:22:12.321>modernized <00:22:12.555>ui.

488
00:22:13.285 --> 00:22:16.635
<00:22:13.285>I <00:22:13.485>can, <00:22:13.685>um, <00:22:13.885>go <00:22:14.085>into <00:22:14.285>the <00:22:14.485>shopping <00:22:14.685>cart

489
00:22:16.775 --> 00:22:20.915
<00:22:16.775>and <00:22:16.930>the <00:22:17.086>price <00:22:17.241>is <00:22:17.397>now <00:22:17.552>29.99 <00:22:17.708>Return <00:22:17.863>of <00:22:18.019>the <00:22:18.175>Jedi.

490
00:22:21.535 --> 00:22:26.035
<00:22:21.535>And <00:22:21.735>when <00:22:21.935>I <00:22:22.135>invoke <00:22:22.335>here, <00:22:22.535>arrest <00:22:22.735>API, <00:22:22.935>um,

491
00:22:26.155 --> 00:22:28.835
<00:22:26.155>a <00:22:26.310>put <00:22:26.466>call <00:22:26.621>command <00:22:26.777>to <00:22:26.932>update <00:22:27.088>the <00:22:27.243>price <00:22:27.399>to <00:22:27.555>50.

492
00:22:29.615 --> 00:22:32.315
<00:22:29.615>And <00:22:29.815>then <00:22:30.015>I <00:22:30.215>see <00:22:30.415>the <00:22:30.615>price <00:22:30.815>change <00:22:31.015>right

493
00:22:32.315 --> 00:22:33.595
<00:22:32.315>here <00:22:32.603>in <00:22:32.891>the <00:22:33.179>shopping <00:22:33.467>cart.

494
00:22:34.255 --> 00:22:36.595
<00:22:34.255>And <00:22:34.455>this <00:22:34.655>even <00:22:34.855>works <00:22:35.055>for <00:22:35.255>the <00:22:35.455>old <00:22:35.655>ui.

495
00:22:37.015 --> 00:22:38.915
<00:22:37.015>Um, <00:22:37.215>so <00:22:37.415>there's <00:22:37.615>also <00:22:37.815>the <00:22:38.015>new <00:22:38.215>price <00:22:38.415>50.

496
00:22:39.415 --> 00:22:41.915
<00:22:39.415>Now <00:22:39.542>what <00:22:39.669>you <00:22:39.796>just <00:22:39.924>saw, <00:22:40.051>let <00:22:40.178>me <00:22:40.305>go <00:22:40.433>back <00:22:40.560>to <00:22:40.687>the <00:22:40.815>slides.

497
00:22:44.895 --> 00:22:47.545
<00:22:44.895>Okay, <00:22:45.095>so <00:22:45.295>what <00:22:45.495>you <00:22:45.695>just <00:22:45.895>saw <00:22:46.095>is <00:22:46.295>dependency

498
00:22:47.545 --> 00:22:50.705
<00:22:47.545>between <00:22:47.825>the <00:22:48.105>catalog <00:22:48.385>service, <00:22:48.665>the <00:22:48.945>microservice,

499
00:22:50.965 --> 00:22:52.185
<00:22:50.965>and <00:22:51.331>the <00:22:51.697>remaining <00:22:52.062>monolith,

500
00:22:52.185 --> 00:22:55.625
<00:22:52.185>because <00:22:52.360>really <00:22:52.534>only <00:22:52.710>the <00:22:52.885>catalog <00:22:53.060>service <00:22:53.235>knows <00:22:53.409>the <00:22:53.585>current

501
00:22:55.625 --> 00:22:58.145
<00:22:55.625>price, <00:22:55.800>but <00:22:55.975>in <00:22:56.150>order <00:22:56.325>to <00:22:56.500>show <00:22:56.675>the <00:22:56.850>shopping <00:22:57.025>cart,

502
00:22:58.165 --> 00:23:00.745
<00:22:58.165>the <00:22:58.365>remaining <00:22:58.565>monolith <00:22:58.764>needs <00:22:58.965>to <00:22:59.165>know <00:22:59.365>this <00:22:59.565>information

503
00:23:01.445 --> 00:23:05.185
<00:23:01.445>rather <00:23:01.678>than <00:23:01.911>invoking <00:23:02.145>the <00:23:02.378>catalog <00:23:02.611>service <00:23:02.845>synchronous.

504
00:23:05.665 --> 00:23:08.705
<00:23:05.665>Whenever <00:23:05.865>this <00:23:06.065>page <00:23:06.264>is <00:23:06.465>displayed, <00:23:06.665>I <00:23:06.865>use <00:23:07.065>caching

505
00:23:08.845 --> 00:23:11.185
<00:23:08.845>to <00:23:09.195>store <00:23:09.545>this <00:23:09.895>information <00:23:10.245>redundantly

506
00:23:11.645 --> 00:23:12.825
<00:23:11.645>in <00:23:11.910>the <00:23:12.176>DB <00:23:12.441>two <00:23:12.707>database.

507
00:23:12.915 --> 00:23:15.225
<00:23:12.915>Again, <00:23:13.090>the <00:23:13.264>DB <00:23:13.440>two <00:23:13.615>database <00:23:13.790>is <00:23:13.965>what <00:23:14.139>is <00:23:14.315>used

508
00:23:15.325 --> 00:23:16.585
<00:23:15.325>by <00:23:15.703>the <00:23:16.081>remaining <00:23:16.459>monolith.

509
00:23:16.845 --> 00:23:19.505
<00:23:16.845>And <00:23:16.972>what <00:23:17.099>you <00:23:17.226>can <00:23:17.354>see <00:23:17.481>here <00:23:17.608>on <00:23:17.735>the <00:23:17.863>right <00:23:17.990>hand <00:23:18.117>side <00:23:18.245>is

510
00:23:19.505 --> 00:23:22.065
<00:23:19.505>that <00:23:19.680>I <00:23:19.855>added <00:23:20.030>a <00:23:20.205>new <00:23:20.380>column <00:23:20.555>called <00:23:20.730>Price <00:23:20.905>Current.

511
00:23:22.565 --> 00:23:25.825
<00:23:22.565>So <00:23:22.720>I <00:23:22.876>use <00:23:23.031>a <00:23:23.187>simple <00:23:23.342>caching <00:23:23.498>here, <00:23:23.653>um, <00:23:23.809>in <00:23:23.965>order

512
00:23:25.925 --> 00:23:27.865
<00:23:25.925>to <00:23:26.205>de <00:23:26.485>uh, <00:23:26.764>minimize <00:23:27.044>the <00:23:27.325>dependencies.

513
00:23:28.365 --> 00:23:30.505
<00:23:28.365>And <00:23:28.645>this <00:23:28.925>is <00:23:29.205>the <00:23:29.485>resulting <00:23:29.765>architecture.

514
00:23:31.045 --> 00:23:33.785
<00:23:31.045>So <00:23:31.172>again, <00:23:31.299>we, <00:23:31.426>we <00:23:31.554>still <00:23:31.681>have <00:23:31.808>one <00:23:31.935>monolith <00:23:32.063>in <00:23:32.190>the <00:23:32.317>front <00:23:32.445>end,

515
00:23:33.925 --> 00:23:35.505
<00:23:33.925>but <00:23:34.158>then <00:23:34.391>we <00:23:34.625>have <00:23:34.858>the <00:23:35.091>catalog <00:23:35.325>service.

516
00:23:35.685 --> 00:23:38.185
<00:23:35.685>The <00:23:35.918>first <00:23:36.151>microservice <00:23:36.385>that <00:23:36.618>we <00:23:36.851>separated <00:23:37.085>out,

517
00:23:38.535 --> 00:23:41.825
<00:23:38.535>that <00:23:38.710>one <00:23:38.885>I <00:23:39.060>implemented <00:23:39.235>with <00:23:39.410>Farkas, <00:23:39.585>the <00:23:39.760>remaining <00:23:39.935>monolith

518
00:23:42.525 --> 00:23:44.145
<00:23:42.525>can <00:23:42.805>still <00:23:43.085>run <00:23:43.365>on <00:23:43.645>open <00:23:43.925>liberty

519
00:23:44.445 --> 00:23:47.525
<00:23:44.445>or <00:23:44.585>with, <00:23:44.725>I <00:23:44.865>have <00:23:45.004>actually <00:23:45.145>two <00:23:45.284>versions <00:23:45.425>of <00:23:45.564>that <00:23:45.705>same <00:23:45.845>service.

520
00:23:48.225 --> 00:23:50.685
<00:23:48.225>The <00:23:48.425>remaining <00:23:48.625>monolith <00:23:48.824>continues <00:23:49.024>to <00:23:49.225>use <00:23:49.425>DB <00:23:49.625>two,

521
00:23:51.145 --> 00:23:52.245
<00:23:51.145>the <00:23:51.639>new <00:23:52.135>microservice,

522
00:23:52.385 --> 00:23:54.885
<00:23:52.385>the <00:23:52.665>new <00:23:52.945>catalog <00:23:53.225>microservice <00:23:53.504>uses <00:23:53.785>Postgres

523
00:23:55.225 --> 00:23:58.405
<00:23:55.225>and <00:23:55.504>they <00:23:55.784>communicate <00:23:56.064>asynchronously <00:23:56.344>via <00:23:56.625>messaging

524
00:23:58.505 --> 00:23:59.765
<00:23:58.505>and <00:23:59.072>Apache <00:23:59.639>Kafka.

525
00:24:02.405 --> 00:24:04.825
<00:24:02.405>So <00:24:02.685>when <00:24:02.965>you <00:24:03.245>modernize <00:24:03.524>applications, <00:24:03.805>one

526
00:24:04.825 --> 00:24:07.225
<00:24:04.825>of <00:24:04.980>the <00:24:05.136>questions <00:24:05.291>I <00:24:05.447>hear <00:24:05.602>a <00:24:05.758>lot <00:24:05.913>is, <00:24:06.069>you <00:24:06.225>know,

527
00:24:07.375 --> 00:24:11.425
<00:24:07.375>what <00:24:07.550>target <00:24:07.725>application <00:24:07.900>server <00:24:08.075>or <00:24:08.250>runtime <00:24:08.425>should <00:24:08.600>you <00:24:08.775>use?

528
00:24:11.445 --> 00:24:13.385
<00:24:11.445>And <00:24:11.600>I <00:24:11.756>started <00:24:11.911>to <00:24:12.067>talk <00:24:12.222>a <00:24:12.378>little <00:24:12.533>bit <00:24:12.689>about <00:24:12.845>that.

529
00:24:13.465 --> 00:24:16.945
<00:24:13.465>I <00:24:13.605>said, <00:24:13.745>um, <00:24:13.885>if <00:24:14.024>you <00:24:14.165>want <00:24:14.304>to <00:24:14.445>modernize <00:24:14.584>Java <00:24:14.725>ee, <00:24:14.865>then

530
00:24:17.445 --> 00:24:20.905
<00:24:17.445>by <00:24:17.600>default <00:24:17.756>you <00:24:17.911>should <00:24:18.067>look <00:24:18.222>into <00:24:18.378>Jakarta <00:24:18.533>EE <00:24:18.689>Runtimes, <00:24:18.845>right?

531
00:24:20.905 --> 00:24:22.065
<00:24:20.905>That <00:24:21.079>makes <00:24:21.253>a <00:24:21.427>lot <00:24:21.601>of <00:24:21.775>sense <00:24:21.949>'cause

532
00:24:22.065 --> 00:24:23.265
<00:24:22.065>of <00:24:22.425>the <00:24:22.785>upwards <00:24:23.145>compatibility.

533
00:24:24.445 --> 00:24:27.225
<00:24:24.445>One <00:24:24.620>other <00:24:24.794>thing <00:24:24.970>you <00:24:25.145>really <00:24:25.320>should <00:24:25.495>take, <00:24:25.669>um, <00:24:25.845>uh,

534
00:24:27.295 --> 00:24:30.465
<00:24:27.295>into <00:24:27.470>account <00:24:27.645>is <00:24:27.820>to, <00:24:27.995>to <00:24:28.170>pick <00:24:28.345>a <00:24:28.520>good <00:24:28.695>JVM

535
00:24:30.805 --> 00:24:33.385
<00:24:30.805>and <00:24:30.960>one <00:24:31.116>JVMI <00:24:31.271>want <00:24:31.427>to <00:24:31.582>highlight <00:24:31.738>here <00:24:31.893>is <00:24:32.049>the <00:24:32.205>one

536
00:24:33.385 --> 00:24:35.705
<00:24:33.385>that <00:24:33.560>IBM <00:24:33.735>open <00:24:33.910>source <00:24:34.085>two, <00:24:34.260>maybe <00:24:34.435>three <00:24:34.610>years <00:24:34.785>ago.

537
00:24:35.975 --> 00:24:37.105
<00:24:35.975>It's <00:24:36.229>called <00:24:36.483>Open <00:24:36.737>Gen <00:24:36.992>nine.

538
00:24:37.445 --> 00:24:39.025
<00:24:37.445>Uh, <00:24:37.678>it's <00:24:37.911>available <00:24:38.145>again <00:24:38.378>as <00:24:38.611>open <00:24:38.845>source

539
00:24:39.365 --> 00:24:42.025
<00:24:39.365>and <00:24:39.598>it's <00:24:39.831>really <00:24:40.065>efficient <00:24:40.298>for <00:24:40.531>container <00:24:40.765>workloads

540
00:24:42.145 --> 00:24:43.145
<00:24:42.145>because <00:24:42.445>it <00:24:42.745>was <00:24:43.045>designed

541
00:24:43.145 --> 00:24:45.465
<00:24:43.145>to <00:24:43.378>run <00:24:43.611>on <00:24:43.845>really <00:24:44.078>small <00:24:44.311>handheld <00:24:44.545>devices.

542
00:24:46.005 --> 00:24:49.345
<00:24:46.005>So <00:24:46.145>it <00:24:46.285>consumes <00:24:46.425>a <00:24:46.565>lot <00:24:46.705>less <00:24:46.845>memory <00:24:46.985>compared <00:24:47.125>to <00:24:47.265>other <00:24:47.405>JVMs,

543
00:24:49.365 --> 00:24:52.265
<00:24:49.365>almost <00:24:49.492>half <00:24:49.619>of <00:24:49.746>the <00:24:49.874>memory <00:24:50.001>only, <00:24:50.128>which <00:24:50.255>is <00:24:50.383>a <00:24:50.510>lot <00:24:50.637>of <00:24:50.765>money,

544
00:24:52.265 --> 00:24:54.065
<00:24:52.265>especially <00:24:52.545>when <00:24:52.825>we <00:24:53.105>talk <00:24:53.385>about <00:24:53.665>cloud.

545
00:24:55.295 --> 00:24:58.945
<00:24:55.295>Another <00:24:55.435>thing <00:24:55.575>you <00:24:55.715>should <00:24:55.855>have <00:24:55.995>in <00:24:56.135>mind <00:24:56.275>is <00:24:56.415>that <00:24:56.555>in <00:24:56.695>order

546
00:24:58.965 --> 00:25:01.225
<00:24:58.965>to <00:24:59.245>build <00:24:59.524>new <00:24:59.804>and <00:25:00.084>modern <00:25:00.365>applications,

547
00:25:01.745 --> 00:25:04.425
<00:25:01.745>reactive <00:25:01.945>technologies <00:25:02.145>are <00:25:02.344>becoming <00:25:02.544>more <00:25:02.745>and <00:25:02.945>more <00:25:03.145>popular.

548
00:25:05.085 --> 00:25:08.065
<00:25:05.085>And <00:25:05.240>as <00:25:05.396>part <00:25:05.551>of <00:25:05.707>my <00:25:05.862>sample, <00:25:06.018>I've <00:25:06.173>used <00:25:06.329>reactive <00:25:06.485>technologies

549
00:25:08.645 --> 00:25:12.785
<00:25:08.645>to <00:25:08.820>show <00:25:08.995>how <00:25:09.170>to <00:25:09.345>even <00:25:09.520>implement <00:25:09.695>reactive <00:25:09.870>rest <00:25:10.045>endpoints

550
00:25:13.125 --> 00:25:16.225
<00:25:13.125>and <00:25:13.300>how <00:25:13.475>to <00:25:13.650>access <00:25:13.825>data <00:25:14.000>in <00:25:14.175>the <00:25:14.350>database <00:25:14.525>reactively

551
00:25:16.445 --> 00:25:17.945
<00:25:16.445>or <00:25:16.782>in <00:25:17.120>other <00:25:17.457>words, <00:25:17.794>asynchronously.

552
00:25:18.805 --> 00:25:23.225
<00:25:18.805>And <00:25:18.980>that <00:25:19.155>gives <00:25:19.330>you <00:25:19.505>huge <00:25:19.680>efficiency <00:25:19.855>benefits <00:25:20.030>and <00:25:20.205>gains,

553
00:25:23.365 --> 00:25:25.705
<00:25:23.365>and <00:25:23.520>this <00:25:23.676>is <00:25:23.831>something <00:25:23.987>you <00:25:24.142>really <00:25:24.298>might <00:25:24.453>wanna <00:25:24.609>look <00:25:24.765>into.

554
00:25:25.965 --> 00:25:28.465
<00:25:25.965>And <00:25:26.165>that's <00:25:26.365>actually <00:25:26.564>the <00:25:26.764>reason <00:25:26.965>why <00:25:27.165>I've <00:25:27.365>used

555
00:25:28.765 --> 00:25:30.545
<00:25:28.765>for <00:25:29.231>my <00:25:29.698>farcus <00:25:30.165>implementation,

556
00:25:30.645 --> 00:25:32.785
<00:25:30.645>for <00:25:30.878>the <00:25:31.111>catalog <00:25:31.345>implementation, <00:25:31.578>I've <00:25:31.811>used <00:25:32.045>farcus.

557
00:25:33.445 --> 00:25:35.305
<00:25:33.445>Um, <00:25:33.678>and, <00:25:33.911>and <00:25:34.145>here <00:25:34.378>are <00:25:34.611>some <00:25:34.845>examples.

558
00:25:35.305 --> 00:25:38.545
<00:25:35.305>So <00:25:35.505>I've <00:25:35.705>implemented <00:25:35.905>the <00:25:36.105>same <00:25:36.305>rest <00:25:36.505>endpoint <00:25:36.705>twice,

559
00:25:39.455 --> 00:25:41.145
<00:25:39.455>both <00:25:39.921>times <00:25:40.388>using <00:25:40.855>carcas.

560
00:25:41.575 --> 00:25:44.105
<00:25:41.575>Once <00:25:41.925>I <00:25:42.275>implemented <00:25:42.625>it <00:25:42.975>reactively,

561
00:25:44.135 --> 00:25:45.425
<00:25:44.135>this <00:25:44.300>is <00:25:44.466>what <00:25:44.632>you <00:25:44.798>see <00:25:44.964>at <00:25:45.130>the <00:25:45.296>top.

562
00:25:45.845 --> 00:25:47.745
<00:25:45.845>And <00:25:46.195>once <00:25:46.545>I <00:25:46.895>implemented <00:25:47.245>it

563
00:25:47.765 --> 00:25:50.785
<00:25:47.765>as <00:25:47.940>you <00:25:48.115>would <00:25:48.290>do <00:25:48.465>it <00:25:48.640>classically <00:25:48.815>using <00:25:48.990>inerative <00:25:49.165>code

564
00:25:50.785 --> 00:25:54.225
<00:25:50.785>or <00:25:50.940>synchronous <00:25:51.096>code, <00:25:51.251>and <00:25:51.407>I've <00:25:51.562>invoked <00:25:51.718>in <00:25:51.873>this <00:25:52.029>example <00:25:52.185>here,

565
00:25:54.295 --> 00:25:58.065
<00:25:54.295>I've <00:25:54.470>invoked <00:25:54.645>the <00:25:54.820>same <00:25:54.995>rest <00:25:55.170>API <00:25:55.345>30,000 <00:25:55.520>times, <00:25:55.695>um,

566
00:25:58.165 --> 00:26:01.065
<00:25:58.165>by <00:25:58.365>simulating <00:25:58.565>I <00:25:58.764>think <00:25:58.965>100 <00:25:59.165>or <00:25:59.365>300 <00:25:59.565>users.

567
00:26:01.805 --> 00:26:05.945
<00:26:01.805>And <00:26:01.932>you <00:26:02.059>can <00:26:02.186>see <00:26:02.314>the <00:26:02.441>response <00:26:02.568>time <00:26:02.695>goes <00:26:02.823>down <00:26:02.950>from <00:26:03.077>one <00:26:03.205>minute,

568
00:26:06.265 --> 00:26:07.945
<00:26:06.265>18 <00:26:06.731>to <00:26:07.198>45 <00:26:07.665>seconds.

569
00:26:08.165 --> 00:26:10.905
<00:26:08.165>So <00:26:08.365>this <00:26:08.565>is <00:26:08.764>a, <00:26:08.965>a <00:26:09.165>huge, <00:26:09.365>um, <00:26:09.565>gain

570
00:26:10.965 --> 00:26:12.905
<00:26:10.965>and <00:26:11.314>a <00:26:11.665>huge <00:26:12.014>efficiency <00:26:12.365>benefit.

571
00:26:13.795 --> 00:26:15.615
<00:26:13.795>And <00:26:13.950>this <00:26:14.106>is <00:26:14.261>one <00:26:14.417>of <00:26:14.572>the <00:26:14.728>things <00:26:14.883>why <00:26:15.039>I <00:26:15.195>really

572
00:26:15.615 --> 00:26:16.935
<00:26:15.615>like <00:26:16.011>Caros <00:26:16.407>so <00:26:16.803>much.

573
00:26:17.315 --> 00:26:18.575
<00:26:17.315>I'm <00:26:17.541>a <00:26:17.768>big <00:26:17.995>fan <00:26:18.222>of <00:26:18.449>caros.

574
00:26:18.705 --> 00:26:21.895
<00:26:18.705>Caros <00:26:18.905>is <00:26:19.105>a <00:26:19.304>new, <00:26:19.504>relatively <00:26:19.705>new <00:26:19.905>Java <00:26:20.105>framework.

575
00:26:22.275 --> 00:26:25.055
<00:26:22.275>Um, <00:26:22.450>I <00:26:22.625>think <00:26:22.800>it <00:26:22.975>had <00:26:23.150>recently <00:26:23.325>the <00:26:23.500>second <00:26:23.675>anniversary.

576
00:26:25.365 --> 00:26:27.135
<00:26:25.365>There's <00:26:25.565>lots <00:26:25.765>of <00:26:25.965>reasons <00:26:26.165>why <00:26:26.365>I <00:26:26.565>love <00:26:26.765>it.

577
00:26:27.245 --> 00:26:28.655
<00:26:27.245>It's <00:26:27.403>a <00:26:27.562>lot <00:26:27.720>of <00:26:27.879>fun <00:26:28.038>to <00:26:28.196>work <00:26:28.355>with <00:26:28.514>it.

578
00:26:28.655 --> 00:26:31.615
<00:26:28.655>There's <00:26:28.855>good <00:26:29.055>documentation, <00:26:29.254>there's <00:26:29.455>a <00:26:29.655>lot <00:26:29.855>of <00:26:30.055>progress,

579
00:26:31.815 --> 00:26:35.855
<00:26:31.815>a <00:26:31.970>huge <00:26:32.126>community, <00:26:32.281>and <00:26:32.437>it <00:26:32.592>comes <00:26:32.748>with <00:26:32.903>a <00:26:33.059>reactive <00:26:33.215>engine.

580
00:26:35.875 --> 00:26:39.215
<00:26:35.875>It <00:26:36.075>comes <00:26:36.275>with <00:26:36.475>eclipse <00:26:36.675>Vertex <00:26:36.875>built <00:26:37.075>into <00:26:37.275>markers.

581
00:26:39.635 --> 00:26:41.815
<00:26:39.635>So <00:26:39.868>you <00:26:40.101>can <00:26:40.335>use <00:26:40.568>this <00:26:40.801>functionality <00:26:41.035>out

582
00:26:41.815 --> 00:26:44.165
<00:26:41.815>of <00:26:41.970>the <00:26:42.126>box <00:26:42.281>without <00:26:42.437>really <00:26:42.592>having <00:26:42.748>to <00:26:42.903>include <00:26:43.059>anything <00:26:43.215>else.

583
00:26:44.785 --> 00:26:48.525
<00:26:44.785>And <00:26:44.960>again, <00:26:45.135>this <00:26:45.310>makes <00:26:45.485>your <00:26:45.660>applications <00:26:45.835>much <00:26:46.010>more <00:26:46.185>efficient,

584
00:26:49.025 --> 00:26:52.895
<00:26:49.025>not <00:26:49.258>certainly <00:26:49.491>something <00:26:49.725>for <00:26:49.958>all <00:26:50.191>modernization <00:26:50.425>projects,

585
00:26:53.315 --> 00:26:56.375
<00:26:53.315>but <00:26:53.490>certainly <00:26:53.665>something <00:26:53.840>you <00:26:54.015>should <00:26:54.190>consider <00:26:54.365>when <00:26:54.540>you <00:26:54.715>start

586
00:26:56.375 --> 00:26:57.815
<00:26:56.375>implementing <00:26:57.023>new <00:26:57.671>microservices

587
00:26:57.875 --> 00:26:59.935
<00:26:57.875>or <00:26:58.155>when <00:26:58.435>you <00:26:58.715>start <00:26:58.995>adding <00:26:59.275>microservices

588
00:27:00.275 --> 00:27:02.055
<00:27:00.275>to <00:27:00.741>your <00:27:01.208>existing <00:27:01.675>monoliths.

589
00:27:05.295 --> 00:27:08.105
<00:27:05.295>Okay, <00:27:05.422>so <00:27:05.549>now <00:27:05.676>let's <00:27:05.804>come <00:27:05.931>to <00:27:06.058>the <00:27:06.185>last <00:27:06.313>part <00:27:06.440>of <00:27:06.567>this <00:27:06.695>talk.

590
00:27:08.935 --> 00:27:11.385
<00:27:08.935>I've <00:27:09.284>talked <00:27:09.635>and <00:27:09.985>explained <00:27:10.335>how

591
00:27:11.525 --> 00:27:14.345
<00:27:11.525>to <00:27:11.758>basically <00:27:11.991>use <00:27:12.225>microservices <00:27:12.458>in <00:27:12.691>the <00:27:12.925>backend.

592
00:27:14.605 --> 00:27:16.625
<00:27:14.605>And <00:27:14.780>again, <00:27:14.955>many <00:27:15.130>reasons <00:27:15.305>why <00:27:15.480>you <00:27:15.655>wanna <00:27:15.830>do <00:27:16.005>that.

593
00:27:17.045 --> 00:27:19.105
<00:27:17.045>The <00:27:17.245>main <00:27:17.445>reason <00:27:17.645>is <00:27:17.845>you <00:27:18.045>can <00:27:18.245>update <00:27:18.445>these

594
00:27:19.105 --> 00:27:21.585
<00:27:19.105>microservices <00:27:19.455>separately <00:27:19.805>from <00:27:20.155>each <00:27:20.505>other.

595
00:27:22.015 --> 00:27:25.705
<00:27:22.015>However, <00:27:22.170>that <00:27:22.326>only <00:27:22.481>makes <00:27:22.637>sense <00:27:22.792>if <00:27:22.948>you <00:27:23.103>have <00:27:23.259>the <00:27:23.415>same

596
00:27:25.705 --> 00:27:28.545
<00:27:25.705>architecture <00:27:25.860>or <00:27:26.016>the <00:27:26.171>same <00:27:26.327>design, <00:27:26.482>not <00:27:26.638>only <00:27:26.793>in <00:27:26.949>the <00:27:27.105>backend

597
00:27:28.545 --> 00:27:29.585
<00:27:28.545>but <00:27:28.732>also <00:27:28.919>in <00:27:29.106>the <00:27:29.293>front <00:27:29.481>end.

598
00:27:30.265 --> 00:27:31.325
<00:27:30.265>And <00:27:30.503>here's <00:27:30.742>the <00:27:30.980>use <00:27:31.219>case.

599
00:27:32.055 --> 00:27:33.085
<00:27:32.055>Let's <00:27:32.364>say <00:27:32.673>you <00:27:32.982>want

600
00:27:33.085 --> 00:27:35.445
<00:27:33.085>to <00:27:33.285>add <00:27:33.485>new <00:27:33.685>functionality <00:27:33.885>to <00:27:34.085>your <00:27:34.285>catalog <00:27:34.485>service.

601
00:27:35.495 --> 00:27:38.525
<00:27:35.495>Let's <00:27:35.650>say <00:27:35.806>you <00:27:35.961>want <00:27:36.117>to <00:27:36.272>add <00:27:36.428>ratings <00:27:36.583>to <00:27:36.739>your <00:27:36.895>products,

602
00:27:38.705 --> 00:27:43.085
<00:27:38.705>for <00:27:38.860>example, <00:27:39.016>number <00:27:39.171>of <00:27:39.327>stars, <00:27:39.482>then <00:27:39.638>it's <00:27:39.793>not <00:27:39.949>good <00:27:40.105>enough

603
00:27:43.225 --> 00:27:47.045
<00:27:43.225>to <00:27:43.458>just <00:27:43.691>change <00:27:43.925>the <00:27:44.158>catalog <00:27:44.391>backend, <00:27:44.625>microservice,

604
00:27:47.855 --> 00:27:50.835
<00:27:47.855>but <00:27:47.982>you <00:27:48.109>also <00:27:48.236>want <00:27:48.364>to <00:27:48.491>be <00:27:48.618>able <00:27:48.745>to <00:27:48.873>change <00:27:49.000>only <00:27:49.127>that <00:27:49.255>part

605
00:27:50.835 --> 00:27:53.275
<00:27:50.835>of <00:27:51.068>the <00:27:51.301>UI <00:27:51.535>separately <00:27:51.768>from <00:27:52.001>everything <00:27:52.235>else.

606
00:27:53.665 --> 00:27:57.555
<00:27:53.665>Because <00:27:53.840>if <00:27:54.014>you <00:27:54.190>modernize <00:27:54.365>your <00:27:54.540>application <00:27:54.715>in <00:27:54.889>the <00:27:55.065>backend

607
00:27:58.015 --> 00:28:01.235
<00:27:58.015>and <00:27:58.190>still <00:27:58.365>have <00:27:58.540>a, <00:27:58.715>um, <00:27:58.890>a <00:27:59.065>monolithic <00:27:59.240>front <00:27:59.415>end,

608
00:28:01.295 --> 00:28:02.555
<00:28:01.295>you <00:28:01.578>don't <00:28:01.862>really <00:28:02.145>gain <00:28:02.429>much.

609
00:28:02.655 --> 00:28:05.755
<00:28:02.655>You <00:28:02.795>really <00:28:02.935>wanna <00:28:03.075>be <00:28:03.215>able <00:28:03.355>to <00:28:03.495>modernize <00:28:03.635>all <00:28:03.774>of <00:28:03.915>these <00:28:04.055>things

610
00:28:05.815 --> 00:28:07.715
<00:28:05.815>and <00:28:06.048>update <00:28:06.281>all <00:28:06.515>of <00:28:06.748>these <00:28:06.981>things <00:28:07.215>separately.

611
00:28:08.055 --> 00:28:12.115
<00:28:08.055>And <00:28:08.195>in <00:28:08.335>the <00:28:08.475>best <00:28:08.615>case <00:28:08.755>to <00:28:08.895>even <00:28:09.035>have <00:28:09.175>separate <00:28:09.315>CICD <00:28:09.455>pipelines

612
00:28:12.575 --> 00:28:13.595
<00:28:12.575>to, <00:28:12.804>to <00:28:13.034>do <00:28:13.263>these <00:28:13.493>changes.

613
00:28:15.035 --> 00:28:16.615
<00:28:15.035>And <00:28:15.235>this <00:28:15.435>is <00:28:15.635>actually <00:28:15.835>exactly <00:28:16.035>what <00:28:16.235>I've <00:28:16.435>done.

614
00:28:16.995 --> 00:28:19.295
<00:28:16.995>So <00:28:17.195>this <00:28:17.395>is <00:28:17.594>the <00:28:17.794>last <00:28:17.995>architecture <00:28:18.195>slide <00:28:18.395>here,

615
00:28:19.595 --> 00:28:21.655
<00:28:19.595>and <00:28:19.828>as <00:28:20.061>you <00:28:20.295>can <00:28:20.528>see, <00:28:20.761>I <00:28:20.995>separated

616
00:28:21.715 --> 00:28:25.735
<00:28:21.715>or <00:28:21.855>I <00:28:21.995>split <00:28:22.135>the <00:28:22.274>one <00:28:22.415>monolithic <00:28:22.554>front <00:28:22.695>end <00:28:22.834>in <00:28:22.975>six <00:28:23.115>different,

617
00:28:26.315 --> 00:28:28.695
<00:28:26.315>um, <00:28:26.665>so-called <00:28:27.015>micro <00:28:27.365>front <00:28:27.715>ends.

618
00:28:29.355 --> 00:28:31.295
<00:28:29.355>And, <00:28:29.705>and <00:28:30.055>here's <00:28:30.405>another <00:28:30.755>diagram

619
00:28:31.325 --> 00:28:32.975
<00:28:31.325>that <00:28:31.558>shows <00:28:31.791>maybe <00:28:32.025>better <00:28:32.258>what <00:28:32.491>I've <00:28:32.725>done.

620
00:28:33.515 --> 00:28:35.575
<00:28:33.515>So <00:28:33.748>this <00:28:33.981>is <00:28:34.215>the <00:28:34.448>new <00:28:34.681>modernized <00:28:34.915>ui

621
00:28:36.155 --> 00:28:40.095
<00:28:36.155>and <00:28:36.310>I <00:28:36.466>used <00:28:36.621>here <00:28:36.777>VGS <00:28:36.932>to <00:28:37.088>implement <00:28:37.243>these <00:28:37.399>different <00:28:37.555>visible

622
00:28:40.975 --> 00:28:43.935
<00:28:40.975>v <00:28:41.149>uh, <00:28:41.324>these <00:28:41.500>visible, <00:28:41.675>these <00:28:41.850>visible <00:28:42.024>micro <00:28:42.199>front <00:28:42.375>end.

623
00:28:43.955 --> 00:28:45.215
<00:28:43.955>So <00:28:44.238>I <00:28:44.522>have <00:28:44.805>the <00:28:45.089>navigator

624
00:28:45.835 --> 00:28:48.215
<00:28:45.835>and <00:28:46.010>then <00:28:46.185>dependent <00:28:46.360>on <00:28:46.535>the <00:28:46.710>selection <00:28:46.885>of <00:28:47.060>the <00:28:47.235>navigator,

625
00:28:48.375 --> 00:28:49.735
<00:28:48.375>I <00:28:48.619>have <00:28:48.864>the <00:28:49.109>catalog, <00:28:49.354>the <00:28:49.599>order

626
00:28:49.755 --> 00:28:51.695
<00:28:49.755>and <00:28:50.035>the <00:28:50.315>account <00:28:50.595>micro <00:28:50.875>front <00:28:51.155>end

627
00:28:51.695 --> 00:28:52.975
<00:28:51.695>displayed <00:28:51.983>in <00:28:52.271>the <00:28:52.559>right <00:28:52.847>column.

628
00:28:53.555 --> 00:28:57.215
<00:28:53.555>And <00:28:53.755>there's <00:28:53.955>actually <00:28:54.155>two <00:28:54.355>more <00:28:54.555>non <00:28:54.755>UI <00:28:54.955>components

629
00:28:57.235 --> 00:28:59.095
<00:28:57.235>or <00:28:57.584>non-visible <00:28:57.935>components, <00:28:58.284>the <00:28:58.635>shell

630
00:28:59.315 --> 00:29:00.455
<00:28:59.315>and <00:28:59.657>the <00:28:59.999>messaging <00:29:00.341>component.

631
00:29:00.915 --> 00:29:04.215
<00:29:00.915>Now, <00:29:01.042>as <00:29:01.169>I <00:29:01.296>said, <00:29:01.424>uh, <00:29:01.551>for <00:29:01.678>the <00:29:01.805>visible <00:29:01.933>components <00:29:02.060>I <00:29:02.187>chose <00:29:02.315>UGS,

632
00:29:04.435 --> 00:29:06.975
<00:29:04.435>but <00:29:04.575>you <00:29:04.715>could <00:29:04.855>also <00:29:04.995>use <00:29:05.135>whatever <00:29:05.274>you <00:29:05.415>like, <00:29:05.554>you <00:29:05.695>know, <00:29:05.835>whether

633
00:29:06.975 --> 00:29:11.015
<00:29:06.975>that's <00:29:07.149>React <00:29:07.324>or <00:29:07.500>um, <00:29:07.675>web <00:29:07.850>components <00:29:08.024>or <00:29:08.199>vanilla <00:29:08.375>JavaScript

634
00:29:11.075 --> 00:29:13.855
<00:29:11.075>or <00:29:11.355>um, <00:29:11.635>angler, <00:29:11.915>whatever <00:29:12.195>you <00:29:12.475>like.

635
00:29:14.195 --> 00:29:18.335
<00:29:14.195>Um, <00:29:14.350>and <00:29:14.506>then <00:29:14.661>the <00:29:14.817>two <00:29:14.972>non-visible <00:29:15.128>components, <00:29:15.283>the <00:29:15.439>shell <00:29:15.595>one,

636
00:29:18.885 --> 00:29:20.735
<00:29:18.885>that <00:29:19.165>one <00:29:19.445>basically <00:29:19.725>defines <00:29:20.004>the <00:29:20.285>layout

637
00:29:21.035 --> 00:29:22.655
<00:29:21.035>and <00:29:21.268>it <00:29:21.501>makes <00:29:21.735>sure <00:29:21.968>to <00:29:22.201>load <00:29:22.435>all

638
00:29:22.655 --> 00:29:24.535
<00:29:22.655>of <00:29:22.830>these <00:29:23.004>other <00:29:23.180>micro <00:29:23.355>front <00:29:23.530>ends <00:29:23.705>that <00:29:23.879>you <00:29:24.055>need.

639
00:29:25.435 --> 00:29:27.535
<00:29:25.435>The <00:29:25.575>second <00:29:25.715>one, <00:29:25.855>the <00:29:25.995>messaging <00:29:26.135>one <00:29:26.274>is <00:29:26.415>a <00:29:26.554>little <00:29:26.695>bit <00:29:26.835>more

640
00:29:27.855 --> 00:29:30.415
<00:29:27.855>interesting, <00:29:28.088>and <00:29:28.321>this <00:29:28.555>is <00:29:28.788>basically <00:29:29.021>the <00:29:29.255>counterpart

641
00:29:30.635 --> 00:29:34.215
<00:29:30.635>to <00:29:30.762>Kafka <00:29:30.889>in <00:29:31.016>the <00:29:31.144>backend, <00:29:31.271>what <00:29:31.398>I <00:29:31.525>just <00:29:31.653>talked <00:29:31.780>about, <00:29:31.907>you <00:29:32.035>know,

642
00:29:34.275 --> 00:29:36.815
<00:29:34.275>the <00:29:34.625>communication <00:29:34.975>between <00:29:35.325>the <00:29:35.675>microservice

643
00:29:36.875 --> 00:29:38.135
<00:29:36.875>and <00:29:37.253>the <00:29:37.631>remaining <00:29:38.009>monolith.

644
00:29:38.835 --> 00:29:41.885
<00:29:38.835>You <00:29:38.975>want <00:29:39.115>to <00:29:39.255>have <00:29:39.395>the <00:29:39.535>same <00:29:39.675>decoupling <00:29:39.815>in <00:29:39.955>the <00:29:40.095>front <00:29:40.235>end,

645
00:29:42.585 --> 00:29:46.365
<00:29:42.585>and <00:29:42.725>that's <00:29:42.865>why <00:29:43.005>I <00:29:43.145>use <00:29:43.285>RXJS, <00:29:43.425>which <00:29:43.565>are <00:29:43.705>the, <00:29:43.845>you <00:29:43.985>know,

646
00:29:46.365 --> 00:29:49.645
<00:29:46.365>some <00:29:46.598>extensions, <00:29:46.831>some <00:29:47.065>reactive <00:29:47.298>extensions <00:29:47.531>for <00:29:47.765>JavaScript,

647
00:29:50.025 --> 00:29:52.365
<00:29:50.025>for <00:29:50.258>example, <00:29:50.491>you <00:29:50.725>have <00:29:50.958>objects <00:29:51.191>like <00:29:51.425>observables,

648
00:29:52.785 --> 00:29:54.725
<00:29:52.785>and <00:29:53.018>this <00:29:53.251>is <00:29:53.485>how <00:29:53.718>I <00:29:53.951>do <00:29:54.185>communication

649
00:29:54.725 --> 00:29:56.285
<00:29:54.725>between <00:29:55.004>these <00:29:55.284>different <00:29:55.564>micro <00:29:55.844>front <00:29:56.125>ends.

650
00:29:56.305 --> 00:29:58.685
<00:29:56.305>For <00:29:56.505>example, <00:29:56.705>if <00:29:56.905>you <00:29:57.105>browse <00:29:57.305>through <00:29:57.505>the <00:29:57.705>catalog

651
00:29:59.145 --> 00:30:02.405
<00:29:59.145>and <00:29:59.300>you <00:29:59.456>add <00:29:59.611>an <00:29:59.767>item <00:29:59.922>to <00:30:00.078>the, <00:30:00.233>um, <00:30:00.389>order <00:30:00.545>list

652
00:30:02.425 --> 00:30:04.845
<00:30:02.425>or <00:30:02.600>through <00:30:02.774>the, <00:30:02.950>to <00:30:03.125>the <00:30:03.300>shopping <00:30:03.475>cart, <00:30:03.649>you <00:30:03.825>need

653
00:30:04.845 --> 00:30:08.205
<00:30:04.845>to <00:30:05.045>communicate <00:30:05.245>between <00:30:05.445>the <00:30:05.645>catalog <00:30:05.845>micro <00:30:06.045>front <00:30:06.245>end

654
00:30:08.505 --> 00:30:10.045
<00:30:08.505>and <00:30:08.782>the <00:30:09.059>order <00:30:09.336>micro <00:30:09.613>front <00:30:09.891>end.

655
00:30:10.385 --> 00:30:12.485
<00:30:10.385>And <00:30:10.618>again, <00:30:10.851>you <00:30:11.085>don't <00:30:11.318>want <00:30:11.551>loose <00:30:11.785>coupling,

656
00:30:12.485 --> 00:30:14.845
<00:30:12.485>you <00:30:12.718>don't <00:30:12.951>want <00:30:13.185>synchronous <00:30:13.418>in <00:30:13.651>invocation <00:30:13.885>calls.

657
00:30:15.265 --> 00:30:16.925
<00:30:15.265>And <00:30:15.498>that's <00:30:15.731>exactly <00:30:15.965>why <00:30:16.198>I've <00:30:16.431>used <00:30:16.665>here.

658
00:30:17.465 --> 00:30:22.435
<00:30:17.465>Um, <00:30:17.665>RXJS, <00:30:17.865>this <00:30:18.064>is, <00:30:18.264>um, <00:30:18.465>just <00:30:18.665>a <00:30:18.865>screenshot

659
00:30:22.455 --> 00:30:24.475
<00:30:22.455>of <00:30:22.688>how <00:30:22.921>this <00:30:23.155>application <00:30:23.388>looks <00:30:23.621>like <00:30:23.855>from

660
00:30:24.475 --> 00:30:25.555
<00:30:24.475>a <00:30:24.717>developer <00:30:24.961>point <00:30:25.204>of <00:30:25.447>view.

661
00:30:26.095 --> 00:30:29.395
<00:30:26.095>So <00:30:26.250>the <00:30:26.406>framework <00:30:26.561>that <00:30:26.717>I've <00:30:26.872>used <00:30:27.028>is <00:30:27.183>called <00:30:27.339>single <00:30:27.495>spa.

662
00:30:29.655 --> 00:30:32.835
<00:30:29.655>Single <00:30:29.795>Spa <00:30:29.935>is <00:30:30.075>a <00:30:30.215>framework <00:30:30.355>that <00:30:30.495>allows <00:30:30.635>you <00:30:30.774>to <00:30:30.915>pull <00:30:31.055>all

663
00:30:32.835 --> 00:30:35.755
<00:30:32.835>of <00:30:32.990>these <00:30:33.146>different <00:30:33.301>micro <00:30:33.457>front <00:30:33.612>ends <00:30:33.768>together <00:30:33.923>in <00:30:34.079>one <00:30:34.235>place.

664
00:30:36.415 --> 00:30:37.955
<00:30:36.415>And <00:30:36.761>there <00:30:37.108>are <00:30:37.454>other <00:30:37.801>alternatives.

665
00:30:37.955 --> 00:30:39.355
<00:30:37.955>So <00:30:38.135>singles <00:30:38.315>power <00:30:38.495>is <00:30:38.675>not <00:30:38.855>the <00:30:39.035>only <00:30:39.215>one,

666
00:30:39.355 --> 00:30:41.035
<00:30:39.355>but <00:30:39.588>they <00:30:39.821>all <00:30:40.055>work <00:30:40.288>kind <00:30:40.521>of <00:30:40.755>similarly.

667
00:30:41.465 --> 00:30:42.875
<00:30:41.465>They <00:30:42.099>basically <00:30:42.734>federate

668
00:30:43.175 --> 00:30:44.395
<00:30:43.175>or <00:30:43.724>aggregate <00:30:44.273>all

669
00:30:44.395 --> 00:30:46.515
<00:30:44.395>of <00:30:44.595>these <00:30:44.795>different <00:30:44.995>micro <00:30:45.195>front <00:30:45.395>ends <00:30:45.595>in <00:30:45.795>the

670
00:30:46.515 --> 00:30:47.555
<00:30:46.515>front <00:30:46.749>end <00:30:46.983>in <00:30:47.217>the <00:30:47.451>browser.

671
00:30:48.175 --> 00:30:49.875
<00:30:48.175>You <00:30:48.408>can <00:30:48.641>think <00:30:48.875>of <00:30:49.108>it, <00:30:49.341>you <00:30:49.575>know,

672
00:30:49.875 --> 00:30:51.795
<00:30:49.875>basically <00:30:50.030>like <00:30:50.186>in <00:30:50.341>the <00:30:50.497>backend, <00:30:50.652>when <00:30:50.808>you <00:30:50.963>use <00:30:51.119>no <00:30:51.275>jazz

673
00:30:51.855 --> 00:30:54.635
<00:30:51.855>or <00:30:52.010>JavaScript <00:30:52.166>in <00:30:52.321>the <00:30:52.477>backend, <00:30:52.632>you <00:30:52.788>can <00:30:52.943>say, <00:30:53.099>you <00:30:53.255>know,

674
00:30:54.815 --> 00:30:55.875
<00:30:54.815>export <00:30:55.292>and <00:30:55.769>import.

675
00:30:56.335 --> 00:30:59.715
<00:30:56.335>And <00:30:56.490>the <00:30:56.646>same <00:30:56.801>functionality <00:30:56.957>is <00:30:57.112>now <00:30:57.268>with <00:30:57.423>the <00:30:57.579>modern, <00:30:57.735>um,

676
00:30:59.915 --> 00:31:03.435
<00:30:59.915>browsers <00:31:00.090>and <00:31:00.264>also <00:31:00.440>with, <00:31:00.615>um, <00:31:00.790>um, <00:31:00.965>polyfils <00:31:01.139>if <00:31:01.315>necessary,

677
00:31:03.785 --> 00:31:05.195
<00:31:03.785>also <00:31:04.102>possible <00:31:04.419>in <00:31:04.736>web <00:31:05.053>browsers.

678
00:31:05.455 --> 00:31:07.115
<00:31:05.455>And <00:31:05.655>this <00:31:05.855>is <00:31:06.054>what <00:31:06.254>a <00:31:06.455>developer <00:31:06.655>would <00:31:06.855>see.

679
00:31:07.455 --> 00:31:11.115
<00:31:07.455>Um, <00:31:07.595>so <00:31:07.735>right <00:31:07.875>here <00:31:08.014>you <00:31:08.155>can <00:31:08.294>define <00:31:08.435>exactly <00:31:08.574>where <00:31:08.715>to <00:31:08.855>load,

680
00:31:11.115 --> 00:31:14.075
<00:31:11.115>which <00:31:11.348>micro <00:31:11.581>front <00:31:11.815>and <00:31:12.048>from <00:31:12.281>in <00:31:12.515>general,

681
00:31:14.455 --> 00:31:17.155
<00:31:14.455>or <00:31:14.595>by <00:31:14.735>default, <00:31:14.875>that <00:31:15.014>would <00:31:15.155>probably <00:31:15.294>be <00:31:15.435>all <00:31:15.574>from <00:31:15.715>a <00:31:15.855>server,

682
00:31:17.295 --> 00:31:19.275
<00:31:17.295>you <00:31:17.528>know, <00:31:17.761>from <00:31:17.995>a, <00:31:18.228>um, <00:31:18.461>file <00:31:18.695>storage

683
00:31:19.455 --> 00:31:21.715
<00:31:19.455>or, <00:31:19.655>you <00:31:19.855>know, <00:31:20.054>cloud <00:31:20.254>storage, <00:31:20.455>whatever, <00:31:20.655>object <00:31:20.855>storage.

684
00:31:22.215 --> 00:31:24.515
<00:31:22.215>Um, <00:31:22.448>but <00:31:22.681>then <00:31:22.915>you <00:31:23.148>can <00:31:23.381>override <00:31:23.615>different

685
00:31:24.575 --> 00:31:28.955
<00:31:24.575>or <00:31:24.715>separate <00:31:24.855>specific <00:31:24.995>micro <00:31:25.135>front <00:31:25.275>ends <00:31:25.415>with <00:31:25.555>local <00:31:25.695>no <00:31:25.835>GS <00:31:25.975>code,

686
00:31:28.955 --> 00:31:31.275
<00:31:28.955>uh, <00:31:29.235>with <00:31:29.514>with <00:31:29.794>local <00:31:30.074>VGS <00:31:30.355>code.

687
00:31:31.975 --> 00:31:33.075
<00:31:31.975>So, <00:31:32.470>very <00:31:32.965>powerful,

688
00:31:33.495 --> 00:31:36.195
<00:31:33.495>and <00:31:33.611>again, <00:31:33.728>I <00:31:33.844>don't <00:31:33.961>have <00:31:34.078>the <00:31:34.195>time <00:31:34.311>to <00:31:34.428>go <00:31:34.544>in <00:31:34.661>more <00:31:34.778>detail <00:31:34.895>today,

689
00:31:36.455 --> 00:31:38.955
<00:31:36.455>but <00:31:36.688>all <00:31:36.921>of <00:31:37.155>this <00:31:37.388>is <00:31:37.621>documented, <00:31:37.855>documented

690
00:31:38.955 --> 00:31:40.355
<00:31:38.955>and <00:31:39.206>it's <00:31:39.459>working <00:31:39.711>in <00:31:39.963>the <00:31:40.215>repo.

691
00:31:41.305 --> 00:31:43.515
<00:31:41.305>Okay, <00:31:41.445>so <00:31:41.585>let <00:31:41.725>me <00:31:41.865>do <00:31:42.005>a <00:31:42.145>quick <00:31:42.285>time <00:31:42.425>check. <00:31:42.565>Okay, <00:31:42.705>good.

692
00:31:44.015 --> 00:31:46.915
<00:31:44.015>So <00:31:44.142>this <00:31:44.269>brings <00:31:44.396>me <00:31:44.524>almost <00:31:44.651>to <00:31:44.778>the <00:31:44.905>end <00:31:45.033>here <00:31:45.160>of <00:31:45.287>this <00:31:45.415>talk.

693
00:31:46.975 --> 00:31:48.475
<00:31:46.975>So <00:31:47.143>we <00:31:47.312>have <00:31:47.481>a, <00:31:47.649>a <00:31:47.818>little <00:31:47.987>bit <00:31:48.156>of <00:31:48.324>time

694
00:31:48.535 --> 00:31:49.595
<00:31:48.535>for <00:31:48.853>questions <00:31:49.171>and <00:31:49.489>answers.

695
00:31:50.295 --> 00:31:54.035
<00:31:50.295>Um, <00:31:50.422>I <00:31:50.549>recommend <00:31:50.676>if <00:31:50.804>you <00:31:50.931>wanna <00:31:51.058>learn <00:31:51.185>more, <00:31:51.313>check <00:31:51.440>out <00:31:51.567>the <00:31:51.695>repo.

696
00:31:54.505 --> 00:31:56.635
<00:31:54.505>It's <00:31:54.785>in <00:31:55.065>the <00:31:55.345>IBM <00:31:55.625>GitHub <00:31:55.905>organization.

697
00:31:57.335 --> 00:32:00.195
<00:31:57.335>And, <00:31:57.510>um, <00:31:57.685>you <00:31:57.860>can <00:31:58.035>just <00:31:58.210>search <00:31:58.385>for <00:31:58.560>application <00:31:58.735>modernization

698
00:32:00.695 --> 00:32:02.635
<00:32:00.695>or <00:32:00.870>you <00:32:01.044>can <00:32:01.220>type <00:32:01.395>in <00:32:01.570>the <00:32:01.745>whole <00:32:01.919>URL <00:32:02.095>here,

699
00:32:02.635 --> 00:32:05.275
<00:32:02.635>application <00:32:02.985>modernization, <00:32:03.335>Java <00:32:03.685>EE, <00:32:04.035>kus.

700
00:32:06.055 --> 00:32:07.955
<00:32:06.055>Um, <00:32:06.405>I've <00:32:06.755>written <00:32:07.105>a <00:32:07.455>series

701
00:32:07.975 --> 00:32:10.355
<00:32:07.975>of <00:32:08.130>block <00:32:08.286>entries <00:32:08.441>about <00:32:08.597>it, <00:32:08.752>I <00:32:08.908>think <00:32:09.063>more <00:32:09.219>than <00:32:09.375>20.

702
00:32:10.505 --> 00:32:13.435
<00:32:10.505>There's <00:32:10.738>videos, <00:32:10.971>there's <00:32:11.205>some <00:32:11.438>samples <00:32:11.671>and, <00:32:11.905>and,

703
00:32:13.435 --> 00:32:14.515
<00:32:13.435>and <00:32:13.759>blocks <00:32:14.083>and <00:32:14.407>everything.

704
00:32:14.615 --> 00:32:17.995
<00:32:14.615>So <00:32:14.770>there <00:32:14.926>should <00:32:15.081>be <00:32:15.237>a <00:32:15.392>lot <00:32:15.548>of <00:32:15.703>documentation <00:32:15.859>already <00:32:16.015>available.

705
00:32:18.535 --> 00:32:21.635
<00:32:18.535>We <00:32:18.735>are <00:32:18.935>also <00:32:19.135>working <00:32:19.335>on <00:32:19.535>creating <00:32:19.735>workshops <00:32:19.935>so

706
00:32:21.635 --> 00:32:24.275
<00:32:21.635>that <00:32:21.775>you <00:32:21.915>can <00:32:22.055>run <00:32:22.195>these <00:32:22.335>things, <00:32:22.475>you <00:32:22.615>know, <00:32:22.754>in <00:32:22.895>a <00:32:23.035>step

707
00:32:24.295 --> 00:32:25.355
<00:32:24.295>by <00:32:24.613>step, <00:32:24.931>um, <00:32:25.249>fashion.

708
00:32:27.485 --> 00:32:30.345
<00:32:27.485>And <00:32:27.601>I've <00:32:27.718>also <00:32:27.834>spent <00:32:27.951>a <00:32:28.068>lot <00:32:28.185>of <00:32:28.301>time <00:32:28.418>to <00:32:28.534>really <00:32:28.651>make <00:32:28.768>it <00:32:28.885>easy

709
00:32:30.565 --> 00:32:31.785
<00:32:30.565>to <00:32:30.931>use <00:32:31.297>this <00:32:31.663>example.

710
00:32:32.205 --> 00:32:34.425
<00:32:32.205>So <00:32:32.345>what <00:32:32.485>I've <00:32:32.625>done <00:32:32.764>here <00:32:32.905>is <00:32:33.044>to <00:32:33.185>implement <00:32:33.324>a <00:32:33.465>whole <00:32:33.605>lot

711
00:32:34.425 --> 00:32:37.545
<00:32:34.425>of <00:32:34.625>scripts <00:32:34.825>to <00:32:35.024>install <00:32:35.225>and <00:32:35.425>run <00:32:35.625>the <00:32:35.825>example.

712
00:32:38.165 --> 00:32:40.365
<00:32:38.165>At <00:32:38.398>this <00:32:38.631>point <00:32:38.865>I'm <00:32:39.098>using <00:32:39.331>Docker <00:32:39.565>desktop.

713
00:32:40.585 --> 00:32:44.245
<00:32:40.585>You <00:32:40.712>need <00:32:40.839>to <00:32:40.966>make <00:32:41.094>sure <00:32:41.221>that <00:32:41.348>you <00:32:41.475>have <00:32:41.603>enough, <00:32:41.730>um, <00:32:41.857>disc <00:32:41.985>space

714
00:32:44.305 --> 00:32:45.565
<00:32:44.305>and <00:32:44.683>CPUs <00:32:45.061>and <00:32:45.439>memory.

715
00:32:46.065 --> 00:32:47.885
<00:32:46.065>But <00:32:46.240>other <00:32:46.415>than <00:32:46.590>that, <00:32:46.765>all <00:32:46.940>you <00:32:47.115>need <00:32:47.290>to <00:32:47.465>do,

716
00:32:47.945 --> 00:32:50.365
<00:32:47.945>as <00:32:48.120>you <00:32:48.294>can <00:32:48.470>see <00:32:48.645>here, <00:32:48.820>is <00:32:48.995>one, <00:32:49.169>get <00:32:49.345>clone

717
00:32:50.905 --> 00:32:53.245
<00:32:50.905>and <00:32:51.185>to <00:32:51.465>invoke <00:32:51.745>one <00:32:52.024>single <00:32:52.305>script.

718
00:32:53.395 --> 00:32:55.685
<00:32:53.395>There's <00:32:53.595>also <00:32:53.795>more <00:32:53.995>scripts <00:32:54.195>to, <00:32:54.395>to <00:32:54.595>run <00:32:54.795>and,

719
00:32:55.685 --> 00:32:57.965
<00:32:55.685>and <00:32:55.965>delete <00:32:56.245>single <00:32:56.524>services, <00:32:56.804>et <00:32:57.085>cetera.

720
00:32:58.425 --> 00:32:59.925
<00:32:58.425>Um, <00:32:58.762>very <00:32:59.100>easy <00:32:59.437>to <00:32:59.774>use.

721
00:33:00.875 --> 00:33:03.765
<00:33:00.875>What <00:33:01.015>I'm <00:33:01.155>working <00:33:01.295>on <00:33:01.435>right <00:33:01.575>now <00:33:01.715>is <00:33:01.855>to <00:33:01.995>extend <00:33:02.135>this <00:33:02.275>example,

722
00:33:04.105 --> 00:33:08.045
<00:33:04.105>to <00:33:04.260>also <00:33:04.416>deploy <00:33:04.571>it <00:33:04.727>easily <00:33:04.882>to <00:33:05.038>either <00:33:05.193>Kubernetes <00:33:05.349>or <00:33:05.505>OpenShift.

723
00:33:08.045 --> 00:33:12.485
<00:33:08.045>OpenShift <00:33:08.278>is <00:33:08.511>the <00:33:08.745>enterprise <00:33:08.978>distribution <00:33:09.211>of <00:33:09.445>Kubernetes.

724
00:33:13.025 --> 00:33:15.805
<00:33:13.025>And, <00:33:13.152>um, <00:33:13.279>I, <00:33:13.406>I <00:33:13.534>want, <00:33:13.661>I <00:33:13.788>want <00:33:13.915>to <00:33:14.043>have <00:33:14.170>some, <00:33:14.297>you <00:33:14.425>know,

725
00:33:16.085 --> 00:33:19.445
<00:33:16.085>CICD <00:33:16.285>pipelines <00:33:16.485>using <00:33:16.685>tecton, <00:33:16.885>Argo, <00:33:17.085>cd, <00:33:17.285>et <00:33:17.485>cetera,

726
00:33:19.445 --> 00:33:22.685
<00:33:19.445>and <00:33:19.645>GitHubs <00:33:19.845>to <00:33:20.044>really <00:33:20.245>deploy <00:33:20.445>this <00:33:20.645>same, <00:33:20.845>um,

727
00:33:22.685 --> 00:33:25.405
<00:33:22.685>example <00:33:22.918>also <00:33:23.151>very <00:33:23.385>easily <00:33:23.618>to <00:33:23.851>different <00:33:24.085>Kubernetes

728
00:33:25.405 --> 00:33:26.765
<00:33:25.405>and <00:33:26.017>OpenShift <00:33:26.629>distributions.

729
00:33:27.915 --> 00:33:29.935
<00:33:27.915>So <00:33:28.070>I <00:33:28.226>think <00:33:28.381>that's <00:33:28.537>everything <00:33:28.692>that <00:33:28.848>I <00:33:29.003>had <00:33:29.159>for <00:33:29.315>today.

730
00:33:30.555 --> 00:33:31.815
<00:33:30.555>Um, <00:33:30.744>thanks <00:33:30.933>a <00:33:31.122>lot <00:33:31.311>for <00:33:31.500>your <00:33:31.689>attention.

731
00:33:32.115 --> 00:33:34.135
<00:33:32.115>And <00:33:32.315>now <00:33:32.515>we <00:33:32.715>have <00:33:32.915>some <00:33:33.115>time <00:33:33.315>for <00:33:33.515>questions.