WEBVTT

1
00:00:05.100 --> 00:00:09.800
it

2
00:00:11.700 --> 00:00:14.900
<00:00:11.700>hi <00:00:11.875>everyone. <00:00:12.049>Welcome <00:00:12.225>to <00:00:12.399>my <00:00:12.575>talking <00:00:12.750>about <00:00:12.924>going <00:00:13.100>serverless

3
00:00:14.900 --> 00:00:17.800
<00:00:14.900>using <00:00:15.133>the <00:00:15.366>spring <00:00:15.600>framework <00:00:15.833>ecosystem. <00:00:16.066>My <00:00:16.300>name

4
00:00:17.800 --> 00:00:20.500
<00:00:17.800>is <00:00:18.000>timisam <00:00:18.200>and <00:00:18.400>I'm <00:00:18.600>a <00:00:18.800>lead <00:00:19.000>developer <00:00:19.200>experience

5
00:00:20.500 --> 00:00:24.300
<00:00:20.500>solution <00:00:20.850>engineer <00:00:21.200>for <00:00:21.550>vampire. <00:00:21.900>And

6
00:00:23.300 --> 00:00:27.100
<00:00:23.300>yeah, <00:00:23.766>so <00:00:24.233>first <00:00:24.700>I

7
00:00:26.100 --> 00:00:29.500
<00:00:26.100>will <00:00:26.380>introduce <00:00:26.660>you <00:00:26.940>to <00:00:27.220>server <00:00:27.500>as

8
00:00:29.500 --> 00:00:32.600
<00:00:29.500>that. <00:00:29.700>We <00:00:29.900>have <00:00:30.100>a <00:00:30.300>common <00:00:30.500>understanding <00:00:30.700>and <00:00:30.900>then

9
00:00:32.600 --> 00:00:35.200
<00:00:32.600>we'll <00:00:32.775>have <00:00:32.950>a <00:00:33.125>glass <00:00:33.300>of <00:00:33.475>look <00:00:33.650>how <00:00:33.825>spring <00:00:34.000>boot

10
00:00:35.200 --> 00:00:39.000
<00:00:35.200>application <00:00:35.433>performs <00:00:35.666>on <00:00:35.900>a <00:00:36.133>serverless <00:00:36.366>runtime <00:00:36.600>and

11
00:00:38.400 --> 00:00:41.400
<00:00:38.400>yeah <00:00:38.680>see <00:00:38.960>whether <00:00:39.239>there's <00:00:39.519>some <00:00:39.800>room

12
00:00:41.400 --> 00:00:44.300
<00:00:41.400>of <00:00:41.633>for <00:00:41.866>improvements <00:00:42.100>and <00:00:42.333>if <00:00:42.566>that's <00:00:42.800>the

13
00:00:44.300 --> 00:00:47.400
<00:00:44.300>case, <00:00:44.474>I <00:00:44.650>will <00:00:44.824>show <00:00:45.000>you <00:00:45.175>some <00:00:45.349>ways <00:00:45.525>to <00:00:45.699>improve

14
00:00:47.400 --> 00:00:50.300
<00:00:47.400>for <00:00:47.680>example <00:00:47.960>the <00:00:48.239>performance <00:00:48.519>of <00:00:48.800>your

15
00:00:50.300 --> 00:00:53.800
<00:00:50.300>spring <00:00:50.500>boot <00:00:50.699>application <00:00:50.900>on <00:00:51.099>top <00:00:51.300>of <00:00:51.500>serverless <00:00:51.699>runtime.

16
00:00:55.200 --> 00:00:58.400
<00:00:55.200>For <00:00:55.355>that <00:00:55.511>presentation, <00:00:55.666>I <00:00:55.822>will <00:00:55.977>use <00:00:56.133>an <00:00:56.288>interactive <00:00:56.444>Workshop <00:00:56.600>environment

17
00:00:58.400 --> 00:01:00.600
<00:00:58.400>here. <00:00:58.750>Yeah, <00:00:59.100>let's <00:00:59.449>start <00:00:59.800>with

18
00:01:02.200 --> 00:01:05.500
<00:01:02.200>the <00:01:02.433>introduction <00:01:02.666>to <00:01:02.900>serverless <00:01:03.133>or <00:01:03.366>what <00:01:03.600>serverless

19
00:01:05.500 --> 00:01:05.800
<00:01:05.500>as <00:01:05.770>is.

20
00:01:06.600 --> 00:01:09.900
<00:01:06.600>And <00:01:06.755>in <00:01:06.911>the <00:01:07.066>end <00:01:07.222>what <00:01:07.377>serverless <00:01:07.533>is <00:01:07.688>it's <00:01:07.844>really <00:01:08.000>it

21
00:01:09.900 --> 00:01:12.300
<00:01:09.900>doesn't <00:01:10.180>mean <00:01:10.460>that <00:01:10.740>there <00:01:11.020>are <00:01:11.300>no

22
00:01:12.300 --> 00:01:16.300
<00:01:12.300>service. <00:01:12.416>It <00:01:12.533>means <00:01:12.649>that <00:01:12.766>you <00:01:12.883>don't <00:01:13.000>have <00:01:13.116>to <00:01:13.233>care <00:01:13.350>about <00:01:13.466>them <00:01:13.583>and <00:01:13.700>you

23
00:01:15.300 --> 00:01:18.400
<00:01:15.300>can <00:01:15.580>group <00:01:15.860>it <00:01:16.140>into <00:01:16.420>two <00:01:16.700>areas.

24
00:01:18.400 --> 00:01:21.200
<00:01:18.400>The <00:01:18.555>first <00:01:18.711>one <00:01:18.866>is <00:01:19.022>backend <00:01:19.177>as <00:01:19.333>the <00:01:19.488>service <00:01:19.644>that's <00:01:19.800>really

25
00:01:21.200 --> 00:01:24.500
<00:01:21.200>about <00:01:21.480>replacing <00:01:21.760>server <00:01:22.040>side <00:01:22.320>self-managed <00:01:22.600>components

26
00:01:24.500 --> 00:01:28.200
<00:01:24.500>with <00:01:24.675>all <00:01:24.850>the <00:01:25.025>cells <00:01:25.200>of <00:01:25.375>the <00:01:25.550>Shelf <00:01:25.725>Services <00:01:25.900>examples

27
00:01:27.200 --> 00:01:30.700
<00:01:27.200>are <00:01:27.480>like <00:01:27.760>for <00:01:28.040>example <00:01:28.320>out <00:01:28.600>indication

28
00:01:30.700 --> 00:01:34.100
<00:01:30.700>services <00:01:30.980>like <00:01:31.260>OCTA <00:01:31.540>or <00:01:31.820>zero <00:01:32.100>where

29
00:01:33.100 --> 00:01:36.800
<00:01:33.100>you <00:01:33.380>don't <00:01:33.660>have <00:01:33.940>to <00:01:34.220>manage <00:01:34.500>your

30
00:01:36.800 --> 00:01:40.400
<00:01:36.800>own <00:01:37.149>artification <00:01:37.500>server <00:01:37.850>upgraded <00:01:38.200>install

31
00:01:39.400 --> 00:01:42.300
<00:01:39.400>it <00:01:39.750>Etc. <00:01:40.100>So <00:01:40.450>everything <00:01:40.800>is

32
00:01:42.300 --> 00:01:45.600
<00:01:42.300>handled <00:01:42.455>for <00:01:42.611>you <00:01:42.766>and <00:01:42.922>you <00:01:43.077>just <00:01:43.233>use <00:01:43.388>the <00:01:43.544>endpoints <00:01:43.700>they

33
00:01:45.600 --> 00:01:48.500
<00:01:45.600>provide <00:01:45.833>within <00:01:46.066>your <00:01:46.300>application <00:01:46.533>and <00:01:46.766>have <00:01:47.000>singles

34
00:01:48.500 --> 00:01:49.400
<00:01:48.500>online <00:01:49.310>capabilities.

35
00:01:50.400 --> 00:01:53.300
<00:01:50.400>The <00:01:50.540>second <00:01:50.680>area <00:01:50.820>is <00:01:50.960>function <00:01:51.100>as <00:01:51.240>the <00:01:51.380>service. <00:01:51.520>It's <00:01:51.660>a <00:01:51.800>new

36
00:01:53.300 --> 00:01:57.400
<00:01:53.300>way <00:01:53.500>of <00:01:53.700>building <00:01:53.899>and <00:01:54.100>deploying <00:01:54.300>server-side <00:01:54.500>applications <00:01:54.700>oriented

37
00:01:56.400 --> 00:01:59.500
<00:01:56.400>around <00:01:57.100>individual <00:01:57.800>functions.

38
00:01:59.500 --> 00:02:02.300
<00:01:59.500>And <00:01:59.966>with <00:02:00.433>that <00:02:00.900>you

39
00:02:02.300 --> 00:02:05.400
<00:02:02.300>really <00:02:02.440>get <00:02:02.580>the <00:02:02.720>benefit <00:02:02.860>of <00:02:03.000>confirm <00:02:03.140>that <00:02:03.280>you <00:02:03.420>can <00:02:03.560>focus <00:02:03.700>on

40
00:02:05.400 --> 00:02:08.900
<00:02:05.400>writing <00:02:05.633>that <00:02:05.866>logic <00:02:06.100>of <00:02:06.333>the <00:02:06.566>tiny <00:02:06.800>function

41
00:02:08.900 --> 00:02:11.300
<00:02:08.900>and <00:02:09.600>with <00:02:10.300>that

42
00:02:11.300 --> 00:02:14.500
<00:02:11.300>it <00:02:11.533>also <00:02:11.766>introduces <00:02:12.000>the <00:02:12.233>possibility <00:02:12.466>to <00:02:12.700>for

43
00:02:14.500 --> 00:02:17.600
<00:02:14.500>example <00:02:14.733>out <00:02:14.966>of <00:02:15.200>scaling <00:02:15.433>the <00:02:15.666>individual <00:02:15.900>bits

44
00:02:17.600 --> 00:02:21.000
<00:02:17.600>depending <00:02:17.799>on <00:02:18.000>the <00:02:18.200>demand <00:02:18.400>for <00:02:18.600>a <00:02:18.799>specific <00:02:19.000>functionality

45
00:02:20.900 --> 00:02:23.600
<00:02:20.900>and <00:02:21.366>that <00:02:21.833>function <00:02:22.300>as

46
00:02:23.600 --> 00:02:26.600
<00:02:23.600>a <00:02:23.755>service <00:02:23.911>really <00:02:24.066>drives <00:02:24.222>and <00:02:24.377>new <00:02:24.533>type <00:02:24.688>of <00:02:24.844>architectures. <00:02:25.000>So

47
00:02:26.600 --> 00:02:29.900
<00:02:26.600>event <00:02:26.880>driven <00:02:27.160>architecture <00:02:27.440>that's <00:02:27.720>really <00:02:28.000>focused

48
00:02:29.900 --> 00:02:30.600
<00:02:29.900>on <00:02:30.530>events.

49
00:02:32.400 --> 00:02:36.100
<00:02:32.400>Um, <00:02:32.575>let's <00:02:32.750>have <00:02:32.925>a <00:02:33.100>look <00:02:33.275>what <00:02:33.450>the <00:02:33.625>characteristics <00:02:33.800>of

50
00:02:35.100 --> 00:02:38.900
<00:02:35.100>a <00:02:35.450>serverless <00:02:35.799>service <00:02:36.150>are <00:02:36.500>at

51
00:02:38.900 --> 00:02:42.000
<00:02:38.900>the <00:02:39.075>end. <00:02:39.250>It's <00:02:39.425>like <00:02:39.600>you <00:02:39.775>don't <00:02:39.950>have <00:02:40.125>to <00:02:40.300>manage

52
00:02:41.500 --> 00:02:45.000
<00:02:41.500>a <00:02:41.780>long-lived <00:02:42.060>host <00:02:42.340>or <00:02:42.620>application <00:02:42.900>instance

53
00:02:44.300 --> 00:02:48.200
<00:02:44.300>and <00:02:44.580>that <00:02:44.860>you <00:02:45.140>have <00:02:45.420>autoscaling <00:02:45.700>capabilities.

54
00:02:47.200 --> 00:02:50.700
<00:02:47.200>And <00:02:47.549>therefore <00:02:47.899>also <00:02:48.250>High <00:02:48.600>availability

55
00:02:50.700 --> 00:02:53.600
<00:02:50.700>is <00:02:50.839>based <00:02:50.980>on <00:02:51.119>your <00:02:51.260>demand <00:02:51.399>a <00:02:51.540>lot <00:02:51.679>of <00:02:51.820>your <00:02:51.959>a <00:02:52.100>lot

56
00:02:53.600 --> 00:02:56.200
<00:02:53.600>of <00:02:53.739>instances <00:02:53.880>of <00:02:54.019>your <00:02:54.160>application <00:02:54.299>will <00:02:54.440>be <00:02:54.579>scaled <00:02:54.720>up <00:02:54.859>and <00:02:55.000>down

57
00:02:56.200 --> 00:02:59.700
<00:02:56.200>and <00:02:56.666>with <00:02:57.133>that <00:02:57.600>as

58
00:02:59.700 --> 00:03:02.400
<00:02:59.700>that <00:02:59.899>you <00:03:00.100>don't <00:03:00.299>have <00:03:00.500>to <00:03:00.700>manage <00:03:00.899>a <00:03:01.100>VM

59
00:03:02.400 --> 00:03:05.400
<00:03:02.400>or <00:03:02.540>something <00:03:02.680>that <00:03:02.820>like <00:03:02.960>that <00:03:03.100>with <00:03:03.240>one <00:03:03.380>instance <00:03:03.520>running <00:03:03.660>all <00:03:03.800>the

60
00:03:05.400 --> 00:03:05.600
time.

61
00:03:07.400 --> 00:03:10.800
<00:03:07.400>Also, <00:03:07.750>it's <00:03:08.100>another <00:03:08.450>characteristic <00:03:08.800>is

62
00:03:10.800 --> 00:03:13.300
<00:03:10.800>that's <00:03:11.080>really <00:03:11.360>the <00:03:11.640>costs <00:03:11.920>are <00:03:12.200>based

63
00:03:13.300 --> 00:03:16.300
<00:03:13.300>on <00:03:13.427>presides <00:03:13.554>usage <00:03:13.681>because <00:03:13.809>as <00:03:13.936>that, <00:03:14.063>it <00:03:14.190>could <00:03:14.318>be <00:03:14.445>that <00:03:14.572>you <00:03:14.700>have

64
00:03:16.300 --> 00:03:19.400
<00:03:16.300>for <00:03:16.400>your <00:03:16.500>for <00:03:16.600>your <00:03:16.700>application <00:03:16.800>thousands <00:03:16.900>of <00:03:17.000>a <00:03:17.100>containers. <00:03:17.200>It <00:03:17.300>could <00:03:17.400>be <00:03:17.500>that <00:03:17.600>they're <00:03:17.700>only

65
00:03:19.400 --> 00:03:22.300
<00:03:19.400>two <00:03:19.633>and <00:03:19.866>then <00:03:20.100>for <00:03:20.333>sure <00:03:20.566>it's <00:03:20.800>not

66
00:03:22.300 --> 00:03:25.000
<00:03:22.300>possible <00:03:22.533>to <00:03:22.766>really <00:03:23.000>have <00:03:23.233>a <00:03:23.466>have <00:03:23.700>a

67
00:03:25.400 --> 00:03:28.000
<00:03:25.400>cost <00:03:25.527>model <00:03:25.654>of <00:03:25.781>where <00:03:25.909>you <00:03:26.036>say. <00:03:26.163>Okay, <00:03:26.290>maybe <00:03:26.418>the <00:03:26.545>average <00:03:26.672>or <00:03:26.800>something

68
00:03:28.100 --> 00:03:31.300
<00:03:28.100>like <00:03:28.255>that <00:03:28.411>and <00:03:28.566>therefore <00:03:28.722>that's <00:03:28.877>also <00:03:29.033>big <00:03:29.188>bad <00:03:29.344>benefit. <00:03:29.500>But

69
00:03:31.300 --> 00:03:35.200
<00:03:31.300>also <00:03:31.533>a <00:03:31.766>drawback <00:03:32.000>is <00:03:32.233>that <00:03:32.466>costs? <00:03:32.700>Um

70
00:03:35.200 --> 00:03:38.600
<00:03:35.200>regarding <00:03:35.899>the <00:03:36.600>Priestess

71
00:03:38.600 --> 00:03:41.500
<00:03:38.600>usage <00:03:39.299>the <00:03:40.000>question

72
00:03:41.500 --> 00:03:44.500
<00:03:41.500>is <00:03:41.627>why <00:03:41.754>should <00:03:41.881>we <00:03:42.009>use <00:03:42.136>server <00:03:42.263>last? <00:03:42.390>What <00:03:42.518>are <00:03:42.645>the <00:03:42.772>benefits <00:03:42.900>and

73
00:03:44.500 --> 00:03:47.700
<00:03:44.500>with <00:03:44.675>every <00:03:44.850>technology <00:03:45.025>you're <00:03:45.200>using <00:03:45.375>you <00:03:45.550>should <00:03:45.725>first <00:03:45.900>think

74
00:03:47.700 --> 00:03:50.100
<00:03:47.700>about <00:03:47.899>the <00:03:48.100>problem <00:03:48.299>you <00:03:48.500>want <00:03:48.700>to <00:03:48.899>solve. <00:03:49.100>Um,

75
00:03:50.100 --> 00:03:53.400
<00:03:50.100>yeah, <00:03:50.275>the <00:03:50.450>benefit <00:03:50.625>of <00:03:50.799>serverless <00:03:50.975>is <00:03:51.150>really <00:03:51.325>the <00:03:51.500>shorter

76
00:03:53.400 --> 00:03:56.300
<00:03:53.400>leap <00:03:53.575>time. <00:03:53.750>So <00:03:53.925>it <00:03:54.100>takes <00:03:54.275>you <00:03:54.450>a <00:03:54.625>last <00:03:54.800>time

77
00:03:56.300 --> 00:03:59.300
<00:03:56.300>to <00:03:56.500>get <00:03:56.700>your <00:03:56.900>application <00:03:57.100>Implement <00:03:57.300>that <00:03:57.500>for <00:03:57.700>example

78
00:03:59.300 --> 00:04:02.200
<00:03:59.300>with <00:03:59.475>function <00:03:59.650>of <00:03:59.825>service <00:04:00.000>and <00:04:00.175>then <00:04:00.350>also <00:04:00.525>deployed <00:04:00.700>and

79
00:04:02.200 --> 00:04:03.200
<00:04:02.200>running <00:04:03.100>on

80
00:04:04.400 --> 00:04:09.400
<00:04:04.400>On <00:04:04.633>service <00:04:04.866>at <00:04:05.100>the <00:04:05.333>end <00:04:05.566>the <00:04:05.800>scaling

81
00:04:08.400 --> 00:04:13.500
<00:04:08.400>as <00:04:08.680>big <00:04:08.960>benefit <00:04:09.240>of <00:04:09.520>serverless. <00:04:09.800>So

82
00:04:13.500 --> 00:04:16.500
<00:04:13.500>at <00:04:13.616>the <00:04:13.733>end <00:04:13.850>I <00:04:13.966>think <00:04:14.083>you <00:04:14.200>know <00:04:14.316>those <00:04:14.433>examples <00:04:14.550>let's <00:04:14.666>say <00:04:14.783>there <00:04:14.900>is

83
00:04:16.500 --> 00:04:19.200
<00:04:16.500>the <00:04:16.700>new <00:04:16.899>PlayStation <00:04:17.100>5 <00:04:17.300>available <00:04:17.500>and <00:04:17.700>you <00:04:17.899>can

84
00:04:19.200 --> 00:04:22.800
<00:04:19.200>be <00:04:19.399>sure <00:04:19.599>that <00:04:19.800>more <00:04:20.000>most <00:04:20.200>mostly <00:04:20.399>every <00:04:20.599>German

85
00:04:22.800 --> 00:04:25.300
<00:04:22.800>retail <00:04:24.200>online

86
00:04:25.300 --> 00:04:28.900
<00:04:25.300>retail <00:04:25.533>store <00:04:25.766>is <00:04:26.000>down <00:04:26.233>and <00:04:26.466>after <00:04:26.700>five

87
00:04:28.900 --> 00:04:31.700
<00:04:28.900>minutes <00:04:29.179>of <00:04:29.460>the <00:04:29.739>availability <00:04:30.020>because <00:04:30.299>they

88
00:04:31.700 --> 00:04:34.600
<00:04:31.700>don't <00:04:32.050>have <00:04:32.400>autoscaling. <00:04:32.750>If <00:04:33.099>for

89
00:04:34.600 --> 00:04:37.600
<00:04:34.600>example <00:04:34.775>you <00:04:34.950>have <00:04:35.125>a <00:04:35.300>serverless <00:04:35.475>ROM <00:04:35.650>time <00:04:35.825>on <00:04:36.000>premises

90
00:04:37.600 --> 00:04:40.100
<00:04:37.600>in <00:04:37.740>your <00:04:37.880>data <00:04:38.020>centers <00:04:38.160>in <00:04:38.300>the <00:04:38.440>cloud <00:04:38.580>and <00:04:38.720>the <00:04:38.860>ability <00:04:39.000>to

91
00:04:40.100 --> 00:04:42.400
<00:04:40.100>shift <00:04:40.380>workloads. <00:04:40.660>It's <00:04:40.940>really <00:04:41.220>easy <00:04:41.500>to

92
00:04:43.600 --> 00:04:46.500
<00:04:43.600>A <00:04:43.833>fulfill <00:04:44.066>the <00:04:44.300>demand <00:04:44.533>and <00:04:44.766>yeah <00:04:45.000>be

93
00:04:46.500 --> 00:04:49.500
<00:04:46.500>able <00:04:46.675>to <00:04:46.850>to <00:04:47.025>also <00:04:47.200>sell <00:04:47.375>other <00:04:47.550>products <00:04:47.725>beside <00:04:47.900>your

94
00:04:49.500 --> 00:04:52.500
<00:04:49.500>PlayStation <00:04:49.700>during <00:04:49.900>the <00:04:50.100>day <00:04:50.300>and <00:04:50.500>don't <00:04:50.700>have <00:04:50.900>it

95
00:04:52.500 --> 00:04:55.100
<00:04:52.500>down <00:04:52.780>time. <00:04:53.060>Another <00:04:53.340>big <00:04:53.620>benefit <00:04:53.900>of

96
00:04:55.100 --> 00:04:59.000
<00:04:55.100>serverless <00:04:55.275>is <00:04:55.450>in <00:04:55.625>general <00:04:55.800>to <00:04:55.975>reduce <00:04:56.150>costs <00:04:56.325>so <00:04:56.500>labor

97
00:04:58.100 --> 00:05:01.200
<00:04:58.100>costs <00:04:58.300>because <00:04:58.500>you <00:04:58.700>don't <00:04:58.900>need <00:04:59.100>that <00:04:59.300>much <00:04:59.500>people

98
00:05:01.200 --> 00:05:04.600
<00:05:01.200>that <00:05:01.550>manage <00:05:01.900>the <00:05:02.250>solutions. <00:05:02.599>Let's

99
00:05:04.600 --> 00:05:06.800
<00:05:04.600>say <00:05:04.880>for <00:05:05.160>example <00:05:05.440>out <00:05:05.720>education <00:05:06.000>server.

100
00:05:08.200 --> 00:05:11.800
<00:05:08.200>If <00:05:08.355>someone <00:05:08.511>else <00:05:08.666>is <00:05:08.822>doing <00:05:08.977>that <00:05:09.133>for <00:05:09.288>you, <00:05:09.444>so <00:05:09.599>for

101
00:05:11.800 --> 00:05:14.400
<00:05:11.800>sure <00:05:12.000>results <00:05:12.200>course <00:05:12.400>based <00:05:12.600>on <00:05:12.800>the <00:05:13.000>outer <00:05:13.200>scaling

102
00:05:14.400 --> 00:05:18.800
<00:05:14.400>because <00:05:14.555>if <00:05:14.711>there <00:05:14.866>is <00:05:15.022>no <00:05:15.177>demand <00:05:15.333>for <00:05:15.488>your <00:05:15.644>application, <00:05:15.799>then

103
00:05:17.800 --> 00:05:20.000
<00:05:17.800>there <00:05:18.500>are <00:05:19.200>no

104
00:05:20.500 --> 00:05:23.600
<00:05:20.500>instances <00:05:20.627>and <00:05:20.754>you <00:05:20.881>don't <00:05:21.009>have <00:05:21.136>to <00:05:21.263>pay <00:05:21.390>for <00:05:21.518>it <00:05:21.645>and <00:05:21.772>also <00:05:21.900>for

105
00:05:23.600 --> 00:05:26.400
<00:05:23.600>sure <00:05:23.740>to <00:05:23.880>reduce <00:05:24.020>risk <00:05:24.160>because <00:05:24.300>you <00:05:24.440>don't <00:05:24.580>have <00:05:24.720>to <00:05:24.860>manage <00:05:25.000>that

106
00:05:26.400 --> 00:05:29.800
<00:05:26.400>server <00:05:26.679>authentication <00:05:26.960>server <00:05:27.239>for <00:05:27.520>example <00:05:27.799>yourself.

107
00:05:31.200 --> 00:05:34.600
<00:05:31.200>But <00:05:31.479>it's <00:05:31.760>not <00:05:32.039>everything <00:05:32.320>is <00:05:32.599>positive.

108
00:05:34.600 --> 00:05:38.300
<00:05:34.600>So <00:05:34.800>there's <00:05:35.000>some <00:05:35.200>drawbacks <00:05:35.400>and <00:05:35.600>one <00:05:35.800>of <00:05:36.000>the

