WEBVTT

1
00:00.000 --> 00:09.800
Next up, let's take a look at platform as a service or PaaS.

2
00:09.800 --> 00:14.590
With this service model, we're looking at the service provider having a little

3
00:14.590 --> 00:15.120
bit more

4
00:15.120 --> 00:18.440
responsibility for the environment.

5
00:18.440 --> 00:23.700
Things like operating system, we're probably not going to have any idea what

6
00:23.700 --> 00:24.320
operating

7
00:24.320 --> 00:27.880
system is being used for PaaS.

8
00:27.880 --> 00:34.220
We'll end this video by taking a look at an example of one of our PaaS
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

8
00:27.880 --> 00:34.220
We'll end this video by taking a look at an example of one of our PaaS

9
00:34.220 --> 00:35.800
offerings, specifically

10
00:35.800 --> 00:39.280
from Google, and I'll show you exactly what I mean.

11
00:39.280 --> 00:43.160
But before we get to that, let's talk in a little bit of detail about what

12
00:43.160 --> 00:44.080
exactly is

13
00:44.080 --> 00:51.510
PaaS, and what's the real difference between this and our previous discussion

14
00:51.510 --> 00:52.720
for IaaS.

15
00:52.720 --> 00:56.760
So let's go ahead and take a look at some of those details.

16
00:56.760 --> 01:01.100
So what exactly are we talking about when we're talking about platform as a
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

16
00:56.760 --> 01:01.100
So what exactly are we talking about when we're talking about platform as a

17
01:01.100 --> 01:01.680
service

18
01:01.680 --> 01:03.320
or PaaS?

19
01:03.320 --> 01:08.580
Well, if we refer back to our same diagram that we used before, the big thing

20
01:08.580 --> 01:09.200
to note,

21
01:09.200 --> 01:14.230
of course, is we'll notice that our demarcation point has moved considerably

22
01:14.230 --> 01:15.200
further up the

23
01:15.200 --> 01:16.520
model.

24
01:16.520 --> 01:21.410
Now, in addition to everything they were offering before, now notice that the

25
01:21.410 --> 01:22.040
service

26
01:22.040 --> 01:26.600
provider is actually taking care of the operating system.

27
01:26.600 --> 01:30.730
In fact, as I mentioned during the introduction, we probably won't even know
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

27
01:26.600 --> 01:30.730
In fact, as I mentioned during the introduction, we probably won't even know

28
01:30.730 --> 01:31.640
what operating

29
01:31.640 --> 01:34.040
systems being used.

30
01:34.040 --> 01:38.400
Also they're going to be providing any necessary middleware, and the actual

31
01:38.400 --> 01:39.400
runtime needed to

32
01:39.400 --> 01:41.960
support the applications.

33
01:41.960 --> 01:47.990
What we as the customer are going to do is provide both the data and the

34
01:47.990 --> 01:50.360
application itself

35
01:50.360 --> 01:53.920
that's going to be used on this platform.

36
01:53.920 --> 01:56.800
So what exactly does that entail?

37
01:56.800 --> 02:02.680
Well we're going to be using code that either we developed ourselves or we
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

37
01:56.800 --> 02:02.680
Well we're going to be using code that either we developed ourselves or we

38
02:02.680 --> 02:03.840
acquired.

39
02:03.840 --> 02:06.000
And that's what we're going to be running up here.

40
02:06.000 --> 02:10.670
We're providing the application and of course the data needed for that

41
02:10.670 --> 02:11.840
application.

42
02:11.840 --> 02:16.790
Of course, the big advantage to this model for the customer is we're being

43
02:16.790 --> 02:17.520
provided

44
02:17.520 --> 02:21.520
with a very easy development path.

45
02:21.520 --> 02:26.640
All we have to do is worry about the applications and the data.

46
02:26.640 --> 02:31.400
We don't have to worry about this stuff down here that normally we would have
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

46
02:26.640 --> 02:31.400
We don't have to worry about this stuff down here that normally we would have

47
02:31.400 --> 02:32.240
to maintain

