1
00:00:02,240 --> 00:00:03,700
Now last but not least,

2
00:00:03,700 --> 00:00:05,110
over the last sections,

3
00:00:05,110 --> 00:00:07,060
we did learn all these fundamentals,

4
00:00:07,060 --> 00:00:08,440
but of course, we also did

5
00:00:08,440 --> 00:00:10,810
deploy our a containerized application.

6
00:00:10,810 --> 00:00:13,740
And if that is something which is interesting to you,

7
00:00:13,740 --> 00:00:17,810
I want you to keep a couple of key considerations in mind,

8
00:00:17,810 --> 00:00:20,830
for example, that you typically don't use bind mounts

9
00:00:20,830 --> 00:00:22,820
when you deploy your application,

10
00:00:22,820 --> 00:00:24,850
instead use a regular volume

11
00:00:24,850 --> 00:00:28,050
or just a copy instruction to make sure that everything

12
00:00:28,050 --> 00:00:31,010
that should be in the container is inside of it.

13
00:00:31,010 --> 00:00:33,830
Bind mounts are really primarily a tool

14
00:00:33,830 --> 00:00:37,460
for local development to mirror your source code

15
00:00:37,460 --> 00:00:40,130
or some configuration which you might wanna change

16
00:00:40,130 --> 00:00:42,760
from time to time into the running container.

17
00:00:42,760 --> 00:00:45,480
Don't use them for production.

18
00:00:45,480 --> 00:00:47,700
In addition, it's also worth pointing out

19
00:00:47,700 --> 00:00:50,280
that of course, multi-container projects

20
00:00:50,280 --> 00:00:53,130
or even ambitious single container projects

21
00:00:53,130 --> 00:00:55,230
might need multiple hosts.

22
00:00:55,230 --> 00:00:58,950
Locally, everything happens on just one hosting machine

23
00:00:58,950 --> 00:01:00,880
but that's not necessarily true

24
00:01:00,880 --> 00:01:02,450
once you move to the web,

25
00:01:02,450 --> 00:01:04,709
once you deploy your application.

26
00:01:04,709 --> 00:01:06,940
One machine might not have enough power

27
00:01:06,940 --> 00:01:09,610
and therefore you might need multiple machines.

28
00:01:09,610 --> 00:01:13,350
That's where this (mumbles) den can get a bit more complex

29
00:01:13,350 --> 00:01:15,540
and where then just docker run

30
00:01:15,540 --> 00:01:19,410
and just docker-compose might not be enough anymore.

31
00:01:19,410 --> 00:01:21,310
I wanna highlight of course though,

32
00:01:21,310 --> 00:01:22,720
that you can run

33
00:01:22,720 --> 00:01:25,250
multiple containers on the same host as well.

34
00:01:25,250 --> 00:01:27,530
It really depends on your application,

35
00:01:27,530 --> 00:01:29,710
on your hardware requirements,

36
00:01:29,710 --> 00:01:30,890
incoming traffic

37
00:01:30,890 --> 00:01:33,210
and all of these aspects.

38
00:01:33,210 --> 00:01:34,770
Now, when it comes to deployment,

39
00:01:34,770 --> 00:01:37,780
there is a key feature which I showed you,

40
00:01:37,780 --> 00:01:39,090
multi-stage builds,

41
00:01:39,090 --> 00:01:40,710
which can be very helpful.

42
00:01:40,710 --> 00:01:43,500
This allows you build containers which

43
00:01:43,500 --> 00:01:46,850
might require a build step to get the final output

44
00:01:46,850 --> 00:01:48,280
which you wanna deploy.

45
00:01:48,280 --> 00:01:51,370
And you typically have that for front-end applications

46
00:01:51,370 --> 00:01:53,455
like react single-page applications

47
00:01:53,455 --> 00:01:56,130
as shown in the last sections.

48
00:01:56,130 --> 00:01:59,550
Multi-stage builds then make deploying such containers

49
00:01:59,550 --> 00:02:01,890
way easier because you can include

50
00:02:01,890 --> 00:02:03,760
that build step in the image

51
00:02:03,760 --> 00:02:06,690
and then have a container which has the finished output

52
00:02:06,690 --> 00:02:08,280
when it's being started.

53
00:02:08,280 --> 00:02:12,120
So multi-stage builds are a feature to keep in mind.

54
00:02:12,120 --> 00:02:15,020
Now when it comes to the concrete deployment process,