109
00:05:38.300 --> 00:05:41.600
<00:05:38.300>most <00:05:38.500>famous <00:05:38.700>ones <00:05:38.900>is <00:05:39.100>there <00:05:39.300>are <00:05:39.500>unpredictable <00:05:39.700>costs.

110
00:05:41.600 --> 00:05:44.400
<00:05:41.600>I <00:05:41.775>think <00:05:41.950>every <00:05:42.125>of <00:05:42.300>you <00:05:42.475>already <00:05:42.650>saw <00:05:42.825>a <00:05:43.000>Twitter

111
00:05:44.400 --> 00:05:48.100
<00:05:44.400>for <00:05:44.633>example, <00:05:44.866>a <00:05:45.099>bill <00:05:45.333>of <00:05:45.566>AWS <00:05:45.799>Lambda

112
00:05:47.100 --> 00:05:50.700
<00:05:47.100>for <00:05:47.380>example <00:05:47.660>were <00:05:47.940>then <00:05:48.220>someone <00:05:48.500>paid

113
00:05:50.700 --> 00:05:53.400
<00:05:50.700>thousands <00:05:50.875>of <00:05:51.050>Euro. <00:05:51.224>I <00:05:51.400>had <00:05:51.575>to <00:05:51.750>pay <00:05:51.925>thousands <00:05:52.099>of

114
00:05:53.400 --> 00:05:53.900
<00:05:53.400>Europe <00:05:53.849>because

115
00:05:55.500 --> 00:05:59.500
<00:05:55.500>They <00:05:55.850>didn't <00:05:56.200>yeah <00:05:56.550>configure <00:05:56.900>any

116
00:05:59.500 --> 00:06:02.800
<00:05:59.500>boundaries <00:05:59.640>or <00:05:59.780>something <00:05:59.920>like <00:06:00.060>that <00:06:00.200>for <00:06:00.340>the <00:06:00.480>scaling <00:06:00.620>and <00:06:00.760>then <00:06:00.900>yeah,

117
00:06:02.800 --> 00:06:05.200
<00:06:02.800>they <00:06:03.033>had <00:06:03.266>thousands <00:06:03.500>of <00:06:03.733>instance <00:06:03.966>this <00:06:04.200>running

118
00:06:05.200 --> 00:06:10.200
<00:06:05.200>maybe <00:06:05.375>also <00:06:05.550>due <00:06:05.724>to <00:06:05.900>attack <00:06:06.075>of <00:06:06.250>someone <00:06:06.425>and <00:06:06.599>therefore

119
00:06:09.200 --> 00:06:13.300
<00:06:09.200>that's <00:06:09.375>really <00:06:09.550>important. <00:06:09.724>If <00:06:09.900>you <00:06:10.075>start <00:06:10.250>with <00:06:10.425>serverless, <00:06:10.599>let's

120
00:06:12.300 --> 00:06:15.100
<00:06:12.300>say <00:06:12.580>for <00:06:12.860>example <00:06:13.140>AWS <00:06:13.420>Lambda <00:06:13.700>that

121
00:06:15.100 --> 00:06:18.400
<00:06:15.100>you <00:06:15.333>initially <00:06:15.566>said <00:06:15.800>some <00:06:16.033>boundaries <00:06:16.266>to <00:06:16.500>not

122
00:06:18.400 --> 00:06:22.200
<00:06:18.400>be <00:06:18.555>surprised <00:06:18.711>by <00:06:18.866>the <00:06:19.022>bill <00:06:19.177>that <00:06:19.333>you <00:06:19.488>get <00:06:19.644>the <00:06:19.799>other

123
00:06:22.200 --> 00:06:25.400
<00:06:22.200>drawback. <00:06:22.479>Is <00:06:22.760>that <00:06:23.039>all <00:06:23.320>that <00:06:23.599>scaling?

124
00:06:25.400 --> 00:06:27.500
<00:06:25.400>So <00:06:25.599>at <00:06:25.799>the <00:06:26.000>end <00:06:26.200>new <00:06:26.400>implications <00:06:26.599>will <00:06:26.799>be

125
00:06:28.400 --> 00:06:31.100
<00:06:28.400>And <00:06:28.539>says <00:06:28.679>this <00:06:28.820>will <00:06:28.960>be <00:06:29.099>created <00:06:29.239>and <00:06:29.380>it <00:06:29.520>takes <00:06:29.659>some <00:06:29.799>time

126
00:06:31.100 --> 00:06:34.600
<00:06:31.100>to <00:06:31.255>stop <00:06:31.411>them. <00:06:31.566>So <00:06:31.722>let's <00:06:31.877>say <00:06:32.033>typical <00:06:32.188>spring <00:06:32.344>boot <00:06:32.500>application.

127
00:06:34.600 --> 00:06:37.900
<00:06:34.600>It <00:06:34.775>will <00:06:34.950>take <00:06:35.125>several <00:06:35.300>seconds <00:06:35.475>until <00:06:35.650>it <00:06:35.825>started. <00:06:36.000>If

128
00:06:37.900 --> 00:06:40.900
<00:06:37.900>you <00:06:38.133>only <00:06:38.366>have <00:06:38.599>one <00:06:38.833>application, <00:06:39.066>that's <00:06:39.299>maybe

129
00:06:40.900 --> 00:06:42.700
<00:06:40.900>not <00:06:41.055>a <00:06:41.211>problem <00:06:41.366>or <00:06:41.522>the <00:06:41.677>client <00:06:41.833>will <00:06:41.988>not <00:06:42.144>run <00:06:42.299>in.

130
00:06:44.400 --> 00:06:50.200
<00:06:44.400>In <00:06:44.555>a <00:06:44.711>downtime, <00:06:44.866>but <00:06:45.022>if <00:06:45.177>you <00:06:45.333>have <00:06:45.488>for <00:06:45.644>example <00:06:45.799>distributed

131
00:06:47.200 --> 00:06:50.600
system

132
00:06:50.600 --> 00:06:53.500
<00:06:50.600>with <00:06:50.775>a <00:06:50.950>lot <00:06:51.125>of <00:06:51.300>services <00:06:51.475>that <00:06:51.650>that <00:06:51.825>call <00:06:52.000>each

133
00:06:53.500 --> 00:06:56.300
<00:06:53.500>other <00:06:53.675>and <00:06:53.850>each <00:06:54.025>of <00:06:54.200>those <00:06:54.375>service <00:06:54.550>needs <00:06:54.725>some <00:06:54.900>time

134
00:06:56.300 --> 00:07:00.000
<00:06:56.300>to <00:06:56.500>start <00:06:56.700>up <00:06:56.900>at <00:06:57.100>new <00:06:57.300>instances. <00:06:57.500>The <00:06:57.700>there's

135
00:06:59.200 --> 00:07:02.300
<00:06:59.200>a <00:06:59.400>lot <00:06:59.599>of <00:06:59.800>more <00:07:00.000>latency <00:07:00.200>and <00:07:00.400>therefore <00:07:00.599>it

136
00:07:02.300 --> 00:07:05.500
<00:07:02.300>could <00:07:02.455>be <00:07:02.611>that <00:07:02.766>your <00:07:02.922>clients <00:07:03.077>time <00:07:03.233>out. <00:07:03.388>So <00:07:03.544>therefore <00:07:03.700>that's

137
00:07:05.500 --> 00:07:08.800
<00:07:05.500>something <00:07:05.616>you <00:07:05.733>have <00:07:05.850>to <00:07:05.966>handle <00:07:06.083>in <00:07:06.200>the <00:07:06.316>client. <00:07:06.433>Let's <00:07:06.550>say <00:07:06.666>for <00:07:06.783>example <00:07:06.900>single

138
00:07:08.800 --> 00:07:11.500
<00:07:08.800>pledge <00:07:09.000>application <00:07:09.200>you <00:07:09.400>need <00:07:09.600>to <00:07:09.800>in <00:07:10.000>to <00:07:10.200>implement

139
00:07:11.500 --> 00:07:14.100
<00:07:11.500>retries <00:07:11.780>if <00:07:12.060>there's <00:07:12.340>a <00:07:12.620>timeout <00:07:12.900>to

140
00:07:15.400 --> 00:07:18.200
<00:07:15.400>Be <00:07:15.633>able <00:07:15.866>to <00:07:16.099>to <00:07:16.333>then <00:07:16.566>handle <00:07:16.799>those

141
00:07:18.200 --> 00:07:19.400
<00:07:18.200>errors <00:07:18.740>regarding <00:07:19.280>that.

142
00:07:20.200 --> 00:07:23.700
<00:07:20.200>And <00:07:20.400>I <00:07:20.599>already <00:07:20.800>talked <00:07:21.000>about <00:07:21.200>the <00:07:21.400>latency. <00:07:21.599>So

143
00:07:23.700 --> 00:07:24.100
<00:07:23.700>that's <00:07:24.060>really

144
00:07:25.600 --> 00:07:28.200
<00:07:25.600>especially <00:07:25.800>also <00:07:26.000>with <00:07:26.200>function <00:07:26.400>as <00:07:26.600>a <00:07:26.800>service <00:07:27.000>something

145
00:07:28.200 --> 00:07:31.300
<00:07:28.200>you <00:07:28.307>have <00:07:28.415>to <00:07:28.523>care <00:07:28.630>about. <00:07:28.738>If <00:07:28.846>you <00:07:28.953>have <00:07:29.061>a <00:07:29.169>lot <00:07:29.276>of <00:07:29.384>time <00:07:29.492>you <00:07:29.599>find

146
00:07:31.300 --> 00:07:35.000
<00:07:31.300>terms <00:07:31.440>for <00:07:31.580>sure <00:07:31.720>with <00:07:31.860>every <00:07:32.000>call <00:07:32.140>to <00:07:32.280>the <00:07:32.420>other <00:07:32.560>function. <00:07:32.700>Then

147
00:07:34.400 --> 00:07:37.500
<00:07:34.400>you <00:07:34.679>introduce <00:07:34.960>additional <00:07:35.239>latency. <00:07:35.520>And <00:07:35.799>therefore

148
00:07:37.500 --> 00:07:40.300
<00:07:37.500>you <00:07:37.700>have <00:07:37.900>to <00:07:38.100>test <00:07:38.300>that <00:07:38.500>in <00:07:38.700>production <00:07:38.900>to

149
00:07:40.300 --> 00:07:42.500
<00:07:40.300>see <00:07:40.500>whether <00:07:40.700>your <00:07:40.900>application <00:07:41.100>works <00:07:41.300>like <00:07:41.500>it <00:07:41.700>should

150
00:07:43.900 --> 00:07:44.800
<00:07:43.900>great, <00:07:44.710>so

151
00:07:46.400 --> 00:07:49.200
<00:07:46.400>And <00:07:46.599>yeah, <00:07:46.799>they <00:07:47.000>are <00:07:47.200>more <00:07:47.400>drawbacks. <00:07:47.599>Like <00:07:47.799>for

152
00:07:49.200 --> 00:07:52.900
<00:07:49.200>example <00:07:49.479>one <00:07:49.760>of <00:07:50.039>the <00:07:50.320>yeah <00:07:50.599>things.

153
00:07:54.500 --> 00:07:56.800
<00:07:54.500>And <00:07:54.675>for <00:07:54.850>example <00:07:55.025>also <00:07:55.200>that <00:07:55.375>for <00:07:55.550>sure <00:07:55.725>you <00:07:55.900>lost.

154
00:07:59.100 --> 00:08:03.000
<00:07:59.100>Some <00:07:59.255>control <00:07:59.411>over <00:07:59.566>for <00:07:59.722>example <00:07:59.877>the <00:08:00.033>security <00:08:00.188>also <00:08:00.344>issue <00:08:00.500>resolution.

155
00:08:02.300 --> 00:08:06.100
<00:08:02.300>So <00:08:02.580>if <00:08:02.860>for <00:08:03.140>example <00:08:03.420>a <00:08:03.700>conference

156
00:08:05.100 --> 00:08:08.400
<00:08:05.100>is <00:08:05.300>down, <00:08:05.500>you're <00:08:05.700>not <00:08:05.900>able <00:08:06.100>to <00:08:06.300>do <00:08:06.500>anything

157
00:08:08.400 --> 00:08:11.700
<00:08:08.400>if <00:08:08.555>you're <00:08:08.711>using <00:08:08.866>disaster <00:08:09.022>service, <00:08:09.177>if <00:08:09.333>you're <00:08:09.488>using <00:08:09.644>the <00:08:09.799>on-premise

158
00:08:11.700 --> 00:08:14.800
<00:08:11.700>self-manage <00:08:11.933>version <00:08:12.166>you <00:08:12.400>have <00:08:12.633>the <00:08:12.866>ability <00:08:13.099>to

159
00:08:14.800 --> 00:08:15.600
maybe

160
00:08:17.600 --> 00:08:20.800
<00:08:17.600>Get <00:08:17.880>it <00:08:18.160>working. <00:08:18.440>And <00:08:18.720>therefore <00:08:19.000>that's

161
00:08:20.800 --> 00:08:24.100
<00:08:20.800>also <00:08:20.975>important <00:08:21.150>to <00:08:21.325>know <00:08:21.500>so <00:08:21.675>for <00:08:21.850>sure <00:08:22.025>other <00:08:22.200>student

162
00:08:23.100 --> 00:08:26.400
<00:08:23.100>work <00:08:23.275>for <00:08:23.450>you, <00:08:23.625>but <00:08:23.800>at <00:08:23.975>the <00:08:24.150>end <00:08:24.325>you're <00:08:24.500>also

163
00:08:26.400 --> 00:08:29.300
<00:08:26.400>if <00:08:26.516>there's <00:08:26.633>a <00:08:26.750>problem <00:08:26.866>you <00:08:26.983>have <00:08:27.099>to <00:08:27.216>wait <00:08:27.333>for <00:08:27.450>them <00:08:27.566>that <00:08:27.683>they <00:08:27.799>get

164
00:08:29.300 --> 00:08:29.700
<00:08:29.300>it <00:08:29.659>fixed.

165
00:08:33.500 --> 00:08:36.900
<00:08:33.500>Regarding <00:08:33.607>the <00:08:33.715>serverless <00:08:33.823>runtime <00:08:33.930>we <00:08:34.038>will <00:08:34.146>use <00:08:34.253>today. <00:08:34.361>We <00:08:34.469>will <00:08:34.576>not <00:08:34.684>use <00:08:34.792>AWS <00:08:34.900>Atlanta

166
00:08:36.900 --> 00:08:37.400
<00:08:36.900>or <00:08:37.350>another.

167
00:08:38.800 --> 00:08:41.200
<00:08:38.799>Solution <00:08:38.974>available <00:08:39.150>on <00:08:39.324>public <00:08:39.500>Cloud <00:08:39.674>so <00:08:39.849>we <00:08:40.025>will <00:08:40.199>use

168
00:08:41.200 --> 00:08:44.300
<00:08:41.200>is <00:08:41.340>knative <00:08:41.480>is <00:08:41.620>an <00:08:41.760>open <00:08:41.900>source <00:08:42.040>project <00:08:42.180>and <00:08:42.320>the <00:08:42.460>end. <00:08:42.600>It's

169
00:08:44.300 --> 00:08:47.600
<00:08:44.300>a <00:08:44.533>serverless <00:08:44.766>runtime <00:08:45.000>on <00:08:45.233>kubernetes. <00:08:45.466>That's <00:08:45.699>a

170
00:08:47.600 --> 00:08:50.300
<00:08:47.600>big <00:08:47.755>benefit <00:08:47.911>because <00:08:48.066>at <00:08:48.222>the <00:08:48.377>end <00:08:48.533>it's <00:08:48.688>like <00:08:48.844>you <00:08:49.000>can

171
00:08:50.300 --> 00:08:53.600
<00:08:50.300>have <00:08:50.387>it <00:08:50.474>everywhere. <00:08:50.562>You <00:08:50.650>can <00:08:50.737>have <00:08:50.824>it <00:08:50.912>in <00:08:51.000>the <00:08:51.087>data <00:08:51.175>center. <00:08:51.262>You <00:08:51.349>can <00:08:51.437>have <00:08:51.525>it <00:08:51.612>on <00:08:51.699>AWS

172
00:08:53.600 --> 00:08:56.400
<00:08:53.600>on <00:08:53.833>Google <00:08:54.066>everywhere <00:08:54.300>the <00:08:54.533>same <00:08:54.766>abstraction <00:08:55.000>with

173
00:08:56.400 --> 00:08:59.400
<00:08:56.400>which <00:08:56.527>is <00:08:56.654>really <00:08:56.781>in <00:08:56.909>the <00:08:57.036>end <00:08:57.163>really <00:08:57.290>important. <00:08:57.418>If <00:08:57.545>you <00:08:57.672>have <00:08:57.800>a

174
00:08:59.400 --> 00:09:02.900
<00:08:59.400>multi-cloud <00:08:59.633>or <00:08:59.866>hybrid <00:09:00.100>Cloud <00:09:00.333>Model <00:09:00.566>so <00:09:00.800>that

175
00:09:02.900 --> 00:09:05.300
<00:09:02.900>you <00:09:03.100>have <00:09:03.300>at <00:09:03.500>the <00:09:03.699>end <00:09:03.900>all <00:09:04.100>the <00:09:04.300>same

176
00:09:05.300 --> 00:09:09.400
<00:09:05.300>abstractions <00:09:05.650>on <00:09:06.000>any <00:09:06.349>infrastructure <00:09:06.699>and

177
00:09:10.600 --> 00:09:13.400
<00:09:10.600>So <00:09:11.066>creative <00:09:11.533>has <00:09:12.000>two

178
00:09:13.400 --> 00:09:16.400
<00:09:13.400>primary <00:09:13.540>components. <00:09:13.680>The <00:09:13.819>one <00:09:13.959>is <00:09:14.100>the <00:09:14.240>first <00:09:14.380>one <00:09:14.520>is <00:09:14.660>serving. <00:09:14.800>This

179
00:09:16.400 --> 00:09:20.400
<00:09:16.400>is <00:09:16.527>the <00:09:16.654>one <00:09:16.781>we <00:09:16.909>will <00:09:17.036>use <00:09:17.163>today. <00:09:17.290>It's <00:09:17.418>at <00:09:17.545>the <00:09:17.672>end <00:09:17.800>a

180
00:09:19.400 --> 00:09:22.400
<00:09:19.400>solution <00:09:19.866>that <00:09:20.333>adds <00:09:20.800>in

181
00:09:22.400 --> 00:09:25.800
<00:09:22.400>an <00:09:22.600>abstraction <00:09:22.800>on <00:09:23.000>top <00:09:23.199>of <00:09:23.400>kubernetes. <00:09:23.600>So <00:09:23.800>serverless

182
00:09:25.800 --> 00:09:29.400
<00:09:25.800>runtime <00:09:25.974>where <00:09:26.150>you <00:09:26.324>say, <00:09:26.500>here's <00:09:26.675>my <00:09:26.849>container <00:09:27.025>image <00:09:27.199>and

183
00:09:29.400 --> 00:09:32.500
<00:09:29.400>then <00:09:29.600>you <00:09:29.800>will <00:09:30.000>get <00:09:30.199>an <00:09:30.400>URL <00:09:30.600>with <00:09:30.800>a

184
00:09:32.500 --> 00:09:35.300
<00:09:32.500>TLS <00:09:32.780>everything <00:09:33.060>configured <00:09:33.340>for <00:09:33.620>you <00:09:33.900>and

185
00:09:36.300 --> 00:09:39.700
<00:09:36.300>So <00:09:36.533>all <00:09:36.766>the <00:09:37.000>deployment <00:09:37.233>service <00:09:37.466>Ingress <00:09:37.699>Etc

186
00:09:39.700 --> 00:09:42.300
<00:09:39.700>will <00:09:39.933>be <00:09:40.166>automatically <00:09:40.400>generated. <00:09:40.633>And <00:09:40.866>in <00:09:41.100>addition.

187
00:09:42.300 --> 00:09:45.300
<00:09:42.300>It <00:09:42.474>has <00:09:42.650>scale <00:09:42.824>to <00:09:43.000>zero <00:09:43.175>and <00:09:43.349>autoscaling <00:09:43.525>capability. <00:09:43.699>So

188
00:09:45.300 --> 00:09:48.600
<00:09:45.300>from <00:09:45.500>0 <00:09:45.699>to <00:09:45.900>1000 <00:09:46.099>of <00:09:46.300>containers <00:09:46.500>within <00:09:46.699>seconds

189
00:09:48.600 --> 00:09:49.500
and

190
00:09:50.500 --> 00:09:53.600
<00:09:50.500>Also <00:09:51.200>blue <00:09:51.900>green

191
00:09:53.600 --> 00:09:54.700
<00:09:53.600>and <00:09:54.095>Cannery <00:09:54.590>deployment.

192
00:09:56.100 --> 00:09:59.400
<00:09:56.100>Functionality <00:09:56.275>so <00:09:56.450>that <00:09:56.625>you <00:09:56.800>can <00:09:56.975>really <00:09:57.150>easy <00:09:57.325>task <00:09:57.500>new

193
00:09:59.400 --> 00:10:05.200
<00:09:59.400>functionality <00:09:59.750>for <00:10:00.100>example <00:10:00.449>by <00:10:00.800>with

194
00:10:02.200 --> 00:10:05.400
with

195
00:10:05.400 --> 00:10:08.500
<00:10:05.400>a <00:10:05.574>capabilities <00:10:05.750>that <00:10:05.925>can <00:10:06.100>native <00:10:06.275>provides <00:10:06.449>with <00:10:06.625>the <00:10:06.800>so-called

196
00:10:08.500 --> 00:10:11.300
<00:10:08.500>revisions. <00:10:08.700>You <00:10:08.900>can <00:10:09.100>then <00:10:09.300>control <00:10:09.500>that <00:10:09.700>50% <00:10:09.900>of

197
00:10:11.300 --> 00:10:14.200
<00:10:11.300>your <00:10:11.455>traffic <00:10:11.611>goes <00:10:11.766>for <00:10:11.922>example <00:10:12.077>to <00:10:12.233>one <00:10:12.388>revision <00:10:12.544>the <00:10:12.699>other

198
00:10:14.200 --> 00:10:16.200
<00:10:14.200>50 <00:10:14.550>to <00:10:14.900>the <00:10:15.250>other <00:10:15.600>revision.

199
00:10:16.800 --> 00:10:19.300
<00:10:16.800>The <00:10:17.033>second <00:10:17.266>component <00:10:17.500>which <00:10:17.733>will <00:10:17.966>not <00:10:18.199>handle

200
00:10:19.300 --> 00:10:22.200
<00:10:19.300>today <00:10:19.474>is <00:10:19.650>Eventing <00:10:19.824>that <00:10:20.000>really <00:10:20.175>enables <00:10:20.349>that <00:10:20.525>function <00:10:20.699>as

201
00:10:22.200 --> 00:10:22.800
<00:10:22.200>a <00:10:22.740>service.

202
00:10:26.700 --> 00:10:29.600
<00:10:26.700>A <00:10:27.050>way <00:10:27.400>of <00:10:27.750>implementing <00:10:28.100>and

203
00:10:29.600 --> 00:10:32.400
<00:10:29.600>deploying <00:10:30.066>applications <00:10:30.533>and <00:10:31.000>at

204
00:10:32.400 --> 00:10:36.600
<00:10:32.400>the <00:10:32.540>end <00:10:32.680>event <00:10:32.819>remarket <00:10:32.959>textures. <00:10:33.100>So <00:10:33.240>that's <00:10:33.380>really <00:10:33.520>about <00:10:33.660>Eventing. <00:10:33.800>They

205
00:10:35.600 --> 00:10:38.300
<00:10:35.600>are <00:10:35.950>using <00:10:36.300>standard. <00:10:36.650>They're <00:10:37.000>called

206
00:10:38.300 --> 00:10:42.600
<00:10:38.300>Cloud <00:10:38.474>events <00:10:38.650>and <00:10:38.824>which <00:10:39.000>a <00:10:39.175>lot <00:10:39.349>of <00:10:39.525>services <00:10:39.699>already

207
00:10:42.600 --> 00:10:45.200
<00:10:42.600>support. <00:10:42.950>So <00:10:43.300>another <00:10:43.650>way <00:10:44.000>if

208
00:10:45.200 --> 00:10:48.300
<00:10:45.200>you <00:10:45.355>want <00:10:45.511>you <00:10:45.666>to <00:10:45.822>really <00:10:45.977>build <00:10:46.133>event <00:10:46.288>driven <00:10:46.444>architectures <00:10:46.600>to

209
00:10:48.300 --> 00:10:48.600
<00:10:48.300>have <00:10:48.390>a <00:10:48.480>look <00:10:48.570>at

210
00:10:49.900 --> 00:10:53.500
<00:10:49.900>and <00:10:50.250>yeah <00:10:50.600>in <00:10:50.949>summary, <00:10:51.300>what

211
00:10:52.500 --> 00:10:55.700
<00:10:52.500>are <00:10:52.850>the <00:10:53.200>drivers <00:10:53.550>to <00:10:53.900>adopt

212
00:10:55.700 --> 00:10:58.300
<00:10:55.700>serverless <00:10:55.900>or <00:10:56.100>yeah, <00:10:56.300>what <00:10:56.500>are <00:10:56.700>the <00:10:56.900>reasons <00:10:57.100>to

213
00:10:58.300 --> 00:11:01.300
<00:10:58.300>drive <00:10:58.455>hours <00:10:58.611>is <00:10:58.766>at <00:10:58.922>the <00:10:59.077>end <00:10:59.233>developer <00:10:59.388>productivity, <00:10:59.544>which <00:10:59.699>I