48
02:32.240 --> 02:36.080
if we had gone with the IaaS model.

49
02:36.080 --> 02:40.880
So a lot more of this stuff is being handled by the service provider, therefore

50
02:40.880 --> 02:41.360
we as the

51
02:41.360 --> 02:44.440
customer don't have to worry about it.

52
02:44.440 --> 02:48.950
Part of what's going to be involved in those things offered by the provider is

53
02:48.950 --> 02:49.320
going to

54
02:49.320 --> 02:54.360
be some form of a programming language execution environment.

55
02:54.360 --> 02:59.010
That will generally include, although they may need to be installed, various

56
02:59.010 --> 03:00.320
libraries,
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

56
02:59.010 --> 03:00.320
libraries,

57
03:00.320 --> 03:06.520
databases, a web server to verify your application on and so on.

58
03:06.520 --> 03:13.580
The customer, just like before, is going to have little to, well, no access to

59
03:13.580 --> 03:14.520
the underlying

60
03:14.520 --> 03:15.520
infrastructure.

61
03:15.520 --> 03:19.660
Again, they may not even be aware of what's being used in this underlying

62
03:19.660 --> 03:20.960
infrastructure,

63
03:20.960 --> 03:23.600
let alone having access to it.

64
03:23.600 --> 03:27.440
So what are the real services being offered to the customer here?

65
03:27.440 --> 03:32.070
Well, the very first thing is this is going to be very, very helpful for
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

65
03:27.440 --> 03:32.070
Well, the very first thing is this is going to be very, very helpful for

66
03:32.070 --> 03:34.360
application design.

67
03:34.360 --> 03:38.070
We don't have to worry about getting a server setup for testing and everything

68
03:38.070 --> 03:38.680
else.

69
03:38.680 --> 03:42.800
We can just do it right on the PaaS platform.

70
03:42.800 --> 03:46.840
Again, good for application development as well.

71
03:46.840 --> 03:52.160
We can have various phases of the code on various different platforms.

72
03:52.160 --> 03:57.420
And again, this is great for the testing aspect of the whole thing, as well as

73
03:57.420 --> 03:58.400
deployment.

74
03:58.400 --> 04:00.160
So testing deployment.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

74
03:58.400 --> 04:00.160
So testing deployment.

75
04:00.160 --> 04:02.850
And of course, at the end of the day, we may just want to keep our things

76
04:02.850 --> 04:04.160
running there.

77
04:04.160 --> 04:08.000
So this can also be good for hosting itself.

78
04:08.000 --> 04:10.320
It's also good for collaboration.

79
04:10.320 --> 04:14.590
If you have a whole team working on something, it's much easier to do that if

80
04:14.590 --> 04:15.160
it's being

81
04:15.160 --> 04:20.560
developed and deployed on a platform, rather than an in-house service,

82
04:20.560 --> 04:21.280
particularly if

83
04:21.280 --> 04:26.500
this collaboration is happening between companies and so on, it makes accessing

84
04:26.500 --> 04:28.120
it much easier.

85
04:28.120 --> 04:34.140
Now, some examples of this, these aren't going to be quite as popular as the I
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

85
04:28.120 --> 04:34.140
Now, some examples of this, these aren't going to be quite as popular as the I

86
04:34.140 --> 04:36.360
aaS or the SaaS

87
04:36.360 --> 04:40.710
or software as a service, which we'll be discussing next, but there are some

88
04:40.710 --> 04:42.600
good examples here.

89
04:42.600 --> 04:46.320
The first example is Google Colab.

90
04:46.320 --> 04:50.180
This one, we're actually going to take a look at in just a moment, because

91
04:50.180 --> 04:50.880
again, a lot

92
04:50.880 --> 04:55.000
of people may not be as familiar with platform as a service.

93
04:55.000 --> 04:58.800
So we're actually going to jump in and take a look at Google Colab just as an

94
04:58.800 --> 04:59.400
example

95
04:59.400 --> 05:01.800
of a platform as a service.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

95
04:59.400 --> 05:01.800
of a platform as a service.