55
00:02:15,020 --> 00:02:18,180
there is one key trade-off you should always be aware of.

56
00:02:18,180 --> 00:02:21,857
And that is the control which you have over the environment,

57
00:02:21,857 --> 00:02:23,780
versus the ease-of-use.

58
00:02:23,780 --> 00:02:27,620
And security also is involved in that trade-off.

59
00:02:27,620 --> 00:02:30,460
You can bring up your own server,

60
00:02:30,460 --> 00:02:33,840
your own EC2 instance on AWS for example,

61
00:02:33,840 --> 00:02:34,980
install Docker

62
00:02:34,980 --> 00:02:37,850
and any other software which might be needed on it,

63
00:02:37,850 --> 00:02:41,180
and then run your containers on that remote machine.

64
00:02:41,180 --> 00:02:42,890
That is possible.

65
00:02:42,890 --> 00:02:44,700
You then have full control

66
00:02:44,700 --> 00:02:46,810
because it's effectively your computer

67
00:02:46,810 --> 00:02:48,250
which you control there.

68
00:02:48,250 --> 00:02:50,800
But that also means that you have to do everything.

69
00:02:50,800 --> 00:02:53,270
You are responsible for its security

70
00:02:53,270 --> 00:02:56,390
and you are responsible for keeping the tools updated,

71
00:02:56,390 --> 00:02:59,060
for monitoring your running applications.

72
00:02:59,060 --> 00:03:00,600
All of that.

73
00:03:00,600 --> 00:03:04,230
You can instead also use a managed service

74
00:03:04,230 --> 00:03:06,560
to make that easier for you.

75
00:03:06,560 --> 00:03:08,610
Then all of that is managed for you

76
00:03:08,610 --> 00:03:10,100
and you don't have to bring up

77
00:03:10,100 --> 00:03:11,910
and configure your own servers

78
00:03:11,910 --> 00:03:14,110
and install your own software.

79
00:03:14,110 --> 00:03:15,900
That means less control,

80
00:03:15,900 --> 00:03:17,800
but all the less responsibility

81
00:03:17,800 --> 00:03:20,270
and less knowledge which is required.

82
00:03:20,270 --> 00:03:21,510
It's easier to use

83
00:03:21,510 --> 00:03:23,640
and if you're just a developer,

84
00:03:23,640 --> 00:03:25,010
I strongly recommend

85
00:03:25,010 --> 00:03:27,860
that you consider such managed services.

86
00:03:27,860 --> 00:03:30,300
Of course, if you are a longterm administrator

87
00:03:30,300 --> 00:03:32,430
and you know everything about servers,

88
00:03:32,430 --> 00:03:35,250
then being able to manage everything on your own

89
00:03:35,250 --> 00:03:37,800
might be worth a lot to you.

90
00:03:37,800 --> 00:03:40,260
And that is it for this summary.

91
00:03:40,260 --> 00:03:41,900
These are all things we learned,

92
00:03:41,900 --> 00:03:43,310
It was just a summary.

93
00:03:43,310 --> 00:03:44,950
And these are all things

94
00:03:44,950 --> 00:03:48,510
and concepts which should be clear to you by now,

95
00:03:48,510 --> 00:03:50,700
because in the next core section,

96
00:03:50,700 --> 00:03:53,580
we are going to start with Kubernetes,

97
00:03:53,580 --> 00:03:55,420
which is a brand new thing

98
00:03:55,420 --> 00:03:58,400
still related to docker at containers of course,

99
00:03:58,400 --> 00:04:00,130
but a brand new concept

100
00:04:00,130 --> 00:04:02,150
or a collection of concepts,

101
00:04:02,150 --> 00:04:05,730
which will help us with deploying containers

102
00:04:05,730 --> 00:04:08,560
and managing more complex

103
00:04:08,560 --> 00:04:12,280
applications possibly, multi-container applications

104
00:04:12,280 --> 00:04:14,380
running on multiple hosts.

105
00:04:14,380 --> 00:04:15,870
So let's dive into that.

106
00:04:15,870 --> 00:04:19,220
If something about this summary was not clear,

107
00:04:19,220 --> 00:04:20,540
I strongly recommend

108
00:04:20,540 --> 00:04:23,000
that you go back to the respective module

109
00:04:23,000 --> 00:04:25,633
to make sure we're all on the same page again.