214
00:11:01.300 --> 00:11:04.900
<00:11:01.300>think <00:11:01.439>is <00:11:01.579>more <00:11:01.719>or <00:11:01.859>less <00:11:02.000>for <00:11:02.140>every <00:11:02.280>developer <00:11:02.420>here <00:11:02.560>important <00:11:02.699>so

215
00:11:04.900 --> 00:11:05.900
Developers

216
00:11:06.600 --> 00:11:07.400
<00:11:06.600>they <00:11:07.319>only

217
00:11:08.900 --> 00:11:11.500
<00:11:08.900>they <00:11:09.250>only <00:11:09.600>provide <00:11:09.949>business <00:11:10.300>value

218
00:11:11.500 --> 00:11:14.300
<00:11:11.500>if <00:11:11.780>they <00:11:12.060>Implement <00:11:12.340>new <00:11:12.620>functionalities <00:11:12.900>or

219
00:11:14.300 --> 00:11:17.400
<00:11:14.300>improve <00:11:14.500>functionalities <00:11:14.699>in <00:11:14.900>their <00:11:15.099>code. <00:11:15.300>Everything <00:11:15.500>else <00:11:15.699>is

220
00:11:17.400 --> 00:11:20.500
<00:11:17.400>not <00:11:17.574>driving <00:11:17.750>any <00:11:17.925>business <00:11:18.100>value <00:11:18.275>that's <00:11:18.449>important <00:11:18.625>to <00:11:18.800>understand.

221
00:11:20.500 --> 00:11:23.400
<00:11:20.500>So <00:11:20.733>if <00:11:20.966>you're <00:11:21.200>working <00:11:21.433>on <00:11:21.666>kubernetes <00:11:21.900>deploying

222
00:11:23.400 --> 00:11:26.100
<00:11:23.400>application <00:11:23.633>that's <00:11:23.866>for <00:11:24.100>the <00:11:24.333>business <00:11:24.566>waste <00:11:24.800>of

223
00:11:26.100 --> 00:11:29.500
<00:11:26.100>time <00:11:26.255>because <00:11:26.411>that <00:11:26.566>should <00:11:26.722>be <00:11:26.877>completely <00:11:27.033>automated <00:11:27.188>and <00:11:27.344>abstracted <00:11:27.500>away

224
00:11:29.500 --> 00:11:32.700
<00:11:29.500>from <00:11:29.700>the <00:11:29.900>developers <00:11:30.100>developers <00:11:30.300>should <00:11:30.500>just <00:11:30.700>Implement <00:11:30.900>code

225
00:11:32.700 --> 00:11:34.500
<00:11:32.700>at <00:11:32.933>the <00:11:33.166>end. <00:11:33.400>That's <00:11:33.633>the <00:11:33.866>business <00:11:34.100>value.

226
00:11:35.800 --> 00:11:39.500
<00:11:35.800>um <00:11:36.033>for <00:11:36.266>sure <00:11:36.500>also, <00:11:36.733>the <00:11:36.966>elasticity <00:11:37.199>is

227
00:11:39.500 --> 00:11:42.500
<00:11:39.500>an <00:11:39.655>important <00:11:39.811>thing <00:11:39.966>there <00:11:40.122>especially <00:11:40.277>on <00:11:40.433>the <00:11:40.588>cloud <00:11:40.744>if <00:11:40.900>you

228
00:11:42.500 --> 00:11:45.700
<00:11:42.500>have <00:11:42.733>for <00:11:42.966>example <00:11:43.200>kubernetes <00:11:43.433>classes <00:11:43.666>without <00:11:43.900>just

229
00:11:45.700 --> 00:11:49.100
<00:11:45.700>scaling <00:11:45.933>then <00:11:46.166>you <00:11:46.400>can <00:11:46.633>really <00:11:46.866>yeah <00:11:47.100>based

230
00:11:48.100 --> 00:11:51.500
<00:11:48.100>on <00:11:48.333>the <00:11:48.566>demand <00:11:48.800>scale <00:11:49.033>the <00:11:49.266>cluster <00:11:49.500>scale

231
00:11:51.500 --> 00:11:54.400
<00:11:51.500>you <00:11:51.700>workloads <00:11:51.900>or <00:11:52.100>the <00:11:52.300>instances <00:11:52.500>and <00:11:52.700>therefore <00:11:52.900>have

232
00:11:54.400 --> 00:11:57.200
<00:11:54.400>a <00:11:54.574>lot <00:11:54.750>of <00:11:54.925>yeah <00:11:55.100>benefits <00:11:55.275>and <00:11:55.449>at <00:11:55.625>the <00:11:55.800>end

233
00:11:57.200 --> 00:11:59.000
<00:11:57.200>it's <00:11:57.480>really <00:11:57.760>also <00:11:58.040>about <00:11:58.320>cost <00:11:58.600>saving

234
00:11:59.800 --> 00:12:03.300
<00:11:59.800>And <00:11:59.927>this <00:12:00.054>is <00:12:00.181>where <00:12:00.309>we <00:12:00.436>will <00:12:00.563>have <00:12:00.690>a <00:12:00.818>look <00:12:00.945>at <00:12:01.072>today. <00:12:01.199>So

235
00:12:02.300 --> 00:12:05.400
<00:12:02.300>really <00:12:02.533>that <00:12:02.766>cost <00:12:03.000>saving <00:12:03.233>so <00:12:03.466>how <00:12:03.699>can

236
00:12:05.400 --> 00:12:09.100
<00:12:05.400>we <00:12:05.600>prove <00:12:05.800>our <00:12:06.000>application <00:12:06.199>that <00:12:06.400>we <00:12:06.600>have <00:12:06.800>better

237
00:12:08.100 --> 00:12:11.500
<00:12:08.100>performance <00:12:08.450>and <00:12:08.800>safe <00:12:09.150>costs <00:12:09.500>at

238
00:12:11.500 --> 00:12:11.700
<00:12:11.500>the <00:12:11.680>end.

239
00:12:15.100 --> 00:12:18.300
<00:12:15.100>Perfect. <00:12:15.300>So <00:12:15.500>now <00:12:15.700>let's <00:12:15.900>have <00:12:16.100>a <00:12:16.300>look <00:12:16.500>at.

240
00:12:19.900 --> 00:12:22.700
<00:12:19.900>How <00:12:20.366>our <00:12:20.833>application <00:12:21.300>so

241
00:12:22.700 --> 00:12:25.800
<00:12:22.700>it's <00:12:22.900>really <00:12:23.100>a <00:12:23.300>basic <00:12:23.500>spring <00:12:23.700>boot <00:12:23.900>application <00:12:24.100>at

242
00:12:25.800 --> 00:12:29.000
<00:12:25.800>the <00:12:25.916>end. <00:12:26.033>If <00:12:26.150>you <00:12:26.266>have <00:12:26.383>a <00:12:26.500>more <00:12:26.616>complex <00:12:26.733>one, <00:12:26.849>that's <00:12:26.966>just <00:12:27.083>adding <00:12:27.199>some

243
00:12:28.300 --> 00:12:32.500
<00:12:28.300>more <00:12:28.579>startup <00:12:28.859>time <00:12:29.140>Etc. <00:12:29.420>But <00:12:29.699>yeah,

244
00:12:32.500 --> 00:12:35.800
<00:12:32.500>in <00:12:32.655>this <00:12:32.811>case, <00:12:32.966>we're <00:12:33.122>just <00:12:33.277>using <00:12:33.433>a <00:12:33.588>very <00:12:33.744>basic <00:12:33.900>hello

245
00:12:35.800 --> 00:12:38.800
<00:12:35.800>world <00:12:36.150>example <00:12:36.500>and <00:12:36.849>will <00:12:37.199>build

246
00:12:38.800 --> 00:12:40.300
<00:12:38.800>that <00:12:39.069>now <00:12:39.339>as <00:12:39.609>a <00:12:39.880>container <00:12:40.150>image.

247
00:12:48.400 --> 00:12:51.600
<00:12:48.400>That <00:12:48.633>will <00:12:48.866>take <00:12:49.100>some <00:12:49.333>some <00:12:49.566>seconds <00:12:49.800>or

248
00:12:51.600 --> 00:12:54.600
<00:12:51.600>minutes <00:12:51.800>and <00:12:52.000>what <00:12:52.200>we're <00:12:52.400>using <00:12:52.600>here. <00:12:52.800>If <00:12:53.000>you're

249
00:12:54.600 --> 00:12:58.600
<00:12:54.600>not <00:12:54.716>aware <00:12:54.833>of <00:12:54.950>that <00:12:55.066>as <00:12:55.183>you <00:12:55.300>were <00:12:55.416>the <00:12:55.533>spring <00:12:55.650>to <00:12:55.766>it <00:12:55.883>2.3 <00:12:56.000>there

250
00:12:57.600 --> 00:13:00.200
<00:12:57.600>was <00:12:58.066>a <00:12:58.533>support <00:12:59.000>for

251
00:13:00.200 --> 00:13:03.900
<00:13:00.200>cloud <00:13:00.375>native <00:13:00.550>book <00:13:00.725>packs <00:13:00.900>added <00:13:01.075>to <00:13:01.250>spring <00:13:01.425>so <00:13:01.600>out

252
00:13:03.900 --> 00:13:07.000
<00:13:03.900>of <00:13:04.100>the <00:13:04.300>box. <00:13:04.500>If <00:13:04.699>you're <00:13:04.900>using <00:13:05.100>spring <00:13:05.300>boot

253
00:13:06.200 --> 00:13:10.200
<00:13:06.200>with <00:13:06.480>a <00:13:06.760>version <00:13:07.040>up <00:13:07.320>after <00:13:07.600>two

254
00:13:09.200 --> 00:13:12.200
<00:13:09.200>that <00:13:09.666>three <00:13:10.133>you're <00:13:10.600>getting

255
00:13:12.200 --> 00:13:15.100
<00:13:12.200>this <00:13:12.355>forward <00:13:12.511>bias. <00:13:12.666>Bring <00:13:12.822>boot <00:13:12.977>build <00:13:13.133>image <00:13:13.288>also <00:13:13.444>for <00:13:13.600>sure

256
00:13:15.100 --> 00:13:18.400
<00:13:15.100>for <00:13:15.275>Gradle <00:13:15.450>two <00:13:15.625>automatically <00:13:15.800>with <00:13:15.975>a <00:13:16.150>build <00:13:16.325>pack <00:13:16.500>build

257
00:13:18.400 --> 00:13:21.400
<00:13:18.400>a <00:13:18.555>container <00:13:18.711>image <00:13:18.866>out <00:13:19.022>of <00:13:19.177>your <00:13:19.333>application <00:13:19.488>on <00:13:19.644>your <00:13:19.800>computer.

258
00:13:22.300 --> 00:13:25.400
<00:13:22.300>That <00:13:22.500>you <00:13:22.699>can <00:13:22.900>then <00:13:23.099>push <00:13:23.300>to <00:13:23.500>registry <00:13:23.699>which

259
00:13:25.400 --> 00:13:28.100
<00:13:25.400>will <00:13:25.574>do <00:13:25.750>in <00:13:25.925>the <00:13:26.100>middle <00:13:26.275>and <00:13:26.449>what <00:13:26.625>buildbacks <00:13:26.800>do

260
00:13:28.100 --> 00:13:31.200
<00:13:28.100>at <00:13:28.300>the <00:13:28.500>end. <00:13:28.700>They <00:13:28.900>are <00:13:29.100>both <00:13:29.300>packs <00:13:29.500>available

261
00:13:31.200 --> 00:13:35.000
<00:13:31.200>for <00:13:31.355>more <00:13:31.511>or <00:13:31.666>less <00:13:31.822>every <00:13:31.977>common <00:13:32.133>language <00:13:32.288>and <00:13:32.444>and <00:13:32.600>also

262
00:13:34.500 --> 00:13:38.300
<00:13:34.500>Integrations <00:13:34.850>they <00:13:35.200>detect <00:13:35.550>whether <00:13:35.900>the

263
00:13:37.300 --> 00:13:40.700
<00:13:37.300>source <00:13:37.533>code <00:13:37.766>that <00:13:38.000>is <00:13:38.233>provided <00:13:38.466>whether <00:13:38.699>they

264
00:13:42.100 --> 00:13:45.400
<00:13:42.100>Relevant <00:13:42.216>for <00:13:42.333>the <00:13:42.450>source <00:13:42.566>code. <00:13:42.683>So <00:13:42.800>in <00:13:42.916>this <00:13:43.033>case <00:13:43.150>here <00:13:43.266>for <00:13:43.383>sure. <00:13:43.500>It's

265
00:13:45.400 --> 00:13:48.400
<00:13:45.400>only <00:13:45.574>the <00:13:45.750>drama <00:13:45.925>build <00:13:46.100>pack <00:13:46.275>that's <00:13:46.449>used <00:13:46.625>with <00:13:46.800>some

266
00:13:48.400 --> 00:13:52.100
<00:13:48.400>additional <00:13:48.600>libraries <00:13:48.800>regarding <00:13:49.000>Integrations <00:13:49.199>and <00:13:49.400>maybe <00:13:49.600>certificate <00:13:49.800>and

267
00:13:51.100 --> 00:13:54.700
<00:13:51.100>it <00:13:51.333>will <00:13:51.566>detect. <00:13:51.800>Oh, <00:13:52.033>it's <00:13:52.266>Maven <00:13:52.500>and

268
00:13:54.700 --> 00:13:57.600
<00:13:54.700>therefore <00:13:54.875>I <00:13:55.050>have <00:13:55.225>to <00:13:55.400>build <00:13:55.575>that <00:13:55.750>application <00:13:55.925>that <00:13:56.100>source

269
00:13:57.600 --> 00:14:00.300
<00:13:57.600>code <00:13:57.755>with <00:13:57.911>Maven <00:13:58.066>and <00:13:58.222>because <00:13:58.377>of <00:13:58.533>that. <00:13:58.688>I <00:13:58.844>also <00:13:59.000>need

270
00:14:00.300 --> 00:14:03.500
<00:14:00.300>a <00:14:00.500>jvm <00:14:00.699>and <00:14:00.900>some <00:14:01.099>additional <00:14:01.300>configurations <00:14:01.500>and <00:14:01.699>it

271
00:14:03.500 --> 00:14:06.700
<00:14:03.500>has <00:14:03.700>big <00:14:03.900>benefit <00:14:04.100>regarding <00:14:04.300>security <00:14:04.500>and <00:14:04.700>also <00:14:04.900>best

272
00:14:06.700 --> 00:14:09.500
<00:14:06.700>practices. <00:14:06.855>So <00:14:07.011>if <00:14:07.166>you <00:14:07.322>would <00:14:07.477>for <00:14:07.633>example <00:14:07.788>build <00:14:07.944>a <00:14:08.100>Docker

273
00:14:09.500 --> 00:14:10.100
<00:14:09.500>image <00:14:10.040>yourself

274
00:14:11.700 --> 00:14:14.200
<00:14:11.700>The <00:14:11.900>question <00:14:12.100>is <00:14:12.300>whether <00:14:12.500>you <00:14:12.700>Docker <00:14:12.900>image <00:14:13.100>is

275
00:14:14.200 --> 00:14:17.200
<00:14:14.200>really <00:14:14.375>production <00:14:14.550>ready, <00:14:14.725>which <00:14:14.900>base <00:14:15.075>image. <00:14:15.250>Should <00:14:15.425>I <00:14:15.600>use

276
00:14:17.200 --> 00:14:20.000
<00:14:17.200>and <00:14:17.480>also <00:14:17.760>for <00:14:18.040>example <00:14:18.320>whether <00:14:18.600>you

277
00:14:21.200 --> 00:14:24.400
<00:14:21.200>created <00:14:21.375>your <00:14:21.550>Docker <00:14:21.725>image <00:14:21.900>or <00:14:22.075>your <00:14:22.250>application <00:14:22.425>with <00:14:22.600>a

278
00:14:24.400 --> 00:14:27.600
<00:14:24.400>layer <00:14:24.600>charts <00:14:24.800>so <00:14:25.000>that <00:14:25.199>your <00:14:25.400>application <00:14:25.600>source <00:14:25.800>code

279
00:14:27.600 --> 00:14:30.600
<00:14:27.600>is <00:14:27.755>in <00:14:27.911>a <00:14:28.066>different <00:14:28.222>layer <00:14:28.377>than <00:14:28.533>your <00:14:28.688>dependencies <00:14:28.844>because <00:14:29.000>with

280
00:14:30.600 --> 00:14:33.200
<00:14:30.600>that <00:14:30.755>you <00:14:30.911>save <00:14:31.066>a <00:14:31.222>lot <00:14:31.377>of <00:14:31.533>disk <00:14:31.688>space <00:14:31.844>and <00:14:32.000>also

281
00:14:34.400 --> 00:14:35.000
<00:14:34.400>at <00:14:34.670>the <00:14:34.940>end

282
00:14:37.200 --> 00:14:40.600
<00:14:37.200>and <00:14:37.666>then <00:14:38.133>Network <00:14:38.600>traffic

283
00:14:40.600 --> 00:14:43.300
<00:14:40.600>if <00:14:40.833>you <00:14:41.066>push <00:14:41.300>your <00:14:41.533>container <00:14:41.766>to <00:14:42.000>library

284
00:14:43.300 --> 00:14:46.300
<00:14:43.300>because <00:14:43.455>the <00:14:43.611>different <00:14:43.766>layers <00:14:43.922>will <00:14:44.077>be <00:14:44.233>cached <00:14:44.388>that <00:14:44.544>are <00:14:44.699>not

285
00:14:46.300 --> 00:14:46.500
changed.

286
00:14:47.800 --> 00:14:50.400
<00:14:47.800>And <00:14:48.033>we're <00:14:48.266>using <00:14:48.500>or <00:14:48.733>with <00:14:48.966>bring <00:14:49.199>boot

287
00:14:50.400 --> 00:14:53.200
<00:14:50.400>2.3 <00:14:50.574>there <00:14:50.750>the <00:14:50.925>packaged <00:14:51.100>build <00:14:51.275>back <00:14:51.449>Series. <00:14:51.625>So <00:14:51.800>Cloud

288
00:14:53.200 --> 00:14:56.400
<00:14:53.200>native <00:14:53.480>pullbacks <00:14:53.760>are <00:14:54.040>standard <00:14:54.320>made <00:14:54.600>by

289
00:14:56.400 --> 00:15:00.600
<00:14:56.400>pivotal <00:14:56.633>where <00:14:56.866>I <00:14:57.100>come <00:14:57.333>from <00:14:57.566>before <00:14:57.800>the

290
00:15:00.600 --> 00:15:03.800
<00:15:00.600>or <00:15:00.775>came <00:15:00.950>from <00:15:01.125>before <00:15:01.300>the <00:15:01.475>acquisition <00:15:01.650>of <00:15:01.825>VMware <00:15:02.000>and

291
00:15:03.800 --> 00:15:06.200
<00:15:03.800>the <00:15:04.150>packet <00:15:04.500>of <00:15:04.849>build <00:15:05.199>packs

292
00:15:06.200 --> 00:15:10.000
<00:15:06.200>are <00:15:06.327>implementations <00:15:06.454>of <00:15:06.581>it. <00:15:06.709>Oh <00:15:06.836>what <00:15:06.963>it's <00:15:07.090>looking <00:15:07.218>up <00:15:07.345>that <00:15:07.472>good, <00:15:07.600>but

293
00:15:11.800 --> 00:15:15.700
<00:15:11.800>Yeah, <00:15:11.927>we <00:15:12.054>will <00:15:12.181>we <00:15:12.309>will <00:15:12.436>fix <00:15:12.563>that <00:15:12.690>in <00:15:12.818>a <00:15:12.945>second <00:15:13.072>so <00:15:13.199>Gateway

294
00:15:14.700 --> 00:15:17.500
<00:15:14.700>in <00:15:15.166>timeout. <00:15:15.633>Yeah, <00:15:16.100>and

295
00:15:18.700 --> 00:15:21.600
<00:15:18.700>So <00:15:19.166>therefore <00:15:19.633>the <00:15:20.100>those

296
00:15:21.600 --> 00:15:24.100
<00:15:21.600>packettable <00:15:21.800>packs <00:15:22.000>are <00:15:22.200>available. <00:15:22.400>It's <00:15:22.600>open <00:15:22.800>source. <00:15:23.000>They

297
00:15:24.100 --> 00:15:27.600
<00:15:24.100>open <00:15:24.216>source <00:15:24.333>by <00:15:24.450>us <00:15:24.566>and <00:15:24.683>they <00:15:24.800>will <00:15:24.916>be <00:15:25.033>used <00:15:25.150>by <00:15:25.266>Spring <00:15:25.383>boot. <00:15:25.500>It's

298
00:15:27.600 --> 00:15:30.200
<00:15:27.600>good <00:15:27.727>that <00:15:27.854>I <00:15:27.981>have <00:15:28.109>a <00:15:28.236>backup <00:15:28.363>sewer. <00:15:28.490>What <00:15:28.618>we <00:15:28.745>usually <00:15:28.872>would <00:15:29.000>do

299
00:15:30.200 --> 00:15:33.400
<00:15:30.200>is <00:15:30.375>then <00:15:30.550>just <00:15:30.725>push <00:15:30.900>that <00:15:31.075>image. <00:15:31.250>We've <00:15:31.425>built <00:15:31.600>to

300
00:15:33.400 --> 00:15:34.800
registry.

301
00:15:36.200 --> 00:15:38.600
<00:15:36.200>But <00:15:36.433>I <00:15:36.666>should <00:15:36.900>have <00:15:37.133>a <00:15:37.366>backup <00:15:37.600>here.

302
00:15:42.600 --> 00:15:43.300
Sorry.

303
00:15:51.200 --> 00:15:55.600
<00:15:51.200>And <00:15:51.375>what <00:15:51.550>we'll <00:15:51.725>do <00:15:51.900>now <00:15:52.075>via <00:15:52.250>the <00:15:52.425>knative <00:15:52.600>CLI,

304
00:15:54.600 --> 00:15:57.700
<00:15:54.600>we <00:15:55.066>will <00:15:55.533>create <00:15:56.000>our

305
00:15:57.700 --> 00:16:00.900
<00:15:57.700>service <00:15:57.900>on <00:15:58.100>top <00:15:58.300>of <00:15:58.500>that <00:15:58.700>serverless <00:15:58.900>runtime. <00:15:59.100>So

306
00:16:00.900 --> 00:16:03.400
<00:16:00.900>what <00:16:01.040>we <00:16:01.180>have <00:16:01.319>to <00:16:01.459>specify <00:16:01.600>for <00:16:01.740>sure. <00:16:01.880>They're <00:16:02.020>more <00:16:02.160>options <00:16:02.300>available.

307
00:16:03.400 --> 00:16:05.700
<00:16:03.400>It's <00:16:03.600>really <00:16:03.800>just <00:16:04.000>the <00:16:04.199>name <00:16:04.400>and <00:16:04.600>the <00:16:04.800>image.

308
00:16:06.600 --> 00:16:09.200
<00:16:06.600>and <00:16:06.833>I <00:16:07.066>will <00:16:07.300>execute <00:16:07.533>it <00:16:07.766>now <00:16:08.000>and

309
00:16:10.500 --> 00:16:13.500
<00:16:10.500>then <00:16:10.780>within <00:16:11.060>hopefully <00:16:11.340>seconds <00:16:11.620>if <00:16:11.900>maybe

310
00:16:13.500 --> 00:16:16.200
<00:16:13.500>that <00:16:13.700>example <00:16:13.900>works <00:16:14.100>we <00:16:14.300>should <00:16:14.500>be <00:16:14.700>able <00:16:14.900>to

311
00:16:16.200 --> 00:16:19.700
<00:16:16.200>see <00:16:16.480>our <00:16:16.760>running <00:16:17.040>application. <00:16:17.320>So <00:16:17.600>we

312
00:16:19.700 --> 00:16:22.300
<00:16:19.700>get <00:16:19.840>back <00:16:19.980>at <00:16:20.120>the <00:16:20.260>URL <00:16:20.400>that <00:16:20.540>we <00:16:20.680>can <00:16:20.820>call <00:16:20.960>we <00:16:21.100>can

313
00:16:22.300 --> 00:16:26.100
<00:16:22.300>just <00:16:22.427>click <00:16:22.554>on <00:16:22.681>it <00:16:22.809>and <00:16:22.936>you <00:16:23.063>can <00:16:23.190>see <00:16:23.318>hello <00:16:23.445>from <00:16:23.572>VMware <00:16:23.699>utensil.

314
00:16:25.100 --> 00:16:28.700
<00:16:25.100>That's <00:16:25.333>all <00:16:25.566>portfolio <00:16:25.800>for <00:16:26.033>more <00:16:26.266>on <00:16:26.500>infrastructure

315
00:16:28.700 --> 00:16:29.500
<00:16:28.700>model <00:16:29.420>applications.

316
00:16:31.100 --> 00:16:34.400
<00:16:31.100>and <00:16:31.333>yeah, <00:16:31.566>now <00:16:31.800>we <00:16:32.033>can <00:16:32.266>after <00:16:32.500>we

317
00:16:34.400 --> 00:16:37.100
<00:16:34.400>saw <00:16:34.555>that <00:16:34.711>application <00:16:34.866>is <00:16:35.022>running <00:16:35.177>we <00:16:35.333>can <00:16:35.488>have <00:16:35.644>a <00:16:35.800>look

318
00:16:37.100 --> 00:16:40.000
<00:16:37.100>at <00:16:37.300>the <00:16:37.500>application <00:16:37.700>itself <00:16:37.900>and <00:16:38.100>the <00:16:38.300>locks <00:16:38.500>and