96
05:01.800 --> 05:06.720
Of course, more Google also offers something called the App Engine.

97
05:06.720 --> 05:11.600
AWS has something called Elastic Beanstalk.

98
05:11.600 --> 05:15.080
Red Hat has something called OpenShift.

99
05:15.080 --> 05:17.520
These are again just examples.

100
05:17.520 --> 05:21.520
There are, of course, many more, as always, but just in case you're not

101
05:21.520 --> 05:22.360
familiar with

102
05:22.360 --> 05:27.940
what a platform as a service actually offers, let's go ahead and take a look at

103
05:27.940 --> 05:30.040
Google Colab.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

103
05:27.940 --> 05:30.040
Google Colab.

104
05:30.040 --> 05:34.250
So when you first open Google Colab, it'll come up here with this sort of

105
05:34.250 --> 05:35.360
welcome page.

106
05:35.360 --> 05:39.260
You can click on some various things here with examples and getting things from

107
05:39.260 --> 05:39.680
GitHub

108
05:39.680 --> 05:41.000
and so on.

109
05:41.000 --> 05:45.600
Or of course, you can just look at this welcome to co-laboratory document.

110
05:45.600 --> 05:51.240
But what we're going to do is we're going to say a new notebook.

111
05:51.240 --> 05:55.900
And what this does is opens up an environment where we can literally just start

112
05:55.900 --> 05:56.920
putting in

113
05:56.920 --> 05:58.280
code.

114
05:58.280 --> 06:02.440
So one of the things I want to note as we're looking at this, based on what we
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

114
05:58.280 --> 06:02.440
So one of the things I want to note as we're looking at this, based on what we

115
06:02.440 --> 06:02.800
're seeing

116
06:02.800 --> 06:08.050
on the screen right now, having navigated to Google Colab and opened a new

117
06:08.050 --> 06:09.000
notebook,

118
06:09.000 --> 06:11.280
what operating system is this?

119
06:11.280 --> 06:12.840
We don't know.

120
06:12.840 --> 06:16.300
We don't even really necessarily know at this point what the underlying

121
06:16.300 --> 06:17.280
libraries and

122
06:17.280 --> 06:19.560
supported programming languages are.

123
06:19.560 --> 06:21.800
Of course, that's all documented.

124
06:21.800 --> 06:27.250
But the point is without us doing anything except navigating to this web page,

125
06:27.250 --> 06:27.560
we can

126
06:27.560 --> 06:32.360
right from here start writing, developing and running our code.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

126
06:27.560 --> 06:32.360
right from here start writing, developing and running our code.

127
06:32.360 --> 06:33.960
Let's take a look.

128
06:33.960 --> 06:37.910
What I have that we're going to put in is actually an example from one of our

129
06:37.910 --> 06:39.600
other courses on

130
06:39.600 --> 06:41.040
machine learning.

131
06:41.040 --> 06:46.530
So I'm going to borrow that code and that code is going to want to use quite a

132
06:46.530 --> 06:47.160
bit of

133
06:47.160 --> 06:49.080
CPU power.

134
06:49.080 --> 06:52.230
So one of the things we're going to want to do and what's cool is Google does

135
06:52.230 --> 06:52.800
offer this

136
06:52.800 --> 06:54.160
for free.

137
06:54.160 --> 06:56.480
We can come up here to connect.

138
06:56.480 --> 06:59.960
Under connect, we're going to change the runtime type and we're going to

139
06:59.960 --> 07:02.120
actually tell this
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

139
06:59.960 --> 07:02.120
actually tell this

140
07:02.120 --> 07:04.920
to use a GPU.

141
07:04.920 --> 07:08.280
This is going to greatly increase the performance.

142
07:08.280 --> 07:14.240
Now as you can see, this T4 GPU is included in the free package.

143
07:14.240 --> 07:19.480
There are of course other ones here, the A100 and the V100 GPUs, which you have

144
07:19.480 --> 07:20.520
to actually

145
07:20.520 --> 07:22.960
purchase in order to use.