319
00:16:40.100 --> 00:16:40.300
<00:16:40.100>you <00:16:40.189>can <00:16:40.280>see

320
00:16:41.200 --> 00:16:44.500
<00:16:41.200>That <00:16:41.375>it <00:16:41.550>started <00:16:41.725>in <00:16:41.900>3.7 <00:16:42.075>seconds. <00:16:42.250>So <00:16:42.425>that's <00:16:42.600>something

321
00:16:44.500 --> 00:16:47.300
<00:16:44.500>you <00:16:44.733>should <00:16:44.966>remember <00:16:45.200>because <00:16:45.433>later <00:16:45.666>we <00:16:45.900>will

322
00:16:47.300 --> 00:16:51.100
<00:16:47.300>see <00:16:47.455>maybe <00:16:47.611>how <00:16:47.766>we <00:16:47.922>were <00:16:48.077>able <00:16:48.233>to <00:16:48.388>improve <00:16:48.544>it <00:16:48.699>and

323
00:16:52.100 --> 00:16:55.500
<00:16:52.100>we <00:16:52.240>can <00:16:52.380>also <00:16:52.520>because <00:16:52.660>as <00:16:52.800>that <00:16:52.940>it's <00:16:53.080>a <00:16:53.220>serverless <00:16:53.360>runtime. <00:16:53.500>Let's

324
00:16:55.500 --> 00:16:58.600
<00:16:55.500>see <00:16:55.640>whether <00:16:55.780>the <00:16:55.920>scaling <00:16:56.060>works <00:16:56.200>as <00:16:56.340>you <00:16:56.480>can <00:16:56.620>see <00:16:56.760>currently. <00:16:56.900>We

325
00:16:58.600 --> 00:17:01.300
<00:16:58.600>have <00:16:58.880>one <00:16:59.160>container <00:16:59.440>and <00:16:59.720>now <00:17:00.000>using

326
00:17:01.300 --> 00:17:05.500
<00:17:01.300>a <00:17:01.474>tool <00:17:01.650>to <00:17:01.824>produce <00:17:02.000>some <00:17:02.175>load, <00:17:02.349>um <00:17:02.525>on <00:17:02.699>it

327
00:17:05.500 --> 00:17:08.400
<00:17:05.500>called <00:17:05.640>Hey, <00:17:05.780>so <00:17:05.920>you're <00:17:06.060>not <00:17:06.200>able <00:17:06.339>to <00:17:06.480>see <00:17:06.619>anything <00:17:06.760>here, <00:17:06.900>but

328
00:17:08.400 --> 00:17:11.100
<00:17:08.400>you're <00:17:08.527>able <00:17:08.654>to <00:17:08.781>see <00:17:08.909>that. <00:17:09.036>There <00:17:09.163>are <00:17:09.290>a <00:17:09.418>lot <00:17:09.545>of <00:17:09.672>Containers <00:17:09.800>starting.

329
00:17:13.200 --> 00:17:16.000
<00:17:13.200>um <00:17:13.433>due <00:17:13.666>to <00:17:13.900>yeah <00:17:14.133>the <00:17:14.366>fact <00:17:14.600>that

330
00:17:16.200 --> 00:17:19.300
<00:17:16.200>I'm <00:17:16.316>sending <00:17:16.433>a <00:17:16.550>lot <00:17:16.666>of <00:17:16.783>requests <00:17:16.900>here <00:17:17.016>and <00:17:17.133>I <00:17:17.250>will <00:17:17.366>just <00:17:17.483>pause <00:17:17.600>that

331
00:17:19.300 --> 00:17:22.500
<00:17:19.300>because <00:17:19.474>it's <00:17:19.649>enough <00:17:19.825>you <00:17:20.000>can <00:17:20.175>see <00:17:20.349>on <00:17:20.524>us <00:17:20.700>and

332
00:17:26.300 --> 00:17:29.300
<00:17:26.300>around <00:17:26.649>3,500 <00:17:27.000>requests <00:17:27.349>per <00:17:27.700>second

333
00:17:29.300 --> 00:17:32.500
<00:17:29.300>to <00:17:29.649>it. <00:17:30.000>And <00:17:30.350>now <00:17:30.700>all

334
00:17:32.500 --> 00:17:35.400
<00:17:32.500>the <00:17:32.733>started <00:17:32.966>Services <00:17:33.200>they <00:17:33.433>will <00:17:33.666>try <00:17:33.900>to

335
00:17:35.400 --> 00:17:36.700
<00:17:35.400>to <00:17:35.985>handle <00:17:36.570>them.

336
00:17:37.500 --> 00:17:40.500
<00:17:37.500>At <00:17:37.655>the <00:17:37.811>end <00:17:37.966>so <00:17:38.122>that's <00:17:38.277>really <00:17:38.433>loud <00:17:38.588>and <00:17:38.744>scaling <00:17:38.900>capabilities

337
00:17:40.500 --> 00:17:43.400
<00:17:40.500>and <00:17:40.627>you <00:17:40.754>can <00:17:40.881>with <00:17:41.009>Canadian <00:17:41.136>if <00:17:41.263>you <00:17:41.390>can <00:17:41.518>Define <00:17:41.645>the <00:17:41.772>minimum <00:17:41.900>number

338
00:17:43.400 --> 00:17:46.000
<00:17:43.400>the <00:17:43.575>maximum <00:17:43.750>number <00:17:43.925>if <00:17:44.100>you <00:17:44.275>want <00:17:44.450>to <00:17:44.625>on <00:17:44.800>the

339
00:17:46.700 --> 00:17:49.100
<00:17:46.700>therefore <00:17:46.933>a <00:17:47.166>great <00:17:47.400>way <00:17:47.633>to <00:17:47.866>handle <00:17:48.100>demand.

340
00:17:50.200 --> 00:17:53.600
<00:17:50.200>also <00:17:50.400>interesting <00:17:50.600>to <00:17:50.800>see <00:17:51.000>because <00:17:51.200>as <00:17:51.400>that <00:17:51.600>so

341
00:17:53.600 --> 00:17:54.500
<00:17:53.600>the <00:17:53.802>goal <00:17:54.004>is <00:17:54.207>to <00:17:54.410>save

342
00:17:55.700 --> 00:17:59.000
<00:17:55.700>to <00:17:56.050>save <00:17:56.400>space <00:17:56.750>to <00:17:57.100>do

343
00:17:58.100 --> 00:18:01.400
<00:17:58.100>to <00:17:58.274>save <00:17:58.449>costs <00:17:58.625>at <00:17:58.800>the <00:17:58.975>end <00:17:59.149>is <00:17:59.324>a <00:17:59.500>more

344
00:18:01.400 --> 00:18:04.700
<00:18:01.400>performant <00:18:01.555>metrics <00:18:01.711>and <00:18:01.866>you <00:18:02.022>can <00:18:02.177>see <00:18:02.333>here <00:18:02.488>the <00:18:02.644>user <00:18:02.800>container.

345
00:18:05.400 --> 00:18:09.600
<00:18:05.400>Those <00:18:05.680>that <00:18:05.960>are <00:18:06.240>yeah <00:18:06.520>not <00:18:06.800>handling

346
00:18:09.600 --> 00:18:12.600
<00:18:09.600>any <00:18:09.879>any <00:18:10.159>requests <00:18:10.439>anymore. <00:18:10.719>They <00:18:11.000>use

347
00:18:12.600 --> 00:18:16.800
<00:18:12.600>around. <00:18:12.879>Yeah, <00:18:13.159>three <00:18:13.439>CPUs <00:18:13.719>and <00:18:14.000>twenty

348
00:18:15.800 --> 00:18:18.800
<00:18:15.800>two <00:18:16.266>hundred <00:18:16.733>forty <00:18:17.200>megabyte

349
00:18:18.800 --> 00:18:21.100
<00:18:18.800>of <00:18:19.266>memory, <00:18:19.733>which <00:18:20.200>is

350
00:18:21.100 --> 00:18:23.600
<00:18:21.100>maybe <00:18:21.333>also <00:18:21.566>something <00:18:21.800>we <00:18:22.033>can <00:18:22.266>improve <00:18:22.500>now.

351
00:18:25.100 --> 00:18:28.400
<00:18:25.100>And <00:18:25.240>so <00:18:25.379>at <00:18:25.520>the <00:18:25.659>end <00:18:25.800>what <00:18:25.939>we <00:18:26.080>want <00:18:26.219>to <00:18:26.360>achieve <00:18:26.500>is

352
00:18:28.400 --> 00:18:32.000
<00:18:28.400>to <00:18:28.575>really <00:18:28.750>save <00:18:28.925>costs <00:18:29.100>as <00:18:29.275>that <00:18:29.450>and <00:18:29.625>how <00:18:29.800>can

353
00:18:31.200 --> 00:18:34.200
<00:18:31.200>we <00:18:31.666>save <00:18:32.133>costs <00:18:32.600>is

354
00:18:34.200 --> 00:18:37.500
<00:18:34.200>we <00:18:34.340>need <00:18:34.480>faster <00:18:34.620>startup <00:18:34.760>times <00:18:34.900>because <00:18:35.040>then <00:18:35.180>if <00:18:35.320>we <00:18:35.460>start <00:18:35.600>faster

355
00:18:37.500 --> 00:18:40.200
<00:18:37.500>we <00:18:37.733>are <00:18:37.966>able <00:18:38.200>to <00:18:38.433>to <00:18:38.666>handle <00:18:38.900>the

356
00:18:40.200 --> 00:18:42.800
<00:18:40.200>demand <00:18:40.355>earlier <00:18:40.511>and <00:18:40.666>we <00:18:40.822>also <00:18:40.977>able <00:18:41.133>to <00:18:41.288>scale <00:18:41.444>down <00:18:41.600>faster.

357
00:18:44.300 --> 00:18:48.000
<00:18:44.300>We <00:18:44.533>need <00:18:44.766>our <00:18:45.000>resource <00:18:45.233>consumption <00:18:45.466>for <00:18:45.700>that

358
00:18:47.400 --> 00:18:50.700
<00:18:47.400>to <00:18:47.575>save <00:18:47.750>costs. <00:18:47.925>And <00:18:48.100>yeah, <00:18:48.275>this <00:18:48.450>is <00:18:48.625>what <00:18:48.800>we

359
00:18:50.700 --> 00:18:52.700
<00:18:50.700>want <00:18:51.050>to <00:18:51.400>achieve <00:18:51.750>now <00:18:52.100>and

360
00:18:54.300 --> 00:18:57.100
<00:18:54.300>so <00:18:54.455>the <00:18:54.611>question <00:18:54.766>is, <00:18:54.922>how <00:18:55.077>can <00:18:55.233>we <00:18:55.388>achieve <00:18:55.544>that <00:18:55.700>and

361
00:18:58.500 --> 00:18:59.300
<00:18:58.500>and <00:18:58.860>the <00:18:59.220>end

362
00:19:01.500 --> 00:19:03.200
<00:19:01.500>We <00:19:01.850>will <00:19:02.200>achieve <00:19:02.550>that <00:19:02.900>by.

363
00:19:06.400 --> 00:19:06.800
using

364
00:19:12.400 --> 00:19:16.400
<00:19:12.400>another <00:19:12.555>runtime <00:19:12.711>or <00:19:12.866>another <00:19:13.022>way <00:19:13.177>of <00:19:13.333>building <00:19:13.488>our <00:19:13.644>application <00:19:13.800>and

365
00:19:15.400 --> 00:19:17.400
to

366
00:19:19.500 --> 00:19:22.700
<00:19:19.500>Yeah, <00:19:19.627>introduce <00:19:19.754>the <00:19:19.881>topic. <00:19:20.009>Let's <00:19:20.136>first <00:19:20.263>have <00:19:20.390>a <00:19:20.518>look <00:19:20.645>at <00:19:20.772>how <00:19:20.900>our

367
00:19:22.700 --> 00:19:25.600
<00:19:22.700>application <00:19:22.980>runs <00:19:23.260>on <00:19:23.540>the <00:19:23.820>Java <00:19:24.100>virtual

368
00:19:25.600 --> 00:19:29.200
<00:19:25.600>machine <00:19:26.066>and <00:19:26.533>what's <00:19:27.000>used

369
00:19:28.200 --> 00:19:31.400
<00:19:28.200>there <00:19:28.433>is <00:19:28.666>to <00:19:28.900>from <00:19:29.133>your <00:19:29.366>source <00:19:29.600>code

370
00:19:31.400 --> 00:19:34.800
<00:19:31.400>package <00:19:31.555>it <00:19:31.711>in <00:19:31.866>a <00:19:32.022>jar <00:19:32.177>file <00:19:32.333>and <00:19:32.488>then <00:19:32.644>running <00:19:32.800>it

371
00:19:34.800 --> 00:19:37.600
<00:19:34.800>on <00:19:35.000>a <00:19:35.200>jvm. <00:19:35.399>It's <00:19:35.600>a <00:19:35.800>so-called <00:19:36.000>just <00:19:36.200>in

372
00:19:37.600 --> 00:19:40.300
<00:19:37.600>time <00:19:37.800>compilation <00:19:38.000>and <00:19:38.199>at <00:19:38.399>the <00:19:38.600>end <00:19:38.800>it's <00:19:39.000>like

373
00:19:40.300 --> 00:19:43.500
<00:19:40.300>if <00:19:40.766>you <00:19:41.233>compile <00:19:41.700>your

374
00:19:43.500 --> 00:19:46.300
<00:19:43.500>application <00:19:43.733>to <00:19:43.966>chart <00:19:44.200>file <00:19:44.433>or <00:19:44.666>wall <00:19:44.900>file.

375
00:19:46.300 --> 00:19:49.500
<00:19:46.300>It <00:19:46.580>will <00:19:46.860>be <00:19:47.139>compiled <00:19:47.419>invite <00:19:47.700>code.

376
00:19:50.300 --> 00:19:52.600
<00:19:50.300>and <00:19:50.580>then <00:19:50.860>that <00:19:51.139>bytecode <00:19:51.419>will <00:19:51.700>be

377
00:19:54.900 --> 00:19:57.800
<00:19:54.900>will <00:19:55.366>be <00:19:55.833>interpreted <00:19:56.300>by

378
00:19:57.800 --> 00:20:00.300
<00:19:57.800>the <00:19:58.266>jvm <00:19:58.733>for <00:19:59.200>you.

379
00:20:00.900 --> 00:20:03.300
<00:20:00.900>And <00:20:01.133>so <00:20:01.366>really <00:20:01.600>a <00:20:01.833>drum <00:20:02.066>time <00:20:02.300>and

380
00:20:03.300 --> 00:20:07.100
<00:20:03.300>the <00:20:03.475>big <00:20:03.649>benefit <00:20:03.825>of <00:20:04.000>that <00:20:04.175>is <00:20:04.350>that <00:20:04.524>the <00:20:04.700>jbm

381
00:20:06.100 --> 00:20:09.500
<00:20:06.100>is <00:20:06.566>a <00:20:07.033>available <00:20:07.500>for

382
00:20:09.500 --> 00:20:12.200
<00:20:09.500>all <00:20:09.700>common <00:20:09.900>architectures <00:20:10.100>and <00:20:10.300>operating <00:20:10.500>systems. <00:20:10.700>And <00:20:10.900>with

383
00:20:12.200 --> 00:20:16.300
<00:20:12.200>that <00:20:12.340>you <00:20:12.480>just <00:20:12.620>have <00:20:12.760>one <00:20:12.900>jar <00:20:13.040>file <00:20:13.180>and <00:20:13.320>can <00:20:13.460>yeah <00:20:13.600>run

384
00:20:15.300 --> 00:20:19.800
<00:20:15.300>it <00:20:15.500>everywhere. <00:20:15.700>That's <00:20:15.899>a <00:20:16.100>big <00:20:16.300>benefit <00:20:16.500>of <00:20:16.700>that

385
00:20:18.800 --> 00:20:21.900
<00:20:18.800>jvr <00:20:19.266>model <00:20:19.733>and <00:20:20.200>but

386
00:20:21.900 --> 00:20:23.500
<00:20:21.900>a <00:20:22.133>little <00:20:22.366>bit <00:20:22.600>of <00:20:22.833>problem <00:20:23.066>of <00:20:23.300>that.

387
00:20:24.800 --> 00:20:27.600
<00:20:24.800>interpreter <00:20:25.266>is <00:20:25.733>at <00:20:26.200>the

388
00:20:27.600 --> 00:20:28.300
<00:20:27.600>end <00:20:28.230>that

389
00:20:29.500 --> 00:20:30.300
that

390
00:20:31.600 --> 00:20:35.000
<00:20:31.600>the <00:20:31.774>performance <00:20:31.949>is <00:20:32.125>not <00:20:32.300>that <00:20:32.475>good <00:20:32.649>because <00:20:32.824>yeah, <00:20:33.000>there

391
00:20:34.500 --> 00:20:37.600
<00:20:34.500>has <00:20:34.780>to <00:20:35.060>be <00:20:35.340>the <00:20:35.620>or <00:20:35.900>it's

392
00:20:37.600 --> 00:20:40.600
<00:20:37.600>low <00:20:37.833>at <00:20:38.066>the <00:20:38.300>end <00:20:38.533>but <00:20:38.766>there <00:20:39.000>is

393
00:20:40.600 --> 00:20:43.800
<00:20:40.600>a <00:20:40.740>solution <00:20:40.879>for <00:20:41.020>that. <00:20:41.159>It's <00:20:41.300>called <00:20:41.439>Just <00:20:41.580>in <00:20:41.719>Time <00:20:41.860>compiler <00:20:42.000>that

394
00:20:43.800 --> 00:20:46.800
<00:20:43.800>will <00:20:44.266>for <00:20:44.733>the <00:20:45.200>past

395
00:20:46.800 --> 00:20:49.700
<00:20:46.800>in <00:20:47.033>the <00:20:47.266>application <00:20:47.500>that <00:20:47.733>they're <00:20:47.966>frequently <00:20:48.200>executed.

396
00:20:49.700 --> 00:20:52.300
<00:20:49.700>They <00:20:50.166>the <00:20:50.633>digit <00:20:51.100>compiler.

397
00:20:53.500 --> 00:20:57.000
<00:20:53.500>Will <00:20:53.655>compile <00:20:53.811>that <00:20:53.966>to <00:20:54.122>native <00:20:54.277>code <00:20:54.433>on <00:20:54.588>the <00:20:54.744>Fly <00:20:54.900>and

398
00:20:56.500 --> 00:21:00.300
<00:20:56.500>with <00:20:56.733>that <00:20:56.966>it's <00:20:57.200>possible <00:20:57.433>for <00:20:57.666>those <00:20:57.900>hot

399
00:20:59.300 --> 00:21:02.300
<00:20:59.300>and <00:20:59.580>frequent <00:20:59.860>frequently <00:21:00.139>used <00:21:00.419>path <00:21:00.700>in

400
00:21:02.300 --> 00:21:06.200
<00:21:02.300>your <00:21:02.475>application <00:21:02.649>to <00:21:02.825>get <00:21:03.000>the <00:21:03.175>performance <00:21:03.350>benefits <00:21:03.524>of <00:21:03.700>native

401
00:21:05.200 --> 00:21:08.800
<00:21:05.200>mashing <00:21:05.666>code. <00:21:06.133>And <00:21:06.600>so

402
00:21:09.800 --> 00:21:12.500
<00:21:09.800>That's <00:21:09.955>really <00:21:10.111>great <00:21:10.266>at <00:21:10.422>the <00:21:10.577>end. <00:21:10.733>And <00:21:10.888>the <00:21:11.044>drawback <00:21:11.200>is

403
00:21:12.500 --> 00:21:15.500
<00:21:12.500>that <00:21:12.675>in? <00:21:12.850>It <00:21:13.025>increases <00:21:13.200>the <00:21:13.375>startup <00:21:13.550>time <00:21:13.725>and <00:21:13.900>also

404
00:21:15.500 --> 00:21:19.400
<00:21:15.500>the <00:21:15.675>resource <00:21:15.850>consumption. <00:21:16.025>So <00:21:16.200>at <00:21:16.375>the <00:21:16.550>end <00:21:16.725>the <00:21:16.900>things

405
00:21:18.400 --> 00:21:22.100
<00:21:18.400>we <00:21:18.600>want <00:21:18.800>to <00:21:19.000>improve <00:21:19.200>to <00:21:19.400>reduce <00:21:19.600>costs <00:21:19.800>and

406
00:21:21.100 --> 00:21:24.800
<00:21:21.100>for <00:21:21.333>that <00:21:21.566>there's <00:21:21.800>another <00:21:22.033>solution <00:21:22.266>available <00:21:22.500>called

407
00:21:24.800 --> 00:21:27.500
<00:21:24.800>ahead <00:21:25.080>of <00:21:25.360>time <00:21:25.639>compilation <00:21:25.919>were <00:21:26.200>your

408
00:21:27.500 --> 00:21:30.400
<00:21:27.500>application <00:21:27.780>code <00:21:28.060>is <00:21:28.340>directly <00:21:28.620>compiled <00:21:28.900>for

409
00:21:30.400 --> 00:21:31.900
<00:21:30.400>specific <00:21:31.750>architecture.

410
00:21:33.700 --> 00:21:37.100
<00:21:33.700>To <00:21:34.050>a <00:21:34.400>Native <00:21:34.750>American <00:21:35.100>code

411
00:21:36.100 --> 00:21:39.100
<00:21:36.100>image <00:21:36.566>and <00:21:37.033>then <00:21:37.500>you

412
00:21:39.100 --> 00:21:43.000
<00:21:39.100>don't <00:21:39.240>need <00:21:39.379>a <00:21:39.520>jvm <00:21:39.659>to <00:21:39.800>run <00:21:39.939>it. <00:21:40.080>You <00:21:40.219>can <00:21:40.360>completely <00:21:40.500>execute

413
00:21:42.100 --> 00:21:45.600
<00:21:42.100>it <00:21:42.379>on <00:21:42.659>that <00:21:42.939>Target <00:21:43.219>architecture <00:21:43.500>on

414
00:21:45.600 --> 00:21:47.300
<00:21:45.600>the <00:21:46.300>server <00:21:47.000>and

415
00:21:48.400 --> 00:21:51.900
<00:21:48.400>With <00:21:48.575>that <00:21:48.750>you <00:21:48.925>got <00:21:49.100>via <00:21:49.275>the <00:21:49.450>maximum <00:21:49.625>performance <00:21:49.800>and

416
00:21:51.900 --> 00:21:56.000
<00:21:51.900>also <00:21:52.366>reduce <00:21:52.833>resources <00:21:53.300>at

417
00:21:55.400 --> 00:21:56.400
<00:21:55.400>the <00:21:56.300>end.

418
00:21:57.700 --> 00:21:59.600
<00:21:57.700>But <00:21:57.875>as <00:21:58.050>you <00:21:58.225>can <00:21:58.400>see <00:21:58.575>here <00:21:58.750>in <00:21:58.925>the <00:21:59.100>picture.

419
00:22:01.500 --> 00:22:04.800
<00:22:01.500>really, <00:22:01.780>so <00:22:02.060>it's <00:22:02.340>using <00:22:02.620>static <00:22:02.900>analysis

420
00:22:04.800 --> 00:22:05.100
to

421
00:22:07.900 --> 00:22:10.300
<00:22:07.900>Compile <00:22:08.133>every <00:22:08.366>of <00:22:08.600>your <00:22:08.833>parts <00:22:09.066>in <00:22:09.300>your

422
00:22:10.300 --> 00:22:12.100
<00:22:10.300>code <00:22:10.766>at <00:22:11.233>build <00:22:11.700>time.

423
00:22:12.700 --> 00:22:15.600
<00:22:12.700>To <00:22:12.933>that <00:22:13.166>native <00:22:13.400>image <00:22:13.633>and <00:22:13.866>with <00:22:14.100>that

424
00:22:15.600 --> 00:22:18.700
<00:22:15.600>it's <00:22:15.879>the <00:22:16.159>build <00:22:16.439>process <00:22:16.719>really <00:22:17.000>tags

425
00:22:18.700 --> 00:22:21.200
<00:22:18.700>a <00:22:18.827>lot <00:22:18.954>of <00:22:19.081>time <00:22:19.209>at <00:22:19.336>the <00:22:19.463>end. <00:22:19.590>So <00:22:19.718>that's <00:22:19.845>one <00:22:19.972>drawback <00:22:20.100>of

426
00:22:21.200 --> 00:22:24.800
<00:22:21.200>the <00:22:21.400>solution <00:22:21.600>and <00:22:21.800>also <00:22:22.000>that <00:22:22.200>Dynamic <00:22:22.400>features <00:22:22.600>are

427
00:22:24.800 --> 00:22:27.200
<00:22:24.800>not <00:22:25.000>supported <00:22:25.200>out <00:22:25.399>of <00:22:25.600>the <00:22:25.800>box. <00:22:26.000>So <00:22:26.200>it's

428
00:22:27.200 --> 00:22:30.700
<00:22:27.200>not <00:22:27.340>able <00:22:27.480>to <00:22:27.620>for <00:22:27.760>example, <00:22:27.900>if <00:22:28.040>you're <00:22:28.180>using <00:22:28.320>reflection <00:22:28.460>ahead <00:22:28.600>of

429
00:22:30.700 --> 00:22:33.300
<00:22:30.700>time <00:22:30.875>compilation <00:22:31.050>is <00:22:31.225>not <00:22:31.400>aware <00:22:31.575>that <00:22:31.750>you <00:22:31.925>may <00:22:32.100>be

430
00:22:33.300 --> 00:22:36.300
<00:22:33.300>want <00:22:33.649>to <00:22:34.000>yeah <00:22:34.350>use <00:22:34.700>or

431
00:22:36.300 --> 00:22:39.600
<00:22:36.300>execute <00:22:36.500>that <00:22:36.700>Class <00:22:36.899>via <00:22:37.100>the <00:22:37.300>dynamic <00:22:37.500>feature <00:22:37.700>and

432
00:22:39.600 --> 00:22:40.500
<00:22:39.600>therefore <00:22:39.870>it's <00:22:40.139>not <00:22:40.410>working.

433
00:22:41.800 --> 00:22:44.300
<00:22:41.800>And <00:22:42.266>yeah <00:22:42.733>native <00:22:43.200>images

434
00:22:44.300 --> 00:22:47.300
<00:22:44.300>and <00:22:44.500>at <00:22:44.700>the <00:22:44.899>end <00:22:45.100>so <00:22:45.300>the <00:22:45.500>thing <00:22:45.700>we

435
00:22:47.300 --> 00:22:51.000
<00:22:47.300>want <00:22:47.455>to <00:22:47.611>create <00:22:47.766>with <00:22:47.922>ahead <00:22:48.077>of <00:22:48.233>time <00:22:48.388>compilation <00:22:48.544>our <00:22:48.700>standard

436
00:22:50.200 --> 00:22:51.700
<00:22:50.200>loan <00:22:51.550>executable.

437
00:22:52.800 --> 00:22:55.400
<00:22:52.800>And <00:22:53.266>they <00:22:53.733>include <00:22:54.200>every

438
00:22:55.400 --> 00:22:59.400
<00:22:55.400>class <00:22:55.680>that's <00:22:55.960>required <00:22:56.240>for <00:22:56.520>running <00:22:56.800>the

439
00:22:59.400 --> 00:23:03.300
<00:22:59.400>application. <00:22:59.680>So <00:22:59.960>also <00:23:00.240>runtime <00:23:00.520>libraries <00:23:00.800>Etc

440
00:23:03.300 --> 00:23:06.400
<00:23:03.300>everything <00:23:03.500>they <00:23:03.700>need <00:23:03.899>and <00:23:04.100>parts <00:23:04.300>of <00:23:04.500>the <00:23:04.700>jdk.

441
00:23:08.300 --> 00:23:11.500
<00:23:08.300>And <00:23:08.475>to <00:23:08.649>really <00:23:08.825>be <00:23:09.000>able <00:23:09.175>to <00:23:09.350>run <00:23:09.524>without <00:23:09.700>a

442
00:23:11.500 --> 00:23:14.200
<00:23:11.500>jvm. <00:23:11.850>And <00:23:12.200>as <00:23:12.550>that's <00:23:12.900>a

443
00:23:14.200 --> 00:23:17.300
<00:23:14.200>one <00:23:14.316>drawback <00:23:14.433>of <00:23:14.550>that. <00:23:14.666>It's <00:23:14.783>really <00:23:14.900>that <00:23:15.016>they <00:23:15.133>are <00:23:15.250>built <00:23:15.366>for <00:23:15.483>one <00:23:15.600>specific

444
00:23:17.300 --> 00:23:20.200
<00:23:17.300>operating <00:23:17.475>system <00:23:17.649>and <00:23:17.825>architecture. <00:23:18.000>It's <00:23:18.175>not <00:23:18.350>able <00:23:18.524>if <00:23:18.700>you

445
00:23:20.200 --> 00:23:23.200
<00:23:20.200>build <00:23:20.355>one <00:23:20.511>on <00:23:20.666>your <00:23:20.822>local <00:23:20.977>laptop, <00:23:21.133>and <00:23:21.288>that's <00:23:21.444>the <00:23:21.600>Mac

446
00:23:23.200 --> 00:23:26.300
<00:23:23.200>OS <00:23:23.340>it's <00:23:23.480>not <00:23:23.620>possible <00:23:23.760>to <00:23:23.900>run <00:23:24.040>it <00:23:24.180>on <00:23:24.320>a <00:23:24.460>Linux <00:23:24.600>server

447
00:23:26.300 --> 00:23:26.900
<00:23:26.300>something <00:23:26.570>like <00:23:26.840>that.

448
00:23:29.200 --> 00:23:32.500
<00:23:29.200>um, <00:23:29.400>yeah, <00:23:29.600>so <00:23:29.800>the <00:23:30.000>only <00:23:30.200>solution <00:23:30.400>available <00:23:30.600>as

449
00:23:32.500 --> 00:23:37.000
<00:23:32.500>of <00:23:32.627>right <00:23:32.754>now <00:23:32.881>to <00:23:33.009>build <00:23:33.136>native <00:23:33.263>images, <00:23:33.390>they <00:23:33.518>are <00:23:33.645>other <00:23:33.772>projects <00:23:33.900>coming

450
00:23:35.100 --> 00:23:39.000
<00:23:35.100>up <00:23:35.800>hopefully <00:23:36.500>in

451
00:23:38.100 --> 00:23:41.500
<00:23:38.100>the <00:23:38.300>future <00:23:38.500>or <00:23:38.699>there <00:23:38.899>are <00:23:39.100>some <00:23:39.300>already <00:23:39.500>started

452
00:23:41.500 --> 00:23:44.600
<00:23:41.500>but <00:23:41.640>at <00:23:41.780>the <00:23:41.920>end <00:23:42.060>currently <00:23:42.200>the <00:23:42.340>only <00:23:42.480>way <00:23:42.620>to <00:23:42.760>to <00:23:42.900>build

453
00:23:44.600 --> 00:23:48.100
<00:23:44.600>a <00:23:44.774>native <00:23:44.949>image <00:23:45.125>out <00:23:45.300>of <00:23:45.475>Java <00:23:45.649>application <00:23:45.824>is <00:23:46.000>via

454
00:23:47.100 --> 00:23:50.300
<00:23:47.100>crawl <00:23:47.300>VM <00:23:47.500>and <00:23:47.699>crowd <00:23:47.899>VM <00:23:48.100>is <00:23:48.300>not <00:23:48.500>just

455
00:23:51.700 --> 00:23:54.800
<00:23:51.700>Yeah <00:23:52.400>solution <00:23:53.100>to

456
00:23:54.800 --> 00:23:57.700
<00:23:54.800>build <00:23:55.033>native <00:23:55.266>images. <00:23:55.500>It <00:23:55.733>has <00:23:55.966>several <00:23:56.200>or

457
00:23:57.700 --> 00:24:01.500
<00:23:57.700>three <00:23:58.166>more <00:23:58.633>modes <00:23:59.100>to

458
00:24:00.500 --> 00:24:04.400
<00:24:00.500>run <00:24:00.733>so <00:24:00.966>it <00:24:01.200>has <00:24:01.433>a <00:24:01.666>jdk <00:24:01.900>about

459
00:24:03.400 --> 00:24:06.400
<00:24:03.400>it. <00:24:03.600>So <00:24:03.800>you <00:24:04.000>can <00:24:04.200>run <00:24:04.400>your <00:24:04.600>application <00:24:04.800>on

460
00:24:06.400 --> 00:24:09.400
<00:24:06.400>a <00:24:06.575>jvm <00:24:06.750>with <00:24:06.925>gravvm. <00:24:07.100>It <00:24:07.275>has <00:24:07.450>the <00:24:07.625>native <00:24:07.800>image

461
00:24:09.400 --> 00:24:12.400
<00:24:09.400>building <00:24:09.680>capabilities <00:24:09.960>and <00:24:10.240>all <00:24:10.520>so <00:24:10.800>has

462
00:24:12.400 --> 00:24:15.800
<00:24:12.400>another <00:24:12.866>runtime <00:24:13.333>build <00:24:13.800>a

463
00:24:15.800 --> 00:24:18.400
<00:24:15.800>chords <00:24:16.000>travel <00:24:16.200>where <00:24:16.399>you <00:24:16.600>can <00:24:16.800>also <00:24:17.000>execute <00:24:17.200>on

464
00:24:18.400 --> 00:24:21.600
<00:24:18.400>a <00:24:18.680>jvm <00:24:18.960>languages <00:24:19.240>like <00:24:19.520>JavaScript <00:24:19.800>Rubio

465
00:24:21.600 --> 00:24:22.100
<00:24:21.600>Pi <00:24:22.050>then.

466
00:24:24.300 --> 00:24:27.800
<00:24:24.300>And <00:24:24.455>as <00:24:24.611>already <00:24:24.766>mentioned <00:24:24.922>a <00:24:25.077>little <00:24:25.233>bit, <00:24:25.388>so <00:24:25.544>if <00:24:25.700>we

467
00:24:27.800 --> 00:24:31.000
<00:24:27.800>compare <00:24:28.033>the <00:24:28.266>jvm <00:24:28.500>to <00:24:28.733>Native <00:24:28.966>images <00:24:29.200>native

468
00:24:30.200 --> 00:24:33.400
<00:24:30.200>images <00:24:30.355>have <00:24:30.511>the <00:24:30.666>big <00:24:30.822>benefit <00:24:30.977>of <00:24:31.133>the <00:24:31.288>startup <00:24:31.444>time. <00:24:31.600>So

469
00:24:33.400 --> 00:24:36.800
<00:24:33.400>it's <00:24:33.575>really <00:24:33.750>improved <00:24:33.925>we <00:24:34.100>can <00:24:34.275>see <00:24:34.450>that <00:24:34.625>hopefully <00:24:34.800>later

470
00:24:36.800 --> 00:24:39.400
<00:24:36.800>the <00:24:37.149>memory <00:24:37.500>throughput <00:24:37.850>is <00:24:38.200>better.

471
00:24:40.900 --> 00:24:43.200
<00:24:40.900>But <00:24:41.075>the <00:24:41.250>biggest <00:24:41.425>problem <00:24:41.600>is <00:24:41.775>the <00:24:41.950>build <00:24:42.125>time. <00:24:42.300>So

472
00:24:43.200 --> 00:24:46.900
<00:24:43.200>it <00:24:43.327>takes <00:24:43.454>a <00:24:43.581>lot <00:24:43.709>of <00:24:43.836>more <00:24:43.963>time <00:24:44.090>to <00:24:44.218>build <00:24:44.345>the <00:24:44.472>applications <00:24:44.600>and

473
00:24:46.900 --> 00:24:48.300
<00:24:46.900>that's <00:24:47.152>something <00:24:47.404>what <00:24:47.656>at <00:24:47.908>the <00:24:48.159>end.

474
00:24:49.600 --> 00:24:52.700
<00:24:49.600>Is <00:24:49.774>really <00:24:49.949>not <00:24:50.125>good <00:24:50.300>for <00:24:50.475>the <00:24:50.649>developer <00:24:50.824>the <00:24:51.000>developer

475
00:24:52.700 --> 00:24:55.200
<00:24:52.700>productivity. <00:24:52.933>And <00:24:53.166>yeah, <00:24:53.400>we <00:24:53.633>will <00:24:53.866>also <00:24:54.100>see

476
00:24:55.200 --> 00:24:58.500
<00:24:55.200>that <00:24:55.293>hopefully <00:24:55.386>that <00:24:55.480>it <00:24:55.573>takes <00:24:55.666>a <00:24:55.760>lot <00:24:55.853>of <00:24:55.946>time <00:24:56.040>to <00:24:56.133>build <00:24:56.226>an <00:24:56.320>image <00:24:56.413>like <00:24:56.506>that <00:24:56.600>and

477
00:24:58.500 --> 00:25:01.500
<00:24:58.500>that's <00:24:58.616>the <00:24:58.733>reason <00:24:58.850>that <00:24:58.966>I'm <00:24:59.083>not <00:24:59.200>able <00:24:59.316>to <00:24:59.433>show <00:24:59.550>you <00:24:59.666>that <00:24:59.783>much <00:24:59.900>life

478
00:25:01.500 --> 00:25:05.100
<00:25:01.500>today <00:25:01.780>because <00:25:02.060>yeah <00:25:02.340>building <00:25:02.620>one <00:25:02.900>simple

479
00:25:04.100 --> 00:25:06.900
<00:25:04.100>application <00:25:04.566>takes <00:25:05.033>several <00:25:05.500>minutes.

480
00:25:08.600 --> 00:25:11.500
<00:25:08.600>Also <00:25:08.949>regarding <00:25:09.300>the <00:25:09.649>latency <00:25:10.000>and

481
00:25:11.500 --> 00:25:14.700
<00:25:11.500>throughput <00:25:11.733>the <00:25:11.966>jvm <00:25:12.200>is <00:25:12.433>still <00:25:12.666>better <00:25:12.900>than

482
00:25:14.700 --> 00:25:17.200
<00:25:14.700>a <00:25:14.980>native <00:25:15.260>images. <00:25:15.540>So <00:25:15.820>if <00:25:16.100>you

483
00:25:17.200 --> 00:25:19.300
<00:25:17.200>really <00:25:17.433>have <00:25:17.666>some <00:25:17.900>yeah <00:25:18.133>a <00:25:18.366>lot <00:25:18.600>of

484
00:25:20.200 --> 00:25:23.600
<00:25:20.200>Now <00:25:20.355>through <00:25:20.511>port <00:25:20.666>on <00:25:20.822>your <00:25:20.977>application <00:25:21.133>then <00:25:21.288>still <00:25:21.444>jvm <00:25:21.600>is

485
00:25:23.600 --> 00:25:26.200
<00:25:23.600>the <00:25:23.833>way <00:25:24.066>to <00:25:24.300>go <00:25:24.533>but <00:25:24.766>as <00:25:25.000>you

486
00:25:26.200 --> 00:25:29.600
<00:25:26.200>can <00:25:26.375>see <00:25:26.550>with <00:25:26.725>the <00:25:26.900>errors <00:25:27.075>and <00:25:27.250>oracles, <00:25:27.425>the <00:25:27.600>gravyum

487
00:25:29.600 --> 00:25:31.500
<00:25:29.600>is <00:25:29.774>from <00:25:29.949>Oracle <00:25:30.125>Oracle <00:25:30.300>is <00:25:30.475>have <00:25:30.649>the <00:25:30.824>working <00:25:31.000>on.

488
00:25:33.300 --> 00:25:36.500
<00:25:33.300>Improving <00:25:33.533>that <00:25:33.766>for <00:25:34.000>the <00:25:34.233>native <00:25:34.466>images <00:25:34.700>and

489
00:25:36.500 --> 00:25:39.900
<00:25:36.500>also <00:25:36.700>for <00:25:36.900>sure <00:25:37.100>with <00:25:37.300>that <00:25:37.500>maturity <00:25:37.700>with <00:25:37.900>the

490
00:25:39.900 --> 00:25:42.300
<00:25:39.900>usage <00:25:40.180>the <00:25:40.460>maturity <00:25:40.740>will <00:25:41.020>get <00:25:41.300>better

491
00:25:42.300 --> 00:25:45.300
<00:25:42.300>and <00:25:42.649>better <00:25:43.000>and <00:25:43.350>yeah, <00:25:43.700>so

492
00:25:45.300 --> 00:25:48.300
<00:25:45.300>it's <00:25:45.475>something <00:25:45.649>that <00:25:45.825>will <00:25:46.000>be <00:25:46.175>fixed <00:25:46.350>in <00:25:46.524>the <00:25:46.700>future.

493
00:25:50.500 --> 00:25:53.500
<00:25:50.500>And <00:25:50.780>so <00:25:51.060>so <00:25:51.340>just <00:25:51.620>summarize <00:25:51.900>a

494
00:25:53.500 --> 00:25:56.700
<00:25:53.500>key <00:25:53.780>differences <00:25:54.060>asset. <00:25:54.340>So <00:25:54.620>whether <00:25:54.900>with

495
00:25:56.700 --> 00:25:59.300
<00:25:56.700>with <00:25:56.855>a <00:25:57.011>gravity <00:25:57.166>and <00:25:57.322>Native <00:25:57.477>image, <00:25:57.633>really <00:25:57.788>there's <00:25:57.944>that <00:25:58.100>static

496
00:25:59.300 --> 00:26:02.600
<00:25:59.300>analysis <00:25:59.416>and <00:25:59.533>this <00:25:59.649>is <00:25:59.766>why <00:25:59.883>the <00:26:00.000>bull <00:26:00.116>turn <00:26:00.233>takes <00:26:00.350>that <00:26:00.466>long <00:26:00.583>it <00:26:00.700>will

497
00:26:02.600 --> 00:26:05.700
<00:26:02.600>start <00:26:02.727>from <00:26:02.854>the <00:26:02.981>entry <00:26:03.109>part <00:26:03.236>of <00:26:03.363>your <00:26:03.490>application <00:26:03.618>and <00:26:03.745>then <00:26:03.872>go <00:26:04.000>through

498
00:26:05.700 --> 00:26:06.700
<00:26:05.700>every <00:26:06.150>path <00:26:06.600>and

499
00:26:08.600 --> 00:26:11.000
<00:26:08.600>compile <00:26:08.833>it <00:26:09.066>and <00:26:09.300>for <00:26:09.533>example, <00:26:09.766>it's <00:26:10.000>also

500
00:26:12.600 --> 00:26:15.200
<00:26:12.600>Based <00:26:12.740>on <00:26:12.879>how <00:26:13.020>you <00:26:13.159>implement <00:26:13.300>your <00:26:13.439>software <00:26:13.580>it <00:26:13.719>could <00:26:13.860>be <00:26:14.000>and

501
00:26:15.200 --> 00:26:18.600
<00:26:15.200>also <00:26:15.480>when <00:26:15.760>you're <00:26:16.040>initialize <00:26:16.320>specific <00:26:16.600>glasses,

502
00:26:18.600 --> 00:26:21.700
<00:26:18.600>it <00:26:18.774>could <00:26:18.949>be <00:26:19.125>that <00:26:19.300>code <00:26:19.475>will <00:26:19.649>run <00:26:19.824>at <00:26:20.000>runtime

503
00:26:21.700 --> 00:26:24.300
<00:26:21.700>at <00:26:21.875>build <00:26:22.050>time <00:26:22.225>that <00:26:22.400>usually <00:26:22.575>you <00:26:22.750>want <00:26:22.925>to <00:26:23.100>have

504
00:26:24.300 --> 00:26:27.400
<00:26:24.300>only <00:26:24.580>run <00:26:24.860>at <00:26:25.139>build <00:26:25.419>at <00:26:25.700>runtime.

505
00:26:27.400 --> 00:26:31.400
<00:26:27.400>So <00:26:27.555>that's <00:26:27.711>also <00:26:27.866>something <00:26:28.022>to <00:26:28.177>to <00:26:28.333>care <00:26:28.488>about <00:26:28.644>and <00:26:28.800>important

506
00:26:30.400 --> 00:26:33.900
<00:26:30.400>to <00:26:30.575>know <00:26:30.750>that <00:26:30.925>a <00:26:31.100>glass <00:26:31.275>pass <00:26:31.450>is <00:26:31.625>fixed <00:26:31.800>where

507
00:26:33.900 --> 00:26:34.500
<00:26:33.900>the <00:26:34.170>native <00:26:34.440>image.

508
00:26:37.300 --> 00:26:40.500
<00:26:37.300>Perfect. <00:26:37.580>So, <00:26:37.860>let's <00:26:38.139>go <00:26:38.419>to <00:26:38.700>to

509
00:26:40.500 --> 00:26:43.700
<00:26:40.500>our <00:26:40.733>Orchard <00:26:40.966>build <00:26:41.200>our <00:26:41.433>first <00:26:41.666>Native <00:26:41.900>image

510
00:26:43.700 --> 00:26:44.000
here.

511
00:26:44.800 --> 00:26:47.700
<00:26:44.800>and <00:26:45.000>it's <00:26:45.200>a <00:26:45.399>really <00:26:45.600>basic <00:26:45.800>example <00:26:46.000>as <00:26:46.200>always

512
00:26:47.700 --> 00:26:50.500
<00:26:47.700>because <00:26:47.875>if <00:26:48.050>it's <00:26:48.225>getting <00:26:48.400>more <00:26:48.575>complex, <00:26:48.750>it <00:26:48.925>does <00:26:49.100>take

513
00:26:50.500 --> 00:26:53.600
<00:26:50.500>even <00:26:50.675>longer <00:26:50.850>and <00:26:51.025>it's <00:26:51.200>just <00:26:51.375>a <00:26:51.550>hello <00:26:51.725>world <00:26:51.900>Java

514
00:26:53.600 --> 00:26:56.100
<00:26:53.600>application <00:26:53.755>as <00:26:53.911>you <00:26:54.066>can <00:26:54.222>see <00:26:54.377>here <00:26:54.533>and <00:26:54.688>what <00:26:54.844>we'll <00:26:55.000>do

515
00:26:56.100 --> 00:26:56.600
<00:26:56.100>now <00:26:56.550>is

516
00:26:58.300 --> 00:26:59.100
<00:26:58.300>Execute <00:26:59.020>it.

517
00:27:00.700 --> 00:27:03.000
<00:27:00.700>with <00:27:01.400>a <00:27:02.100>first

518
00:27:04.100 --> 00:27:07.400
<00:27:04.100>compile <00:27:04.207>it <00:27:04.315>so <00:27:04.423>we <00:27:04.530>have <00:27:04.638>to <00:27:04.746>compile <00:27:04.853>it <00:27:04.961>and <00:27:05.069>then <00:27:05.176>we <00:27:05.284>will <00:27:05.392>use <00:27:05.500>the

519
00:27:07.400 --> 00:27:10.600
<00:27:07.400>native <00:27:07.633>image <00:27:07.866>tool <00:27:08.100>provided <00:27:08.333>by <00:27:08.566>gravvm <00:27:08.800>to

520
00:27:10.600 --> 00:27:13.300
<00:27:10.600>build <00:27:10.774>a <00:27:10.949>native <00:27:11.125>image <00:27:11.300>out <00:27:11.475>of <00:27:11.649>our <00:27:11.824>Java <00:27:12.000>application.

521
00:27:14.500 --> 00:27:17.600
<00:27:14.500>And <00:27:14.733>yeah <00:27:14.966>that <00:27:15.200>stop <00:27:15.433>so <00:27:15.666>for <00:27:15.900>that

522
00:27:17.600 --> 00:27:20.900
<00:27:17.600>simple, <00:27:17.727>I <00:27:17.854>think <00:27:17.981>with <00:27:18.109>the <00:27:18.236>jvm. <00:27:18.363>It <00:27:18.490>would <00:27:18.618>be <00:27:18.745>like <00:27:18.872>one <00:27:19.000>second

523
00:27:20.900 --> 00:27:23.600
<00:27:20.900>or <00:27:21.075>something <00:27:21.250>like <00:27:21.425>that <00:27:21.600>here <00:27:21.775>will <00:27:21.950>take <00:27:22.125>around <00:27:22.300>I

524
00:27:23.600 --> 00:27:24.300
<00:27:23.600>think <00:27:23.915>one <00:27:24.230>minute.

525
00:27:25.200 --> 00:27:26.600
<00:27:25.200>To <00:27:25.620>get <00:27:26.040>that <00:27:26.460>working.

526
00:27:27.400 --> 00:27:28.200
and

527
00:27:30.200 --> 00:27:31.100
therefore

528
00:27:32.700 --> 00:27:35.500
<00:27:32.700>that's <00:27:32.900>usually <00:27:33.100>something <00:27:33.300>so <00:27:33.500>just <00:27:33.700>for <00:27:33.900>information. <00:27:34.100>So

529
00:27:35.500 --> 00:27:38.300
<00:27:35.500>our <00:27:35.700>recommendation <00:27:35.900>is <00:27:36.100>if <00:27:36.300>you <00:27:36.500>give <00:27:36.700>one <00:27:36.900>to

530
00:27:38.300 --> 00:27:41.200
<00:27:38.300>get <00:27:38.455>started <00:27:38.611>with <00:27:38.766>Cloud <00:27:38.922>VM <00:27:39.077>native <00:27:39.233>images <00:27:39.388>and <00:27:39.544>get <00:27:39.700>the

531
00:27:41.200 --> 00:27:45.700
<00:27:41.200>benefits <00:27:41.327>out <00:27:41.454>of <00:27:41.581>it. <00:27:41.709>The <00:27:41.836>recommendation <00:27:41.963>from <00:27:42.090>our <00:27:42.218>team <00:27:42.345>is <00:27:42.472>to <00:27:42.600>as

532
00:27:44.700 --> 00:27:47.600
<00:27:44.700>developers <00:27:45.166>still <00:27:45.633>use <00:27:46.100>the

533
00:27:47.600 --> 00:27:49.900
<00:27:47.600>craft. <00:27:48.066>Yeah, <00:27:48.533>I'm <00:27:49.000>jvr.

534
00:27:50.800 --> 00:27:53.400
<00:27:50.800>To <00:27:50.975>iterate <00:27:51.149>on <00:27:51.325>your <00:27:51.500>source <00:27:51.675>code <00:27:51.850>and <00:27:52.024>then <00:27:52.200>have

535
00:27:53.400 --> 00:27:56.400
<00:27:53.400>a <00:27:53.575>dedicated <00:27:53.750>pipeline <00:27:53.925>that <00:27:54.100>builds <00:27:54.275>the <00:27:54.450>native <00:27:54.625>images <00:27:54.800>for

536
00:27:56.400 --> 00:27:59.500
<00:27:56.400>you <00:27:56.575>for <00:27:56.750>production <00:27:56.925>use <00:27:57.100>cases <00:27:57.275>and <00:27:57.450>also <00:27:57.625>maybe <00:27:57.800>to

537
00:27:59.500 --> 00:28:02.300
<00:27:59.500>try <00:27:59.640>it <00:27:59.780>out <00:27:59.920>because <00:28:00.060>at <00:28:00.200>the <00:28:00.340>end <00:28:00.480>it's <00:28:00.620>like <00:28:00.760>you <00:28:00.900>can