146
07:22.960 --> 07:26.380
But this is going to do fine for what we're going to do, so I'm just going to

147
07:26.380 --> 07:27.000
hit save.

148
07:27.000 --> 07:30.670
Then we're going to simply click here on the first line for entering code and I
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

148
07:27.000 --> 07:30.670
Then we're going to simply click here on the first line for entering code and I

149
07:30.670 --> 07:31.080
'm just

150
07:31.080 --> 07:34.240
going to paste in the code that we want to execute.

151
07:34.240 --> 07:37.040
So as you can see, this is quite a bit of code.

152
07:37.040 --> 07:40.480
We're not here to cover what this code actually does.

153
07:40.480 --> 07:43.680
But what we are going to do is just go ahead and run it.

154
07:43.680 --> 07:45.920
We're going to hit play over here.

155
07:45.920 --> 07:49.750
If we scroll down here a bit while it's executing, we can actually see the

156
07:49.750 --> 07:51.440
output happening here

157
07:51.440 --> 07:54.400
on the console below our code.

158
07:54.400 --> 08:06.360
This will take just a second, so let's jump ahead till it's completed.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

158
07:54.400 --> 08:06.360
This will take just a second, so let's jump ahead till it's completed.

159
08:06.360 --> 08:11.520
So I sped that up so we could still see it happening, but not in real time.

160
08:11.520 --> 08:16.870
As you can see here at the bottom, this actually took one minute and 16 seconds

161
08:16.870 --> 08:18.040
to fully run.

162
08:18.040 --> 08:21.500
Now again, we're not getting into exactly what this did, it's a bit of machine

163
08:21.500 --> 08:22.240
learning,

164
08:22.240 --> 08:27.970
but the point is we were able to connect in here to Google CoLab, literally do

165
08:27.970 --> 08:28.640
nothing

166
08:28.640 --> 08:32.200
but create a new notebook and run some code.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

166
08:28.640 --> 08:32.200
but create a new notebook and run some code.

167
08:32.200 --> 08:37.040
And you can see here that the entire environment is running, working.

168
08:37.040 --> 08:38.520
We didn't have to build a server.

169
08:38.520 --> 08:40.160
We didn't have to install code.

170
08:40.160 --> 08:42.040
We didn't have to set up run times.

171
08:42.040 --> 08:43.840
We didn't have to do any of that.

172
08:43.840 --> 08:49.800
We can just go use this anytime we want to do development work.

173
08:49.800 --> 08:56.100
So what we discussed in this video is platform as a service, mostly used for

174
08:56.100 --> 08:57.280
development

175
08:57.280 --> 09:02.420
and hosting of applications, although there are other examples out there as
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

175
08:57.280 --> 09:02.420
and hosting of applications, although there are other examples out there as

176
09:02.420 --> 09:02.800
well.

177
09:02.800 --> 09:08.850
We wrapped up here by taking a look at Google CoLab, which is just one of those

178
09:08.850 --> 09:10.240
many examples.

179
09:10.240 --> 09:14.360
And it shows you how platform as a service actually works.

180
09:14.360 --> 09:16.160
What were we able to do?

181
09:16.160 --> 09:20.640
We were able to connect into CoLab without doing anything other than creating a

182
09:20.640 --> 09:22.200
new notebook.

183
09:22.200 --> 09:26.200
We were able to execute some machine learning code.

184
09:26.200 --> 09:33.080
They even give us a GPU for free to increase the performance of the environment
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

184
09:26.200 --> 09:33.080
They even give us a GPU for free to increase the performance of the environment

185
09:33.080 --> 09:33.120
.

186
09:33.120 --> 09:37.320
So again, this is an example of platform as a service.

187
09:37.320 --> 09:43.240
But maybe we don't even need this level of access into the infrastructure.

188
09:43.240 --> 09:49.480
Maybe all we want to do is use an end application or a piece of software.

189
09:49.480 --> 09:52.800
That's where software as a service comes into play.

190
09:52.800 --> 09:55.600
And we're going to take a look at that coming up next.