538
00:28:02.300 --> 00:28:03.500
<00:28:02.300>see <00:28:02.659>this <00:28:03.020>here. <00:28:03.380>Yeah.

539
00:28:04.500 --> 00:28:07.600
<00:28:04.500>Maybe <00:28:04.616>it's <00:28:04.733>a <00:28:04.850>good <00:28:04.966>opportunity <00:28:05.083>to <00:28:05.200>have <00:28:05.316>a <00:28:05.433>lot <00:28:05.550>of <00:28:05.666>coffee <00:28:05.783>and <00:28:05.900>talking

540
00:28:07.600 --> 00:28:10.200
<00:28:07.600>with <00:28:07.740>colleagues. <00:28:07.879>But <00:28:08.020>at <00:28:08.159>the <00:28:08.300>end <00:28:08.439>it's <00:28:08.580>not <00:28:08.719>nothing <00:28:08.860>regarding <00:28:09.000>the

541
00:28:10.200 --> 00:28:13.300
<00:28:10.200>developer <00:28:10.550>productivity. <00:28:10.900>It's <00:28:11.250>really <00:28:11.600>takes

542
00:28:13.300 --> 00:28:16.400
<00:28:13.300>a <00:28:13.440>lot <00:28:13.580>of <00:28:13.720>time <00:28:13.860>and <00:28:14.000>also <00:28:14.139>a <00:28:14.280>lot <00:28:14.419>of <00:28:14.560>resources. <00:28:14.700>So

543
00:28:16.400 --> 00:28:19.800
<00:28:16.400>for <00:28:16.575>that <00:28:16.750>simple <00:28:16.925>example, <00:28:17.100>you <00:28:17.275>can <00:28:17.450>see <00:28:17.625>it <00:28:17.800>consumed

544
00:28:19.800 --> 00:28:23.300
<00:28:19.800>around <00:28:20.080>three <00:28:20.360>gigabyte <00:28:20.639>of <00:28:20.919>ram <00:28:21.200>just

545
00:28:22.300 --> 00:28:26.000
<00:28:22.300>for <00:28:22.580>that <00:28:22.860>hello <00:28:23.139>world <00:28:23.419>application <00:28:23.700>and

546
00:28:27.100 --> 00:28:30.100
<00:28:27.100>One <00:28:27.227>minute <00:28:27.354>to <00:28:27.481>build <00:28:27.609>you <00:28:27.736>can <00:28:27.863>see <00:28:27.990>the <00:28:28.118>output <00:28:28.245>gso <00:28:28.372>it <00:28:28.500>worked.

547
00:28:30.100 --> 00:28:33.700
<00:28:30.100>We <00:28:30.255>had <00:28:30.411>our <00:28:30.566>first <00:28:30.722>Native <00:28:30.877>image <00:28:31.033>built <00:28:31.188>and <00:28:31.344>as <00:28:31.500>you

548
00:28:33.700 --> 00:28:36.700
<00:28:33.700>can <00:28:33.827>see <00:28:33.954>here, <00:28:34.081>it's <00:28:34.209>just <00:28:34.336>at <00:28:34.463>the <00:28:34.590>end <00:28:34.718>of <00:28:34.845>native <00:28:34.972>executable. <00:28:35.100>So

549
00:28:36.700 --> 00:28:39.700
<00:28:36.700>no <00:28:36.933>jvm, <00:28:37.166>whatever. <00:28:37.400>I <00:28:37.633>just <00:28:37.866>called <00:28:38.100>that

550
00:28:39.700 --> 00:28:42.200
<00:28:39.700>executable <00:28:40.050>and <00:28:40.400>it <00:28:40.750>worked <00:28:41.100>on

551
00:28:42.200 --> 00:28:44.100
<00:28:42.200>my <00:28:42.550>machine <00:28:42.900>and <00:28:43.250>my <00:28:43.600>architecture.

552
00:28:46.600 --> 00:28:49.600
<00:28:46.600>That's <00:28:46.833>that <00:28:47.066>so <00:28:47.300>what's <00:28:47.533>not <00:28:47.766>supported <00:28:48.000>with?

553
00:28:51.500 --> 00:28:54.500
<00:28:51.500>With <00:28:51.675>IBM <00:28:51.850>out <00:28:52.025>of <00:28:52.200>the <00:28:52.375>box <00:28:52.550>are <00:28:52.725>Dynamic <00:28:52.900>features

554
00:28:54.500 --> 00:28:59.000
<00:28:54.500>like <00:28:54.780>reflection. <00:28:55.060>For <00:28:55.340>example, <00:28:55.620>also <00:28:55.900>depending

555
00:28:57.900 --> 00:29:00.000
<00:28:57.900>it <00:28:58.600>could <00:28:59.300>be

556
00:29:00.200 --> 00:29:00.600
<00:29:00.200>that <00:29:00.379>you <00:29:00.560>have

557
00:29:02.300 --> 00:29:05.600
<00:29:02.300>To <00:29:02.580>to <00:29:02.860>give <00:29:03.139>some <00:29:03.419>some <00:29:03.700>yeah

558
00:29:05.600 --> 00:29:08.500
<00:29:05.600>hints <00:29:05.879>ground <00:29:06.159>VM <00:29:06.439>native <00:29:06.719>the <00:29:07.000>native

559
00:29:08.500 --> 00:29:11.500
<00:29:08.500>image <00:29:08.655>tool <00:29:08.811>about <00:29:08.966>how <00:29:09.122>you <00:29:09.277>want <00:29:09.433>to <00:29:09.588>initialize <00:29:09.744>your <00:29:09.900>glasses

560
00:29:11.500 --> 00:29:13.700
<00:29:11.500>and <00:29:11.700>here <00:29:11.900>is <00:29:12.100>some <00:29:12.300>examples <00:29:12.500>of <00:29:12.700>that. <00:29:12.900>So

561
00:29:15.600 --> 00:29:18.500
<00:29:15.600>for <00:29:15.716>example <00:29:15.833>for <00:29:15.949>the <00:29:16.066>reflection <00:29:16.183>if <00:29:16.300>we <00:29:16.416>have <00:29:16.533>a <00:29:16.649>look <00:29:16.766>at <00:29:16.883>this <00:29:17.000>simple

562
00:29:18.500 --> 00:29:21.300
<00:29:18.500>example, <00:29:18.675>you <00:29:18.850>can <00:29:19.025>see <00:29:19.200>there <00:29:19.375>are <00:29:19.550>two <00:29:19.725>classes <00:29:19.900>One

563
00:29:21.300 --> 00:29:24.900
<00:29:21.300>reverse <00:29:21.649>one <00:29:22.000>capitalized <00:29:22.350>and <00:29:22.700>we

564
00:29:24.900 --> 00:29:27.400
<00:29:24.900>then <00:29:25.075>we <00:29:25.250>are <00:29:25.425>using <00:29:25.600>reflection <00:29:25.775>so <00:29:25.950>class <00:29:26.125>for <00:29:26.300>name

565
00:29:27.400 --> 00:29:30.500
<00:29:27.400>and <00:29:27.600>that <00:29:27.800>will <00:29:28.000>be <00:29:28.200>then <00:29:28.400>provided <00:29:28.600>as <00:29:28.800>arguments

566
00:29:30.500 --> 00:29:31.400
<00:29:30.500>of <00:29:30.905>the <00:29:31.310>application.

567
00:29:33.300 --> 00:29:36.400
<00:29:33.300>So <00:29:33.475>at <00:29:33.649>the <00:29:33.825>end <00:29:34.000>if <00:29:34.175>graph <00:29:34.350>yeah <00:29:34.524>does <00:29:34.700>is

568
00:29:36.400 --> 00:29:39.300
<00:29:36.400>it's <00:29:36.633>static <00:29:36.866>analysis <00:29:37.100>is <00:29:37.333>analysis. <00:29:37.566>It's <00:29:37.800>not

569
00:29:39.300 --> 00:29:42.400
<00:29:39.300>able <00:29:39.533>to <00:29:39.766>from <00:29:40.000>the <00:29:40.233>starting <00:29:40.466>point <00:29:40.700>to

570
00:29:42.400 --> 00:29:45.200
<00:29:42.400>identify <00:29:42.750>which <00:29:43.100>classes <00:29:43.450>we <00:29:43.800>want

571
00:29:45.200 --> 00:29:48.100
<00:29:45.200>to <00:29:45.340>use <00:29:45.480>and <00:29:45.620>therefore <00:29:45.760>it's <00:29:45.900>not <00:29:46.040>able <00:29:46.180>to <00:29:46.320>package <00:29:46.460>it <00:29:46.600>together

572
00:29:48.100 --> 00:29:49.800
<00:29:48.100>in <00:29:48.449>the <00:29:48.800>native <00:29:49.149>image <00:29:49.500>and

573
00:29:51.100 --> 00:29:54.600
<00:29:51.100>Therefore <00:29:51.240>we <00:29:51.379>can <00:29:51.520>just <00:29:51.659>run <00:29:51.800>that <00:29:51.939>on <00:29:52.080>the <00:29:52.219>jvm. <00:29:52.360>As <00:29:52.500>you

574
00:29:54.600 --> 00:29:57.400
<00:29:54.600>can <00:29:54.727>see <00:29:54.854>it <00:29:54.981>works <00:29:55.109>the <00:29:55.236>code <00:29:55.363>if <00:29:55.490>you <00:29:55.618>would <00:29:55.745>do <00:29:55.872>the <00:29:56.000>same

575
00:29:57.400 --> 00:30:00.300
<00:29:57.400>and <00:29:57.516>I <00:29:57.633>will <00:29:57.750>not <00:29:57.866>do <00:29:57.983>it <00:29:58.100>now <00:29:58.216>because <00:29:58.333>of <00:29:58.450>the <00:29:58.566>time <00:29:58.683>it <00:29:58.800>will

576
00:30:00.300 --> 00:30:03.400
<00:30:00.300>not <00:30:00.416>work. <00:30:00.533>So <00:30:00.649>there <00:30:00.766>will <00:30:00.883>be <00:30:01.000>a <00:30:01.116>class <00:30:01.233>not <00:30:01.350>found <00:30:01.466>exception <00:30:01.583>because <00:30:01.700>as

577
00:30:03.400 --> 00:30:06.300
<00:30:03.400>that <00:30:03.575>it's <00:30:03.750>not <00:30:03.925>able <00:30:04.100>to <00:30:04.275>know <00:30:04.450>which <00:30:04.625>classes <00:30:04.800>you

578
00:30:06.300 --> 00:30:08.300
<00:30:06.300>want <00:30:06.580>to <00:30:06.860>run <00:30:07.139>with <00:30:07.419>that <00:30:07.700>reflection.

579
00:30:08.900 --> 00:30:12.600
<00:30:08.900>And <00:30:09.180>yeah <00:30:09.460>therefore <00:30:09.740>to <00:30:10.020>mitigate <00:30:10.300>that.

580
00:30:13.700 --> 00:30:17.200
<00:30:13.700>there <00:30:14.166>is <00:30:14.633>an <00:30:15.100>agent

581
00:30:16.200 --> 00:30:20.100
<00:30:16.200>available <00:30:16.433>as <00:30:16.666>you <00:30:16.900>can <00:30:17.133>see <00:30:17.366>here <00:30:17.600>agent

582
00:30:19.100 --> 00:30:22.500
<00:30:19.100>web <00:30:19.300>and <00:30:19.500>what <00:30:19.699>it's <00:30:19.899>doing <00:30:20.100>and <00:30:20.300>you <00:30:20.500>also

583
00:30:22.500 --> 00:30:25.700
<00:30:22.500>saw <00:30:22.655>it's <00:30:22.811>really <00:30:22.966>fast <00:30:23.122>here <00:30:23.277>what's <00:30:23.433>doing <00:30:23.588>it's <00:30:23.744>a <00:30:23.900>running

584
00:30:25.700 --> 00:30:28.300
<00:30:25.700>based <00:30:25.933>on <00:30:26.166>the <00:30:26.400>information <00:30:26.633>you <00:30:26.866>attach <00:30:27.100>to

585
00:30:28.300 --> 00:30:29.400
<00:30:28.300>the <00:30:28.630>agent <00:30:28.960>lip, <00:30:29.290>so

586
00:30:30.500 --> 00:30:30.800
the

587
00:30:31.500 --> 00:30:34.700
<00:30:31.500>You <00:30:31.627>just <00:30:31.754>run <00:30:31.881>the <00:30:32.009>application <00:30:32.136>at <00:30:32.263>the <00:30:32.390>end <00:30:32.518>on <00:30:32.645>the <00:30:32.772>jvm. <00:30:32.900>And

588
00:30:34.700 --> 00:30:37.900
<00:30:34.700>that <00:30:34.933>agent <00:30:35.166>will <00:30:35.400>generate <00:30:35.633>configuration <00:30:35.866>files <00:30:36.100>for

589
00:30:37.900 --> 00:30:41.000
<00:30:37.900>the <00:30:38.250>native <00:30:38.600>image <00:30:38.950>regarding <00:30:39.300>your

590
00:30:40.900 --> 00:30:43.200
<00:30:40.900>configuration <00:30:41.250>that <00:30:41.600>you <00:30:41.950>want <00:30:42.300>to

591
00:30:43.200 --> 00:30:46.100
<00:30:43.200>give <00:30:43.400>the <00:30:43.600>hints <00:30:43.800>to <00:30:44.000>Native. <00:30:44.200>So <00:30:44.400>at <00:30:44.600>the

592
00:30:46.100 --> 00:30:49.100
<00:30:46.100>end <00:30:46.255>you <00:30:46.411>could <00:30:46.566>have <00:30:46.722>a <00:30:46.877>suite <00:30:47.033>of <00:30:47.188>tests <00:30:47.344>if <00:30:47.500>you

593
00:30:49.100 --> 00:30:49.400
have.

594
00:30:50.600 --> 00:30:53.300
<00:30:50.600>I <00:30:50.800>could <00:30:51.000>test <00:30:51.199>our <00:30:51.399>average <00:30:51.600>just <00:30:51.800>run <00:30:52.000>that

595
00:30:53.300 --> 00:30:56.600
<00:30:53.300>you <00:30:53.416>get <00:30:53.533>the <00:30:53.649>configuration <00:30:53.766>produced <00:30:53.883>for <00:30:54.000>you. <00:30:54.116>And <00:30:54.233>then <00:30:54.350>you <00:30:54.466>can <00:30:54.583>build <00:30:54.700>a

596
00:30:56.600 --> 00:30:59.300
<00:30:56.600>native <00:30:56.727>image <00:30:56.854>with <00:30:56.981>that <00:30:57.109>and <00:30:57.236>if <00:30:57.363>we <00:30:57.490>have <00:30:57.618>a <00:30:57.745>look <00:30:57.872>at <00:30:58.000>the

597
00:30:59.300 --> 00:31:03.500
<00:30:59.300>generated <00:30:59.533>configuration <00:30:59.766>based <00:31:00.000>on <00:31:00.233>that <00:31:00.466>methods <00:31:00.700>I

598
00:31:03.500 --> 00:31:06.500
<00:31:03.500>just <00:31:03.655>run <00:31:03.811>on <00:31:03.966>the <00:31:04.122>jvm <00:31:04.277>to <00:31:04.433>get <00:31:04.588>the <00:31:04.744>configuration <00:31:04.900>with

599
00:31:06.500 --> 00:31:09.800
<00:31:06.500>it <00:31:06.616>agent. <00:31:06.733>You <00:31:06.850>can <00:31:06.966>see <00:31:07.083>at <00:31:07.200>the <00:31:07.316>end <00:31:07.433>what <00:31:07.550>it <00:31:07.666>is <00:31:07.783>it <00:31:07.900>it's

600
00:31:09.800 --> 00:31:12.500
<00:31:09.800>just <00:31:10.033>the <00:31:10.266>glasses <00:31:10.500>that <00:31:10.733>we <00:31:10.966>use <00:31:11.200>with

601
00:31:12.500 --> 00:31:15.700
<00:31:12.500>a <00:31:12.733>in <00:31:12.966>this <00:31:13.200>case <00:31:13.433>the <00:31:13.666>roof <00:31:13.900>elections.

602
00:31:15.700 --> 00:31:18.200
<00:31:15.700>So <00:31:15.855>we <00:31:16.011>want <00:31:16.166>to <00:31:16.322>have <00:31:16.477>available <00:31:16.633>in <00:31:16.788>the <00:31:16.944>native <00:31:17.100>image

603
00:31:18.200 --> 00:31:21.300
<00:31:18.200>with <00:31:18.480>the <00:31:18.760>methods <00:31:19.040>and <00:31:19.320>for <00:31:19.600>sure

604
00:31:21.300 --> 00:31:25.100
<00:31:21.300>you <00:31:21.475>could <00:31:21.649>be <00:31:21.825>also <00:31:22.000>created <00:31:22.175>by <00:31:22.350>yourself <00:31:22.524>self <00:31:22.700>those

605
00:31:24.100 --> 00:31:27.700
<00:31:24.100>configuration <00:31:24.274>files, <00:31:24.449>but <00:31:24.625>it's <00:31:24.800>easier <00:31:24.975>to <00:31:25.149>use <00:31:25.324>that <00:31:25.500>agent

606
00:31:27.700 --> 00:31:27.900
<00:31:27.700>for <00:31:27.880>it.

607
00:31:28.500 --> 00:31:29.800
<00:31:28.500>and <00:31:28.889>with <00:31:29.280>that <00:31:29.670>information

608
00:31:30.900 --> 00:31:32.100
<00:31:30.900>and <00:31:31.116>we <00:31:31.332>are <00:31:31.548>now <00:31:31.764>able <00:31:31.980>to

609
00:31:34.400 --> 00:31:37.100
<00:31:34.400>just <00:31:34.600>run <00:31:34.800>that <00:31:35.000>native <00:31:35.200>image <00:31:35.400>command. <00:31:35.600>It <00:31:35.800>will

610
00:31:37.100 --> 00:31:40.600
<00:31:37.100>detect <00:31:37.333>those <00:31:37.566>configurations <00:31:37.800>and <00:31:38.033>then <00:31:38.266>our <00:31:38.500>application.

611
00:31:42.200 --> 00:31:46.300
<00:31:42.200>Should <00:31:42.400>be <00:31:42.600>able <00:31:42.800>to <00:31:43.000>run <00:31:43.200>with <00:31:43.400>those <00:31:43.600>arguments

612
00:31:45.300 --> 00:31:48.200
<00:31:45.300>because <00:31:45.766>based <00:31:46.233>on <00:31:46.700>that

613
00:31:48.200 --> 00:31:51.500
<00:31:48.200>hit <00:31:48.375>those <00:31:48.550>hints <00:31:48.725>it <00:31:48.900>was <00:31:49.075>able <00:31:49.250>to <00:31:49.425>put <00:31:49.600>them

614
00:31:51.500 --> 00:31:52.600
<00:31:51.500>in <00:31:51.830>the <00:31:52.159>native <00:31:52.490>image.

615
00:31:55.100 --> 00:31:58.200
<00:31:55.100>As <00:31:55.207>long <00:31:55.315>as <00:31:55.423>that <00:31:55.530>that <00:31:55.638>runs <00:31:55.746>so <00:31:55.853>we <00:31:55.961>will <00:31:56.069>see <00:31:56.176>the <00:31:56.284>output. <00:31:56.392>I <00:31:56.500>will

616
00:31:58.200 --> 00:32:01.400
<00:31:58.200>show <00:31:58.375>just <00:31:58.550>some <00:31:58.725>other <00:31:58.900>examples <00:31:59.075>here. <00:31:59.250>So <00:31:59.425>for <00:31:59.600>example

617
00:32:01.400 --> 00:32:04.500
<00:32:01.400>accessing <00:32:01.750>resources, <00:32:02.100>that's <00:32:02.450>another <00:32:02.800>feature.

618
00:32:04.500 --> 00:32:07.400
<00:32:04.500>That's <00:32:04.966>Dynamic <00:32:05.433>and <00:32:05.900>therefore

619
00:32:07.400 --> 00:32:08.200
<00:32:07.400>it's <00:32:08.120>not

620
00:32:09.300 --> 00:32:12.300
<00:32:09.300>And <00:32:09.427>that <00:32:09.554>sample <00:32:09.681>he <00:32:09.809>is <00:32:09.936>not <00:32:10.063>working <00:32:10.190>out <00:32:10.318>of <00:32:10.445>the <00:32:10.572>box <00:32:10.700>with

621
00:32:12.300 --> 00:32:15.500
<00:32:12.300>Native <00:32:12.475>image. <00:32:12.649>You <00:32:12.825>can <00:32:13.000>see <00:32:13.175>that <00:32:13.350>I'm <00:32:13.524>just <00:32:13.700>loading

622
00:32:15.500 --> 00:32:18.100
<00:32:15.500>a <00:32:15.850>resource <00:32:16.200>and <00:32:16.550>that's <00:32:16.900>contained

623
00:32:18.100 --> 00:32:19.700
<00:32:18.100>in <00:32:18.449>my <00:32:18.800>source <00:32:19.149>code <00:32:19.500>via.

624
00:32:21.400 --> 00:32:24.400
<00:32:21.400>Get <00:32:21.600>resources <00:32:21.800>stream <00:32:22.000>and <00:32:22.200>if <00:32:22.400>I <00:32:22.600>would <00:32:22.800>run

625
00:32:24.400 --> 00:32:28.200
<00:32:24.400>that <00:32:24.507>with <00:32:24.615>a <00:32:24.723>native <00:32:24.830>image, <00:32:24.938>it <00:32:25.046>would <00:32:25.153>fail <00:32:25.261>with <00:32:25.369>the <00:32:25.476>arrow <00:32:25.584>that <00:32:25.692>yeah, <00:32:25.800>not

626
00:32:27.200 --> 00:32:30.600
<00:32:27.200>project <00:32:27.400>exception <00:32:27.600>or <00:32:27.800>at <00:32:28.000>the <00:32:28.200>end. <00:32:28.400>The <00:32:28.600>resource

627
00:32:30.600 --> 00:32:33.400
<00:32:30.600>is <00:32:30.755>not <00:32:30.911>there <00:32:31.066>because <00:32:31.222>it <00:32:31.377>cannot <00:32:31.533>be <00:32:31.688>detected <00:32:31.844>or <00:32:32.000>it's

628
00:32:33.400 --> 00:32:36.500
<00:32:33.400>we <00:32:33.633>don't <00:32:33.866>have <00:32:34.100>the <00:32:34.333>dynamic <00:32:34.566>feature <00:32:34.800>available.

629
00:32:36.500 --> 00:32:39.400
<00:32:36.500>Therefore <00:32:36.700>you <00:32:36.900>could <00:32:37.100>also <00:32:37.300>run <00:32:37.500>the <00:32:37.700>agent <00:32:37.900>lip.

630
00:32:39.400 --> 00:32:42.400
<00:32:39.400>So <00:32:39.575>just <00:32:39.750>run <00:32:39.925>the <00:32:40.100>command <00:32:40.275>on <00:32:40.450>the <00:32:40.625>jvm. <00:32:40.800>It

631
00:32:42.400 --> 00:32:45.100
<00:32:42.400>will <00:32:42.600>generate <00:32:42.800>a <00:32:43.000>configuration, <00:32:43.200>but <00:32:43.400>that's <00:32:43.600>also <00:32:43.800>for

632
00:32:45.100 --> 00:32:45.800
<00:32:45.100>the <00:32:45.415>native <00:32:45.730>image.

633
00:32:47.800 --> 00:32:51.100
<00:32:47.800>One <00:32:48.149>flag <00:32:48.500>available <00:32:48.850>that <00:32:49.200>you

634
00:32:51.100 --> 00:32:54.700
<00:32:51.100>can <00:32:51.255>also <00:32:51.411>use <00:32:51.566>as <00:32:51.722>an <00:32:51.877>alternative. <00:32:52.033>It's <00:32:52.188>called <00:32:52.344>include <00:32:52.500>resources

635
00:32:54.700 --> 00:32:56.500
<00:32:54.700>and <00:32:54.900>there <00:32:55.100>you <00:32:55.300>can <00:32:55.500>put <00:32:55.700>in <00:32:55.900>your <00:32:56.100>resources.

636
00:32:58.700 --> 00:33:01.700
<00:32:58.700>Another <00:32:58.900>feature <00:32:59.100>is <00:32:59.300>for <00:32:59.500>example <00:32:59.700>class <00:32:59.900>in <00:33:00.100>installation

637
00:33:01.700 --> 00:33:04.300
<00:33:01.700>initialization. <00:33:01.980>You <00:33:02.260>can <00:33:02.540>configure <00:33:02.820>whether <00:33:03.100>you

638
00:33:04.300 --> 00:33:07.500
<00:33:04.300>want <00:33:04.475>to <00:33:04.649>analy <00:33:04.825>initialize <00:33:05.000>specific <00:33:05.175>classes <00:33:05.350>at <00:33:05.524>runtime <00:33:05.700>or

639
00:33:07.500 --> 00:33:10.700
<00:33:07.500>at <00:33:07.675>build <00:33:07.850>time <00:33:08.025>we <00:33:08.200>can <00:33:08.375>see <00:33:08.550>where <00:33:08.725>that's <00:33:08.900>helpful

640
00:33:10.700 --> 00:33:12.100
<00:33:10.700>in <00:33:11.120>a <00:33:11.540>second <00:33:11.960>and

641
00:33:13.800 --> 00:33:16.700
<00:33:13.800>and <00:33:14.033>with <00:33:14.266>that <00:33:14.500>it's <00:33:14.733>really <00:33:14.966>possible <00:33:15.200>to

642
00:33:16.700 --> 00:33:19.600
<00:33:16.700>to <00:33:16.933>for <00:33:17.166>example, <00:33:17.400>get <00:33:17.633>features <00:33:17.866>or <00:33:18.100>things.

643
00:33:20.600 --> 00:33:23.800
<00:33:20.600>Or <00:33:20.727>again. <00:33:20.854>You <00:33:20.981>could <00:33:21.109>say <00:33:21.236>Okay. <00:33:21.363>I <00:33:21.490>want <00:33:21.618>to <00:33:21.745>analyze <00:33:21.872>initialize <00:33:22.000>everything

644
00:33:23.800 --> 00:33:26.300
<00:33:23.800>at <00:33:24.080>build <00:33:24.360>time. <00:33:24.639>But <00:33:24.919>some <00:33:25.200>of

645
00:33:26.300 --> 00:33:29.400
<00:33:26.300>the <00:33:26.455>features <00:33:26.611>will <00:33:26.766>not <00:33:26.922>work. <00:33:27.077>So <00:33:27.233>and <00:33:27.388>and <00:33:27.544>therefore <00:33:27.700>you

646
00:33:29.400 --> 00:33:32.000
<00:33:29.400>really <00:33:29.600>have <00:33:29.800>to <00:33:30.000>see <00:33:30.200>with <00:33:30.400>what <00:33:30.600>is <00:33:30.800>the

647
00:33:32.100 --> 00:33:35.200
<00:33:32.100>best <00:33:32.240>for <00:33:32.379>your <00:33:32.520>glasses? <00:33:32.659>The <00:33:32.800>default <00:33:32.939>is <00:33:33.080>really <00:33:33.219>that <00:33:33.360>every <00:33:33.500>class

648
00:33:35.200 --> 00:33:38.200
<00:33:35.200>will <00:33:35.666>be <00:33:36.133>will <00:33:36.600>be

649
00:33:38.200 --> 00:33:41.300
<00:33:38.200>initialized <00:33:38.900>at <00:33:39.600>runtime.

650
00:33:42.100 --> 00:33:45.500
<00:33:42.100>And <00:33:42.199>if <00:33:42.300>we <00:33:42.399>have <00:33:42.500>a <00:33:42.600>look <00:33:42.699>at <00:33:42.800>this <00:33:42.899>example <00:33:43.000>here, <00:33:43.100>you <00:33:43.199>can <00:33:43.300>see <00:33:43.399>it's <00:33:43.500>nothing

651
00:33:45.500 --> 00:33:48.900
<00:33:45.500>special <00:33:45.655>at <00:33:45.811>the <00:33:45.966>end. <00:33:46.122>It <00:33:46.277>puts <00:33:46.433>out <00:33:46.588>the <00:33:46.744>jar <00:33:46.900>set.

652
00:33:48.900 --> 00:33:51.500
<00:33:48.900>The <00:33:49.180>problem <00:33:49.460>here <00:33:49.740>is <00:33:50.020>that <00:33:50.300>the

653
00:33:51.500 --> 00:33:54.500
<00:33:51.500>jar <00:33:51.640>said <00:33:51.780>I've <00:33:51.920>defined <00:33:52.060>here <00:33:52.200>is <00:33:52.340>not <00:33:52.480>available <00:33:52.620>in <00:33:52.760>the <00:33:52.900>in

654
00:33:54.500 --> 00:33:58.400
<00:33:54.500>the <00:33:54.700>image <00:33:54.900>and <00:33:55.100>therefore <00:33:55.300>if <00:33:55.500>I <00:33:55.700>with <00:33:55.900>a

655
00:33:58.400 --> 00:33:59.400
<00:33:58.400>default <00:33:58.850>I <00:33:59.300>am.

656
00:34:00.200 --> 00:34:03.900
<00:34:00.200>And <00:34:00.375>this <00:34:00.550>year <00:34:00.725>that <00:34:00.900>the <00:34:01.075>class <00:34:01.250>at <00:34:01.425>runtime <00:34:01.600>it

657
00:34:03.900 --> 00:34:06.300
<00:34:03.900>will <00:34:04.055>not <00:34:04.211>be <00:34:04.366>there <00:34:04.522>and <00:34:04.677>we <00:34:04.833>will <00:34:04.988>get <00:34:05.144>adjusted <00:34:05.300>not

658
00:34:06.300 --> 00:34:09.700
<00:34:06.300>found <00:34:06.500>exception <00:34:06.700>at <00:34:06.899>the <00:34:07.100>end. <00:34:07.300>And <00:34:07.500>therefore <00:34:07.700>it

659
00:34:09.700 --> 00:34:12.300
<00:34:09.699>makes <00:34:09.980>sense <00:34:10.259>to <00:34:10.540>for <00:34:10.819>we <00:34:11.100>can

660
00:34:12.300 --> 00:34:15.500
<00:34:12.300>configure <00:34:12.580>that <00:34:12.860>it <00:34:13.140>that <00:34:13.420>initializer <00:34:13.700>will

661
00:34:15.500 --> 00:34:15.700
be

662
00:34:17.300 --> 00:34:20.500
<00:34:17.300>run <00:34:17.440>on <00:34:17.580>build <00:34:17.720>time <00:34:17.860>and <00:34:18.000>then <00:34:18.140>it <00:34:18.280>knows <00:34:18.420>our <00:34:18.560>okay. <00:34:18.700>I

663
00:34:20.500 --> 00:34:24.400
<00:34:20.500>have <00:34:20.627>to <00:34:20.754>include <00:34:20.881>the <00:34:21.009>charge <00:34:21.136>that <00:34:21.263>and <00:34:21.390>that <00:34:21.518>should <00:34:21.645>work. <00:34:21.772>We'll <00:34:21.900>just

664
00:34:24.400 --> 00:34:28.100
<00:34:24.400>go <00:34:24.540>back <00:34:24.680>to <00:34:24.820>the <00:34:24.960>terminal <00:34:25.100>and <00:34:25.240>see <00:34:25.380>okay <00:34:25.520>our <00:34:25.660>reflection <00:34:25.800>worked.

665
00:34:27.100 --> 00:34:30.200
<00:34:27.100>So <00:34:27.380>we're <00:34:27.659>able <00:34:27.940>to <00:34:28.219>execute <00:34:28.500>the

666
00:34:30.200 --> 00:34:33.400
<00:34:30.199>native <00:34:30.339>image <00:34:30.480>here <00:34:30.620>and <00:34:30.759>see <00:34:30.899>the <00:34:31.040>results, <00:34:31.179>which <00:34:31.319>is <00:34:31.460>really <00:34:31.600>great.

667
00:34:34.600 --> 00:34:36.800
<00:34:34.600>regarding <00:34:35.066>our <00:34:35.533>second <00:34:36.000>example

668
00:34:40.300 --> 00:34:41.900
<00:34:40.300>I <00:34:40.533>will <00:34:40.766>just <00:34:41.000>show <00:34:41.233>you <00:34:41.466>how <00:34:41.700>to.

669
00:34:43.900 --> 00:34:45.100
<00:34:43.900>how <00:34:44.440>to <00:34:44.980>to

670
00:34:47.300 --> 00:34:50.600
<00:34:47.300>set <00:34:47.500>so <00:34:47.700>here <00:34:47.900>are <00:34:48.100>the <00:34:48.300>the <00:34:48.500>arguments <00:34:48.700>to

671
00:34:52.700 --> 00:34:56.700
<00:34:52.699>to <00:34:52.933>initialize <00:34:53.166>some <00:34:53.399>some <00:34:53.633>of <00:34:53.866>your <00:34:54.100>classes

672
00:34:55.700 --> 00:34:58.700
<00:34:55.699>at <00:34:56.399>build <00:34:57.100>time

673
00:34:58.700 --> 00:35:01.200
<00:34:58.700>and <00:34:59.166>but <00:34:59.633>at <00:35:00.100>that

674
00:35:01.200 --> 00:35:04.500
<00:35:01.200>so <00:35:01.316>for <00:35:01.433>sure <00:35:01.549>you <00:35:01.666>could <00:35:01.783>say <00:35:01.899>okay <00:35:02.016>just <00:35:02.133>initialize <00:35:02.250>everything <00:35:02.366>on <00:35:02.483>build <00:35:02.600>time,

675
00:35:04.500 --> 00:35:06.000
<00:35:04.500>but <00:35:04.837>then <00:35:05.175>if <00:35:05.512>you <00:35:05.850>go

676
00:35:07.300 --> 00:35:10.600
<00:35:07.300>To <00:35:07.427>this <00:35:07.554>example, <00:35:07.681>here <00:35:07.809>we <00:35:07.936>go. <00:35:08.063>There <00:35:08.190>you <00:35:08.318>can <00:35:08.445>see <00:35:08.572>that <00:35:08.700>there.

677
00:35:10.600 --> 00:35:14.000
<00:35:10.600>I <00:35:10.799>have <00:35:11.000>a <00:35:11.200>threat <00:35:11.400>in <00:35:11.600>an <00:35:11.799>initially <00:35:12.000>station.

678
00:35:14.700 --> 00:35:17.000
<00:35:14.700>And <00:35:14.827>I'm <00:35:14.954>sure <00:35:15.081>I <00:35:15.209>don't <00:35:15.336>want <00:35:15.463>to <00:35:15.590>have <00:35:15.718>that <00:35:15.845>at <00:35:15.972>build <00:35:16.100>time

679
00:35:17.200 --> 00:35:20.300
<00:35:17.200>because <00:35:17.399>that <00:35:17.600>will <00:35:17.799>just <00:35:18.000>run <00:35:18.200>and <00:35:18.399>output <00:35:18.600>the

680
00:35:20.300 --> 00:35:23.300
<00:35:20.300>stuff <00:35:20.475>here <00:35:20.650>on <00:35:20.825>build <00:35:21.000>time. <00:35:21.175>And <00:35:21.350>therefore <00:35:21.525>I <00:35:21.700>really

681
00:35:23.300 --> 00:35:26.300
<00:35:23.300>have <00:35:23.407>to <00:35:23.515>decide <00:35:23.623>what <00:35:23.730>I <00:35:23.838>want <00:35:23.946>to <00:35:24.053>have <00:35:24.161>on <00:35:24.269>built <00:35:24.376>on <00:35:24.484>and <00:35:24.592>what <00:35:24.700>I

682
00:35:26.300 --> 00:35:29.300
<00:35:26.300>have <00:35:26.650>on <00:35:27.000>runtime <00:35:27.350>and <00:35:27.700>see

683
00:35:29.300 --> 00:35:32.500
<00:35:29.300>whether <00:35:29.455>there's <00:35:29.611>some <00:35:29.766>special <00:35:29.922>cases <00:35:30.077>where <00:35:30.233>I <00:35:30.388>need <00:35:30.544>maybe <00:35:30.700>the

684
00:35:32.500 --> 00:35:33.000
<00:35:32.500>build <00:35:32.950>time.

685
00:35:34.800 --> 00:35:35.700
<00:35:34.800>Arms, <00:35:35.609>yeah.

686
00:35:36.400 --> 00:35:40.800
<00:35:36.400>Other <00:35:36.555>features <00:35:36.711>are <00:35:36.866>for <00:35:37.022>example <00:35:37.177>Dynamic <00:35:37.333>proxies <00:35:37.488>and <00:35:37.644>serializations, <00:35:37.800>which

687
00:35:39.800 --> 00:35:41.700
<00:35:39.800>are <00:35:40.500>not <00:35:41.200>supported.

688
00:35:44.500 --> 00:35:47.400
<00:35:44.500>Let's <00:35:44.733>talk <00:35:44.966>about <00:35:45.200>spring. <00:35:45.433>So <00:35:45.666>at <00:35:45.900>the

689
00:35:47.400 --> 00:35:50.700
<00:35:47.400>end <00:35:47.540>I'm <00:35:47.680>spring <00:35:47.820>native <00:35:47.960>is <00:35:48.100>a <00:35:48.240>library <00:35:48.380>that <00:35:48.520>provides <00:35:48.660>incubation <00:35:48.800>support

690
00:35:50.700 --> 00:35:53.900
<00:35:50.700>for <00:35:50.933>combining <00:35:51.166>spring <00:35:51.399>applications <00:35:51.633>to <00:35:51.866>Quality <00:35:52.100>and

691
00:35:53.900 --> 00:35:56.000
<00:35:53.900>Native <00:35:54.180>images <00:35:54.460>and <00:35:54.740>the <00:35:55.020>goal <00:35:55.300>is

692
00:35:56.300 --> 00:36:00.000
<00:35:56.300>really <00:35:56.500>to <00:35:56.700>get <00:35:56.900>those <00:35:57.100>benefits <00:35:57.300>without <00:35:57.500>changes <00:35:57.700>in

693
00:35:59.300 --> 00:36:01.700
<00:35:59.300>the <00:35:59.766>application <00:36:00.233>source <00:36:00.700>code.

694
00:36:02.200 --> 00:36:05.100
<00:36:02.200>That's <00:36:02.549>their <00:36:02.899>goal <00:36:03.250>off <00:36:03.600>of

695
00:36:05.100 --> 00:36:08.300
<00:36:05.100>that <00:36:05.299>spring <00:36:05.500>native. <00:36:05.700>And <00:36:05.900>so <00:36:06.100>as <00:36:06.299>of <00:36:06.500>right

696
00:36:08.300 --> 00:36:11.200
<00:36:08.300>now, <00:36:08.500>it's <00:36:08.700>it's <00:36:08.900>available <00:36:09.100>as <00:36:09.300>a <00:36:09.500>library. <00:36:09.700>You

697
00:36:11.200 --> 00:36:13.000
<00:36:11.200>can <00:36:11.433>just <00:36:11.666>go <00:36:11.899>to <00:36:12.133>start <00:36:12.366>at <00:36:12.600>spring.io.

698
00:36:14.300 --> 00:36:15.700
<00:36:14.300>Start <00:36:14.615>with <00:36:14.930>a <00:36:15.245>new <00:36:15.560>application.

699
00:36:17.400 --> 00:36:20.700
<00:36:17.400>At <00:36:17.555>the <00:36:17.711>dependency <00:36:17.866>here <00:36:18.022>and <00:36:18.177>then <00:36:18.333>you <00:36:18.488>have <00:36:18.644>spring <00:36:18.800>native

700
00:36:20.700 --> 00:36:23.600
<00:36:20.700>support <00:36:20.839>and <00:36:20.980>you <00:36:21.120>can <00:36:21.259>see <00:36:21.399>that <00:36:21.540>in <00:36:21.680>your <00:36:21.819>pump <00:36:21.960>file <00:36:22.100>that

701
00:36:23.600 --> 00:36:27.700
<00:36:23.600>we <00:36:23.799>now <00:36:24.000>have <00:36:24.200>that <00:36:24.400>library <00:36:24.600>that <00:36:24.799>a <00:36:25.000>library

702
00:36:27.700 --> 00:36:31.000
<00:36:27.700>or <00:36:27.933>dependency <00:36:28.166>included <00:36:28.399>here <00:36:28.633>with <00:36:28.866>version <00:36:29.100>0.12.

703
00:36:30.600 --> 00:36:34.700
<00:36:30.600>You <00:36:30.833>can <00:36:31.066>see <00:36:31.299>some <00:36:31.533>additional <00:36:31.766>black <00:36:32.000>ends

704
00:36:34.700 --> 00:36:37.100
<00:36:34.700>that <00:36:34.875>are <00:36:35.049>available. <00:36:35.225>So <00:36:35.399>for <00:36:35.575>example <00:36:35.750>that <00:36:35.924>ahead <00:36:36.100>of

705
00:36:37.100 --> 00:36:40.600
<00:36:37.100>time <00:36:37.275>even <00:36:37.450>blacken <00:36:37.625>which <00:36:37.799>will <00:36:37.975>analyze <00:36:38.150>your <00:36:38.325>application <00:36:38.500>do

706
00:36:40.600 --> 00:36:43.800
<00:36:40.600>the <00:36:40.799>static <00:36:41.000>analysis <00:36:41.200>and <00:36:41.400>provide <00:36:41.600>the <00:36:41.799>configuration <00:36:42.000>for

707
00:36:43.800 --> 00:36:44.600
<00:36:43.800>you <00:36:43.980>out <00:36:44.160>of <00:36:44.340>the <00:36:44.520>box.

708
00:36:46.300 --> 00:36:49.300
<00:36:46.300>and <00:36:46.455>then <00:36:46.611>if <00:36:46.766>you <00:36:46.922>score <00:36:47.077>a <00:36:47.233>little <00:36:47.388>bit <00:36:47.544>down <00:36:47.700>we

709
00:36:49.300 --> 00:36:52.600
<00:36:49.300>can <00:36:49.533>see <00:36:49.766>that <00:36:50.000>also <00:36:50.233>there <00:36:50.466>is <00:36:50.700>a

710
00:36:52.600 --> 00:36:57.400
<00:36:52.600>gravvm <00:36:52.880>maven <00:36:53.160>black <00:36:53.440>in <00:36:53.720>that <00:36:54.000>in

711
00:36:55.400 --> 00:36:58.400
<00:36:55.400>addition <00:36:55.750>to <00:36:56.100>the <00:36:56.450>way <00:36:56.800>to

712
00:36:58.400 --> 00:36:59.500
the

713
00:37:01.500 --> 00:37:04.400
<00:37:01.500>support <00:37:01.675>for <00:37:01.850>building <00:37:02.025>a <00:37:02.200>container <00:37:02.375>image <00:37:02.550>with <00:37:02.725>a <00:37:02.900>build

714
00:37:04.400 --> 00:37:07.600
<00:37:04.400>packs <00:37:04.555>with <00:37:04.711>Native <00:37:04.866>image <00:37:05.022>also <00:37:05.177>having <00:37:05.333>the <00:37:05.488>ability <00:37:05.644>to <00:37:05.800>build

715
00:37:07.600 --> 00:37:08.800
<00:37:07.600>an <00:37:07.960>application <00:37:08.320>on <00:37:08.680>your

716
00:37:10.400 --> 00:37:13.300
<00:37:10.400>on <00:37:10.633>your <00:37:10.866>local <00:37:11.100>laptop <00:37:11.333>without <00:37:11.566>a <00:37:11.800>container

717
00:37:13.300 --> 00:37:17.500
<00:37:13.300>and <00:37:13.455>as <00:37:13.611>you <00:37:13.766>can <00:37:13.922>see <00:37:14.077>in <00:37:14.233>the <00:37:14.388>image <00:37:14.544>building <00:37:14.700>there

718
00:37:16.500 --> 00:37:17.700
is

719
00:37:19.200 --> 00:37:20.400
<00:37:19.200>I'm <00:37:19.470>able <00:37:19.740>to <00:37:20.010>find <00:37:20.280>it.

720
00:37:21.900 --> 00:37:24.600
<00:37:21.900>built <00:37:22.366>needs <00:37:22.833>if <00:37:23.300>you

721
00:37:24.600 --> 00:37:25.500
<00:37:24.600>can <00:37:24.870>see <00:37:25.140>here <00:37:25.410>that

722
00:37:29.600 --> 00:37:32.100
<00:37:29.600>so <00:37:29.740>that's <00:37:29.880>fine <00:37:30.020>and <00:37:30.160>get <00:37:30.299>ah <00:37:30.440>here <00:37:30.580>you <00:37:30.720>can <00:37:30.860>see <00:37:31.000>that

723
00:37:32.100 --> 00:37:35.300
<00:37:32.100>for <00:37:32.255>the <00:37:32.411>build <00:37:32.566>pack. <00:37:32.722>There <00:37:32.877>is <00:37:33.033>that <00:37:33.188>BP <00:37:33.344>native <00:37:33.500>image

724
00:37:35.300 --> 00:37:38.300
<00:37:35.300>through <00:37:35.500>that <00:37:35.700>so <00:37:35.900>that <00:37:36.100>the <00:37:36.300>build <00:37:36.500>pack <00:37:36.700>knows.

725
00:37:38.300 --> 00:37:41.200
<00:37:38.300>Okay. <00:37:38.455>I <00:37:38.611>have <00:37:38.766>to <00:37:38.922>build <00:37:39.077>a <00:37:39.233>native <00:37:39.388>image <00:37:39.544>based <00:37:39.700>on

726
00:37:41.200 --> 00:37:41.900
gravvm.

727
00:37:43.400 --> 00:37:44.900
<00:37:43.400>and <00:37:44.075>yeah, <00:37:44.750>so

728
00:37:46.700 --> 00:37:49.700
<00:37:46.700>let's <00:37:46.899>now <00:37:47.100>try <00:37:47.299>to <00:37:47.500>build <00:37:47.700>our <00:37:47.899>first <00:37:48.100>with

729
00:37:49.700 --> 00:37:52.100
<00:37:49.700>that <00:37:49.855>with <00:37:50.011>the <00:37:50.166>help <00:37:50.322>of <00:37:50.477>The <00:37:50.633>Craft <00:37:50.788>VM <00:37:50.944>amazing <00:37:51.100>black

730
00:37:52.100 --> 00:37:55.700
<00:37:52.100>in <00:37:52.240>build <00:37:52.380>on <00:37:52.520>Native <00:37:52.660>image <00:37:52.799>out <00:37:52.940>of <00:37:53.080>that <00:37:53.220>simple. <00:37:53.360>Hello <00:37:53.500>world.

731
00:37:57.300 --> 00:38:00.600
<00:37:57.300>Had <00:37:57.580>a <00:37:57.860>world <00:37:58.140>example. <00:37:58.420>I <00:37:58.700>already

732
00:38:00.600 --> 00:38:03.300
<00:38:00.600>showed <00:38:00.833>you <00:38:01.066>and <00:38:01.299>for <00:38:01.533>sure <00:38:01.766>as <00:38:02.000>with

733
00:38:03.300 --> 00:38:06.300
<00:38:03.300>the <00:38:03.455>rest <00:38:03.611>of <00:38:03.766>that <00:38:03.922>bravian <00:38:04.077>stuff <00:38:04.233>that <00:38:04.388>takes <00:38:04.544>some <00:38:04.700>time

734
00:38:06.300 --> 00:38:07.200
<00:38:06.300>and <00:38:07.109>therefore.

735
00:38:08.700 --> 00:38:10.000
<00:38:08.700>We <00:38:08.933>will <00:38:09.167>have <00:38:09.402>a <00:38:09.636>look <00:38:09.870>at.

736
00:38:11.900 --> 00:38:14.600
<00:38:11.900>We'll <00:38:12.133>have <00:38:12.366>a <00:38:12.600>look <00:38:12.833>at <00:38:13.066>also <00:38:13.300>those

737
00:38:14.600 --> 00:38:18.100
<00:38:14.600>limitations <00:38:14.799>of <00:38:15.000>their <00:38:15.200>head <00:38:15.400>of <00:38:15.600>time <00:38:15.799>compilation <00:38:16.000>which

738
00:38:17.100 --> 00:38:18.800
<00:38:17.100>at <00:38:17.799>the <00:38:18.500>end.

739
00:38:21.100 --> 00:38:24.500
<00:38:21.100>Is <00:38:21.240>yeah <00:38:21.380>more <00:38:21.520>or <00:38:21.660>less <00:38:21.799>the <00:38:21.940>same <00:38:22.080>like <00:38:22.220>with <00:38:22.360>guava <00:38:22.500>VM

740
00:38:24.500 --> 00:38:27.300
<00:38:24.500>so <00:38:24.700>but <00:38:24.900>the <00:38:25.100>support <00:38:25.300>is <00:38:25.500>better <00:38:25.700>because <00:38:25.900>we

741
00:38:27.300 --> 00:38:30.700
<00:38:27.300>with <00:38:27.766>a <00:38:28.233>spring <00:38:28.700>native.

742
00:38:30.700 --> 00:38:34.700
<00:38:30.700>We <00:38:31.166>added <00:38:31.633>annotations <00:38:32.100>where

743
00:38:33.700 --> 00:38:37.300
<00:38:33.700>you're <00:38:33.933>able <00:38:34.166>to <00:38:34.399>give <00:38:34.633>the <00:38:34.866>hints <00:38:35.100>regarding

744
00:38:36.300 --> 00:38:39.400
<00:38:36.300>which <00:38:36.766>classes <00:38:37.233>of <00:38:37.700>or

745
00:38:39.400 --> 00:38:42.600
<00:38:39.400>how <00:38:39.633>to <00:38:39.866>to <00:38:40.100>use <00:38:40.333>the <00:38:40.566>dynamic <00:38:40.800>features

746
00:38:42.600 --> 00:38:46.200
<00:38:42.600>to <00:38:42.950>spraying <00:38:43.299>itself. <00:38:43.650>And <00:38:44.000>for

747
00:38:45.200 --> 00:38:48.900
<00:38:45.200>example <00:38:45.480>for <00:38:45.759>the <00:38:46.040>reflection <00:38:46.319>instead <00:38:46.600>of

748
00:38:48.900 --> 00:38:51.500
<00:38:48.900>using <00:38:49.180>that <00:38:49.460>ancient <00:38:49.740>lip. <00:38:50.020>We <00:38:50.300>provide

749
00:38:51.500 --> 00:38:54.600
<00:38:51.500>a <00:38:51.780>type <00:38:52.060>in <00:38:52.340>annotation <00:38:52.620>where <00:38:52.900>you

750
00:38:54.600 --> 00:38:55.800
<00:38:54.600>can <00:38:55.140>just <00:38:55.680>then

751
00:38:57.200 --> 00:39:00.400
<00:38:57.200>Configure <00:38:57.480>all <00:38:57.759>the <00:38:58.040>or <00:38:58.319>yeah, <00:38:58.600>give

752
00:39:00.400 --> 00:39:03.300
<00:39:00.400>the <00:39:00.540>hints <00:39:00.680>to <00:39:00.820>all <00:39:00.960>the <00:39:01.100>classes <00:39:01.240>and <00:39:01.380>methods <00:39:01.520>you're <00:39:01.660>using <00:39:01.800>in

753
00:39:03.300 --> 00:39:06.600
<00:39:03.300>your <00:39:03.416>code. <00:39:03.533>And <00:39:03.650>for <00:39:03.766>sure <00:39:03.883>you're <00:39:04.000>aware <00:39:04.116>of <00:39:04.233>what <00:39:04.350>you're <00:39:04.466>using <00:39:04.583>there. <00:39:04.700>And

754
00:39:06.600 --> 00:39:09.800
<00:39:06.600>therefore <00:39:06.799>you <00:39:07.000>can <00:39:07.200>just <00:39:07.400>use <00:39:07.600>those <00:39:07.799>annotations <00:39:08.000>and

755
00:39:09.800 --> 00:39:13.000
<00:39:09.800>then <00:39:10.080>ahead <00:39:10.360>of <00:39:10.640>time <00:39:10.920>compilation <00:39:11.200>library

756
00:39:12.200 --> 00:39:15.500
<00:39:12.200>of <00:39:12.433>spring <00:39:12.666>or <00:39:12.899>the <00:39:13.133>black-in <00:39:13.366>will <00:39:13.600>generate

757
00:39:15.500 --> 00:39:17.800
<00:39:15.500>all <00:39:15.780>the <00:39:16.060>configuration <00:39:16.340>for <00:39:16.620>you <00:39:16.900>and

758
00:39:19.200 --> 00:39:24.300
<00:39:19.200>At <00:39:19.327>the <00:39:19.454>end <00:39:19.581>we're <00:39:19.709>providing <00:39:19.836>for <00:39:19.963>every <00:39:20.090>of <00:39:20.218>those <00:39:20.345>Dynamic <00:39:20.472>features <00:39:20.600>annotations.

759
00:39:22.300 --> 00:39:24.900
So

760
00:39:26.500 --> 00:39:29.400
<00:39:26.500>It's <00:39:26.675>also <00:39:26.850>possible <00:39:27.025>instead <00:39:27.200>of <00:39:27.375>that <00:39:27.550>using <00:39:27.725>the <00:39:27.900>type

761
00:39:29.400 --> 00:39:33.200
<00:39:29.400>and <00:39:29.575>without <00:39:29.750>anything <00:39:29.925>else. <00:39:30.100>You <00:39:30.275>can <00:39:30.450>also <00:39:30.625>embed <00:39:30.800>that

762
00:39:33.200 --> 00:39:36.500
<00:39:33.200>in <00:39:33.316>a <00:39:33.433>native <00:39:33.549>hint <00:39:33.666>and <00:39:33.783>if <00:39:33.899>we <00:39:34.016>have <00:39:34.133>a <00:39:34.250>look <00:39:34.366>at <00:39:34.483>the <00:39:34.600>other

763
00:39:36.500 --> 00:39:39.300
<00:39:36.500>examples <00:39:36.733>for <00:39:36.966>example <00:39:37.200>accessing <00:39:37.433>resources, <00:39:37.666>you <00:39:37.900>can

764
00:39:39.300 --> 00:39:42.100
<00:39:39.300>see <00:39:39.475>there's <00:39:39.650>resource <00:39:39.825>and <00:39:40.000>you <00:39:40.175>can <00:39:40.350>also <00:39:40.525>specify <00:39:40.700>that

765
00:39:42.100 --> 00:39:43.000
<00:39:42.100>on <00:39:42.910>patterns.

766
00:39:44.900 --> 00:39:48.000
<00:39:44.900>We <00:39:45.100>have <00:39:45.300>for <00:39:45.500>the <00:39:45.700>draft <00:39:45.900>and <00:39:46.100>it's <00:39:46.300>initialization

767
00:39:47.000 --> 00:39:48.800
sample.

768
00:39:51.100 --> 00:39:54.400
<00:39:51.100>You <00:39:51.255>can <00:39:51.411>see <00:39:51.566>that <00:39:51.722>we <00:39:51.877>have <00:39:52.033>here <00:39:52.188>the <00:39:52.344>opportunity <00:39:52.500>to

769
00:39:54.400 --> 00:39:57.600
<00:39:54.400>also <00:39:54.866>Define <00:39:55.333>that <00:39:55.800>those

770
00:39:57.600 --> 00:40:00.500
<00:39:57.600>two <00:39:57.833>classes <00:39:58.066>should <00:39:58.299>be <00:39:58.533>initialized <00:39:58.766>at <00:39:59.000>build

771
00:40:00.500 --> 00:40:03.300
<00:40:00.500>time <00:40:00.655>is <00:40:00.811>in <00:40:00.966>this <00:40:01.122>case <00:40:01.277>and <00:40:01.433>then <00:40:01.588>also <00:40:01.744>the <00:40:01.900>same

772
00:40:03.300 --> 00:40:08.200
<00:40:03.300>for <00:40:03.533>dynamic <00:40:03.766>proxy <00:40:04.000>in <00:40:04.233>cellular <00:40:04.466>serialization. <00:40:04.700>We

773
00:40:07.200 --> 00:40:11.200
<00:40:07.200>have <00:40:07.480>those <00:40:07.759>jdk <00:40:08.040>proxy <00:40:08.319>and <00:40:08.600>severalization

774
00:40:10.200 --> 00:40:11.500
hint.

775
00:40:13.300 --> 00:40:13.900
<00:40:13.300>If <00:40:13.435>we <00:40:13.570>now <00:40:13.705>go <00:40:13.840>back.

776
00:40:16.300 --> 00:40:16.600
<00:40:16.300>and <00:40:16.569>see

777
00:40:18.300 --> 00:40:21.700
<00:40:18.300>what's <00:40:18.650>our <00:40:19.000>gravelium <00:40:19.350>build <00:40:19.700>is

778
00:40:21.700 --> 00:40:24.600
<00:40:21.700>doing <00:40:21.980>here. <00:40:22.259>It's <00:40:22.540>still <00:40:22.819>working <00:40:23.100>on

779
00:40:24.600 --> 00:40:26.500
<00:40:24.600>the <00:40:24.950>blowing <00:40:25.299>the <00:40:25.650>solution <00:40:26.000>and

780
00:40:27.800 --> 00:40:30.800
<00:40:27.800>because <00:40:27.940>of <00:40:28.080>the <00:40:28.220>time <00:40:28.360>we <00:40:28.500>will <00:40:28.640>wait <00:40:28.780>for <00:40:28.920>that <00:40:29.060>but <00:40:29.200>let's

781
00:40:32.700 --> 00:40:37.000
<00:40:32.700>deploy <00:40:33.399>our <00:40:34.100>via

782
00:40:35.100 --> 00:40:39.700
<00:40:35.100>spring <00:40:35.566>boot <00:40:36.033>hello <00:40:36.500>world

783
00:40:39.700 --> 00:40:42.800
<00:40:39.700>application <00:40:39.933>on <00:40:40.166>top <00:40:40.399>of <00:40:40.633>the <00:40:40.866>serverless <00:40:41.100>runtime

784
00:40:42.800 --> 00:40:43.600
and

785
00:40:45.100 --> 00:40:47.100
<00:40:45.100>cause <00:40:45.255>of <00:40:45.411>the <00:40:45.566>time <00:40:45.722>I <00:40:45.877>also <00:40:46.033>have <00:40:46.188>a <00:40:46.344>backup <00:40:46.500>here.

786
00:40:48.300 --> 00:40:49.800
<00:40:48.300>I <00:40:48.525>thought <00:40:48.750>I <00:40:48.975>have <00:40:49.200>a <00:40:49.425>backup <00:40:49.650>here.

787
00:40:50.300 --> 00:40:52.900
<00:40:50.300>Who <00:40:50.766>was <00:40:51.233>just <00:40:51.700>okay?

788
00:40:55.300 --> 00:40:57.700
<00:40:55.300>It's <00:40:55.580>in <00:40:55.860>my <00:40:56.140>other <00:40:56.420>one <00:40:56.700>second.

789
00:41:01.200 --> 00:41:03.300
<00:41:01.200>So <00:41:01.480>then <00:41:01.759>the <00:41:02.040>backup <00:41:02.319>is <00:41:02.600>here.

790
00:41:05.200 --> 00:41:09.300
<00:41:05.200>Because <00:41:05.339>I <00:41:05.480>I <00:41:05.620>specified <00:41:05.759>it <00:41:05.899>in <00:41:06.040>the <00:41:06.180>other <00:41:06.319>terminal <00:41:06.460>let's <00:41:06.600>now

791
00:41:08.300 --> 00:41:11.200
<00:41:08.300>just <00:41:08.650>run <00:41:09.000>that <00:41:09.350>image <00:41:09.700>I

792
00:41:11.200 --> 00:41:14.800
<00:41:11.200>built <00:41:11.399>before <00:41:11.600>so <00:41:11.799>just <00:41:12.000>without <00:41:12.200>any <00:41:12.399>changes <00:41:12.600>any

793
00:41:14.800 --> 00:41:17.300
<00:41:14.800>hints <00:41:14.975>because <00:41:15.150>I'm <00:41:15.325>not <00:41:15.500>using <00:41:15.675>any <00:41:15.850>Dynamic <00:41:16.025>features <00:41:16.200>in

794
00:41:17.300 --> 00:41:19.300
<00:41:17.300>my <00:41:17.580>Hello <00:41:17.860>World <00:41:18.140>application. <00:41:18.420>I'm <00:41:18.700>just

795
00:41:20.800 --> 00:41:23.600
<00:41:20.800>Now <00:41:21.150>they <00:41:21.500>are <00:41:21.850>running. <00:41:22.200>It's

796
00:41:23.600 --> 00:41:26.800
<00:41:23.600>here <00:41:23.950>native <00:41:24.299>image <00:41:24.650>build <00:41:25.000>container

797
00:41:26.800 --> 00:41:27.500
and

798
00:41:28.600 --> 00:41:31.200
<00:41:28.600>What <00:41:28.775>I <00:41:28.950>can <00:41:29.125>do <00:41:29.299>now <00:41:29.475>is <00:41:29.650>have <00:41:29.825>a <00:41:30.000>look

799
00:41:31.200 --> 00:41:31.400
at.

800
00:41:33.100 --> 00:41:37.100
<00:41:33.100>The <00:41:33.275>same <00:41:33.450>performance <00:41:33.625>metric. <00:41:33.799>So <00:41:33.975>if <00:41:34.150>I <00:41:34.325>for <00:41:34.500>example

801
00:41:37.100 --> 00:41:39.800
<00:41:37.100>have <00:41:37.275>a <00:41:37.450>look <00:41:37.625>at <00:41:37.799>the <00:41:37.975>Lock <00:41:38.150>of <00:41:38.325>that <00:41:38.500>application.

802
00:41:42.100 --> 00:41:45.700
<00:41:42.100>I'm <00:41:42.255>able <00:41:42.411>to <00:41:42.566>see <00:41:42.722>that <00:41:42.877>instead <00:41:43.033>of <00:41:43.188>around <00:41:43.344>3.5 <00:41:43.500>or

803
00:41:45.700 --> 00:41:49.600
<00:41:45.700>4 <00:41:45.899>seconds <00:41:46.100>the <00:41:46.299>application <00:41:46.500>without <00:41:46.700>any <00:41:46.899>changes <00:41:47.100>started

804
00:41:48.600 --> 00:41:52.100
<00:41:48.600>in <00:41:49.299>around <00:41:50.000>100

805
00:41:51.100 --> 00:41:53.100
milliseconds.

806
00:41:54.200 --> 00:41:56.400
<00:41:54.200>So <00:41:54.399>that's <00:41:54.600>a <00:41:54.799>huge <00:41:55.000>Improvement <00:41:55.200>without <00:41:55.399>any <00:41:55.600>changes.

807
00:41:58.800 --> 00:42:01.100
<00:41:58.800>then <00:41:59.033>I'm <00:41:59.266>also <00:41:59.500>for <00:41:59.733>sure <00:41:59.966>able <00:42:00.200>to

808
00:42:02.300 --> 00:42:02.500
to

809
00:42:03.900 --> 00:42:07.000
<00:42:03.900>run <00:42:04.040>a <00:42:04.180>low <00:42:04.320>test <00:42:04.460>but <00:42:04.600>I <00:42:04.740>will <00:42:04.880>wait <00:42:05.020>for <00:42:05.160>for <00:42:05.300>yeah

810
00:42:06.000 --> 00:42:07.200
those

811
00:42:08.200 --> 00:42:11.400
<00:42:08.200>the <00:42:08.355>compilation <00:42:08.511>on <00:42:08.666>the <00:42:08.822>top, <00:42:08.977>but <00:42:09.133>we <00:42:09.288>can <00:42:09.444>also <00:42:09.600>have

812
00:42:11.400 --> 00:42:12.000
<00:42:11.400>a <00:42:11.670>look <00:42:11.940>at.

813
00:42:13.500 --> 00:42:17.000
<00:42:13.500>The <00:42:13.733>resource <00:42:13.966>consumption <00:42:14.200>here <00:42:14.433>would <00:42:14.666>and <00:42:14.900>how

814
00:42:16.100 --> 00:42:18.200
<00:42:16.100>we <00:42:16.799>improved <00:42:17.500>it?

815
00:42:19.500 --> 00:42:23.200
<00:42:19.500>And <00:42:19.675>you <00:42:19.850>can <00:42:20.025>see <00:42:20.200>that <00:42:20.375>instead <00:42:20.550>of <00:42:20.725>three <00:42:20.900>CPUs

816
00:42:22.200 --> 00:42:27.400
<00:42:22.200>and <00:42:22.666>around <00:42:23.133>250. <00:42:23.600>Megabyte

817
00:42:26.400 --> 00:42:29.400
<00:42:26.400>the <00:42:26.866>resources <00:42:27.333>that <00:42:27.800>use

818
00:42:29.400 --> 00:42:33.100
<00:42:29.400>this <00:42:29.633>one <00:42:29.866>CPU <00:42:30.100>and <00:42:30.333>35 <00:42:30.566>megabytes. <00:42:30.800>So

819
00:42:33.100 --> 00:42:36.700
<00:42:33.100>it's <00:42:33.255>a <00:42:33.411>or <00:42:33.566>maybe <00:42:33.722>buy <00:42:33.877>so <00:42:34.033>it's <00:42:34.188>a <00:42:34.344>huge <00:42:34.500>Improvement

820
00:42:36.700 --> 00:42:39.200
<00:42:36.700>without <00:42:36.933>any <00:42:37.166>changes <00:42:37.399>here. <00:42:37.633>And <00:42:37.866>I <00:42:38.100>said

821
00:42:39.200 --> 00:42:44.000
<00:42:39.200>the <00:42:39.307>only <00:42:39.415>thing <00:42:39.523>you <00:42:39.630>have <00:42:39.738>to <00:42:39.846>care <00:42:39.953>about <00:42:40.061>it's <00:42:40.169>really <00:42:40.276>those <00:42:40.384>Dynamic <00:42:40.492>features. <00:42:40.600>If

822
00:42:42.100 --> 00:42:45.300
<00:42:42.100>you <00:42:42.380>use <00:42:42.660>them <00:42:42.940>you <00:42:43.220>have <00:42:43.500>to

823
00:42:45.300 --> 00:42:48.500
<00:42:45.300>use <00:42:45.533>the <00:42:45.766>hints <00:42:46.000>for <00:42:46.233>sure. <00:42:46.466>Maybe <00:42:46.700>we

824
00:42:48.500 --> 00:42:51.600
<00:42:48.500>will <00:42:48.655>find <00:42:48.811>ways <00:42:48.966>to <00:42:49.122>improve <00:42:49.277>it <00:42:49.433>in <00:42:49.588>the <00:42:49.744>future. <00:42:49.900>But

825
00:42:51.600 --> 00:42:54.200
<00:42:51.600>yeah <00:42:51.775>as <00:42:51.950>of <00:42:52.125>right <00:42:52.299>now <00:42:52.475>if <00:42:52.650>you <00:42:52.825>want <00:42:53.000>to

826
00:42:56.300 --> 00:42:59.900
<00:42:56.300>Or <00:42:56.533>get <00:42:56.766>benefits <00:42:57.000>out <00:42:57.233>of <00:42:57.466>those <00:42:57.700>performance

827
00:42:59.900 --> 00:43:02.500
<00:42:59.900>and <00:43:00.100>startup <00:43:00.300>time <00:43:00.500>improvements <00:43:00.700>with <00:43:00.900>the <00:43:01.100>serverless <00:43:01.300>runtime.

828
00:43:02.500 --> 00:43:05.900
<00:43:02.500>That's <00:43:02.700>the <00:43:02.900>way <00:43:03.100>to <00:43:03.300>go <00:43:03.500>and <00:43:03.700>yeah <00:43:03.900>where

829
00:43:05.900 --> 00:43:08.400
<00:43:05.900>the <00:43:06.133>spring <00:43:06.366>boots <00:43:06.600>free <00:43:06.833>and <00:43:07.066>using <00:43:07.300>spring

830
00:43:08.400 --> 00:43:12.100
<00:43:08.400>framework <00:43:08.680>six. <00:43:08.960>I <00:43:09.240>think <00:43:09.520>that's <00:43:09.800>coming

831
00:43:11.100 --> 00:43:14.200
<00:43:11.100>or <00:43:11.380>will <00:43:11.660>be <00:43:11.940>released. <00:43:12.220>Hopefully <00:43:12.500>at

832
00:43:14.200 --> 00:43:18.200
<00:43:14.200>the <00:43:14.339>end <00:43:14.480>of <00:43:14.620>the <00:43:14.759>year <00:43:14.899>that <00:43:15.040>native <00:43:15.180>support <00:43:15.319>is <00:43:15.460>completely <00:43:15.600>embedded

833
00:43:17.200 --> 00:43:20.200
<00:43:17.200>for <00:43:17.433>you <00:43:17.666>so <00:43:17.899>you <00:43:18.133>can <00:43:18.366>out <00:43:18.600>of

834
00:43:20.200 --> 00:43:23.400
<00:43:20.200>the <00:43:20.433>box <00:43:20.666>get <00:43:20.899>those <00:43:21.133>capabilities <00:43:21.366>and <00:43:21.600>also

835
00:43:23.400 --> 00:43:26.400
<00:43:23.400>Oracle <00:43:23.555>at <00:43:23.711>the <00:43:23.866>end <00:43:24.022>of <00:43:24.177>the <00:43:24.333>goal <00:43:24.488>of <00:43:24.644>Oracle <00:43:24.800>is

836
00:43:26.400 --> 00:43:26.900
to

837
00:43:28.500 --> 00:43:31.500
<00:43:28.500>Provide <00:43:28.850>having <00:43:29.200>everything <00:43:29.550>running <00:43:29.900>as

838
00:43:31.500 --> 00:43:34.900
<00:43:31.500>gravia <00:43:31.700>native <00:43:31.900>image. <00:43:32.100>That's <00:43:32.300>their <00:43:32.500>goal. <00:43:32.700>That's <00:43:32.900>what

839
00:43:34.900 --> 00:43:37.600
<00:43:34.900>they <00:43:35.100>want <00:43:35.300>to <00:43:35.500>push <00:43:35.700>for <00:43:35.900>and <00:43:36.100>therefore <00:43:36.300>hopefully

840
00:43:37.600 --> 00:43:40.700
<00:43:37.600>a <00:43:37.775>lot <00:43:37.950>of <00:43:38.125>application <00:43:38.299>in <00:43:38.475>the <00:43:38.650>future <00:43:38.825>get <00:43:39.000>the

841
00:43:40.700 --> 00:43:41.700
<00:43:40.700>benefits <00:43:41.000>out <00:43:41.299>of <00:43:41.600>it.

842
00:43:43.400 --> 00:43:45.900
<00:43:43.400>As <00:43:43.575>you <00:43:43.750>can <00:43:43.925>see <00:43:44.100>our <00:43:44.275>application <00:43:44.450>is <00:43:44.625>still <00:43:44.800>compiling.

843
00:43:47.600 --> 00:43:51.700
<00:43:47.600>And <00:43:47.716>as <00:43:47.833>you <00:43:47.950>can <00:43:48.066>also <00:43:48.183>see <00:43:48.299>it <00:43:48.416>takes <00:43:48.533>a <00:43:48.650>lot <00:43:48.766>of <00:43:48.883>resources <00:43:49.000>here.

844
00:43:53.900 --> 00:43:56.700
<00:43:53.900>Maybe <00:43:54.100>it <00:43:54.300>will <00:43:54.500>finish <00:43:54.700>an <00:43:54.900>elects <00:43:55.100>50 <00:43:55.300>seconds.

845
00:43:56.700 --> 00:43:59.100
<00:43:56.700>If <00:43:57.049>not, <00:43:57.399>yeah, <00:43:57.750>you <00:43:58.100>have

846
00:43:59.100 --> 00:44:02.300
<00:43:59.100>to <00:43:59.227>trust <00:43:59.354>me <00:43:59.481>that <00:43:59.609>it <00:43:59.736>works <00:43:59.863>at <00:43:59.990>the <00:44:00.118>end. <00:44:00.245>Yeah, <00:44:00.372>give <00:44:00.500>it

847
00:44:02.300 --> 00:44:05.500
<00:44:02.300>a <00:44:02.500>try <00:44:02.700>with <00:44:02.900>your <00:44:03.100>applications <00:44:03.300>or <00:44:03.500>yeah, <00:44:03.700>wait

848
00:44:05.500 --> 00:44:08.400
<00:44:05.500>until <00:44:05.640>the <00:44:05.780>end <00:44:05.920>of <00:44:06.060>the <00:44:06.200>year <00:44:06.340>and <00:44:06.480>just <00:44:06.620>upgrade <00:44:06.760>your <00:44:06.900>application

849
00:44:08.400 --> 00:44:11.900
<00:44:08.400>to <00:44:08.600>Spring <00:44:08.800>Boots <00:44:09.000>three <00:44:09.200>and <00:44:09.400>then <00:44:09.600>use <00:44:09.800>the

850
00:44:11.900 --> 00:44:13.200
<00:44:11.900>out <00:44:12.134>of <00:44:12.368>the <00:44:12.602>box <00:44:12.836>for <00:44:13.069>it.

851
00:44:15.900 --> 00:44:18.400
<00:44:15.900>Now <00:44:16.100>so <00:44:16.300>yeah, <00:44:16.500>thank <00:44:16.700>you <00:44:16.900>very <00:44:17.100>much. <00:44:17.300>I

852
00:44:18.400 --> 00:44:21.800
<00:44:18.400>will <00:44:18.575>be <00:44:18.750>here <00:44:18.925>around <00:44:19.100>for <00:44:19.275>another <00:44:19.450>one <00:44:19.625>two <00:44:19.800>hour

853
00:44:21.800 --> 00:44:23.200
<00:44:21.800>something <00:44:21.980>like <00:44:22.160>that <00:44:22.340>if <00:44:22.520>you <00:44:22.700>have <00:44:22.880>any <00:44:23.060>questions.

854
00:44:24.200 --> 00:44:28.000
<00:44:24.200>Yeah, <00:44:24.316>just <00:44:24.433>come <00:44:24.549>to <00:44:24.666>me <00:44:24.783>and <00:44:24.899>ask <00:44:25.016>me <00:44:25.133>and <00:44:25.250>yeah, <00:44:25.366>thank <00:44:25.483>you <00:44:25.600>that

855
00:44:27.400 --> 00:44:30.200
<00:44:27.400>you <00:44:27.575>attend <00:44:27.750>my <00:44:27.925>session. <00:44:28.100>I <00:44:28.275>hope <00:44:28.450>you <00:44:28.625>learn <00:44:28.800>something

856
00:44:30.200 --> 00:44:33.100
<00:44:30.200>today <00:44:30.666>and <00:44:31.133>we <00:44:31.600>are

857
00:44:33.100 --> 00:44:33.900
<00:44:33.100>ready. <00:44:33.340>So <00:44:33.580>the <00:44:33.820>application.

858
00:44:35.500 --> 00:44:38.600
<00:44:35.500>More <00:44:35.780>successfully <00:44:36.060>built <00:44:36.340>after <00:44:36.620>six <00:44:36.900>minutes

859
00:44:38.600 --> 00:44:41.900
<00:44:38.600>six <00:44:39.066>minutes. <00:44:39.533>If <00:44:40.000>we

860
00:44:41.900 --> 00:44:44.300
<00:44:41.900>run <00:44:42.250>it <00:44:42.600>here <00:44:42.950>you <00:44:43.300>can

861
00:44:44.300 --> 00:44:48.300
<00:44:44.300>see <00:44:44.455>also <00:44:44.611>the <00:44:44.766>start <00:44:44.922>of <00:44:45.077>time <00:44:45.233>of <00:44:45.388>hundred <00:44:45.544>milliseconds <00:44:45.700>compared

862
00:44:47.300 --> 00:44:50.300
<00:44:47.300>to <00:44:47.533>those <00:44:47.766>three <00:44:48.000>dot <00:44:48.233>five <00:44:48.466>or <00:44:48.700>four

863
00:44:50.300 --> 00:44:51.900
<00:44:50.300>seconds. <00:44:50.650>So <00:44:51.000>a <00:44:51.350>huge <00:44:51.700>Improvement.

864
00:44:52.700 --> 00:44:53.400
<00:44:52.700>Thank <00:44:52.910>you <00:44:53.120>very <00:44:53.330>much.